Lab 06 · 迷你 Claude Code(Capstone,对应 Part 8 蓝图)
墨叔:老哥,这是压轴。前面 5 个 lab 学的工具、规划、记忆、工程化,今天全焊在一起——造一个”能改 bug 的迷你 Claude Code”。它不是玩具了,是 Part 8 那张蓝图的落地。
这个 lab 在练什么
把 Part 8 的分层蓝图落成代码。对应关系是这样的:
| Part 8 蓝图层 | 本 lab 里的落点 |
|---|---|
| 8.1 分层架构 | main.py 里从下到上:工具执行层 / Agent Loop 层 / 上下文工程层 / 模型适配层 |
| 8.2 核心循环 | 还是 common/runner.py 的 run_loop,但这次驱动一个真实任务 |
| 8.3 工具集(读/写/搜/执行) | search_files / read_file / write_file / run_shell 四件套 |
| 8.4 上下文管理 | system prompt 是”宪法”;末尾演示”保留关键事件、丢弃冗余中间思考” |
| 8.5 端到端改 bug | 一个完整 issue→PR 的信息流 |
怎么跑
python main.py # 默认 mock,内存沙箱里跑完整改 bug 流程,零依赖零 key安全说明:代码库是内存里的 FS 字典,不是你真实磁盘。write_file 只改这个字典,绝不碰你的文件。你可以放心跑、反复跑。
你该看懂的几点
- 四件套为什么是最低完备集。 search/read/write/run 覆盖了”定位→理解→修改→验证”的完整编辑闭环。Part 6.3 说过,这四类是编码 agent 最核心最小集——少一个就断链。
- 动作链是一等公民。 看轨迹:search→read→write→run。每一步只干一件事,工具结果回流,下一步才动。这正是 Claude Code 干活的节奏,不是”憋一个大补丁”。
- 上下文工程 = system prompt + 保留策略。 本 lab 的
SYSTEM就是 agent 的”宪法”(Part 6.4):规定它走标准动作链。末尾打印的”关键事件”演示了 Part 8.4 的核心取舍——长对话里,动作和结果必留,冗余中间思考可丢。 - run_shell 的输出被截断到 500 字。 真实环境里命令输出可能几万行,全塞进窗口会撑爆上下文、烧钱。截断 + “可再查”是工程常识(呼应 Part 8.3)。
思考题
【思考题】
- 本 lab 用”内存 FS”做沙箱。真实环境你不能只改内存——要让你造的 agent 安全地改真实仓库,还该加哪几道防线?(提示:Part 2.4 / 5.5 的沙箱、HITL、git 工作区)
- mock 剧本里”下一步动作”是靠字符串匹配上一步工具结果决定的。真实模型靠什么决定”读完源码后该 write 而不是再 search”?这和 Part 3 的”规划”有什么关系?
- 这个 mini-claude 目前是”单文件 bug”演示。如果 issue 涉及跨 5 个文件、还要改数据库 schema,单 agent 的上下文窗口会怎样?该用 Part 7 的什么模式拆解?
【参考答案】
- 至少四道:① 独立工作区 / git 分支——agent 在 feature 分支改,绝不碰 main,改完提 PR 让人审;② 沙箱执行——run_shell 在容器里跑,即使命令作恶也伤不到宿主;③ HITL 确认——write_file / 删文件这类破坏性动作,落地前弹确认(Part 5.5);④ diff 预审——改完先 show diff 给人看,再 commit。Part 8.5 的端到端设计里,这些应作为”提交前闸门”。
- 真实模型靠上下文里累积的证据 + 它的规划能力来决定。它读到源码、看到
login没有return,结合 system prompt 里”定位根因→write 修复”的动作链,自然走到 write。但这背后需要 Part 3 的”规划”托底:复杂任务里它先想清楚”这几步分别要拿到什么证据”,才不会被源码带偏、陷入反复 read。单步续写模型容易”读到哪算哪”,规划让它”知道自己在第几步”。 - 跨 5 文件 + 改 schema 的任务,单 agent 会把所有文件内容、schema 变更、测试结果全堆进一个上下文窗口,很快撑爆(Part 1.4 / 4.1),且一处错全盘乱。该用 Part 7 的 Orchestrator-Worker:orchestrator 拆出”改 schema""改 model 层""改 API 层""改测试”等子任务,派给各自隔离上下文的 worker,每个 worker 只load 自己需要的文件,结果摘要回流汇总。故障域被隔离,上下文各管各的。
下一步
capstone 跑通了,你已经具备”造一个能改 bug 的 agent”的全套零件。最后去 lab07 学怎么评测它——不然你永远不知道它到底是变好了还是变坏了。