Skip to content

Stage 3 · Hello Coding Agent ​

Stage 3 · Git Tag 范围:v19-read ~ v28-resume

fdcp7gRo6.jpeg

Stage 1 和 Stage 2完成之后,各位小伙伴将会收获了一个「会干活、能叫停、每一步都看得见」的 Harness Agent。从这一篇开始,我们正式把它升级成 Coding Agent——一个能走进你的代码库、读代码、改代码、跑命令、修 bug 的真正干活工具。

如果你刚读完 18-hello-minimal-harness,心里可能正带着一个疑问走进这一篇:

Agent 会干活、Harness 会管理了,Coding Agent 又是什么?它和前面的 Agent、Harness 到底是什么关系?

接下来,这一篇就是 Stage 3 的开篇总览,回答三件事:

  1. 什么是 Coding Agent?
  2. 它和前两个 Stage 的 Agent、Harness 有什么区别?
  3. 这一 Stage 完成之后,我们会设计出一个怎样的 Coding Agent?

一、先复习:我们手上有什么 ​

前两个 Stage 攒下的东西,可以浓缩成一张成长图:

Stage 1 给了它「手」——一个 while(true) 循环:调模型 → 有工具调用就执行并回传 → 再调模型 → 直到不再调用工具 → 返回答案。它会干活。

Stage 2 给它配了「马具」——Tool Registry、Agent Context、AgentRuntime、AgentStep、AgentEvent、结构化错误、Abort/Timeout/Retry。它可以被可靠地驾驭。

但回头看看 Stage 1、2 那双手上拿的是什么工具:calculator、randomInteger。这匹马再训练有素,它的世界也只是数学题和随机数:

  • 它读不了你项目里的代码;
  • 它写不了文件;
  • 它跑不了 npm test;
  • 它甚至不知道「当前目录」是什么。

换句话说:Agent + Harness 解决了「能干 + 能管」,但还没让 Agent 踏进真实代码库半步。

二、什么是 Coding Agent? ​

中文直译就是「写代码的智能体」。上一匹马套上了鞍、挂上了铃铛,但它只会在操场上跑圈;Coding Agent 要做的,是把这匹马牵进真实的代码库,让它能干程序员最常干的活:

场景现在的 AgentCoding Agent
输入「算一下 6 乘 7」「帮我创建一个 TypeScript CLI」
动作调一次计算器查看目录 → 读取代码 → 修改代码 → 执行命令 → 检查结果
交付一句话答案一个能跑、有测试、验证过的项目变更
场景聊天/算数创建项目、修 bug、跑测试、自查结果

一句话记住它与前两个 Stage 的分工:

Agent 负责「干」,Harness 负责「管」,Coding Agent 负责「在真实代码库里干」——把「能干 + 能管」的能力,对准「代码」这个真实世界。

三、它如何成长为一个会编码、测试、修 bug 的 Coding Agent? ​

这是这一 Stage 最重要的一条叙事线。成长不是「推翻重来」,而是一层一层换装——上一阶段的能力原封不动,只是把工具、边界、方法论、壳子、记忆一件一件补上:

阶段章节补上的能力对应成长
装上手19–22read / write / edit / bash从「只会算数」变成「能读代码、写代码、改代码、跑命令」——工具从玩具换成代码世界的真实工具
划出边界23Workspace(root / resolve / read / write / exists)工具不再自己裸碰文件系统,统一经由 Workspace——一切动作被锁定在显式 workspace 内
教方法论24System Prompt告诉它「先观察、再修改、修改后验证、不要猜文件内容」——从蛮干变成有章法的干活
套上产品壳25CLIhello "帮我修复这个项目"——从「库」变成「命令行产品」
给它记忆26–28Session / 持久化 / Resume多轮上下文、.sessions/ 落盘、hello --resume xxx 续跑昨天的任务——从「一次性」变成「可跨会话续跑」

对照着看,每一步都踩在前一步的肩膀上:

  • 没有 19–22 的工具,23 的 Workspace 无东西可约束;
  • 没有 23 的边界,24 的方法论会在错误的地方乱动手;
  • 没有 24 的章法,25 的 CLI 修出来的 bug 没人敢信;
  • 没有 25 的壳子,26–28 的会话连「入口」都没有。

这就是演进叙事:不是每次加一个独立新功能,而是让 Agent 的能力环环相扣地长大。

四、这一 Stage 完成之后,我们会得到一个怎样的 Coding Agent? ​

毕业作品叫 Coding CLI——一个能用一句话驱动、在真实代码库里干活、且能跨会话续跑的命令行 Coding Agent。

先看修 bug 场景它将长成什么样:

对比三个 Stage 的毕业作品,能力一目了然:

维度Stage 1 · AgentStage 2 · HarnessStage 3 · Coding Agent
工具calculator / random(玩具)同上,但进了注册表read / write / edit / bash(代码世界)
场景会聊、会算系统可靠、可观察能进代码库:创建项目 / 修 bug / 跑测试
安全边界无无Workspace 显式根目录,路径校验
干活方法论无无System Prompt:先观察、再修改、再验证
交互形态库 / 一次性脚本minimal-harness CLIhello "帮我修复这个项目"
会话记忆单轮单轮多轮 + .sessions/ 持久化 + --resume
核心心智一个循环一套基础设施一个在真实代码库里按章法干活、可续跑的产品

一句话概括 Stage 3 的目标: 把「能干 + 能管的 Agent」,升级成「能走进代码库、按章法干活、还能续跑」的 Coding Agent。

五、章节清单 ​

#章节Git Tag状态
19Read Toolv19-read已完成
20Write Toolv20-write已完成
21Edit Toolv21-edit已完成
22Bash Toolv22-bash已完成
23Workspacev23-workspace已完成
24System Promptv24-system-prompt已完成
25CLIv25-cli已完成
26Multi-turn Sessionv26-session已完成
27Session 持久化v27-session-store已完成
28Resumev28-resume已完成
阶段结尾

阶段结尾 ​

这一阶段结束:Coding CLI——输入 hello "帮我修复这个项目",它能查看目录、读取代码、修改代码、执行命令、检查结果,而且 --resume 可以继续昨天的任务。

记住这一 Stage 的灵魂一句:Agent 负责「干」,Harness 负责「管」,Coding Agent 负责在真实代码库里按章法干活。

下一阶段,我们会学习 Pi 最有价值的思想——Minimal Core + Extension First:当工具、会话、能力越来越多时,如何让 Core 保持小而稳定,把扩展能力全部交给 Extension 插件。