Skip to content

第 1 周:Agent 与最小循环

本周成果与 10-14 小时安排

本周结束时,你要交付一个能显示每轮模型、工具、结果和停止原因的 CLI Agent,而不是只交一张架构图。

时段用时可见产物
Day 11.5 小时全景Agent 边界,手画 LLM / Harness / Tool 边界
Day 22 小时看视频 01 全片、视频 02 [00:00:00-00:04:05],跑 step01-step04
Day 32.5 小时百行 Agent Loop,对 step04-step05 做 diff
Day 42 小时chapter1/context 的测试或最小消融,保存一条完整轨迹
Day 52.5 小时在 Mini Emperor 增加一个工具与事件测试,主动制造未知工具失败
Day 61.5 小时完成 Completion Gate 和无资料复述

总计约 12 小时。时间紧时保留 Day 1、3、5、6。

这项功能有什么用

Agent Loop 把「生成文本」变成「观察—决定—执行—读取结果—再决定」的循环,完整原理见 百行 Agent Loop:开场

运行时观察清单

完整的 Tool Call 往返流程图见 百行 Agent Loop:让每一轮被看见。跑起来后不要只看聊天文本,每一轮至少观察:

  • iteration
  • 当前消息数量
  • 模型是否返回 Tool Call
  • Tool 名称、参数、结果与错误
  • Token/耗时
  • 最终停止原因

学习顺序

  1. 看视频 01 [00:00:00-00:04:36];视频 02 重点看 [00:00:00-00:06:43]
  2. 阅读 claude-agent-examples step01-step05。按 step01 → step02 → step03 → step04 → step05 做 diff,不要先读最终大文件。
  3. ai-agent-book/chapter1/context 的完整上下文与消融模式。
  4. 阅读 mini-emperor/backend/src/mini_emperor/agent.py
  5. 运行 test_agent.py,再故意把 max_iterations 改成 1 观察失败。

运行书中消融实验:

bash
cd references/repos/ai-agent-book/chapter1/context
python main.py --provider deepseek --mode ablation

它需要模型环境变量。暂时没有 Key 时,先运行该目录的确定性测试并读 python main.py --help,但要在学习记录中注明“完整消融尚未执行”。

精确入口:

  • 视频 01 笔记
  • 视频 02 笔记
  • CAE:build-agent-example/code/step01_single_call.pystep05_tool_use.py
  • 书中实验:references/repos/ai-agent-book/chapter1/context
  • 工程:mini-emperor/backend/src/mini_emperor/agent.pymini-emperor/backend/tests/test_agent.py

代码迭代

  • V0:单次模型调用。
  • V1:保存消息历史。
  • V2:注册一个 add 工具。
  • V3:模型返回 Tool Call 后执行并回填结果。
  • V4:加入结构化 AgentEvent
  • V5:加入迭代上限和工具错误事件。

Completion Gate

不看代码完成:

  • 画出 Tool Call 往返流程。
  • 解释 assistant tool call 与 tool result 为什么都要写入历史。
  • 演示正常完成、未知工具和超过迭代上限。
  • 新增一个真实工具,并为它写失败优先的测试。

复习节奏

  • 24 小时后:不看资料画出 tool call 和 tool result 的消息顺序。
  • 7 天后:解释为什么“有 while True”仍可能不是一个有记忆的 Agent。
  • 复习证据:一张手画流程、一段失败日志、一个通过的新增测试。

Markdown 是唯一内容源,HTML 由构建流程生成。