跳转至

权限与提示

原生权限请求和 MCP 征询如何进入 OpenClaw 审批流程。这是 Codex harness runtime 指南的一部分;每个章节迁移到了哪里 列出了所有章节。

原生权限与 MCP 征询

对于 PermissionRequest,只有当策略做出决定时,OpenClaw 才会返回明确的允许或拒绝决定。无决定结果并不等于允许:Codex 会将其视为没有钩子决定,并回退到其自身的 guardian 或用户审批路径。

Codex app-server 审批模式默认会省略此原生钩子。除非 permission_request 被明确包含在 nativeHookRelay.events 中,或某个兼容性运行时安装了它,否则均适用。

当操作员针对 Codex 原生权限请求选择 allow-always 时,OpenClaw 会在有限的会话窗口内记住该精确的 provider/session/tool input/cwd 指纹。被记住的决定有意仅支持精确匹配:命令、参数、工具负载或 cwd 的任何变化都会创建新的审批。

当 Codex 将 _meta.codex_approval_kind 标记为 "mcp_tool_call" 时,Codex MCP 工具审批征询会路由到 OpenClaw 的插件审批流程。插件、账户、Computer Use 和 MCP 审批分类会在普通输入处理之前运行。被拒绝的策略或无法映射的审批模式会返回明确的拒绝,并且永远不会变成通用表单。

对于原生应用工具,请参阅 审批决定顺序,了解 OpenClaw 默认设置、原生按工具覆盖、已记住的审批,以及符合条件的托管应用工具如何获得同意,同时被禁用的工具保持阻止状态。

OpenClaw 支持 app-server MCP 征询模式 form、openai/form 和 url。标准表单和扩展表单最多可包含 12 个字段。OpenClaw 会将字段名规范化为 Gateway 安全的问题 ID,在已接受的内容中保留原始名称,并以每次最多三个的连续批次呈现字段。每个字段最多可提供四个选项;超过这些限制的字段和选项会被拒绝,而不是被截断。支持的字段包括自由格式字符串、字符串 enum 或 oneOf 选项、布尔值、数字和整数,以及多选字符串数组。自由格式字符串值限制为 4,096 个字符。在返回已接受的响应之前,会验证字符串长度、email、uri、date 和 date-time 约束以及数字或数组边界。可选字段、必填字段和有效默认值保留其模式含义。

没有字段的表单会显示原始请求消息,并提供 允许 和 拒绝 选项。只有在明确回答允许后,OpenClaw 才会返回空内容对象。拒绝或取消提示永远不会确认请求,迟到的回答也无法确认其回合已结束的请求。

openai/form 还支持单选 openai/imagePicker 字段,最多包含四个有界的条目 ID 和标题。OpenClaw 仅使用这些 ID 和标题;它不会获取或渲染条目图像。未知的扩展字段类型会生成可见的操作员消息和明确的拒绝。此可见回退是 openai/form 能力契约的一部分。

URL 征询以字面文本显示,并提供明确的继续和拒绝选项。OpenClaw 不会获取或打开该 URL。URL 限制为 2,048 个字符,必须使用 HTTP 或 HTTPS,不能包含凭据,也不能包含控制字符或不可见字符。无效 URL 会生成可见说明和明确的拒绝。

Codex request_user_input 和普通 MCP 征询共享每个回合一个交互式队列。Control UI 会渲染每个非机密 Gateway 问题,当通道支持时,单个选择会使用类型化通道按钮。按钮点击、Control UI 回答以及下一个排队的纯文本回复都会解决同一个精确的 app-server 请求。serverRequest/resolved 通过其外层字符串或整数 JSON-RPC ID 选择请求;尝试中止、超时和清理会取消当前所有者。迟到的回答无法解决已排队的替换请求。

只有显式字段 isSecret: true 或 Codex 问题 isSecret: true 才会启用机密处理。机密表单字段通过带有警告的临时文本回复路径逐个请求,并且永远不会创建持久的 Gateway 问题记录。OpenClaw 不会根据字段名称推断机密性。

异步问题

当所选 Codex 模型通告 request_user_input_async 时,Codex 可以在继续工作的同时提出结构化问题。该工具会立即返回。OpenClaw 会在异步助手消息上保留这些问题,Control UI 会显示建议答案和一个自由文本字段。选择建议不会发送它;用户必须明确提交答案。

答案使用普通聊天投递:它们会引导一个活动回合,或在同一对话完成后开始新回合。问题会与答案一起引用,以便 Codex 识别其对应的问题。异步问题不会创建等待中的工具调用,也不会使用上述阻塞问题队列。它们遵循与其他原生异步消息相同的工具和消息投递限制。沉默和预选答案永远不会授予审批。

滚动离开问题再返回会保留其草稿和任何进行中的提交。当该提交完成时,卡片会显示结果。

通道会接收 Codex 的可读问题文本和选项,并接受普通回复。Control UI 每条消息最多支持 12 个问题,每个问题最多四个选项,标题最多 4,096 个字符,选项最多 256 个字符。不支持的结构化负载会保留完整的纯文本问题。

对于承载这些提示的通用插件审批流程,请参阅 插件权限请求。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw