ACP Claude Code 集成
通过 ACP (Agent Communication Protocol) 从 OpenClaw 中 spawn Claude Code 实例,在指定目录执行编程任务。
概述
ACP 是 OpenClaw 的 Agent 间通信协议,支持从一个 Agent 中启动(spawn)另一个 Agent 进程。本次尝试通过 ACP 在 ~/projects/clawline 目录中启动 Claude Code CLI,实现从聊天界面直接调用 Claude Code 编程能力。
关键点
- 命令格式:
/acp spawn claude --mode persistent --thread auto - 工作目录:
~/projects/clawline - API 代理:
http://127.0.0.1:4819/(Copilot→Anthropic 代理服务) - Claude CLI 路径:
/Users/leway/.nvm/versions/node/v22.22.0/bin/claude
技术细节
运行模式
| 模式 | 说明 | Clawline 支持 |
|---|---|---|
| run | 一次性执行,不需要线程绑定 | ✅ |
| persistent (session) | 持久化会话,需要线程绑定 | ❌ |
Clawline 是简单的 CLI/Relay 聊天通道,协议层不支持线程(threads)。线程需要底层平台原生支持(如 Discord、Telegram、Mattermost)。
遇到的问题
1. Billing Error(API 余额不足)
多次尝试均报错:
⚠️ API provider returned a billing error — your API key has run out of credits or has an insufficient balance.
2. OAuth 覆盖环境变量
根因:Claude Code 已登录 OAuth 账号(michael.keepgoing@gmail.com),优先使用 OAuth 而忽略 ANTHROPIC_BASE_URL 环境变量。
尝试的修复:
- 设置
ANTHROPIC_BASE_URL="http://127.0.0.1:4819"和ANTHROPIC_API_KEY - 添加
--bare参数强制使用 API key 模式(跳过 OAuth) - 更新 proxy 脚本使用
source ~/.zshrc加载 PATH
3. 环境加载问题
ACP proxy 脚本需要正确加载 ~/.zshrc 以获取 Claude CLI 路径和环境变量。
解决方案
要使用 persistent ACP session:
- 从支持线程的渠道发起 — Discord / Telegram / Mattermost
- 在 Clawline 中用 run 模式 — 一次性执行,不需要线程
对于 API 调用问题:
- 确认本地代理
127.0.0.1:4819正常运行 - 使用
--bare模式避免 OAuth 覆盖 - 确保
~/.zshrc中的ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY正确设置
相关页面
- openclaw-config — OpenClaw 配置
- model-provider-config — Copilot→Anthropic 代理服务详情
- clawline-plugin — Clawline 插件(不支持线程)