外观
默认情况下,Deep Agents Code 会在执行可能产生重大后果的操作前征求你的审批。这些操作称为受门禁保护的操作(gated actions),包括:
- 编辑或删除文件(
write_file、edit_file、delete) - 运行 shell 命令(
execute) - 发起网络请求(
web_search、fetch_url) - 将工作委托给子智能体(
task)
诸如 ls、read_file、glob 和 grep 之类的只读工具始终无需提示即可运行。审批模式可让你选择每个会话对受门禁保护的操作需要多少监督。
选择模式
| 模式 | 作用 |
|---|---|
| Manual(默认) | 每次受门禁保护的操作前都征求审批 |
| Auto | 自动批准常规操作;要求模型审查任何不确定的操作;在反复被拒绝或失败后回退给你 |
| YOLO | 完全不经审查即运行受门禁保护的操作 |
在会话期间的任何时刻,你都可以用 Shift+Tab 或 Ctrl+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+Tab 或 Ctrl+T 时会切换到 Manual。你无法用键盘切换回 YOLO。
Auto 的工作原理
Auto 保持与 Manual 相同的受门禁保护的操作规则,但改变了这些操作的审查方式。它分两个阶段进行:
- 常规操作自动运行。 对诸如
src/parser.py之类的源文件的写入,或git status之类的只读 Git 命令,会直接执行而不提示。像.github/workflows/ci.yml这样的敏感目标或git commit之类的可变操作则会进入下一阶段。 - 模型审查其余操作。 对于任何不明确属于常规的操作,当前使用的模型会检查该操作是否符合你提出的要求。只有你的字面提示词才能授权一项操作。如果模型拒绝一次调用,智能体会收到错误结果,并可以修正其计划。
在反复被拒绝或分类器失败后,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。
| 来源 | 值 | 选择 |
|---|---|---|
--yolo | flag | YOLO(仅交互式,需确认后) |
-y、--auto-approve | flag | Auto(需要 DEEPAGENTS_CODE_EXPERIMENTAL=1) |
[startup].mode | "manual" | Manual |
[startup].mode | "auto" | Auto |
[startup].mode | "yolo" | YOLO |
Shift+Tab、Ctrl+T | 切换 | Manual 和 Auto(绝不会进入 YOLO) |