跳转至

ACP 智能体故障排除

故障排除

症状 可能原因 解决方法
ACP runtime backend is not configured 后端插件缺失、已禁用,或被 plugins.allow 阻止。 安装并启用后端插件;如果设置了该允许列表,请在 plugins.allow 中包含 acpx,然后运行 /acp doctor。
ACP is disabled by policy (acp.enabled=false) ACP 已全局禁用。 设置 acp.enabled=true。
ACP dispatch is disabled by policy (acp.dispatch.enabled=false) 普通线程消息的自动分发已禁用。 设置 acp.dispatch.enabled=true 以恢复自动线程路由;显式 sessions_spawn({ runtime: "acp" }) 调用仍然有效。
ACP agent "<id>" is not allowed by policy 代理不在允许列表中。 使用允许的 agentId,或更新 acp.allowedAgents。
/acp doctor reports backend not ready right after startup 后端插件缺失、已禁用、被允许/拒绝策略阻止,或其配置的可执行文件不可用。 安装/启用后端插件,重新运行 /acp doctor;如果仍不健康,请检查后端安装或策略错误。
未找到 Harness 命令 适配器 CLI 未安装、外部插件缺失,或非 Codex 适配器的首次运行 npx 获取失败。 运行 /acp doctor,在 Gateway 主机上安装/预热适配器,或显式配置 acpx 代理命令。
来自 harness 的模型未找到 模型 id 对其他 provider/harness 有效,但对当前 ACP 目标无效。 使用该 harness 列出的模型,在 harness 中配置模型,或省略覆盖项。
来自 harness 的供应商身份验证错误 OpenClaw 运行正常,但目标 CLI/provider 未登录。 在 Gateway 主机环境中登录或提供所需的 provider 密钥。
Unable to resolve session target: ... 无效的 key/id/label 令牌。 运行 /acp sessions,复制确切的 key/label,然后重试。
--bind here requires running /acp spawn inside an active ... conversation 在没有活动可绑定会话的情况下使用了 --bind here。 移动到目标聊天/频道并重试,或使用未绑定 spawn。
Conversation bindings are unavailable for <channel>. 适配器缺少当前会话的 ACP 绑定能力。 在支持的地方使用 /acp spawn ... --thread ...,配置顶层 bindings[],或移动到受支持的频道。
--thread here requires running /acp spawn inside an active ... thread 在线程上下文之外使用了 --thread here。 移动到目标线程,或使用 --thread auto/off。
症状 可能原因 解决方法
Only <user-id> can rebind this channel/conversation/thread. 另一个用户拥有当前绑定目标。 以所有者身份重新绑定,或使用其他会话或线程。
Thread bindings are unavailable for <channel>. 适配器不支持线程绑定。 使用 --thread off,或迁移到受支持的适配器/频道。
Sandboxed sessions cannot spawn ACP sessions ... ACP 运行时位于宿主侧;请求方会话处于沙箱中。 在沙箱会话中使用 runtime="subagent",或从非沙箱会话运行 ACP spawn。
sessions_spawn sandbox="require" is unsupported for runtime="acp" ... 为 ACP 运行时请求了 sandbox="require"。 对于必需沙箱,使用 runtime="subagent";或从非沙箱会话使用带有 sandbox="inherit" 的 ACP。
Cannot apply --model ... did not advertise model support 目标 harness 未暴露通用 ACP 模型切换。 使用支持 ACP models/session/set_model 的 harness,使用 Codex ACP 模型引用,或者如果 harness 有自己的启动标志,则直接在 harness 中配置模型。
绑定会话缺少 ACP 元数据 过期/已删除的 ACP 会话元数据。 使用 /session unbind 分离,然后使用 /acp spawn --bind here 或 /acp spawn --thread here 重新创建。
ACP 输入请求被拒绝或取消 表单/URL 格式错误、超出字段/选项限制、使用了不支持的约束,或所属回合已结束。 查看可见的拒绝原因,使用标准基础表单或有效的 HTTP(S) URL 重试,并在回答期间保持源回合处于活动状态。
PermissionPromptUnavailableError: Permission prompt unavailable in non-interactive mode permissionMode 在非交互式 ACP 会话中阻止写入/执行。 将 plugins.entries.acpx.config.permissionMode 设置为 approve-all;默认混合重载会自动应用插件更改。参见 权限配置。
ACP 会话早期失败且输出很少 权限提示被 permissionMode/nonInteractivePermissions 阻止。 检查网关日志中的 AcpRuntimeError。如需完整权限,设置 permissionMode=approve-all;如需优雅降级,设置 nonInteractivePermissions=deny。
ACP 会话完成工作后无限期停滞 Harness 进程已结束,但 ACP 会话未报告完成。 更新 OpenClaw;当前 acpx 清理会在关闭和 Gateway 启动时回收 OpenClaw 拥有的过期 wrapper 和 adapter 进程。
Harness 看到 <<<BEGIN_OPENCLAW_INTERNAL_CONTEXT>>> 内部事件信封泄漏到 ACP 边界之外。 更新 OpenClaw 并重新运行完成流程;外部 harness 应仅接收纯完成提示。

Note

Command blocked by PreToolUse hook: Native hook relay unavailable 属于 原生 Codex hook relay,而不是 ACP/acpx。在已绑定的 Codex 聊天中,使用 /new 或 /reset 开始 新会话;如果它成功一次,然后在 下一次原生工具调用时再次出现,请重启 Codex app-server 或 OpenClaw Gateway, 而不是重复使用 /new。参见 Codex harness 故障排查。

已知提供商故障即使 harness 未返回助手回复,也会包含恢复指导。无法识别的故障保留通用消息;原始提供商诊断信息保留在日志中。如果警告提示工具操作可能已经执行,请在重试前检查其结果。

超大 harness 消息

acpx 后端默认将每个来自 harness 的传入 ACP 消息限制为 64 MiB 原始字节。如果运行因 ACP_MESSAGE_TOO_LARGE 或 ACP message exceeded ACPX_MAX_ACP_MESSAGE_BYTES 失败,请减少 harness 输出,或在 Gateway 进程环境中将 ACPX_MAX_ACP_MESSAGE_BYTES 设置为更大的字节数。将其设置为 0 可允许不限大小的传入消息。

更改环境后,请重启 Gateway,以便新的 harness 连接使用该限制。对于直接的 acpx CLI 会话,请关闭现有的 warm owner 并启动新会话;warm owner 会保留其启动时的设置。

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