一文搞懂 Plan、Default 与 Auto:该给 AI Agent 多大的自主权?
你有没有遇到过这样的场景?
你让 Claude Code 帮忙重构一个模块,它立刻开始读取文件、修改代码、执行命令。几分钟后,十几个文件已经被修改。
虽然效率很高,但也带来了一个问题:如果 Agent 理解错了需求,或者执行了危险操作怎么办?
这就是 AI Agent 需要**运行模式(Agent Modes)**的原因。
一、为什么需要运行模式?
传统的 Chatbot 主要负责生成文本,而 Claude Code、Codex 等 Coding Agent 不仅能回答问题,还能直接操作文件系统、调用工具和执行终端命令。
这意味着 Agent 拥有了真正的执行能力,同时也带来了潜在风险。
因此,Agent 的设计始终面临一个矛盾:
- 自主权太大:执行效率高,但可能误改文件、执行危险命令。
- 自主权太小:操作更可控,但每一步都需要人工确认,效率低下。
运行模式就是为了解决这个问题。
它通过控制 Agent 的工具使用权限和审批流程,在执行效率与安全性之间寻找平衡。
二、三种常见的运行模式
虽然不同 Agent 产品的命名和实现有所区别,但可以从概念上将运行模式分为三类。
| 模式 | 核心思想 | 适用场景 |
|---|---|---|
| Plan | 先分析、制定计划,不直接修改项目 | 架构设计、大型重构 |
| Default | 允许执行任务,部分操作需要人工审批 | 日常开发、Bug 修复 |
| Auto / Yolo | 减少人工审批,提高自主执行程度 | 批量修改、长任务 |
1. Plan 模式:先想清楚,再动手
假设你提出一个需求:
帮我把项目的用户认证模块重构一下。
如果直接让 Agent 修改代码,它可能因为理解不准确而改动大量文件。
Plan 模式则不同。
Agent 会先阅读代码、分析项目结构、制定修改方案,再交给你审查。
整个过程可以理解为:
理解需求 → 分析代码 → 制定方案 → 人工确认
它的优势主要有三个:
- 降低返工风险:提前发现方案中的问题。
- 减少无效尝试:避免 Agent 反复修改错误的实现。
- 方便团队协作:可以先讨论方案,再进入开发阶段。
需要注意,Plan 模式通常限制修改项目文件,但具体工具可能允许保存计划文档。
2. Default 模式:边执行,边审批
Default 模式可以理解为一种人机协作模式。
Agent 能够执行开发任务,但部分操作需要用户确认。
例如:
- Agent 读取项目文件,分析问题。
- Agent 准备执行某项需要审批的操作。
- 用户确认或者拒绝。
- Agent 根据结果继续执行。
这种设计被称为 Human-in-the-loop(人在环中)。
人类不需要亲自完成所有操作,但可以在关键节点进行干预。
适合日常功能开发、Bug 修复以及需要谨慎处理的项目。
不过,不同 Agent 的默认权限并不相同,并不是所有文件修改都会触发审批。
3. Auto 模式:让 Agent 自主执行
Auto 模式进一步减少人工干预。
例如,你让 Agent:
把项目中的所有旧版 API 调用迁移到新版本,并运行测试。
Agent 可以连续执行文件修改、命令调用和测试等操作,不必每一步都等待用户确认。
这尤其适合耗时较长、操作重复的任务。
但需要注意:
Auto 不等于绝对安全,也不意味着所有安全限制都会失效。
不同产品可能通过权限规则、安全检查或沙箱机制限制 Agent 的行为。
因此,最好在 Docker、虚拟机或其他隔离环境中执行高风险的自动化任务。
三、运行模式的底层原理是什么?
三种模式看似不同,本质上都围绕一个问题:
Agent 准备调用工具时,系统应该如何处理?
例如,Agent 想执行一条终端命令。
系统可以根据当前模式和权限配置做出不同决策:
- Allow(允许):直接执行。
- Ask(询问):等待用户批准。
- Deny(拒绝):禁止执行。
这就是 Agent 的权限控制机制。
但还要区分另一个概念:Sandbox(沙箱)。
权限控制决定操作是否被批准,而沙箱负责限制操作实际能够影响的环境。
例如,即使 Agent 被允许执行某条命令,沙箱也可能限制它访问沙箱外的文件或网络资源。
两者配合,才能构建更可靠的执行环境。
四、实际开发中应该如何选择?
三种模式并不是互相排斥的,可以根据任务阶段灵活切换。
以重构一个大型项目为例:
第一步:Plan 模式
让 Agent 阅读代码,分析依赖关系,输出完整的重构方案。
第二步:人工审查
确认方案是否合理,有没有遗漏关键模块。
第三步:Default 或 Auto 模式
对于风险较高的操作,采用人工审批;对于低风险、重复性的操作,可以提高自动化程度。
第四步:检查结果
通过 Git Diff、自动化测试等方式验证 Agent 的修改是否符合预期。
整个流程可以概括为:
Plan(规划)→ Review(审查)→ Execute(执行)→ Verify(验证)
这种方式既保留了 Agent 的执行效率,也减少了完全放权带来的风险。
五、总结与思考
Agent 的三种运行模式,可以用三句话理解:
- Plan:先告诉我你准备怎么做。
- Default:你可以做,但关键操作需要我确认。
- Auto:你自主完成任务,我最后检查结果。
它们没有绝对的优劣之分,只有适用场景的区别。
进一步思考,Agent Modes 其实体现了 AI Agent 系统设计中的一个重要理念:
Agent 的能力不仅取决于模型有多聪明,还取决于系统如何约束和管理它的行为。
一个成熟的 Agent 系统,不仅需要让模型学会调用工具,还需要通过权限控制、人工审批和沙箱隔离等机制,让工具调用变得可控、可靠。
这也是 Agent Harness(Agent 运行框架)中值得关注的一个重要工程设计问题。