跳到正文
博客园· Tomorrowland_D·· 2 小时前AI 评分48

AI Agent 为什么不能随便放权?一文搞懂 Plan、Default 与 Auto 三种运行模式

AI Agent 为什么不能随便放权?一文搞懂 Plan、Default 与 Auto 三种运行模式 - Tomorrowland_D

AI 导读

Claude Code、Codex 等 Coding Agent 能直接操作文件系统、调用工具和执行终端命令,其运行模式可分为 Plan、Default、Auto 三类。Plan 模式先分析代码、制定方案再交人工确认,Default 模式边执行边审批,Auto 模式减少人工干预、自主连续执行。三者底层都靠 Allow/Ask/Deny 权限控制,并配合 Sandbox 沙箱限制操作影响范围。

正文

一文搞懂 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 能够执行开发任务,但部分操作需要用户确认。

例如:

  1. Agent 读取项目文件,分析问题。
  2. Agent 准备执行某项需要审批的操作。
  3. 用户确认或者拒绝。
  4. 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 运行框架)中值得关注的一个重要工程设计问题。

来源:博客园 · cnblogs.com