【Agent工具】龙虾何必是OpenClaw,5分钟让你飞书远控Claude Code
背景
本文介绍如何将 Claude Code 通过 cc-connect 桥接到飞书,实现通过飞书机器人与 Claude Code 对话。
架构概览
1
| 用户 → 飞书机器人 → cc-connect → Claude Code → MiniMax API
|
关键问题:Claude Code 默认使用 claude-sonnet-4-6 模型,但 MiniMax API 不支持此模型。需要通过本地代理进行模型名称转换。
安装步骤
1. 安装 cc-connect
1
| npm install -g cc-connect
|
2. 安装 Claude Code
1
| npm install -g @anthropic-ai/claude-code
|
3. 创建 MiniMax 模型代理
Claude Code 与 MiniMax API 模型名称不兼容,需要创建本地代理进行转换:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| const http = require('http'); const https = require('https');
const MINIMAX_TOKEN = 'your-minimax-token'; const MINIMAX_HOST = 'api.minimaxi.com'; const MINIMAX_PATH = '/anthropic/v1/messages';
const MODEL_MAP = { 'claude-sonnet-4-6': 'abab6.5s', 'claude-opus-4-7': 'abab6.5s', 'claude-haiku-4-7': 'abab6.5s', };
const server = http.createServer((req, res) => { if (req.method !== 'POST') { res.writeHead(404); res.end(); return; }
let body = ''; req.on('data', chunk => body += chunk); req.on('end', () => { try { const data = JSON.parse(body); const originalModel = data.model; if (MODEL_MAP[data.model]) { data.model = MODEL_MAP[data.model]; console.log(`[PROXY] Model mapped: ${originalModel} -> ${data.model}`); }
const postData = JSON.stringify(data); const options = { hostname: MINIMAX_HOST, path: MINIMAX_PATH, method: 'POST', headers: { 'Authorization': `Bearer ${MINIMAX_TOKEN}`, 'Content-Type': 'application/json', 'anthropic-version': '2023-06-01', 'Content-Length': Buffer.byteLength(postData) } };
const proxyReq = https.request(options, (proxyRes) => { let responseBody = ''; proxyRes.on('data', chunk => responseBody += chunk); proxyRes.on('end', () => { res.writeHead(proxyRes.statusCode, { 'Content-Type': 'application/json' }); res.end(responseBody); }); });
proxyReq.on('error', (e) => { res.writeHead(500); res.end(JSON.stringify({ error: e.message })); });
proxyReq.write(postData); proxyReq.end(); } catch (e) { res.writeHead(500); res.end(JSON.stringify({ error: e.message })); } }); });
server.listen(8080, '127.0.0.1', () => { console.log('[PROXY] Claude Code Model Alias Proxy running on http://127.0.0.1:8080'); console.log('[PROXY] Maps: claude-sonnet-4-6 -> abab6.5s (MiniMax)'); });
|
启动代理:
1
| node claude-model-proxy.js &
|
4. 配置飞书机器人
- 访问 飞书开放平台 创建企业应用
- 启用机器人能力
- 配置权限:
im:message.receive_v1im:message:send_as_bot
- 配置事件订阅:选择 WebSocket 长连接模式,添加事件
im.message.receive_v1 - 发布应用
- 复制 App ID 和 App Secret
5. 创建 cc-connect 配置文件
创建 ~/.cc-connect/config.toml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| language = "zh"
[[projects]] name = "claude-feishu" [projects.agent] type = "claudecode" [projects.agent.options] mode = "bypassPermissions" [projects.agent.env] ANTHROPIC_AUTH_TOKEN = "your-minimax-token" ANTHROPIC_BASE_URL = "http://127.0.0.1:8080"
[[projects.platforms]] type = "feishu" [projects.platforms.options] app_id = "cli_xxxxxxxxxxxx" app_secret = "xxxxxxxxxxxxxxxxxxxxxxxx"
[log] level = "debug"
|
6. 以非 root 用户运行 cc-connect
Claude Code 的 --dangerously-skip-permissions 参数不允许 root 用户使用。建议创建专用用户:
1 2 3 4 5
| useradd -m -s /bin/bash testuser
su - testuser -c "cc-connect start"
|
验证配置
1 2 3 4 5
| cc-connect status
curl -s http://127.0.0.1:8080 >/dev/null && echo "Proxy OK"
|
日志显示以下内容表示成功:
1 2 3 4
| ✅ config loaded ✅ feishu: bot identified ✅ engine started (claudecode) ✅ connected to wss://msg-frontier.feishu.cn
|
常见问题
错误:–dangerously-skip-permissions cannot be used with root/sudo
Claude Code 安全限制不允许 root 用户使用 --dangerously-skip-permissions。解决方案:
- 使用非 root 用户运行 cc-connect
- 或在
settings.json 中预配置权限
模型不兼容错误
确保代理正在运行,并且 ANTHROPIC_BASE_URL 指向代理地址。
参考资料
本文档更新于 2026-04-15