ACP 智能体操作员运行手册
操作员运行手册¶
聊天中的 /acp 快速流程:
1. 启动
/acp spawn claude --bind here、
/acp spawn gemini --mode persistent --thread auto,或显式指定
/acp spawn codex --bind here。
2. 工作
在绑定的对话或线程中继续(或显式指定会话键)。
3. 检查状态
/acp status
4. 调优
/acp model <provider/model>、/acp permissions <profile>、
/acp timeout <seconds>。
5. 引导
无需替换上下文:/acp steer tighten logging and continue。
该指令会在当前回合结束后运行。若需改变进行中工作的方向,
请先执行 /acp cancel。
6. 停止
/acp cancel(当前回合)或 /acp close(会话 + 绑定)。
取消操作会等待已接受的回合及其运行时清理完成。
生命周期详情
- 启动(Spawn)会创建或恢复 ACP 运行时会话,并在 OpenClaw 会话存储中记录 ACP 元数据。父级拥有的运行使用原生子代理生命周期来完成。
- 启动失败时,会等待任何已开始的临时会话删除完成后再返回,包括清理请求截止时间已到期的情况。
- 即使运行时会话是持久性的,父级拥有的 ACP 会话也被视为后台工作;完成和跨界面交付遵循其已接受的原生完成路径,而不是像正常的面向用户的聊天会话那样运作。
- ACP 控制平面会在回合结束后关闭一次性运行时句柄。持久性会话保留其 ACP 会话和绑定生命周期;使用
/acp close显式结束会话。清理不依赖于 Tasks 记录。 - 绑定的后续消息会直接发送到 ACP 会话,直到绑定被关闭、解除、重置或过期。
- 网关命令保持本地处理。
/acp ...、/status和/session永远不会作为普通提示文本发送到绑定的 ACP harness。 cancel在后端支持取消时中止当前回合;它不会删除绑定或会话元数据。- 回合完成会等待排队输出的交付。如果交付失败,OpenClaw 会取消当前回合,并在配置的回合超时时间内等待后端清理完毕,然后再开始下一个排队的回合。
close从 OpenClaw 的角度结束 ACP 会话并移除绑定。如果 harness 支持恢复,它可能仍会保留自己的上游历史。- acpx 插件会在
close之后清理 OpenClaw 拥有的包装器和适配器进程树,并在 Gateway 启动期间回收过期的 OpenClaw 拥有的 ACPX 孤立进程。 - 空闲的运行时工作进程在内置空闲期过后可被清理;存储的会话元数据仍然可通过
/acp sessions获取。
原生 Codex 路由规则
启用后应路由到原生 Codex 插件的自然语言触发器:
- "将此 Discord 频道绑定到 Codex。"
- "将此聊天附加到 Codex 线程
<id>。" - "显示 Codex 线程,然后绑定这个线程。"
原生 Codex 会话绑定是默认的聊天控制路径。OpenClaw 动态工具仍通过
OpenClaw 执行,而 Codex 原生工具(如 shell/apply-patch)在 Codex 内部执行。
对于 Codex 原生工具事件,OpenClaw 会注入每回合原生钩子中继,使插件钩子
可以阻止 before_tool_call、观察 after_tool_call,并通过 OpenClaw
审批路由 Codex PermissionRequest 事件。Codex Stop 钩子会被中继到
OpenClaw before_agent_finalize,插件可以在 Codex 最终确定答案之前请求
额外一次模型传递。该中继刻意保持保守:它不会修改 Codex 原生工具参数,
也不会重写 Codex 线程记录。仅当你需要 ACP 运行时/会话模型时,才使用
显式 ACP。嵌入式 Codex 支持边界在
Codex harness v1 支持合同 中有文档说明。
模型 / 提供商 / 运行时选择速查表
- legacy Codex model refs —— 由 doctor 修复的 legacy Codex OAuth/订阅模型路由。
openai/*—— 用于 OpenAI 代理回合的原生 Codex app-server 嵌入式运行时。/codex ...—— 原生 Codex 会话控制。/acp ...或runtime: "acp"—— 显式 ACP/acpx 控制。
ACP 路由自然语言触发器
应路由到 ACP 运行时的触发器:
- "将此作为一次性 Claude Code ACP 会话运行并总结结果。"
- "在线程中使用 Gemini CLI 处理此任务,然后在同一线程中继续后续对话。"
- "在后台线程中通过 ACP 运行 Codex。"
OpenClaw 选择 runtime: "acp",解析 harness 的 agentId,在支持时
绑定到当前会话或线程,并将后续消息路由到该会话,直到关闭/过期。
Codex 仅在 ACP/acpx 是显式指定的,或原生 Codex 插件无法执行所请求的
操作时,才会遵循此路径。
对于 sessions_spawn,仅当 ACP 已启用、请求者未被沙箱化且已加载 ACP
运行时后端时,才会公布 runtime: "acp"。acp.dispatch.enabled=false
会暂停自动 ACP 线程调度,但不会隐藏或阻止显式的
sessions_spawn({ runtime: "acp" }) 调用。它针对 codex、claude、
droid、gemini 或 opencode 等 ACP harness 标识符。不要传递
agents_list 中的普通 OpenClaw 配置代理 ID,除非该条目已显式配置为
agents.entries.*.runtime.type="acp";否则请使用默认子代理运行时。
当 OpenClaw 代理配置了 runtime.type="acp" 时,OpenClaw 将使用
runtime.acp.agent 作为底层 harness 标识符。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw