教程 搜索 / 原生 Mac IDE / 权限模式
📝 文字 ● 初级 更新于 2026-05-13

权限模式:default、acceptEdits、plan

智能体执行操作前需要多频繁地停下来询问"确定吗?"完全取决于你正在做什么。LingCode 提供三种权限模式,让你能够根据风险级别匹配相应的确认要求——并在对话过程中随着风险变化随时切换。

所有智能体工具都面临同一个矛盾:每次操作都要求确认虽然安全,但令人疲惫——你最终会不假思索地点"确认",这反而比不询问更糟糕。完全跳过确认虽然效率高,但过于鲁莽——智能体只需一两轮操作就足以覆盖配置文件或执行错误的 shell 命令。关键在于,同一个会话中不同时刻适合不同的设置。在复杂任务开始时,先查看智能体计划做什么,再允许它动手,是正确的做法;而在你已经对某项任务建立了信任后,让它连续完成十个编辑而无需每次确认,才是真正高效的选择。

LingCode 通过三种命名的权限模式来解决这一问题——你可以随时切换,而不是在安装时一次性选定一个全局设置。Default 模式在执行破坏性操作前会先询问。acceptEdits 模式自动批准文件编辑,但对 shell 命令、删除操作和外部调用仍会提示确认。Plan 模式是只读的——智能体可以思考、分析和规划,但在你退出 plan 模式之前无法实际执行任何操作。

实际的切换方式是一个键盘快捷键:在聊天面板中按 Shift+Tab 可以在三种模式之间循环切换。一旦你掌握了每种模式的含义,这个手势就会变得非常流畅——当任务风险级别发生变化时,按下 Shift+Tab 即可切换。

你将学到什么

第 1 步:default ——先询问,后执行

1

保守的默认模式

default 模式下,智能体在执行每个破坏性操作前都会提示确认。编辑文件时会显示差异对比并等待确认;执行 shell 命令时会显示具体命令并等待确认;发起网络请求时会显示 URL 并等待确认。只读操作(读取文件、以非交互模式运行测试、查询语言服务器)不会触发提示——这些都可以自由执行。

当你还不清楚智能体接下来要做什么时,请使用 default 模式:新任务的第一轮对话、陌生的代码仓库、提示语模糊而你希望在执行前先看到计划的时候。

第 2 步:acceptEdits ——专注流程,适用于已知任务

2

信任编辑,把关其他操作

当你观察智能体完成了几次正确的编辑,并且在一个熟悉的任务中进入了流畅的工作状态——比如一系列相似的重构、跨多个文件应用相同的代码规范修复、逐一处理 TODO 列表——此时 default 模式"每次编辑都要确认"就会变成阻碍。切换到 acceptEdits,文件写入将直接执行而无需确认。但 shell 命令、删除操作、网络调用以及其他触及文件系统以外的工具调用,仍会提示确认。

这是日常开发中最常用的稳定模式。你专注于那些真正重要的提示(可能造成破坏的命令),同时让小的编辑顺畅流过。

快照安全网:即使在 acceptEdits 模式下,对受保护配置文件(.pbxprojInfo.plist、entitlements)的修改也会在写入前自动创建快照。如果 acceptEdits 批准了一个你后悔的操作,请参阅 撤销错误的 AI 编辑

第 3 步:plan ——只读、仅提案

3

智能体思考,什么也不发生

plan 模式下,所有会修改状态的操作都在工具层被阻止。智能体可以读取文件、搜索代码库、查询符号、运行分析——它可以充分理解该做什么——但它无法写入、执行或发起调用。最终输出是一份计划:一个供你审阅的结构化变更提案。

当正确的做法还不明朗,而你希望获得智能体的分析但不想让它动手时,请使用 plan 模式。迁移工作的顺序很关键时;重构涉及你不熟悉的系统时;任何"先想清楚再动手"是正确态度的任务。

当计划看起来没问题时,退出 plan 模式(按 Shift+Tab 切换回 defaultacceptEdits),然后让智能体执行它。

第 4 步:在对话中途切换模式

4

Shift+Tab 循环切换

将焦点置于聊天面板,按 Shift+Tab。底部状态栏会更新显示新的模式。再次按下即可循环切换:default → acceptEdits → plan → default

模式切换从下一轮对话起生效——当前轮次会以它开始时的模式完成。这一点很重要:如果你在工具调用过程中切换,该调用仍会在旧模式下完成。请在发送下一条消息前完成切换。

第 5 步:简单决策树

5

根据场景选择合适的模式

  • "我还不确定该怎么做" / "我想先看计划"plan
  • "我大致知道想要什么;让我逐一审阅每个编辑"default
  • "我在流畅作业中;别再问了;我随时可以回滚快照"acceptEdits
  • "这是一个破坏性操作,我想在它发生前仔细想想" → 先用 plan,执行时再切换到 default

第 6 步:模式与钩子(hook)的交互

6

钩子始终具有最高权限

插件安装的钩子(PreToolUseUserPromptSubmit 等)无论权限模式如何都会运行。一个阻止工具调用的 PreToolUse 钩子在三种模式下都会阻止该调用;acceptEdits 无法覆盖一个说"不"的钩子。这是有意为之的设计:钩子是你(或你的项目)明确制定的策略,模式不应能够绕过它们。

因此,如果你发现某个钩子造成了阻碍,解决办法是调整钩子,而不是切换模式。

CLI 的模式名称不同。lingcode CLI 使用 ttydeny-allyolo 作为其三种权限策略。它们在概念上有所不同:CLI 的模式关注的是"在没有图形界面时如何获得用户同意",而非"智能体默认对哪些操作设置门槛"。目标相同,界面不同。

下一步