Coding Agent 自主编程:当 Agent 学会自己写代码
2026-08-11 Coding Agent 自主编程:当 Agent 学会自己写代码
📅 学习日期:2026-08-11 | 📚 来源:AI Agent 知识库 | 📝 综合文章数:5 篇
为什么选这个主题
过去 30 天我们学完了 Agent 的”身体”(架构、记忆、Skill、Context、Multi-Agent、评估、工具调用、Planning、安全、MCP、HITL、异步架构),但始终没正面回答一个应用层问题:当 Agent 真正去写代码,会发生什么? 今天从 5 篇文章(理论框架 / 极简范式 / 一线方法论 / 主流产品 / 生产自愈)把 Coding Agent 的全貌打通。这是”应用层收束”的一篇——Harness、Context、Tool、Multi-Agent、异步架构、HITL 所有概念都会在 Coding 场景下汇聚。
核心要点
要点 1:Harness 决定 Coding Agent 能力上限,模型反而是次要的
普林斯顿 NLP 组的 SWE-agent 论文给出了一个让人震惊的数据:同一个 GPT-4,同一份算力,同一个 SWE-bench 任务,唯一变量是接口设计:
| 条件 | 解决率 |
|---|---|
| GPT-4 + 标准 bash shell | 3.97% |
| GPT-4 + 专门构建的 ACI(Agent-Computer Interface) | 12.47% |
| 相对提升 | ≈ 64% |
3.97% 是”不能用”,12.47% 是”刚能用”,中间的差距完全来自 Harness,跟模型本身没有任何改进无关。这就是为什么 Anthropic、OpenAI 的内部 Coding Agent 团队都在卷 Harness 工程而不是 prompt 工程。模型是推理引擎,Harness 决定引擎能思考什么。
一个最小有效 Harness 必须有四件套:
- 持久化进度文件——每次会话开始读、结束写(防止”过早宣告胜利”)
- 结构化任务清单——不是模糊描述,而是带
passes: false/true字段的可验证枚举(建议用 JSON 而非 Markdown) - 带描述性 commit 消息的版本控制——Git 不只是检查点,还是恢复机制
- 浏览器自动化——让 Agent 能像用户一样验证 UI,解决”单元测试通过但端到端不工作”的失败模式
Anthropic Claude Code 的实践更进一步:双 Agent 架构——Initializer Agent 首次会话搭脚手架(产出 init.sh + feature_list.json + claude-progress.txt),Coding Agent 后续会话一次只做一个功能,会话结束前更新进度文件,保证跨上下文窗口的干净交接。OpenAI Codex 团队更激进——2025 年 8 月起让仓库每一行代码都由 Codex 编写,5 个月 100 万行代码、1500 个 PR、3 人团队每天 3.5 个 PR。
要点 2:编码能力是 Agent 通用能力的”溢出基”
Anthropic 有一个反共识但被验证的观点:Claude 之所以在所有领域都表现出色,根本原因不是”通用模型”,而是”先把编码这个最难的事训练透”——编码是 Agent 最基本、最核心的技能,因为一旦拥有出色的编码智能体,这个智能体几乎可以完成任何其他类型的工作。
Eric(Anthropic 多智能体研究员)举了一个亲身案例:让 Claude 帮他做演示文稿图表。一开始 Claude 直接写 SVG 标签,但遇到重复性细节时,它自己改变了策略——不再逐行生成 SVG,而是写一段 Python 脚本来生成 SVG。脚本运行速度远快于逐字生成。这就是编码能力”溢出”的活生生例子:让 Agent 写代码来生产某个产物,比让它直接生产这个产物高效得多。
这跟 Claude.ai 网页版最近的功能一脉相承——用户要求 Claude 创建表格,Claude 会先写一段 Python 脚本,脚本执行后 Excel 表格真的出现在用户面前。未来的 Agent 不是”会写代码的聊天框”,而是”通过写代码来交付任何产物的工作台”。
要点 3:让 Agent 自我验证 > 让 Agent 写得更好
所有 Coding Agent 实践都在指向同一个方向:把验证权从人类手里夺过来,交给 Agent 自己。Anthropic 预测未来 6-12 个月最大的增益点是”封闭测试循环”——智能体不仅能写代码,还能自己打开它、测试它、找到自己的 Bug。Codex 的 Browser 扩展和 Computer Use 扩展正是为此而生:Browser(代号 Atlas)让 Agent 自主打开网页交互验证(前端 bug “看了才知道”),Computer Use 让 Agent 像人一样点击、输入、操作任何 GUI(包括无 API 的老旧系统)。
Ralph Loop 把”自我验证”推到了极致——让 Agent 像 24 小时工人一样无人监督持续迭代直到任务完成。命名取自《辛普森一家》的 Ralph Wiggum:一个虽然笨拙但永不放弃的角色。三种实现形态:
| 形态 | 学习成本 | 控制粒度 | 定位 |
|---|---|---|---|
| Bash Loop | 5 分钟 | 粗(手动管状态/成本) | 原型级 |
| Claude Code Plugin(Stop Hook) | 30 分钟 | 中(自动管成本/迭代) | 可用 |
| Framework 封装(Vercel ralph-loop-agent) | 2-4 小时 | 精细(多维停止条件 + 成本监控) | 生产推荐 |
但 Ralph Loop 有硬约束:任务必须有明确可验证的完成标准(如 npm test 必须全部通过、<promise>DONE</promise> 信号),否则 Agent 会在”够好了”的判断上无限循环。完成信号要唯一且显眼,推荐 XML 标签;避免主观评判词(“优雅""简洁”)。
要点 4:自愈是 Coding Agent 走向生产的”最后一公里”
LangChain 工程师 Vishnu Suresh 的 GTM Agent 自愈流水线是生产级 Coding Agent 的标杆实践。完整闭环:每次代码合并到 main → GitHub Action 触发 → 两条并行路径(构建失败 + 服务器回归)→ 任意路径发现真实问题 → 拉起 Open SWE 自动修复并提交 PR。
关键设计是用泊松检验把”部署后错误”和”环境噪音”分开:
- 用过去 7 天的错误日志做基准,每种错误签名估算出小时级期望错误率
- 部署后 60 分钟窗口内持续轮询
- 实际观测数 vs 泊松分布预测值 p<0.05 → 标记为潜在回归
但统计只回答”错误变多了”,回答不了”是不是我这次改的”。所以中间加了一道分诊 Agent:
- 第一步:判断变更类型(运行时代码 / 提示词 / 测试 / 文档 / CI 配置)。只改文档或测试的直接排除,防止”改了测试文件导致生产报错”的幻觉
- 第二步:建立 diff 里的具体代码行与观测错误之间的明确因果联系
自愈不是系统永远不出错,而是让错误在用户发现之前,先被系统自己接住。 最有效的三类场景:静默失败(函数默默返回错误默认值)、配置不匹配(代码和部署参数对不上)、级联回归(修 A 反而暴露了 B)。
要点 5:工具应映射 UI 而非 API —— Coding Agent 时代的”心法”
Anthropic Eric 强调的”工具应映射 UI 而非 API” 是 Coding Agent 时代最具操作性的心法。错误观念:工具(Tools/MCPs)应该与后端 API 一一对应。正确心智:工具应该与用户界面(UI)一一对应——因为模型(Claude)最终是这些工具的”用户”。
Slack 例子完美说明问题:
- API 映射(错误):3 个独立工具(
load_slack_conversation/turn_user_id_into_username/turn_channel_id_into_channel_name)→ Agent 必须连续 3 次工具调用才能”理解”任何事 - UI 映射(正确):1 个工具,后台自己完成 3 次 API 调用,返回已渲染好的完整对话文本(用户名/频道名已就位)
这个心法的本质是:不要让 Agent 去做那些连你作为用户都会觉得”糟糕透顶”的繁琐交互。把它推广到 Coding 场景:Harness 的搜索工具不应该让 Agent 调 grep/find(结果无上限、会爆炸),而应该像 SWE-agent 那样提供 find_file / search_file / search_dir(结果上限 50 条、超出时强制精炼查询)。接口就是思维本身——输入格式不是装饰品,是 Agent 的认知架构。
分歧与讨论
5 篇文章表面都在讲 Coding Agent,但藏着两条路径的张力:
1. “放手让它跑” vs “为它造好工作环境”
- Ralph Loop、自愈系统主张”无人监督长时运行”——任务明确时让 Agent 自己跑到完成
- Anthropic “工具应映射 UI”、Harness 全景则主张”细致的人机界面”——把每一步接口都打磨到符合 Agent 认知
- 实际上两者不矛盾:Ralph Loop 的成功前提正是 Harness 做得好。Harness 做得粗糙的 Agent 用 Ralph Loop 是灾难,做得好的 Agent 用 Ralph Loop 是”24 小时工人”
2. “自动修复 PR” vs “PR Review 仍是 HITL 核心”
- LangChain 自愈系统号称”从错误检测到提出修复,全程零人工介入”,但 Vishnu 自己也说”等它准备好审查的时候,我才会收到通知”——PR Review 仍是人类最后一道关
- Codex 文档明确警告”高自动化档位 ≠ 不会犯错,只代表犯错后你发现得更晚”
- 共识:Coding 流程的 HITL 不是”写代码”环节(这步已被 Agent 接管),而是”PR Review + 上线决策 + 严重错误回滚决策”环节
3. 单 Agent 迭代 vs 多 Agent 并行
- Ralph Loop 推崇”单 Agent 在一个循环里跑到完成”(适合 TDD、代码迁移)
- Anthropic “Workflows of Agents” 推崇”链接智能体”(适合跨阶段任务,每阶段由一个闭环 Agent 负责)
- Anthropic “Multi-Agent” 推崇”父智能体并行委派子智能体”(适合 Deep Research 这类可拆分的并行任务)
- 决策框架:任务能不能拆成独立子任务?→ 能则 Multi-Agent。子任务之间有没有强依赖?→ 有则 Workflows of Agents。否则单 Agent 循环
与已学内容的联系
- 7-23 架构演进(Harness):今天从”理论”落到”应用层”——三大 Coding Agent 团队(SWE-agent / Claude Code / Codex)的实践就是 Harness 理论的最佳范本
- 7-28 Context Engineering:Anthropic “UI vs API” 正是 Context Engineering 在工具描述层的具体应用——工具描述三要素(何时调、参数怎么填、结果怎么用)决定了一个工具能不能被模型用对
- 7-29 Multi-Agent:Anthropic “链接智能体(chaining agents)“和”父子委派(delegation in parallel)“就是 Multi-Agent 的两种典型形态
- 7-30 / 7-31 评估:Ralph Loop 的”可验证完成标准”和自愈系统的”泊松检验 p<0.05”都是评估机制在 Coding 场景的落地
- 8-04 Planning:Ralph Loop 的”持续迭代直到完成”和 Planning 的”动态重规划”有交集——都是”看到反馈后调整下一步”
- 8-06 MCP:Codex 90+ 插件、Anthropic SDK + MCP 是 MCP 协议在 Coding 场景最成熟的应用;“工具应映射 UI”心法也直接适用于 MCP 工具设计
- 8-07 HITL:今天主要讲”放手让 Agent 跑”,但 PR Review 仍是关键 HITL 节点(自愈系统最后一步);HITL 重心从”写代码”前移到”审查与决策”
- 8-10 异步架构:Coding Agent 天然异步(夜间运行 6 小时、5 万美元合同 → 297 美元案例)——异步架构是 Coding Agent 落地的物理基础
💡 思考题
- Harness 同模型 64% 性能提升这个数据,对我们当前的 AI 工程实践意味着什么?我们手上的 Agent 是”裸模型 + API 调用”还是已经有完整 Harness?差距在哪里?
- 什么样的 Coding 任务真正具备”可验证完成标准”?UI 体验优化、架构选型、跨系统集成这类任务能不能用 Ralph Loop?如果不能,替代方案是什么?
- 当 Coding Agent 越来越强,HITL 在 Coding 流程中的位置会从”写代码”前移到”PR Review”和”上线决策”吗?这种迁移对工程师的核心能力提出什么新要求?
- 自愈系统里的”分诊 Agent”会取代 SRE 吗?还是只是”减少救火时间”而不是”消除 SRE 角色”?分诊 Agent 误判一次(把不相关的部署归因为生产错误)会引发什么连锁反应?
🎯 行动项
- 给自己的 Coding 项目加一个最小 Harness:写一个
claude-progress.md进度文件 + 一个feature_list.json(每条带passes: false字段)+ 设置 Git commit hook 把每次会话收尾 - 用 Ralph Loop 跑一个明确任务:选一个测试覆盖率高但有明确完成标准的项目(如”把测试覆盖率从 60% 提到 80%“或”消除所有 ESLint 错误”),用 Bash Loop 形态跑 20-50 次迭代体验无人监督长时迭代
- 深读 Anthropic 原文:访问 https://www.anthropic.com/engineering/building-effective-agents,重点看”工具应映射 UI 而非 API”那一节的完整论证
- 调研 Self-Harness 范式:上海 AI Lab 的”Agent 改 Harness 自己”——Terminal-Bench-2.0 测试中 Qwen3.5 在 held-in 集上相对提升 138%,思考能否把这个范式应用到你日常用的 Coding Agent
参考文章
- Harness 才是一切:Cursor、Claude Code 和 Perplexity 到底造了什么(wechatarticle_…_df83117c32832f6f1c079709554e1841,提供”模型不重要、Harness 才是一切”的核心论断,64% 性能提升的硬数据,三大案例拆解)
- Ralph Loop:让 AI Agent 像”工人”一样持续迭代直到任务完成(wechatarticle_…_d11cc68f60aec50c11cdf18ae119ca8a,提供”24 小时无人监督长时迭代”的极简范式,三种实现形态对比,适用与不适用场景)
- Anthropic 研究员亲述:用代码、MCP、Skills 构建高效 Claude 智能体的方法论(wechatarticle_…_6766dd99e569b027e03121b5e5ab19dd,提供”编码能力溢出""工具应映射 UI 而非 API”两大心法,Anthropic 内部架构演进路径)
- Codex 实操完全指南:手把手教你配置 Skills, Plugins, Browser, Computer Use 构建高阶 Agent 工作流(wechatarticle_…_c5bdc9a30bc55cd95eace3a569b4b530,提供 Coding Agent 主流产品视角,Skills/Plugins/Browser/Computer Use 四类扩展能力实操)
- 真正能上生产环境的 Agent,得先学会”自愈”(wechatarticle_…_ad2e159f42804473ee613dbaabdfe921,提供生产级自愈流水线的完整闭环,泊松检验 + 分诊 Agent + Open SWE 实战)
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!













