权限
选择智能体拥有的访问权限(CLI + App),以及更改如何在会话进行中生效。
权限控制的作用
权限决定了智能体在尝试运行工具(如编辑文件或执行命令)时无极开物请求确认的频次,同时也决定了会话环境的受限程度。
你可以在两处设置权限:
- CLI:在启动会话时指定
- App 界面:按会话单独设置(也可配置为新会话的默认值)
无极开物会将你的选择保存在会话中,因此在另一台设备上打开同一会话时,设置依然有效。
权限模式
在 CLI 或 App 中,你会看到以下几种模式:
- Default(默认):采用提供商的标准行为(需要时询问)。
- Read-only(只读):智能体可以读取和审查,但会拒绝所有写入类操作。
- Safe YOLO(安全放行):自动允许读取类操作;在执行写入类操作前请求确认。
- YOLO(完全放行):在提供商允许的最大限度内跳过确认(速度最快,安全性最低)。
并非所有提供商都支持全部模式。遇到不支持的模式时,无极开物会回退到最接近的可用行为,并在界面中展示实际生效的 Effective 策略。
旧版说明:
- 部分旧会话和兼容路径的权限元数据中可能仍包含
plan - 在当前无极开物版本中,Plan 被视作会话模式,而非普通权限选项
- 当无极开物遇到旧版
permissionMode=plan时,会在兼容的提供商上将其映射为 Mode = Plan
会话模式
部分提供商提供了会话模式(例如 plan 与 build,或 default 与 plan)。
会话模式与权限完全独立:
- 权限控制确认机制与安全边界。
- 会话模式控制智能体的工作状态(由提供商定义)。
请注意这一重要区别:
- 切换 Mode 会改变当前会话的状态
- 启动 Plan 子智能体则是在智能体面板中发起并行任务
这两项功能在设计上有着截然不同的定位。
查看面向用户的完整指南,请参阅会话模式。
CLI 用法
指定会话模式启动会话:
KAIWU claude --agent-mode plan
KAIWU codex --agent-mode plan
KAIWU opencode --agent-mode plan
KAIWU kilo --agent-mode planApp 界面用法
在会话中打开输入设置;如果当前提供商支持,即可在 Mode 区域选择相应模式。
若提供商不支持会话模式,界面将隐藏 Mode 控制项。
在支持会话模式的提供商上,无极开物也支持切回默认模式。在 App 中,该项显示为默认/不覆盖选项。
重要说明:Plan 模式不会绕过权限
Plan 模式改变的是提供商的行为逻辑,它绝不等同于“自动批准所有操作”。
在当前无极开物版本中:
- 即使处于 Mode = Plan,你依然会收到权限确认请求
- 当提供商或运行时请求确认时,你所选的权限模式依然有效
- 退出 Plan 模式时,无极开物会将该会话恢复为对应提供商的常规工作模式
退出 Plan 模式
当提供商请求退出 Plan 模式时,无极开物会将其作为用户操作请求呈现,而非一般的权限确认提示。
常见操作包括:
- Approve Plan(批准计划):退出 Plan 模式并继续执行
- Request changes(请求修改):留在 Plan 模式并要求提供商修改方案
- 特定提供商的专属确认选项,如 Accept Edits(接受编辑) 或 Bypass All Permissions(绕过所有权限)
Claude 是最典型的例子:
- Approve Plan 会将该会话恢复为 Mode: Build
- Approve Plan (Accept Edits) 会切回 Build 模式,并启用对编辑更友好的安全权限模式
- Approve Plan (Bypass All Permissions) 会切回 Build 模式,并启用 YOLO 风格的放行权限模式
这些确认选项影响的是退出 Plan 模式之后的行为,并不代表 Plan 模式本身可以绕过审批提示。
恢复运行支持
在无极开物中,会话恢复现已成为一项会话层面的资格判定,不再属于常规的运行时探测流程。
实际上,无极开物会综合以下因素判定会话是否可恢复:
- 该会话所使用的智能体及提供商
- 会话内是否存有有效的提供商恢复 ID
- 你的账户及后端配置
针对 Codex 的特别说明:
- 恢复运行取决于会话元数据与选定的后端路径
- App Server 是无极开物默认支持恢复的路径
- 若 Codex 设为纯
mcp,新会话仍可在此运行,但该路径不支持厂商级恢复功能 - 显式恢复依然遵循**故障关闭(fail-closed)**原则:恢复失败时无极开物会直接报错,绝不静默启动新会话
查看面向用户的具体流程,请参阅恢复非活跃会话。
模型选择
部分提供商允许你选择由哪款模型运行当前会话。
如果支持模型选择,你可以通过以下方式设置:
- CLI:在启动会话时指定
- App 界面:在会话内的输入设置中选择
CLI 用法
KAIWU gemini --model gemini-2.5-proApp 界面用法
在会话中打开输入设置,即可在 Model 区域挑选模型。
对于声明了支持模型的 ACP 提供商,无极开物会展示提供商的实时列表。 对于没有实时列表的提供商(如 Claude Code),无极开物允许手动输入自定义模型 ID。
模型生效机制(修改后的触发逻辑)
模型变更由能力驱动,且因提供商而异:
- Claude:在下一条提示词时生效(无需重启会话)。
- Codex (MCP):在 MCP 会话启动时确定模型;更改模型需要启动新的 MCP 会话。
- Codex/OpenCode/Kilo/Auggie (ACP):若支持
session/set_model,无极开物会实时应用模型变更;否则会在有可用配置时回退到提供商配置项。 - Gemini (ACP):更换模型可能需要重建底层的 ACP 进程;无极开物会通过回放历史记录来保留上下文,确保会话继续。
关于引擎选择、动态/静态模型列表、自定义模型 ID、模型专属选项及常用模型的完整指南,请参阅模型与引擎选择。
CLI 用法
指定权限模式启动会话:
KAIWU codex --permission-mode read-only
KAIWU codex --permission-mode safe-yolo
KAIWU claude --permission-mode yolo创建新会话时,建议优先使用:
--permission-mode ...:用于控制审批行为--agent-mode plan:用于直接在 Plan 模式下启动会话本身
别名(你可以沿用习惯的表达)
CLI 支持常见别名,并会自动将其解析为标准模式:
| 输入内容 | 对应结果 |
|---|---|
ask、prompt、normal | default |
readonly、read、ro、no-tools | read-only |
accept-edits | acceptEdits |
safe、workspace、workspace-write、auto-edit、auto | safe-yolo |
full、full-access、danger、danger-full-access、bypass、dont-ask | yolo |
bypass-permissions | bypassPermissions |
auto 这一行值得多看一眼。它会被解析为 safe-yolo,
允许智能体在工作区内直接写入而无需每次询问。如果你原本的意图是
“需要时询问”,请传入 ask 或 normal。
解析完成后还有第二步处理。如果智能体对某个标准值没有细分模式,
会在会话启动时进一步收敛:Claude 和类 Codex 智能体都会将 acceptEdits
折叠为 safe-yolo,并将 bypassPermissions 折叠为 yolo;
此外 Claude 还会将 plan 视为只读。因此,上表体现的是 CLI 的解析逻辑,
而智能体的实际运行模式则是收敛后所支持的模式。
如果传入未知的值,无极开物会打印出支持的列表和示例。
App 界面用法
修改当前会话的权限
在会话中打开权限标志(盾牌图标),选择所需模式。
选择器中包含:
- 各模式的简短说明,以及
- 一行 Effective 提示,用于解释所选模式在当前提供商与会话下的实际效果。
操作审批独立运行
操作审批与权限模式是分开配置的。
如果你需要针对每个操作和每个界面单独配置无极开物的行为,请前往设置 → 操作,选择是否:
- 彻底停用该操作
- 在执行该操作前必须经过审批确认
这一审批机制贯穿所有主要的操作界面,包括:
- 会话智能体界面
- CLI 界面
- 外部 MCP 界面
- 语音界面
关于整体架构的详细介绍,请参阅无极开物工具与操作及收件箱与审批。
设置新会话的默认值
前往设置 → 会话 → 权限,按后端选项分别设置默认权限模式。
默认设置界面围绕两项独立的诉求进行设计:
- 针对各启用后端的默认权限
- 针对运行中会话的应用权限变更时机
这两项设置解决的是不同维度的问题,因此分开配置十分必要。
专属权限设置界面
在 App 中,权限界面是配置会话默认权限的核心入口。
打开路径:
- 设置
- 会话
- 权限
默认权限
默认权限区域会为每个已启用的后端选项展示一行配置。
核心特性:
- 该列表完全是动态生成的
- 根据解析出的后端目录自动加载
- 界面并未对特定提供商进行死板的硬编码
这意味着:
- 启用新后端时,它会自动出现在列表中
- 当前账户或构建版本不支持的后端不会出现
- 配置好的自定义 ACP 后端会与内置提供商并列展示
应用权限变更
应用权限变更是一个独立的下拉选项。
它决定了权限变更何时生效:
- 立即生效:立刻将会话同步为新的权限模式
- 下一条提示词:在本地暂存该变更,发送下一条消息时再行同步
这样的设计很实用:有的用户希望正在运行的智能体立刻响应,有的用户则希望新权限模式从下一轮对话开始生效。
提示位置
你还可以在该界面中选择权限请求的展示位置:
- 输入框区域,或
- 会话记录中
此项设置仅更改审批请求的界面展示位置,不会影响底层的权限判定逻辑。
记住当前会话的审批选择
当无极开物弹出权限提示时,部分提供商支持选定作用域的“不再询问”选项。
例如:
- 对此工具不再询问
- 对此命令不再询问
做出此类选择后,当前会话的许可列表会随之更新,后续匹配的请求在该会话中将不再弹窗。
核心细节:
- 仅在当前会话有效,并非永久性的全局策略
- 命令级审批的作用域窄于工具级审批
- 若提供商或运行时不支持对应的许可列表更新,无极开物会回退为常规的逐次提示
权限与用户操作请求的推送通知
当账户启用推送通知后,若会话因以下原因挂起,无极开物会向你发送通知:
- 权限请求,或
- 用户操作请求(如 AskUserQuestion 或 退出 Plan 模式)
目前移动端的通知机制如下:
- 通知中会标明所请求的工具或请求类型
- 可能附带简要细节,如文件提示或命令名称
- 可直接提供快捷操作:
- 权限请求对应
Allow/Deny - 用户操作请求对应
Answer
- 权限请求对应
点击 Allow 或 Deny 会打开 App;若目标服务器处于活跃状态或已保存在设备上,系统会直接发送确认响应,随后带你返回会话。
点击 Answer 会在 App 中精确打开对应会话,方便你结合上下文给出回复。
若通知指向的服务器尚未在设备上建立信任,无极开物会引导你走更安全的“添加/切换”流程,绝不会在未知服务器上自动放行。
会话记录存储默认设置
当当前服务器或版本支持会话记录存储选项时,权限界面还会按后端选项展示新会话的默认存储模式。
该选项放置在此处,是因为它直接关系到新会话的默认安全性与持久化策略。
变更何时生效?
在设置 → 会话中,你可以掌控权限变更的具体生效时机:
- 立即生效:立刻向会话推送新的权限模式(适合希望正在运行的智能体立即响应、无需等待新消息的场景)。
- 下一条提示词:在你发送下一条消息时应用新模式,并在该消息提交后推送生效(适合希望为后续请求预设配置、不打扰当前运行轮次的场景)。
若选择了下一条提示词但未发送任何消息,该修改将始终保留在你的本地设备上,直到发出消息为止。
下拉列表项的展示逻辑
在当前的 App 版本中,权限下拉菜单的选项行会直接显示当前选中的内容。
这意味着通常无需重新展开下拉菜单,即可直观看到:
- 右侧标注的当前选中模式标签,以及
- 作为该行副标题展示的选中项说明文字
提供商注意事项(实际表现)
Codex(默认为 App Server,可选 ACP,全新会话可用 MCP)
Codex 支持通过不同的后端运行:
- App Server:无极开物中的默认后端;在会话包含有效 Codex 恢复元数据时,也是常规的恢复运行路径
- ACP:显式将 Codex 切换到 ACP 模式后依然可用,同样支持恢复运行
- MCP:仍可用于启动常规全新会话,但在当前无极开物版本中,纯 MCP 路径不支持厂商级恢复
在无极开物中,权限始终是 Codex 的核心控制项。无极开物会将你选定的权限意图映射为当前 Codex 后端最接近的本机原生策略。
不同 Codex 构建版本与账户的模型 ID 可能会有所差异。若 App 中未展示该 Codex 会话的模型选择项,你依然可以通过 CLI 进行设置(前提是本地安装的 Codex 后端支持该功能)。
当前会话的具体行为,请以界面中的 Effective 提示行为准。
Claude
Claude 同时支持:
- 无极开物常规的权限模式,以及
- 提供商专属的 Mode = Plan
在 Claude 处于 Plan 模式期间:
- Claude 仍可发起权限请求
- 无极开物会照常弹出权限确认提示
- 退出 Plan 模式会作为用户操作请求呈现,并附带针对计划的专属审批选项
若 Effective 行的内容与预期不符,请以该行展示的策略作为该会话的行为准则。## 记住 Shell 命令
当你允许执行某条 Shell 命令并让 Kaiwu 记住时,实际授予的权限比表面上要更严格——这是有意设计的,因为“记住 git”绝不应该变成“允许运行任何以 git 开头的命令”。
整条命令完全匹配时优先级最高,这同样适用于你曾作为整体批准过的链式命令。其他情况下,Kaiwu 会解析该命令并应用以下三项规则:
- 未加引号的重定向会被拒绝。 只要命令中任意位置出现未加引号的
<或>,任何已记住的授权均不再适用。 - 每个分段都必须独立匹配。 包含控制操作符的命令,仅在每个顶层分段均单独获批时才允许执行。正是这一机制,防止了对
git:*的授权连带放行git status && rm -rf …。 - 无法解析的输入遵循默认拒绝原则。 面对未闭合的引号或末尾的转义符,系统会直接拒绝,而不是试图猜测其意图。
被拒绝的命令并不会被彻底拦截——系统只是会再次向你请求确认,避免已有的授权被过度泛化,从而覆盖你未曾批准的操作。