Skip to content

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 按模式替换自己的文案。

界面

输入框的占位文字和会话徽标会跟着模式变。审批请求以气泡形式出现在对话里,批准 / 拒绝直接点。

状态说明

三模式已实施,浏览器端完整验收仍在进行中。

继续阅读

  • Agent 工具:哪些工具会改动工作区。
  • 节点说明ModeReminder / ModeAvailabilityReminder / ModeSlot 放在哪一层。