Star
LEARNING PATH / CODING AGENTS

AI 编程智能体学习路径

阅读 Codex、Claude Code 与编程工具的实现。

阅读原文
This article is written in Chinese. The original equations, source links, and code remain unchanged.
本页目录

沿仓库上下文、编辑协议、运行反馈和独立验收学习代码Agent,明确客户端与模型的边界。

前置与证据边界

先能为一个小函数写出行为契约和反例;只阅读、推演现有教学字符串与事件,不运行生成程序、不执行Git操作。 基础入口见共同基础,能力身份见能力地图。

已完成的是已有主题与标准库教学示例的编纂。本路径把它们组织为学习行动和可提交产物;端到端项目、真实模型、GPU服务或真机实验尚未执行。阅读、手算、示例验证与真实实验需分别记录;教学代码运行结果以对应版本的CI为准。

四层学习行动

层级与能力ID代表知识点及示例函数学习行动与提交验收判据
理解
agents-understand
codex-cli-launch-plan → launch_plan()
claude-code-response-window → response_window()
openhands-branch → conversation_path()
分别画Codex入口分派、Claude Code公开SDK响应窗口和OpenHands活动事件分支。客户端与基础模型分开;SDK或社区代码不能证明闭源/托管核心;日志追加顺序不必等于活动分支顺序。
推导
agents-derive、harness-derive
aider-repomap → repo_map()
coding-agent-repository-slice → repository_slice()
swe-agent-trajectory → retry_trace()
对给定调用图计算上下文范围与仓库地图预算,并展开一个step内的多次失败尝试。图与边权已给定且可能漏动态调用;格式重询不一定是新的环境step;所有成本保留。
实践
agents-build
coding-agent-guarded-replace → guarded_replace()
swe-agent-edit-contract → unique_edit()
aider-edit-format → search_replace()
codex-cli-route-call → route_call()
claude-code-sdk-tool-route → sdk_tool_route()
准备基线冲突、非唯一锚点、无变化、未知工具和合法候选五类输入;提交内存补丁和反馈表。失败编辑不改变原文;Aider与SWE-agent匹配政策分别说明;载荷、工具注册和执行准入不等于业务验收。
评估
agents-evaluate、benchmark-build
coding-agent-grade-patch → grade_patch()
benchmark-agents-task-acceptance → grade_patch()
codex-cli-capture-output → capture_output()
claude-code-hook-reply → hook_reply()
openhands-observation → observation_links()
用独立给定结果核对修复和回归,再加入输出截断、hook拒绝和缺观察事件。评分证据绑定同一补丁版本;两种grade_patch采用各自输入契约;进程退出、控制响应success和观察配对均不自动表示任务解决。

专题分支与实现边界

代码方案分支:OpenHands区分Canvas、software-agent-sdk与托管层;SWE-agent保留其固定默认配置与ACI研究语境,后继项目未在本路径推断;Aider分别核对仓库地图、SEARCH/REPLACE和Git计划,commit_plan只产生教学计划。Codex CLI与Claude Code用于宿主/SDK边界对照,不用同名历史模型的成绩替代客户端评价。

方案与实现范围已有知识点及函数学习行动与验收
CodexCLI架构与执行
固定提交970111f6:Rust CLI/exec、App Server客户端与core工具层;不是历史同名模型。
codex-cli-launch-plan → launch_plan()
codex-cli-route-call → route_call()
codex-cli-capture-output → capture_output()
比较入口分派、工具准入与输出保留上限,提交责任和状态矩阵。
验收:区分输出截断与进程结束;未核验产品文档不能用仓库跳转链接替代。
ClaudeCode工作流与扩展边界
公开SDK提交0e89b298及已登记产品说明;SDK公开不代表客户端核心完全开源。
claude-code-response-window → response_window()
claude-code-hook-reply → hook_reply()
claude-code-sdk-tool-route → sdk_tool_route()
演示result到达、hook控制回复和进程内工具路由。
验收:控制回复success与工具deny可并存;产品描述、SDK实现、未公开核心及各自许可分开。
OpenHands事件流与运行时
Canvas提交fee10e3d、software-agent-sdk提交acd96e6f;托管Cloud另属产品部署层。
openhands-branch → conversation_path()
openhands-projection → project_action_batches()
openhands-observation → observation_links()
给定父链回放活动分支,合并同响应动作,核对三项观察身份。
验收:事件日志、模型消息与文件状态不混同;观察配对不是业务成功,也不自动保证工具重放幂等。
SWEAgent与智能体计算机接口
提交3ea751c0的默认工具配置与ACI研究;维护者推荐后继项目的事实不等于已分析其代码。
swe-agent-observation → file_window()
swe-agent-edit-contract → unique_edit()
swe-agent-trajectory → retry_trace()
展示一基窗口,构造唯一编辑与失败重询,提交完整step轨迹。
验收:当前配置和论文接口区别明确;编辑失败保留原文,done和测试通过分开。
Aider仓库地图与编辑协议
提交5dc9490b:RepoMap、SEARCH/REPLACE与文件级Git边界。
aider-repomap → repo_map()
aider-edit-format → search_replace()
aider-git-boundary → commit_plan()
手算图排序预算,比较匹配反馈,生成用户改动与Agent编辑的提交计划。
验收:地图匹配与补丁应用不证明代码正确;commit_plan不执行真实提交,现有用户改动边界须保留。

结业产物与复核

提交同一虚构修复任务的协议比较:上下文选择、候选补丁、失败反馈、事件关联和独立测试判据。比较能解释的机制,不在没有模型/环境运行数据时给五个产品排正确率名次。

复核者应能从能力ID、unit_id、主题版本、示例路径/函数、输入和预期重建推演。至少保留一个失败或未知样例,并说明源码已覆盖与教学省略的部分;任何实测结果都需另附原始记录,不能用预期值填写。

使用学习记录模板、实验记录模板和评测协议模板组织产物。可将本路径接入三个跨模块实践项目;真实剩余实验见研究队列。

下一步:Agent开发路径、Benchmark学习路径、系统工程路径。

发现新的理解,或需要修正的地方?一起完善这篇笔记 ↗
试试 Transformer、RAG、Codex 或 KV 缓存