Skip to content

默认情况下,Deep Agents Code 会在执行可能产生重大后果的操作前征求你的审批。这些操作称为受门禁保护的操作(gated actions),包括:

  • 编辑或删除文件(write_fileedit_filedelete
  • 运行 shell 命令(execute
  • 发起网络请求(web_searchfetch_url
  • 将工作委托给子智能体(task

诸如 lsread_fileglobgrep 之类的只读工具始终无需提示即可运行。审批模式可让你选择每个会话对受门禁保护的操作需要多少监督。

选择模式

模式作用
Manual(默认)每次受门禁保护的操作前都征求审批
Auto自动批准常规操作;要求模型审查任何不确定的操作;在反复被拒绝或失败后回退给你
YOLO完全不经审查即运行受门禁保护的操作

在会话期间的任何时刻,你都可以用 Shift+TabCtrl+T 在 Manual 和 Auto 之间切换。YOLO 无法通过键盘切换进入。

WARNING

Auto 是针对本地编码智能体的授权启发式策略。它不是沙箱隔离、操作系统边界,也不保证模型生成的操作是安全的。

启用 Auto

Auto 是实验性 beta 功能。要使用它,请先设置选择启用(opt-in)标志,然后为你的会话选择 Auto。

设置实验性选择启用标志

    将环境变量添加到你的 shell 或 `~/.deepagents/.env`:
bash
export DEEPAGENTS_CODE_EXPERIMENTAL=1

以 Auto 模式启动

bash
dcode -y
    或在 `~/.deepagents/config.toml` 中将其设置为默认值:
toml
[startup]
mode = "auto"
    你也可以在会话中途用 `Shift+Tab` 或 `Ctrl+T` 开启和关闭 Auto。

如果请求了 Auto 但未设置实验性选择启用标志,或会话处于沙箱中,它会回退到 Manual 并给出警告。

启用 YOLO

YOLO 不经任何审查即运行受门禁保护的操作。只有当你接受智能体可以不经询问就采取任何操作时,才使用它。

以 YOLO 模式启动

bash
dcode --yolo
    出现提示时接受一次性风险确认。该确认会存储在本地,因此后续启动时不会再看到它。

    或在 `~/.deepagents/config.toml` 中将其设置为默认值:
toml
[startup]
mode = "yolo"

以 YOLO 模式启动的会话在按下 Shift+TabCtrl+T 时会切换到 Manual。你无法用键盘切换回 YOLO。

Auto 的工作原理

Auto 保持与 Manual 相同的受门禁保护的操作规则,但改变了这些操作的审查方式。它分两个阶段进行:

  1. 常规操作自动运行。 对诸如 src/parser.py 之类的源文件的写入,或 git status 之类的只读 Git 命令,会直接执行而不提示。像 .github/workflows/ci.yml 这样的敏感目标或 git commit 之类的可变操作则会进入下一阶段。
  2. 模型审查其余操作。 对于任何不明确属于常规的操作,当前使用的模型会检查该操作是否符合你提出的要求。只有你的字面提示词才能授权一项操作。如果模型拒绝一次调用,智能体会收到错误结果,并可以修正其计划。

在反复被拒绝或分类器失败后,Auto 会停止,为下一批操作显示正常的审批提示,然后继续以 Auto 模式运行。

Auto 决策流程

副作用之前重新校验

决策计划与线程、模式、批次以及确切的门禁调用绑定在一起。状态缺失或无效、模式竞争或重放,都会回退到人工审查。例如,如果你在分类器审查进行中切换到 Manual,之前的 Auto 决策就无法静默执行;此时会打开正常的审批界面。

了解范围与限制

  • Manual 审批菜单可以为当前线程启用 Auto。阈值回退可以永久切换到 Manual,或执行一次性审查而让 Auto 保持启用状态。
  • 当前使用的模型并不是独立的安全权威。MCP 只读注解被信任为一种有意的 beta 权衡。
  • 父级 Auto 审查不涵盖在委托的子智能体内部执行的操作,也不涵盖更广泛显式配置的 js_eval 扇出。即使 TUI 隐藏了分类器的输入和输出,模型提供商和追踪后端仍可能观察到它们。

Auto 和 YOLO 的适用场景

Auto 和 YOLO 是交互式模式的功能。它们不可用于非交互式模式(-n 或管道输入 stdin),也不可用于 ACP 服务器模式。无头(headless)运行使用 fail-closed 的 MCP 路由和 --shell-allow-list 来提供 shell 访问。

Auto 在以下情况下也会回退到 Manual:

  • 未设置 DEEPAGENTS_CODE_EXPERIMENTAL=1
  • 处于远程 --sandbox 激活状态(Auto 仅适用于未启用沙箱的本地会话)。

参考

标志与配置优先级

--yolo 优先于 -y/--auto-approve,后者又优先于 [startup].mode

来源选择
--yoloflagYOLO(仅交互式,需确认后)
-y--auto-approveflagAuto(需要 DEEPAGENTS_CODE_EXPERIMENTAL=1
[startup].mode"manual"Manual
[startup].mode"auto"Auto
[startup].mode"yolo"YOLO
Shift+TabCtrl+T切换Manual 和 Auto(绝不会进入 YOLO)

另请参阅