第 1 周:Agent 与最小循环
本周成果与 10-14 小时安排
本周结束时,你要交付一个能显示每轮模型、工具、结果和停止原因的 CLI Agent,而不是只交一张架构图。
| 时段 | 用时 | 可见产物 |
|---|---|---|
| Day 1 | 1.5 小时 | 读全景与Agent 边界,手画 LLM / Harness / Tool 边界 |
| Day 2 | 2 小时 | 看视频 01 全片、视频 02 [00:00:00-00:04:05],跑 step01-step04 |
| Day 3 | 2.5 小时 | 读百行 Agent Loop,对 step04-step05 做 diff |
| Day 4 | 2 小时 | 跑 chapter1/context 的测试或最小消融,保存一条完整轨迹 |
| Day 5 | 2.5 小时 | 在 Mini Emperor 增加一个工具与事件测试,主动制造未知工具失败 |
| Day 6 | 1.5 小时 | 完成 Completion Gate 和无资料复述 |
总计约 12 小时。时间紧时保留 Day 1、3、5、6。
这项功能有什么用
Agent Loop 把「生成文本」变成「观察—决定—执行—读取结果—再决定」的循环,完整原理见 百行 Agent Loop:开场。
运行时观察清单
完整的 Tool Call 往返流程图见 百行 Agent Loop:让每一轮被看见。跑起来后不要只看聊天文本,每一轮至少观察:
iteration- 当前消息数量
- 模型是否返回 Tool Call
- Tool 名称、参数、结果与错误
- Token/耗时
- 最终停止原因
学习顺序
- 看视频 01
[00:00:00-00:04:36];视频 02 重点看[00:00:00-00:06:43]。 - 阅读
claude-agent-examplesstep01-step05。按step01 → step02 → step03 → step04 → step05做 diff,不要先读最终大文件。 - 跑
ai-agent-book/chapter1/context的完整上下文与消融模式。 - 阅读
mini-emperor/backend/src/mini_emperor/agent.py。 - 运行
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.py到step05_tool_use.py - 书中实验:
references/repos/ai-agent-book/chapter1/context - 工程:
mini-emperor/backend/src/mini_emperor/agent.py与mini-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。 - 复习证据:一张手画流程、一段失败日志、一个通过的新增测试。