通过OpenClaw实现副业收入《OpenClaw赚钱实录从“养龙虾“到可持续变现的实践指南》运行 Agent Client Protocol (ACP) 桥接器该桥接器与 OpenClaw Gateway 进行通信。此命令通过标准输入输出stdio使用 ACP 协议与 IDE 交互并通过 WebSocket 将提示词转发至 Gateway。它负责将 ACP 会话映射到 Gateway 会话密钥。openclaw acp是一个由 Gateway 提供后端支持的 ACP 桥接器而非完整的 ACP 原生编辑器运行时。它专注于会话路由、提示词传递以及基础的流式更新。译者注Agent Client Protocol (ACP) 是一种旨在标准化 AI 代理与客户端如 IDE之间通信的协议。OpenClaw Gateway 则是 OpenClaw 生态中的核心网关服务负责管理会话、路由请求及连接底层模型。理解这两者的关系有助于更好地配置和使用本工具。兼容性矩阵ACP 功能领域状态备注initialize,newSession,prompt,cancel已实现核心桥接流程通过 stdio 对接 Gateway 的 chat/send 及 abort 接口。listSessions, 斜杠命令已实现会话列表基于 Gateway 会话状态工作命令通过available_commands_update进行广播。loadSession部分实现将 ACP 会话重新绑定到 Gateway 会话密钥并重放已存储的用户/助手文本历史。工具调用和系统消息历史目前尚未重构。提示词内容text、嵌入的resource、图片部分实现文本和资源被扁平化为聊天输入图片转换为 Gateway 附件。会话模式部分实现支持session/set_mode桥接器暴露了初始的 Gateway 后端会话控制包括思考级别、工具详细度、推理、使用详情和提升操作。更广泛的 ACP 原生模式/配置界面仍不在支持范围内。会话信息和使用量更新部分实现桥接器从缓存的 Gateway 会话快照中发出session_info_update和尽力而为的usage_update通知。使用量是近似值仅当 Gateway 标记令牌总数为新鲜数据时才发送。工具流式传输部分实现tool_call/tool_call_update事件包含原始 I/O、文本内容以及当 Gateway 工具参数/结果暴露文件位置时的尽力而为的文件路径。嵌入式终端和更丰富的差异原生输出尚未暴露。每会话 MCP 服务器 (mcpServers)不支持桥接模式拒绝每会话 MCP 服务器请求。请在 OpenClaw Gateway 或 Agent 上配置 MCP。客户端文件系统方法 (fs/read_text_file,fs/write_text_file)不支持桥接器不调用 ACP 客户端文件系统方法。客户端终端方法 (terminal/*)不支持桥接器不创建 ACP 客户端终端也不通过工具调用流式传输终端 ID。会话计划 / 思考流不支持桥接器当前仅发出输出文本和工具状态不支持 ACP 计划或思考更新。已知限制loadSession重放已存储的用户和助手文本历史但不会重构历史工具调用、系统通知或更丰富的 ACP 原生事件类型。如果多个 ACP 客户端共享同一个 Gateway 会话密钥事件和取消路由是尽力而为的而非严格按客户端隔离。当您需要干净的编辑器本地轮次时建议使用默认的隔离acp:会话。Gateway 停止状态会被转换为 ACP 停止原因但该映射的表达力不如完全 ACP 原生的运行时。初始会话控制目前仅暴露 Gateway 的一个聚焦子集思考级别、工具详细度、推理、使用详情和提升操作。模型选择和执行主机控制尚未作为 ACP 配置选项暴露。session_info_update和usage_update源自 Gateway 会话快照而非实时的 ACP 原生运行时统计。使用量是近似的不包含成本数据且仅在 Gateway 标记总令牌数据为新鲜时发出。工具跟随数据是尽力而为的。桥接器可以显示已知工具参数/结果中出现的文件路径但尚未发出 ACP 终端或结构化文件差异。译者注上述限制表明该桥接器主要面向轻量级集成场景。对于需要完整历史记录回放、多租户严格隔离或高级运行时特性的生产环境建议关注后续版本更新或直接使用 ACP 原生运行时。使用方法openclaw acp# 远程 Gatewayopenclaw acp--urlwss://gateway-host:18789--tokenTOKEN# 远程 Gateway从文件读取令牌openclaw acp--urlwss://gateway-host:18789 --token-file ~/.openclaw/gateway.token# 附加到现有会话密钥openclaw acp--sessionagent:main:main# 按标签附加必须已存在openclaw acp --session-labelsupport inbox# 在首次提示前重置会话密钥openclaw acp--sessionagent:main:main --reset-sessionACP 客户端调试使用内置的 ACP 客户端可以在没有 IDE 的情况下对桥接器进行健全性检查。它会启动 ACP 桥接器并允许您交互式地输入提示词。openclaw acp client# 将生成的桥接器指向远程 Gatewayopenclaw acp client --server-args--urlwss://gateway-host:18789 --token-file ~/.openclaw/gateway.token# 覆盖服务器命令默认openclawopenclaw acp client--servernode--server-args openclaw.mjs acp--urlws://127.0.0.1:19001权限模型客户端调试模式自动批准基于白名单仅适用于受信任的核心工具 ID。read自动批准的作用域限定为当前工作目录设置--cwd时。未知/非核心工具名称、超出作用域的读取以及危险工具始终需要明确的提示批准。服务器提供的toolCall.kind被视为不可信的元数据不作为授权来源。译者注在调试模式下安全机制依然生效。这确保了即使在开发测试阶段也不会意外执行高风险操作或泄露敏感文件内容。白名单机制是保障本地环境安全的第一道防线。如何使用此功能当 IDE或其他客户端使用 Agent Client Protocol 并且您希望其驱动 OpenClaw Gateway 会话时请使用 ACP。确保 Gateway 正在运行本地或远程。配置 Gateway 目标通过配置文件或命令行标志。将您的 IDE 指向通过 stdio 运行openclaw acp。示例配置持久化openclaw configsetgateway.remote.url wss://gateway-host:18789 openclaw configsetgateway.remote.tokenTOKEN示例直接运行不写入配置openclaw acp--urlwss://gateway-host:18789--tokenTOKEN# 推荐用于本地进程安全openclaw acp--urlwss://gateway-host:18789 --token-file ~/.openclaw/gateway.token选择代理 (Agents)ACP 不直接选择代理。它通过 Gateway 会话密钥进行路由。使用代理作用域的会话密钥来定位特定代理openclaw acp--sessionagent:main:main openclaw acp--sessionagent:design:main openclaw acp--sessionagent:qa:bug-123每个 ACP 会话映射到单个 Gateway 会话密钥。一个代理可以有多个会话除非您覆盖密钥或标签否则 ACP 默认使用隔离的acp:会话。桥接模式不支持每会话mcpServers。如果 ACP 客户端在newSession或loadSession期间发送它们桥接器将返回明确的错误而不是静默忽略。译者注会话密钥的命名空间设计如agent:design:main是实现多代理协作的关键。通过这种机制不同的 IDE 窗口或项目可以独立地与特定的后端代理交互互不干扰。从acpx使用Codex, Claude, 其他 ACP 客户端如果您希望编码代理如 Codex 或 Claude Code通过 ACP 与您的 OpenClaw 机器人对话请使用带有内置openclaw目标的acpx。典型流程运行 Gateway 并确保 ACP 桥接器可以访问它。将acpx openclaw指向openclaw acp。指定您希望编码代理使用的 OpenClaw 会话密钥。示例# 向默认 OpenClaw ACP 会话发送一次性请求acpx openclawexecSummarize the active OpenClaw session state.# 用于后续轮次的持久命名会话acpx openclaw sessions ensure--namecodex-bridge acpx openclaw-scodex-bridge--cwd/path/to/repo\Ask my OpenClaw work agent for recent context relevant to this repo.如果您希望acpx openclaw每次都针对特定的 Gateway 和会话密钥请在~/.acpx/config.json中覆盖openclaw代理命令{agents:{openclaw:{command:env OPENCLAW_HIDE_BANNER1 OPENCLAW_SUPPRESS_NOTES1 openclaw acp --url ws://127.0.0.1:18789 --token-file ~/.openclaw/gateway.token --session agent:main:main}}}对于仓库本地的 OpenClaw 检出请使用直接的 CLI 入口点而不是开发运行器以保持 ACP 流的清洁。例如envOPENCLAW_HIDE_BANNER1OPENCLAW_SUPPRESS_NOTES1nodeopenclaw.mjs acp...这是让 Codex、Claude Code 或其他支持 ACP 的客户端从 OpenClaw 代理获取上下文信息的最简单方法无需抓取终端输出。Zed 编辑器设置在~/.config/zed/settings.json中添加自定义 ACP 代理或使用 Zed 的设置 UI{agent_servers:{OpenClaw ACP:{type:custom,command:openclaw,args:[acp],env:{}}}}要针对特定的 Gateway 或代理{agent_servers:{OpenClaw ACP:{type:custom,command:openclaw,args:[acp,--url,wss://gateway-host:18789,--token,TOKEN,--session,agent:design:main],env:{}}}}在 Zed 中打开 Agent 面板并选择 “OpenClaw ACP” 以启动线程。译者注Zed 编辑器以其高性能和对 LSP/ACP 的原生支持而闻名。正确配置agent_servers后Zed 能够自动管理桥接器的生命周期开发者无需手动启动后台进程。会话映射默认情况下ACP 会话获得一个带有acp:前缀的隔离 Gateway 会话密钥。要重用已知会话请传递会话密钥或标签--session KEY: 使用特定的 Gateway 会话密钥。--session-label LABEL: 按标签解析现有会话。--reset-session: 为该密钥生成一个新的会话 ID相同密钥新转录记录。如果您的 ACP 客户端支持元数据您可以按会话覆盖{_meta:{sessionKey:agent:main:main,sessionLabel:support inbox,resetSession:true}}了解更多关于会话密钥的信息请访问 /concepts/session。选项--url URL: Gateway WebSocket URL配置时默认为 gateway.remote.url。--token TOKEN: Gateway 认证令牌。--token-file PATH: 从文件读取 Gateway 认证令牌。--password PASSWORD: Gateway 认证密码。--password-file PATH: 从文件读取 Gateway 认证密码。--session KEY: 默认会话密钥。--session-label LABEL: 要解析的默认会话标签。--require-existing: 如果会话密钥/标签不存在则失败。--reset-session: 在首次使用前重置会话密钥。--no-prefix-cwd: 不要在提示词前添加工作目录前缀。--verbose, -v: 向 stderr 输出详细日志。安全说明--token和--password在某些系统的本地进程列表中可能可见。建议使用--token-file/--password-file或环境变量 (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD)。Gateway 认证解析遵循其他 Gateway 客户端使用的共享契约本地模式环境变量 (OPENCLAW_GATEWAY_*) -gateway.auth.*- 仅当gateway.auth.*未设置时才回退到gateway.remote.*已配置但未解析的本地 SecretRefs 将导致失败关闭远程模式gateway.remote.*并根据远程优先级规则回退到环境变量/配置--url是覆盖安全的不会重用隐式配置/环境凭证请传递显式的--token/--password或文件变体ACP 运行时后端子进程接收OPENCLAW_SHELLacp可用于特定上下文的 shell/profile 规则。openclaw acp client在生成的桥接器进程上设置OPENCLAW_SHELLacp-client。acp client选项--cwd PATH: ACP 会话的工作目录。--server CMD: ACP 服务器命令默认openclaw。--server-args ARGS: 传递给 ACP 服务器的额外参数。--server-verbose: 启用 ACP 服务器的详细日志记录。--verbose, -v: 详细的客户端日志记录。译者注在处理敏感凭证时务必遵循“最小权限”和“不落盘明文”原则。使用文件传递令牌或密码不仅避免了命令行泄露风险还便于结合操作系统的文件权限管理机制如 chmod 600来增强安全性。同时理解认证解析的优先级顺序对于排查连接问题至关重要。