Agent 的三种模式
同一个 Agent,三种工作模式。区别在于它能不能动你的稿子。
| 模式 | 能做什么 |
|---|---|
| 普通 | 可读可写。正常执行任务 |
| 讨论 | 只读。陪你聊、给建议、查资料,不动稿子 |
| 计划 | 只读。先把完整方案写出来给你看,批准了才执行 |
为什么需要它
AI 最危险的时候不是它不会做,是它自作主张地做了。你只想问一句"这段是不是有点拖",它直接把段落重写了。
讨论模式解决这个:你明确告诉它"这轮只讨论",它就没有写的能力——不是靠提示词请求它别动手,是工具层面没给它这个能力。
计划模式解决另一种情况:任务比较大,你想先看看它打算怎么干。它会把方案写成一份计划文件,你看完批准,它才开始动手。
怎么切换
- 输入框旁边的三态循环按钮
Shift+Tab快捷键/mode命令(/plan是它的别名)
Agent 自己也能请求切换,用 switch_mode 工具。但切换本身需要你批准——它不能自己从讨论模式跳到普通模式然后开始改文件。
同模式切换会被直接拦截成空操作。
只读模式下的写操作
只读模式不是把写工具藏起来,而是拦在执行前。
每个工具在定义时都必须显式声明自己会不会改动工作区(mutates)。声明为 true 的工具在只读模式下被调用时,harness 会挂起它并弹出审批。批准只豁免这一次调用,不会解除模式限制。
被这套机制覆盖的包括文件写入(write / edit / apply_patch)和 7 个剧情写入工具(save_story_*)。
两个例外:
- 计划模式写计划文件是豁免的。计划模式的产物就是计划,写到
.agent/plan/下不需要每次批准。 bash靠提示词约束。它是受信任的完整 Shell,系统只确认当前项目已打开、工作目录可信,不承诺限制命令内的文件访问。只读模式下不会给 bash 增加新的审批。
提示词层
模式状态会通过两个节点注入到上下文:ModeReminder 在模式刚变化时给出完整说明,稳定期只放轻量提示;ModeAvailabilityReminder 只在普通模式出现,告诉 Agent 还有另外两个模式可用。
profile 作者可以用 ModeSlot 按模式替换自己的文案。
界面
输入框的占位文字和会话徽标会跟着模式变。审批请求以气泡形式出现在对话里,批准 / 拒绝直接点。
状态说明
三模式已实施,浏览器端完整验收仍在进行中。