解决 2026-04-04 Anthropic 封杀 OpenClaw tool_use 导致的 400 错误("You're out of extra usage")。
Anthropic 通过识别请求中的 tool name 组合(如 read、exec、message 等 OpenClaw 标准工具名)来检测第三方工具使用。
本 proxy 在 OpenClaw 和 Claude CLI proxy 之间做一层透明转换:
- 请求方向:将 tool name 替换为自然的业务名称(如
read→get_file_content),同时清洗 system prompt 中的 OpenClaw 标识 - 响应方向:将别名还原为原始名称,OpenClaw 无感知
OpenClaw → :18320 (tool-alias proxy) → :8317 (cli-proxy) → Anthropic
git clone https://github.com/ylytdeng/openclaw-tool-proxy.git
cd openclaw-tool-proxynode tool-rename-proxy.js默认监听 127.0.0.1:18320,转发到 127.0.0.1:8317(Claude CLI proxy)。
可通过环境变量配置:
PORT=18320 CLI_PROXY_URL=http://127.0.0.1:8317 node tool-rename-proxy.js修改 ~/.openclaw/openclaw.json,将 claude-max provider 的 baseUrl 改为 proxy 地址:
{
"models": {
"providers": {
"claude-max": {
"baseUrl": "http://127.0.0.1:18320/v1",
...
}
}
}
}重启 OpenClaw 即可。
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/openclaw-tool-proxy.service << 'EOF'
[Unit]
Description=OpenClaw Tool Alias Proxy
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node /path/to/tool-rename-proxy.js
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now openclaw-tool-proxy# 不经过 proxy — 400
curl http://127.0.0.1:8317/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-opus-4-6","messages":[{"role":"user","content":"hi"}],"tools":[{"type":"function","function":{"name":"read","description":"x","parameters":{"type":"object","properties":{}}}},{"type":"function","function":{"name":"exec","description":"x","parameters":{"type":"object","properties":{}}}},{"type":"function","function":{"name":"message","description":"x","parameters":{"type":"object","properties":{}}}}]}'
# 经过 proxy — 200
curl http://127.0.0.1:18320/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-opus-4-6","messages":[{"role":"user","content":"hi"}],"tools":[{"type":"function","function":{"name":"read","description":"x","parameters":{"type":"object","properties":{}}}},{"type":"function","function":{"name":"exec","description":"x","parameters":{"type":"object","properties":{}}}},{"type":"function","function":{"name":"message","description":"x","parameters":{"type":"object","properties":{}}}}]}'编辑 tool-rename-proxy.js 中的 ALIASES 对象即可自定义映射。建议使用看起来像正常业务逻辑的名称。
- 需要有效的 Claude Max 订阅和 CLI proxy(
claudeCLI 提供的 OpenAI 兼容端口) - OpenClaw 更新可能重置
baseUrl配置,更新后需检查 - 零依赖,只需 Node.js