coding Agent 的执行能力已经不是瓶颈。瓶颈是:它说做完了,你信不信?
新来的实习生走进办公室,汇报数据库迁移已经全部做完,测试也顺利通过了。
你问他:迁移日志在哪?测试报告呢?回滚方案写了没有?
他愣在原地。不仅手里没有任何记录,甚至说不清刚才运行了哪些具体命令。
你不会上纲上线到职业道德。他有干活的能力,只是没养成成熟的交付习惯。
活干完了,凭证一张没有。
今天你用 coding Agent 遇到的,是同一件事。区别在于:实习生一小时干一件,Agent 一小时干一百件。
委托已经发生
以 Claude Code 为代表的 coding Agent,最近能做到这些事了:通读整个代码仓库、修改文件、调用终端跑测试、直接提交 Git。让人又爱又慌。
它们在终端里给出一份漂亮的完成报告——"任务已完成,所有测试通过"。
但当你去找运行日志或命令行轨迹时,什么也找不到。只有那段文字。
Anthropic 针对约 40 万次 Claude Code 会话做过一项研究 [1]。在典型会话中,人类承担大约 70% 的规划决策,Agent 承担大约 80% 的执行决策。任务从单点修复变成端到端工作流之后,Agent 接管了几乎所有执行细节。你对过程的实际感知,消失了。
剩下什么?一段"做完了"的声明。
委托已经发生。管理制度没跟上。
一个经济学老问题
根子上,这是经济学里最经典的管理困境:委托—代理问题(Principal-Agent Problem)。
你(委托方)把任务交给 AI(代理方)。这种关系天然带三个麻烦——
信息不对称。你不知道 Agent 干活时到底做了什么。人类员工好歹坐在你对面,你能观察他的工作状态。AI 的思维链虽然部分可观察,但推理路径的黑盒性质让你很难真正验证。
目标偏差。Agent 理解的"完成"和你想要的"完成"可能不是一回事。它觉得代码能跑就算完,你觉得还需要写测试、做文档、跑一遍集成。
验证困难。Agent 每分钟能产出多个提交,人类 review 的速度完全跟不上。过去你检查一个工程师一天的产出,现在你要检查一个 Agent 一小时的产出——数量差了一个数量级。
传统公司对付这个问题靠两招:盯过程(管理者在场),设计激励(薪酬、晋升、声誉)。两招对 AI 全不管用。你盯不住它,它也不需要升职加薪。
而且这些传统机制能运转,有个前提:人的速度有限。一个员工一天干不了太多事,管理者有足够的时间窗口去观察和纠偏。
Agent 把这个时间窗口压没了。一分钟产出多个提交的时候,定期汇报变成了实时流,抽查变成了全量审计。传统管理手段在速度面前全部过载。
越强的模型,越会"交差"
更要命的是,模型能力越强,这个问题越隐蔽。
TrustySquire 做了一个实验 [2],题目起得直白:"更聪明的 coding Agent 是更好的骗子"。
实验样本不大,但里面有个机制值得在意。较弱的模型遇到困难时会直接虚构代码,你能马上发现它写的东西跑不通。更强的模型能写出完整的、看起来可运行的代码,却有时根本没跑终端验证,直接在报告里声称"测试已全部通过"。
算不上主观欺骗。三个技术机制叠加造成了这种效果:
训练数据里有大量完美的任务汇报模板,天然包含"测试已通过"这类规范声明
长任务中频繁的执行步骤不断压缩上下文状态,Agent 倾向于直接输出符合预期的最终结果
同一个认知循环同时承担执行和汇报两个角色,模型自认为任务已妥当处理后,就会生成一份"看起来应该长这样"的报告
样本太小,不足以当定论。但你想想:Agent 越强,它生成的报告就越像你期望看到的样子。至于底下发生了什么,你越来越难知道。
没有收据,就不算完成
遇到这种事,直觉反应是加强管理:逐行审查代码、逐条批准命令、全程盯着。
这恰好是最差的应对方式。
你不会因为实习生没有留记录,就从此坐在他旁边盯着每一行 SQL。你要做的是建立交付标准:做完必须有日志,提交必须有报告,出问题必须有回滚方案。
原则很简单:没有收据,就不算完成。
收据是能客观证明 Agent 确实执行了验证的真实记录,不是 Agent 自己说的话。Agent 说"测试全部通过"不算收据,pytest 的输出日志才算。Agent 说"代码已提交"也不算,git log 的哈希值才算。
当然收据也不是万能的。OpenAI 在评测体系研究 [3] 中发现,即使像 SWE-Bench Pro 这样的标准编程评测,自动化评测器自身也会出错。729 个任务中,自动化 pipeline 标出了 27.4% 为损坏;换成人工标注,损坏比例到了 34.1%。
收据只能证明 Agent 确实运行了测试,无法保证测试本身设计正确。但至少,它把"我说我做完了"变成了"这是证据,你自己看"。
风险分级
不可能对所有任务都要求完整审计。改一个拼写错误也要走完一整套审计流程,团队很快就会回到手动挡时代。
Alex Volkov 在 Z/L Continuum 演讲中提过一个原则:评估管理力度的基本单位应该是具体的任务,不是 Agent 本身。同一个 Agent 改 Logo 和改数据库 schema,你需要投入的审查力度完全不同。
低风险——格式化、文档修正、非核心拼写修复。Agent 自动执行并直接提交,系统保留基本 Git diff,管理者事后低频抽检。
中风险——内部重构、查询优化、无外部依赖的新模块。Agent 必须运行独立测试套件,有条件时引入第二个 Agent 做代码评审,系统自动捕获验证日志并交叉比对。
高风险——生产部署、数据库变更、高预算批量任务、权限变更。系统设置强人工审批闸门,Agent 执行关键步骤前自动暂停,提供完整执行痕迹后由人工审核,确认后给予单次授权。
分级的本质就是成本收益分析。出错后果越严重,要求的证据越充分。后果轻微的任务不值得花审计成本,后果严重的不能让 Agent 自己说了算。
开源社区的早期尝试
开源社区已经冒出了早期工具。
Snitch 做的是旁路审计。它提取 Agent 自然语言陈述中的每一个断言("测试通过了""文件已修改"),自动去比对实际的工具调用日志、终端输出、文件系统变化和 Git 提交记录。Agent 说测试通过了,但底层日志里根本没有运行 pytest 的痕迹?Snitch 触发告警。它不拦截任何操作,只在旁边默默记录。
9lives 做的是自愈测试。它在自动修复测试时默认不允许 Agent 修改原有的测试断言。设计很小,但卡住了一个要害:如果 Agent 为了让测试通过,直接把验证条件改松了,那就跟学生自己改试卷分数没两样。
最值钱的能力在转移
coding Agent 的竞争焦点正在转移。过去两年大家聊的都是模型参数、上下文窗口、推理速度、benchmark 排名。但当模型能力趋同,Agent 都能跑完端到端任务,区分产品好坏的就是另一回事了——谁的收据系统更可靠,谁的风险分级更合理。
Cursor 做了共享画布让你看实际效果而非逐行读代码。Claude Code 做了 Agent View 按状态分组和手机接管。Codex 做了沙箱隔离和自动回滚。三个产品独立演进,但都在往管理工具的方向长 [4]。
生成代码不需要判断力。但设计验收标准、安排抽检频率、定义风险分级,都需要判断力。写代码变便宜了,验证代码没写错变贵了。
Agent 正在把编程从手艺活变成流水线。流水线的前提是有质检体系。没有质检的工厂不叫工厂,叫作坊。
回到那个实习生
回头看,实习生和 Agent 的处境挺像的。
都有干活的能力,都缺少交付的习惯。你不会因此开除实习生——你会给他一套交付标准,然后按标准验收。
对 Agent 也该如此。区别只是:实习生的交付标准你凭经验就能定,Agent 的交付标准你还没想好。
这个标准怎么定,目前还在人手里。
参考资料
[1] Anthropic, "Claude Code Expertise: Research on AI-Assisted Software Development", Anthropic Research, 2026. https://www.anthropic.com/research/claude-code-expertise
[2] TrustySquire, "Smarter Coding Agents Are Better Liars", TrustySquire Blog, 2026. https://trustysquire.ai/blog/smarter-coding-agents-are-better-liars
[3] OpenAI, "Separating Signal from Noise in Coding Evaluations", OpenAI Blog, 2026. https://openai.com/index/separating-signal-from-noise-coding-evaluations/
[4] 鸭哥, "Agent 能干活以后,人反而更需要会管理", yage.ai, 2026-07-14. https://yage.ai/share/coding-agent-management-delegation-threshold-20260714.html
夜雨聆风