📝 背景

我司的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_callstool_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

为什么它能行?

  1. 完整的SSE事件序列 - 正确处理 message_startcontent_block_startcontent_block_deltacontent_block_stopmessage_deltamessage_stop
  2. 专门为Claude Code优化 - 完全兼容其工具调用机制
  3. 火山引擎官方推荐 - 对豆包模型有专门适配
  4. 开箱即用 - 配置简单,无需复杂代码修改

安装配置步骤

1. 安装 Claude-Code-Router

https://github.com/musistudio/claude-code-router

# 全局安装
npm install -g @musistudio/claude-code-router
2. 配置火山引擎豆包

创建配置文件: ~/.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-switch

3. 启动服务
# 启动服务
ccr start

# 检查状态
ccr status
4. 配置 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
  }
}

cc-switch

5. 使用方法

方式一:直接使用 ccr 命令

ccr code

方式二:手动设置环境变量

# Windows PowerShell
$env:ANTHROPIC_BASE_URL="http://127.0.0.1:3456"
claude

🔧 工具调用测试

测试用例:浏览器搜索

请帮我搜索一下今天的头条新闻

期望结果:

  • 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

🎉 总结

  1. Simple Proxy:只能做简单对话,工具调用完全失效
  2. Anthropic-Proxy-Main:配置复杂,工具调用不稳定
  3. Claude-Code-Proxy:对火山引擎支持有限
  4. Claude-Code-Router:完美支持工具调用,配置简单,是最佳选择

最终结论: Claude-Code-Router + 火山引擎豆包2.0 Code 是最理想的替代方案!

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐