AI Agent 完整学习契约
这不是“读完哪些文章”的清单,而是“留下哪些证据才算学会”的约定。每一阶段都按下面的顺序推进:
- 用自己的话回答核心问题。
- 完成最小实现或对照实验。
- 主动制造一个失败案例。
- 保存代码、Trace、测试或评估结果。
- 回到原始资料校正理解。
如果只读资料而没有产出证据,本阶段仍视为未完成。
01 · Agent 最小闭环
核心问题
- 普通聊天、Workflow 和 Agent 的控制权分别在哪里?
- Model、Tool、Observation 如何通过消息协议连接起来?
- 循环应在什么条件下继续、结束或转交给人?
动手任务
实现一个不依赖 Agent 框架的最小循环:模型可以在“直接回答”和“调用工具”之间选择;工具结果作为 Observation 回到下一轮上下文;系统设置最大轮数并记录每一步消息。
验收证据
- 一份完整运行 Trace,能看到模型决策、工具参数、工具结果和最终回答。
- 至少一个参数错误案例,系统能返回结构化错误而不是直接崩溃。
- 能用两分钟解释为什么“外层 while 循环”本身还不等于可靠 Agent。
失败条件
只有成功截图,没有消息轨迹;工具异常会终止整个进程;无法说明停止条件。
站内学习入口
- 阅读 01 · Agent 最小闭环:建立原理模型。
- 查看全部内容映射:确认相关工程主题。
02 · 上下文工程
核心问题
- System、用户目标、历史消息、工具结果和检索材料应如何排序?
- 上下文变长时,质量、延迟与成本为什么不会线性改善?
- 缓存、摘要、裁剪和按需加载分别解决什么问题?
动手任务
为同一个任务设计四组输入:完整上下文、删除关键约束、加入无关噪声、压缩后的上下文。固定模型和采样参数,比较成功率、输入 Token、延迟与输出差异。
验收证据
- 一张记录四组实验输入、输出和指标的对照表。
- 一条由实验结果支持的上下文装配规则。
- 一份“什么信息不能被摘要丢失”的清单。
失败条件
每次实验使用不同模型或参数;只凭主观感觉判断结果;摘要后无法恢复任务约束。
站内学习入口
- 阅读 02 · 上下文工程:理解上下文、缓存与压缩。
- 查看 Coding Agent 与 Harness 对比:补充工程视角。
03 · Memory 与 RAG
核心问题
- 会话历史、用户记忆和外部知识库为什么不能混成一种存储?
- Chunk、召回、重排和引用分别影响哪种错误?
- 检索不到、检索错误和生成幻觉应如何区分?
动手任务
为一组小文档构建带来源引用的问答流程。至少包含文档切分、检索、回答和引用校验,并准备一个无法回答的问题验证拒答策略。
验收证据
- 回答中可定位到具体来源片段。
- 保存一条“召回正确但回答错误”和一条“召回错误”的失败样例。
- 说明用户长期偏好为什么不应直接写入知识库正文。
失败条件
回答没有引用;只看最终文案是否顺畅;无法判断错误发生在检索还是生成阶段。
站内学习入口
- 阅读 03 · Memory 与 RAG:建立记忆、检索与知识更新边界。
- 查看七个应用实战:了解应用侧组合方式。
04 · Tool、MCP 与 Skills
核心问题
- 工具 Schema 是提示信息,还是运行时安全边界?
- MCP 解决的是协议互操作,还是所有工具管理问题?
- 哪些动作必须经过用户确认、权限检查和审计?
动手任务
实现一个读取型工具和一个产生副作用的写入型工具。两者都要包含参数校验、超时、可分类错误;写入工具还要加入预览与确认步骤。
验收证据
- 非法参数被执行前拦截。
- 超时、业务失败和权限拒绝具有不同错误类型。
- 写入动作留下操作者、参数、时间和结果的审计记录。
失败条件
把模型生成的参数直接传给系统;使用一个布尔值笼统表示所有失败;高风险写入无需确认。
站内学习入口
- 阅读 04 · Tool、MCP 与 Skills:理解工具分类与协议边界。
- 查看框架与 SDK 选型:比较不同 Tool Calling 实现。
05 · Agent Runtime
核心问题
- 运行状态、持久化会话和送给模型的 Context 有什么区别?
- 重试、恢复和重复执行如何避免产生二次副作用?
- 长任务需要哪些检查点、取消和资源边界?
动手任务
将最小 Agent 循环改造成可恢复 Runtime:每轮写入检查点,支持取消;进程重启后能从最后一个安全状态继续;写入型工具使用幂等键或补偿策略。
验收证据
- 在工具执行前后分别终止进程,记录恢复行为。
- 相同任务恢复后不会重复创建资源。
- 能说明 Transcript、Runtime State 与 Model Context 的不同生命周期。
失败条件
恢复只能重新执行整个任务;会话文件等同于模型上下文;取消后后台动作仍继续运行。
站内学习入口
- 阅读 05 · Agent Runtime:理解状态、恢复与生命周期。
- 查看 Coding Agent 与 Harness 对比:比较 Session 与 Runtime 设计。
06 · Coding Agent 与交互
核心问题
- Agent 如何观察文件、终端、浏览器或语音环境?
- 为什么“工具能执行”不代表“任务可以安全自动化”?
- 人工确认应该放在动作前、动作后,还是异常路径上?
动手任务
实现一个文件修改任务:Agent 读取目标文件、提出补丁、展示变更预览,用户确认后再应用,并执行一个确定性检查验证结果。
验收证据
- 保存修改前状态、补丁、确认记录和检查输出。
- 路径越界或目标不明确时拒绝执行。
- 用户拒绝后不产生文件变化。
失败条件
直接整文件覆盖;没有可审查 Diff;任务成功完全依赖模型自我评价。
站内学习入口
- 阅读 06 · Coding Agent 与交互:理解文件、终端、异步和 Computer Use。
- 查看 Coding Agent 与 Harness 对比:比较沙箱、配置与工具边界。
07 · 评估与可观测性
核心问题
- 最终答案正确率之外,还应观察哪些过程指标?
- 非确定性系统如何做可重复比较?
- 离线评估、线上指标和人工审查如何协作?
动手任务
建立 15–30 条小型评估集,覆盖成功、边界和失败任务。为每条运行保存输入、版本、Trace、输出、耗时、成本和评分,并比较一个改动前后的结果。
验收证据
- 评估集有明确输入、期望和评分规则。
- 报告同时列出改善、退化和未变化样例。
- 至少一种评分来自确定性检查或人工证据,而非只用模型评分模型。
失败条件
只展示平均分;修改评估集来迁就当前版本;运行结果无法追溯到模型、提示或代码版本。
站内学习入口
- 阅读 07 · 评估与可观测性:建立评估方法与统计意识。
- 查看七个应用实战:连接 Trace、Eval 与应用迭代。
08 · 训练与行为优化
核心问题
- 失败来自模型能力、上下文、工具、编排还是数据?
- SFT、偏好优化和强化学习分别改变什么?
- 为什么训练前必须先建立评估集和数据契约?
动手任务
选择一个稳定复现的失败模式,写出三种候选方案:不训练的系统改进、SFT 和 RL。根据数据量、验证信号、成本和风险给出选型;有条件时完成一个小规模对照实验。
验收证据
- 一页包含问题归因、数据需求、指标和停止条件的决策记录。
- 说明为什么不选择另外两种方案。
- 数据样本具有来源、格式和质量检查规则。
失败条件
看到失败就默认微调;没有独立验证集;训练目标与线上任务指标没有关系。
站内学习入口
- 阅读 08 · 训练与行为优化:理解预训练、SFT 与 RL 的边界。
- 查看全部训练主题:补充训练工具链和工程流程。
09 · 持续进化
核心问题
- 哪些线上轨迹可以转化为学习信号?
- 自动生成的改进如何隔离、验证和回滚?
- 更新知识、提示、程序和模型参数的风险有何不同?
动手任务
设计一条失败回流管线:收集失败 → 去敏与分类 → 生成候选改进 → 离线评估 → 人工审核 → 灰度发布 → 监控与回滚。选择一个失败样例完整走通。
验收证据
- 每个阶段有输入、输出、责任人和阻断条件。
- 候选改进无法绕过原有测试与权限边界。
- 保存改进前后证据与回滚方法。
失败条件
线上失败直接进入训练集;Agent 可以未经审核修改自身生产代码;只有成功指标,没有安全回归指标。
站内学习入口
- 阅读 09 · 持续进化:理解知识、指令、程序与参数四类更新。
- 查看七个应用实战:连接评估与反馈闭环。
10 · 多 Agent 与生产项目
核心问题
- 任务何时值得拆成多个 Agent,而不是多个确定性函数?
- Agent 之间共享什么,隔离什么,如何处理冲突?
- 一个可展示项目需要哪些可靠性和验收证据?
动手任务
完成一个有明确用户场景的项目。先实现单 Agent 基线,再只对确有并行、权限或上下文隔离价值的部分引入子 Agent。记录架构变化带来的质量、成本和复杂度差异。
验收证据
- README 能说明用户问题、架构边界、运行方法和已知限制。
- 有单 Agent 基线与多 Agent 版本的对照数据。
- 演示包含一次正常任务和一次可恢复失败。
- 关键主张能指向代码、测试、Trace 或评估报告。
失败条件
只因为“多 Agent 更高级”而拆分;角色之间共享全部上下文;项目只能在作者电脑上演示。
站内学习入口
- 阅读 10 · 多 Agent 与生产项目:理解协作、共享与隔离边界。
- 查看十二步生产项目:观察从需求到部署的完整拆解。
如何使用这份路线
- 第一次学习:依次完成 01–10。
- 先做项目:完成 01、04、05、07、10,再补齐其余阶段。
- 面试准备:完成 01、02、04、05、07、10,并为每阶段准备“定义、原理、取舍、实践”四层回答。
完成一阶段后,不要只写“已学习”。把证据链接写进自己的学习日志:代码提交、实验结果、评估报告、Trace 截图或可访问演示都可以。