Star
LEARNING PATH / BUILDING AGENTS

Agent 开发学习路径

从状态、工具与记忆,构建可靠的任务循环。

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

从任务契约组织工具、上下文、状态与恢复,并能分层阅读十个已有实现专题。

前置与证据边界

具备基本Python字典与状态机知识;先从业务目标及可信终态证据开始,不按角色数量选择系统。 基础入口见共同基础,能力身份见能力地图。

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

四层学习行动

层级与能力ID代表知识点及示例函数学习行动与提交验收判据
理解
harness-understand、agents-build
task-loop-terminal-contract → terminal_contract()
tools-skills-validate-query → validate_query()
tools-skills-classify-response → classify_response()
给模拟资料整理任务写True/False/None终态契约,列出模型、工具、协议和宿主责任。动作下发、工具回执和业务成功分开;结果未知先回读;Schema不替代权限或语义校验。
推导
harness-derive
agent-loop-admit-budget → admit_budget()
context-select-context → select_context()
context-trim-complete-turns → trim_complete_turns()
手算执行前预算预留与上下文选择,裁剪完整调用回合;提交预算和消息配对表。必要项不可被低价值裁剪;调用与结果保持闭包;重试与回读都计预算。
实践
harness-build
langgraph-checkpoint-writes → checkpoint_writes()
langgraph-replay-interrupt-node → replay_interrupt_node()
autogen-snapshot-team → snapshot_team()
分别设计图式恢复与团队恢复,用同一任务目标比较所需状态,不把两套API合并。图恢复保留检查点作用域与答案顺序;团队恢复保留管理器和参与者;外部副作用另行回查和幂等。
评估
harness-evaluate、agents-evaluate
context-audit-checkpoint → audit_checkpoint()
memory-eligible-memories → eligible_memories()
agent-evaluation-first-divergence → first_divergence()
agent-evaluation-success-summary → success_summary()
加入旧记忆、遗漏约束、重复触发及结果未知,提交完整轨迹、首轮/重试分母和最早偏差候选。过期或异域记忆先失去资格;最早偏差不直接等于因果根因;不能只发布最终较高成功率。

专题分支与实现边界

通用闭环之后按下表选择实现案例。每个案例的固定提交、读取范围与许可边界由对应主题维护;此路径不扩展外部调查,也不把不同项目或不同代方案拼成一个不存在的系统。

方案与实现范围已有知识点及函数学习行动与验收
LangGraph状态图与持久化
固定提交4c52e129:状态图、超步、检查点与interrupt;内存Saver不等于生产持久化。
langgraph-merge-superstep → merge_superstep()
langgraph-checkpoint-writes → checkpoint_writes()
langgraph-replay-interrupt-node → replay_interrupt_node()
比较sum/last多写,两个thread作用域与节点重跑;提交恢复身份表。
验收:并行状态归并、pending writes和外部副作用分别说明,不能把恢复理解成原调用栈续跑。
AutoGen对话团队与终止
固定提交004749e6:AgentChat轮询、状态化终止与团队快照;所读README顶部有归档公告。
autogen-select-round-robin → select_round_robin()
autogen-termination-step → termination_step()
autogen-snapshot-team → snapshot_team()
让writer/critic轮询,分批满足AND/OR条件,再核对团队快照。
验收:终止文本校验来源;停止不等于业务成功;存档覆盖管理器和参与者,不推断当前维护承诺。
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实现、未公开核心及各自许可分开。
MobileAgent多智能体协作
X-PLUG/MobileAgent的Mobile-Agent-v2;固定提交11cea575,不混入v3/E/PC等目录。
mobile-agent-perception → perception_index()
mobile-agent-planning-memory → planning_projection()
mobile-agent-reflection → reflection_transition()
按框中心建立感知索引,分别推进规划事实与A/B/C反思状态。
验收:v2接受历史、回退后再观测与无效动作分别记录;几何框是给定输入,不是实机识别结果。
AppAgent探索与技能学习
TencentQQGYLab/AppAgent;固定提交2c190042,探索文档和当前UID检索路径。
app-agent-element-identity → element_identity()
app-agent-document-learning → learn_action_document()
app-agent-deployment → deployment_context()
改变元素属性观察UID,更新动作文档槽位,再按当前界面选择文档与点位。
验收:外部知识积累不是微调;UID跨版本不保证稳定,部署FINISH仍需独立终态。
UITARS感知与动作执行
UI-TARS-desktop提交3ac2cb8d:LocalComputer→SDK→NutJS,以V1_0分支为主。
ui-tars-action-protocol → parse_action()
ui-tars-coordinate-path → grounding_coordinates()
ui-tars-loop-state → agent_loop_transition()
严格解析动作,区分归一化、屏幕点和显示缩放,再推演轮数预算。
验收:模型、SDK、桌面宿主、执行器各自负责的字段明确;V1_5另列,不拼坐标规则。
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不执行真实提交,现有用户改动边界须保留。

表中十个专题分属不同层:LangGraph/AutoGen提供编排机制,Codex/Claude Code提供客户端与SDK边界,GUI三方案与OpenHands/SWE-agent/Aider分别提供具体感知或编辑反馈案例。先复用同一个任务契约,再分别比较接口;不得凭角色数、仓库存在或代码许可推断完整产品能力。

结业产物与复核

提交一个只读资料整理任务的合成闭环:冻结输入→选择上下文→生成动作意图→给定工具反馈→权威回读→终态判定→错误复盘。计划更新进入候选记录,不把教学状态变化当作已经修改外部应用。

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

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

下一步:GUI智能体实践路径、AI编程智能体实践路径、Benchmark学习路径。

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