4.5 KiB
Claude Code 搭配 DeepSeek API
本文说明如何让 Claude Code 通过 DeepSeek 的 Anthropic 兼容 API 运行,并用 claude-tap 捕获这条流量。
DeepSeek 官方 Claude Code 集成会把 Claude Code 指向 https://api.deepseek.com/anthropic,主模型使用 deepseek-v4-pro[1m]。如果同时使用 claude-tap,继续保留这套 Claude Code 环境即可。claude-tap 会先从 ANTHROPIC_BASE_URL 读取 DeepSeek 上游,再把 Claude Code 指向本地代理。
English version: Claude Code with DeepSeek API.
环境变量
Claude Code 使用 ANTHROPIC_AUTH_TOKEN 传入 DeepSeek key,并建议清掉 ANTHROPIC_API_KEY,避免 Claude Code 触发 API key 冲突提示。
export ANTHROPIC_AUTH_TOKEN="<你的 DeepSeek API key>"
unset ANTHROPIC_API_KEY
export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_EFFORT_LEVEL=max
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
claude-tap 会在改写被启动的 Claude Code 进程之前,把当前 ANTHROPIC_BASE_URL 作为真实上游目标。只有想手动覆盖时才需要传 --tap-target。
使用 claude-tap 捕获
正常启动 claude-tap:
claude-tap -- --permission-mode bypassPermissions
一次性非交互 smoke test:
claude-tap \
-- \
--permission-mode bypassPermissions \
-p 'Use Bash to run pwd, then reply with DEEPSEEK_CLAUDE_TAP_OK.'
进程退出后打开自动生成的 HTML:
open .traces/*/trace_*.html
也可以从 JSONL 重新导出 HTML:
claude-tap export .traces/2026-05-06/trace_153111.jsonl -o trace.html
TLS 与本地代理
如果上游请求报 SSLCertVerificationError,但直接 curl 能成功,通常是 Python 进程使用的 CA bundle 不信任本地出站代理。可以显式指定系统 CA bundle 或代理使用的 CA bundle:
# macOS/Homebrew 常见路径是 /etc/ssl/cert.pem。
SSL_CERT_FILE=/etc/ssl/cert.pem claude-tap
Debian/Ubuntu 的系统 CA bundle 通常是 /etc/ssl/certs/ca-certificates.crt。
兼容性说明
Claude Code 2.1.128 和 2.1.131 可能把 metadata.user_id 作为 JSON 字符串发送。DeepSeek 的 Anthropic 兼容端点会拒绝这个值,因为它只接受字母、数字、下划线和连字符。claude-tap 只会在上游目标是 https://api.deepseek.com/anthropic 时规范化非法的 metadata.user_id;默认 Anthropic 流量保持不变。
DeepSeek 对 Claude Code 启动时的 /v1/models?limit=1000 预检可能返回 404。只要 /v1/messages 成功,Claude Code 仍可继续运行。下面的验证运行设置了 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1,用于减少无关启动流量。
claude-tap 会脱敏 Authorization / x-api-key 请求头,但不会全局清洗 prompt、请求 body 或工具输出。不要把 key 写进 prompt、脚本输出或 trace 内容里。
已验证运行
2026-05-06 验证环境:
- DeepSeek Anthropic API 直连调用返回 HTTP
200 - Claude Code
2.1.131 - Claude Code 主对话模型:
deepseek-v4-pro[1m] - Claude Code 标题和辅助调用模型:
deepseek-v4-flash ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropicclaude-tapCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
真实 tmux 串行运行结果:
- 3 轮用户对话
- 11 个
/v1/messages请求 - 6 个唯一
Bashtool_useblock,每轮 2 个 - 6 个匹配的
tool_resultblock - 从真实
.traces/trace 生成 HTML viewer - 使用 Playwright 多次鼠标滚动后截图
概览:
滚动后的详情区域:
滚动后的侧边栏导航:
继续滚动后的最终回复:



