背景我司的Claude Code订阅费用公司不愿意报销只能曲线救国使用国内的火山引擎标准豆包2.0 Code模型不是火山的 Coding Plan。整个过程踩了不少坑现在终于成功实现了工具调用功能特此记录分享避免其他人重蹈覆辙。TMD公司不愿意报销Claude我只能狠狠地用这个豆包2.0 搜索关键词相关搜索用火山引擎的豆包 2.0 配置到 Claude Code、Claude Code 代理火山豆包、Claude Code Router 配置火山引擎豆包2.0 API、豆包2.0 Code 模型API Claude Code使用 踩坑历程1️⃣ 阶段一自己写 Simple Proxy文件simple_proxy.py问题只能做简单的文本对话工具调用完全失效SSE流式响应格式不完整缺少tool_use块的正确处理根本原因只发送了content_block_delta事件没有完整的事件序列未正确转换tool_calls为tool_use事件工具调用链断裂2️⃣ 阶段二使用 Anthropic-Proxy-Main文件anthropic-proxy-main/问题代码结构复杂配置繁琐工具调用支持但不稳定根本原因需要手动配置 model_manager对火山引擎的适配不够优化调试成本高3️⃣ 阶段三尝试 Claude-Code-Proxy文件claude-code-proxy/问题同样需要复杂配置对火山引擎的支持不够直接根本原因主要针对OpenAI等提供商优化对国内模型的适配有限4️⃣ 阶段四找到 Claude-Code-Router最终解决方案成功✅ 最终解决方案Claude-Code-Router为什么它能行完整的SSE事件序列- 正确处理message_start→content_block_start→content_block_delta→content_block_stop→message_delta→message_stop专门为Claude Code优化- 完全兼容其工具调用机制火山引擎官方推荐- 对豆包模型有专门适配开箱即用- 配置简单无需复杂代码修改安装配置步骤1. 安装 Claude-Code-Routerhttps://github.com/musistudio/claude-code-router# 全局安装npminstall-gmusistudio/claude-code-router2. 配置火山引擎豆包创建配置文件~/.claude-code-router/config.json{LOG:false,Providers:[{name:volcengine,api_base_url:https://ark.cn-beijing.volces.com/api/v3/chat/completions,api_key:你的火山引擎API Key,models:[doubao-seed-2-0-code-preview-260215]}],Router:{default:volcengine,doubao-seed-2-0-code-preview-260215,think:volcengine,doubao-seed-2-0-code-preview-260215,background:volcengine,doubao-seed-2-0-code-preview-260215,longContext:volcengine,doubao-seed-2-0-code-preview-260215}}注意这里使用的是火山引擎的普通API不是Coding Plan配置完毕如果想切换智谱清言或者通义千问的coding计划可以用cc-switch切换自定义配置方便管理。cc-switch3. 启动服务# 启动服务ccr start# 检查状态ccr status4. 配置 Claude Code修改 Claude Code 设置文件{env:{ANTHROPIC_AUTH_TOKEN:sk-dummy,ANTHROPIC_BASE_URL:http://127.0.0.1:3456,ANTHROPIC_DEFAULT_HAIKU_MODEL:doubao-seed-2-0-code-preview-260215,ANTHROPIC_DEFAULT_OPUS_MODEL:doubao-seed-2-0-code-preview-260215,ANTHROPIC_DEFAULT_SONNET_MODEL:doubao-seed-2-0-code-preview-260215,API_TIMEOUT_MS:3000000,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:1,CLAUDE_ALLOW_CONCURRENT_REQUESTS:1},hooks:{},model:opus[1m],permissions:{allow:[Read,Write,Execute,Shell,Wsl,Browser,Delete],autoApprove:true,requireApproval:false}}5. 使用方法方式一直接使用 ccr 命令ccr code方式二手动设置环境变量# Windows PowerShell$env:ANTHROPIC_BASE_URLhttp://127.0.0.1:3456claude 工具调用测试测试用例浏览器搜索请帮我搜索一下今天的头条新闻期望结果Claude 会调用浏览器工具搜索结果会显示在对话中整个过程流畅无错误测试用例文件操作请帮我创建一个Python脚本实现快速排序算法期望结果Claude 会创建文件编写完整的快速排序代码包含适当的注释 各方案对比方案工具调用配置复杂度维护成本推荐指数Simple Proxy❌ 不支持低低⭐Anthropic-Proxy-Main⚠️ 不稳定高高⭐⭐Claude-Code-Proxy⚠️ 复杂中中⭐⭐⭐Claude-Code-Router✅ 完全支持低低⭐⭐⭐⭐⭐ 关键技术点1. SSE 事件序列Claude Code 要求完整的 SSE 事件序列特别是工具调用时event: message_start data: {...} event: content_block_start data: {type: content_block_start, index: 0, content_block: {type: tool_use, ...}} event: content_block_delta data: {type: content_block_delta, index: 0, delta: {type: input_json_delta, partial_json: {...}}} event: content_block_stop data: {type: content_block_stop, index: 0} event: message_delta data: {type: message_delta, delta: {stop_reason: tool_use}} event: message_stop data: {type: message_stop}2. 工具调用转换Claude 格式tool_use块OpenAI 格式tool_calls字段Claude-Code-Router自动双向转换3. 火山引擎适配API 端点https://ark.cn-beijing.volces.com/api/v3/chat/completions模型doubao-seed-2-0-code-preview-260215认证使用 API Key 总结Simple Proxy只能做简单对话工具调用完全失效Anthropic-Proxy-Main配置复杂工具调用不稳定Claude-Code-Proxy对火山引擎支持有限Claude-Code-Router完美支持工具调用配置简单是最佳选择最终结论Claude-Code-Router 火山引擎豆包2.0 Code 是最理想的替代方案