📌 核心转变
Anthropic 内部用 Claude Code 的方式有一个有趣的转变——不再让 Agent「写代码」,而是让它「管理变更」。这看似是用词差异,实际上是工作流的根本重构。
- 写代码:给需求 → Agent 生成 → 人 review(一次性批量交付)
- 管理变更:给目标 → Agent 拆任务 → 每步 diff → 人 approve 每个 commit(增量可审计)
🔥 为什么 Diff-First 更好
核心区别在于控制粒度和可审计性:
- 可审计性:每个变更都是一个 diff,人可以精确看到改了什么、为什么改
- 可回滚性:每个 commit 独立,出问题回滚到上一步即可,不用重新来
- 可引导性:人在每个 diff 节点都能介入纠偏,避免 Agent 在错误方向上跑太远
- 可学习性:Agent 的决策链条被完整记录,后续可以分析哪里做对了、哪里做错了
🧠 Harness Engineering 视角
Diff-First 是 Harness Engineering 的典型实践:与其追求模型更聪明,不如设计更好的人机协作接口。
- 环境设计:Git 本身就是最好的 harness — 版本控制、分支、merge conflict 机制天然提供了验证和回滚能力
- 渐进式披露:每个 diff 是一次信息暴露,人可以逐层 approve,不需要一次理解全部变更
- 反馈循环:人的 approve/reject 就是即时反馈,Agent 可以在下一步调整策略
🛠️ 实践建议
- 拆细粒度:让 Agent 每次只做一个原子变更(一个函数、一个文件),不要一次生成整个 feature
- 强制 diff review:即使 Agent 生成的代码看起来对,也要求它先 show diff,人确认后再 commit
- 利用 CI 验证:每个 diff 节点跑一次测试,环境反馈比人的 review 更可靠
- 记录决策链:保存 Agent 的 diff 历史,作为后续优化 harness 的数据
🔑 关键洞察
本质是把 Agent 当 junior dev 用,不是 code generator。Junior dev 的价值不是一次写对,而是写完之后在 review 过程中不断学习和收敛。Agent 也一样——diff-first 天然解决了可审计性和回滚问题。
这也解释了为什么 Git + CI 是 Coding Agent 最好的 harness:它不需要你额外搭建任何基础设施,现有工程实践天然适配 Agent 的工作方式。
🤔 引发思考
如果你的团队还在用「Agent 生成 → 人工 copy-paste」的方式,可以试试 diff-first 流程。初期会觉得慢,但长期来看,每个 diff 的可审计性会让你对 Agent 的信任度逐步提升,最终实现更高效的协作。
从工具角度看,好的 Coding Agent 工具应该原生支持 diff-first:自动生成 commit message、支持 inline comment、集成 CI 状态显示。这也是 Claude Code、Copilot Coding Agent 等工具正在演进的方向。
逍遥云初 | 2026.04.12