文档
推荐给好友,福利领不停!好友同步开通最高 1000 万词元额度 · 后续消费分佣最高 30%。
+50万 Token生成链接

Plan 模式

先规划后执行:CrabCode 切到 plan 模式时只读不写,让模型先把方案铺清楚再动手。

是什么

Plan 模式是 CrabCode 的一档只读权限模式。打开它之后,模型仍然能读代码、跑 grep、看 git 状态,但写文件、删文件、跑 shell 命令这些会改世界的工具会被一律拒绝 —— 模型只能产出一份"接下来准备怎么做"的计划,等你看完再决定是否真去做。

适合场景:

  • 不熟的仓库,先让模型探一遍写计划
  • 大型重构或跨文件改动,先看路线图再动手
  • 高风险变更(数据库迁移、删大批文件、动 CI)前的安全垫

Plan 模式和思考模式两个正交维度:plan 管模型「能动什么」,thinking 管模型「想多深」。两者可以叠加(深度思考 + plan 模式)。

怎么进入

三条路:

1. 在会话里 slash 切换(最常用)

shell
/plan
/plan

输入 /plan 直接把当前会话切到 plan 模式。再输一次回到原模式。

2. Shift+Tab 循环

在 TUI 里反复按 Shift+Tab 会循环切权限模式(默认 / acceptEdits / plan 等),状态行会显示当前所在档。

3. 启动时锁定

bash
crabcode --permission-mode plan
crabcode --permission-mode plan

整个会话强制 plan 模式启动。配合 --print 跑非交互式审计很合适:

bash
crabcode --print --permission-mode plan "审一下这个 PR 的安全风险"
crabcode --print --permission-mode plan "审一下这个 PR 的安全风险"

可选的模式还有 default / acceptEdits / bypassPermissions / dontAsk,详见 cli-reference

模型在 plan 模式下能做什么

  • 读任意你授权的文件(Read / Grep / Glob)
  • 跑只读 shell(如 git status / ls / cat,但 git commit / rm / npm install 会被拒)
  • 调研、列文件树、画依赖图
  • 写出一份计划文件(落盘到会话级 plan 文件,可用 /plan open 在外部编辑器里改)

模型在 plan 模式下不能做什么

  • 写 / 改 / 删任何文件
  • 跑任何「会改东西」的命令
  • 起 subagent 去做带写权限的活
  • 在你不知情时切回非 plan 模式(必须显式 /plan 或 Shift+Tab)

退出 plan 模式后

退出时模型不会自动开始执行 —— 计划只是产出物,要不要按它做、按哪几步做,你说了算。常见做法:

  1. 看完计划 → /plan 退出 plan 模式
  2. 把计划里你认可的步骤复制到下一条消息
  3. 让模型按那几步真去改

本地 plan 和远程 ultraplan

CrabCode 还有一个远程深度规划入口:/ultraplan。区别:

维度本地 plan远程 ultraplan
跑在哪你的终端acosmi.com 上的远程会话
命令/plan--permission-mode plan/ultraplan <任务描述>
适合中小规模规划、想边看边调长跑、多 agent 并发探索、跨小时的大改造规划
你在干嘛守在屏幕前终端可以继续干别的,结果回来后通知
产出一份计划,由你决定是否在本地执行一份方案,可选择「在远程会话直接执行」或「传回本地按计划执行」

/ultraplan 详细玩法见 crabcode-on-the-web

限制与注意

  • plan 模式不阻止读敏感文件:模型仍可以读到工作目录下的任意授权文件 —— 如果你不想让它看到某些路径,用 iam / sandboxing 在权限层挡住,而不是靠 plan 模式
  • 跨 subagent 传播:spawn 出去的 teammate 会继承 plan 模式,不会偷偷在背后写文件
  • plan 模式 ≠ dry-run:模型不会"假装执行"再回滚 —— 它真的不会去跑写动作,所以「能不能跑通」要在真执行时再验
  • 不是所有工具都被 block:MCP / 自定义工具如果没标"会改世界"标签,可能仍会被允许调用 —— 给自定义工具加权限元数据时注意

相关