编程智能体自主曲线:阅读是免费的,合并是事故级的
关于编程智能体(coding agents)的讨论总是陷入二元对立:自主还是受监督,YOLO 模式还是手握方向盘,--dangerously-skip-permissions 还是“批准每一次按键”。这种构想框架本身就是一个范畴错误。编程智能体执行的并非“一个动作”,而是一系列动作,其成本跨越了至少七个数量级 —— 从读取文件(免费、可撤销、无副作用)到合并至主分支(不通过 revert PR 则不可逆),再到向集群发布二进制文件(六位数成本级别的事故)。用一个自主性开关来处理如此广泛的范围,就像是为停车场和高速公路设置统一的限速一样。
如果团队在发布“无所不能的智能体”时,没有将每个动作映射到其爆炸半径(blast radius),那么只需一个带有提示词注入风险的 GitHub 评论,就足以引发一场事后复盘 —— 事实上,我们已经有了这种失败模式的公开案例。Anthropic 的 Claude Code 安全审查、Google 的 Gemini CLI Action 以及 GitHub Copilot Agent 在 2026 年都被证实可以通过精心设计的 PR 标题和 issue 正文被劫持,研究人员将这种攻击模式命名 为“评论并控制”(Comment and Control)。这些智能体并非在抽象意义上损坏了,而是因为自主性层级悄无声息地将低信任输入抹平为“一视同仁”,从而基于这些输入执行了高阶动作(如推送代码、开启 PR)。
接下来需要建立的规范是:针对每个动作的曲线、随层级扩展的闸门、与爆炸等级匹配的回滚速度,以及一个测试工具组合升级而非单一动作失败的评估程序。
没人画出来的动作阶梯
首先,列出编程智能体可以调用的每个工具,并为其标注爆炸半径等级。这个阶梯大致分为七个层级:
- 第 0 层 —— 读取。 文件读取、grep、AST 查询、
gh pr view、日志获取。无副作用,除了推理之外没有令牌(token)成本,无限可撤销。80% 的智能体流量应该留在这里。 - 第 1 层 —— 沙盒计算。 在容器内运行测试,在临时虚拟机中执行一次性脚本,运行 linter。副作用存在但被隔离。成本:几分钟的 CI 时间。
- 第 2 层 —— 本地分支写入。 在功能分支中编辑文件、创建提交(commit)、推送分支。受分支限制 —— 在人类采取行动推动其进展之前,影响是受限的。
- 第 3 层 —— 可审查的提案。 开启 PR、留下评审评论、建议更改。触达人类,但由人类把控下一步。
- 第 4 层 —— 主分支写入。 合并至主分支(main)、关闭 issue、修改 GitHub Actions、编辑
CODEOWNERS。涉及共享状态。只 能通过 revert PR 撤销,且受 CI 的实际耗时(wall-clock latency)限制。 - 第 5 层 —— 生产部署。 发布产物、运行数据库迁移、在生产环境中切换功能开关。客户可见。只能通过经过测试的回滚来撤销。
- 第 6 层 —— 集群级。 向 N 个生产主机分发二进制文件、广播缓存失效、大规模 DNS 或路由更改,以及任何“一次性触达全球”的操作。恢复工作是以事故响应来衡量的,而非提交代码。
写下这些层级的目的不是为了记住这七个分类,而是为了强制提出一个问题:每个工具属于哪个层级,以及该层级对应的合适闸门是什么? 一个只提供全局“询问用户”开关的编程智能体平台,实际上已经用单一数值隐含地回答了这个问题,这意味着除了偶然情况外,它在矩阵的每个单元格上都答错了。
随层级扩展的审批闸门
单一的全局确认提示只是一种“审批演戏”。在对第 0 层文件读取进行了 50 次快速的“批准 / 批准 / 批准”点击后,当智能体到达第 4 层动作时,人类已经产生了反射性点击 —— 在关于“人在回路”(human-in-the-loop)系统的用户研究中,这种审批疲劳是主要的失败模式,而不是恶意绕过。解决方案是建立一个具备层级意识的闸门矩阵:
- 第 0-1 层: 默认允许,无需提示。智能体以全速读取文件并运行测试,因为询问的成本高于出错的成本。
- 第 2 层: 轻量级闸门 —— 在聊天界面显示简 要 diff,除非人类在短时间内反对,否则智能体继续操作。智能体保持在工作流中。
- 第 3 层: 显式批准,但审查的对象是 PR 本身,这已经是开发者熟悉的评审界面。复用现有工具,而不是发明新的弹窗。
- 第 4 层: 硬闸门。人类必须主动点击,且智能体必须展示结构化的计划,包括受影响的文件、回滚命令以及推断的风险等级。这也是平台应该要求提供理由字符串(justification string)的地方,用以说明该动作正在履行哪个用户请求 —— 这对审计和捕捉由提示词注入引起的偏离都很有用。
- 第 5-6 层: 带外(Out-of-band)审批。智能体不负责按下按钮。它暂存动作,在现有的变更管理系统中开启变更请求,并等待由人类发起的触发。智能体在执行瞬间绝不持有生产环境的凭据。
请注意,这并不是“到处都要更多审批”。第 0 层的流量应该加速,而不是减慢。闸门预算是一种有限的人类注意力资源,唯有将其花在出错成本巨大的地方,才是对这种资源的明智利用。Claude Code 在内置的安全工具白名单(文件读取、搜索、代码导航)与针对 Shell 命令和外部工具调用的转录分类器闸门之间所做的区分,就是这一理念的一个生产实践案例 —— 尽管对于一个正在进行实际合并操作的智能体来说,即使是这种双层划分也显得过于粗糙了。
- https://www.the-main-thread.com/p/ai-coding-tools-2026-java-developers-agents-control
- https://venturebeat.com/security/ai-agent-zero-trust-architecture-audit-credential-isolation-anthropic-nvidia-nemoclaw
- https://medium.com/@deudney/blast-radius-the-most-important-decision-you-make-before-you-build-9d21daef67f1
- https://huggingface.co/blog/Svngoku/agentic-coding-trends-2026
- https://lushbinary.com/blog/ai-agent-security-autonomous-coding-production-guide/
- https://medium.com/ai-plugged/security-by-design-agents-0ffe61a2700e
- https://fazm.ai/blog/limit-blast-radius-compromised-ai-agent
- https://heyvaldemar.com/ai-agent-blast-radius-assessment/
- https://www.securityweek.com/claude-code-gemini-cli-github-copilot-agents-vulnerable-to-prompt-injection-via-comments/
- https://venturebeat.com/security/ai-agent-runtime-security-system-card-audit-comment-and-control-2026
- https://developer.nvidia.com/blog/mitigating-indirect-agents-md-injection-attacks-in-agentic-environments/
- https://thehackernews.com/2026/04/google-patches-antigravity-ide-flaw.html
- https://botmonster.com/posts/ai-coding-agent-insider-threat-prompt-injection-mcp-exploits/
- https://owasp.org/www-community/attacks/PromptInjection
- https://www.promptfoo.dev/docs/red-team/agents/
- https://embracethered.com/blog/posts/2025/cross-agent-privilege-escalation-agents-that-free-each-other/
- https://www.arunbaby.com/ai-security/0001-agent-privilege-escalation-kill-chain/
- https://coder.com/blog/launch-dec-2025-agent-boundaries
- https://github.com/microsoft/agent-governance-toolkit
- https://platform.claude.com/docs/en/agent-sdk/permissions
- https://www.anthropic.com/engineering/claude-code-auto-mode
- https://www.armalo.ai/blog/ai-agent-kill-switch-6-ways
- https://law.stanford.edu/2026/03/07/kill-switches-dont-work-if-the-agent-writes-the-policy-the-berkeley-agentic-ai-profile-through-the-ailccp-lens/
- https://www.pedowitzgroup.com/ai-agent-kill-switches-practical-safeguards-that-work
- https://aipatternbook.com/rollback
- https://machinelearningmastery.com/building-a-human-in-the-loop-approval-gate-for-autonomous-agents/
- https://www.cio.com/article/4129620/agentic-ai-fails-without-an-architecture-of-flow-to-eliminate-the-friction-tax
