跳转到主要内容
如果你已经在用 Anthropic 的 API,切到 ByteSpike 就是改两个环境变量 然后发版。Anthropic SDK 不动;请求结构一样;只有 base URL 和 key 不同。

两个环境变量

- export ANTHROPIC_API_KEY=sk-ant-...
+ export ANTHROPIC_BASE_URL=https://llm.bytespike.ai
+ export ANTHROPIC_API_KEY=sk-byts-...
大多数客户端(Claude Code、Claude Desktop、Anthropic SDK Python / TypeScript、第三方工具)会自动读这两个标准变量 —— 无需改代码。 如果你显式构造客户端:
- client = Anthropic()  # reads env vars
+ client = Anthropic(
+   base_url="https://llm.bytespike.ai",
+   api_key="sk-byts-...",
+ )

Model id 映射

ByteSpike 原样使用 Anthropic 自己的 model id,外加经 Messages 结构 可达的非 Anthropic provider 的 id:
你之前用的 Anthropic idByteSpike id(直接替换)
claude-3-5-sonnet-20241022claude-sonnet-4-6(当前旗舰)
claude-3-7-sonnet-20250219claude-sonnet-4-6
claude-sonnet-4-20250514claude-sonnet-4-6
claude-opus-4-20250514claude-opus-4-8
claude-3-5-haiku-20241022claude-haiku-4-5
外加 Anthropic 直连触达不到的模型:
跨厂商(经翻译走 Messages-API 结构)
deepseek-v3-anthropic
deepseek-v4-pro(翻译)
gemini-3-1-pro(翻译 —— protocols_aggregate 里有 :translated 后缀)
gpt-5-5(翻译 —— 工具结构还原度有限制)
对翻译路径的模型,网关把 Messages 请求适配成该模型的原生协议,再把响应 适配回来。详见 Endpoint 类型

你能多拿到什么

Anthropic 直连ByteSpike
只有 Claude 系列Claude + 经 Messages 结构可达的跨厂商模型
Anthropic 计费一个 ByteSpike 钱包覆盖一切
套餐分层限速单 key 限速(5h / 1d / 7d,全部可配)
失败偶尔计费失败一律不计费
Prompt caching 原生Prompt caching 端到端保留

不变的东西

  • Anthropic SDK —— Python、TypeScript,所有官方客户端
  • Messages 结构 —— messagessystemtoolstool_choicemax_tokensstream,完全一致
  • 工具调用 —— input_schema JSON Schema 格式、tool_use 块、tool_result 块 —— 完全一致
  • Prompt caching —— system / tools / messages 上的 cache_control 块 —— 端到端保留
  • 扩展思考 —— Opus / Sonnet 4.x 上的 thinking 块 —— 保留
  • 流式 —— SSE 用 Anthropic 事件名(message_start / content_block_delta / 等等) —— 逐字节兼容

具体例子

Messages

# 原来:
from anthropic import Anthropic
client = Anthropic()  # reads ANTHROPIC_API_KEY
r = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)

# 现在: 环境变量切换
# (ANTHROPIC_BASE_URL=https://llm.bytespike.ai, ANTHROPIC_API_KEY=sk-byts-...)
client = Anthropic()
r = client.messages.create(
    model="claude-sonnet-4-6",   # newer Anthropic id
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)

工具调用

tools = [{
    "name": "get_weather",
    "description": "Get current weather",
    "input_schema": {
        "type": "object",
        "properties": {"city": {"type": "string"}},
        "required": ["city"]
    }
}]

r = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "weather in Tokyo?"}],
    tools=tools,
)
claude-*deepseek-v3-anthropic,以及翻译路径 (经 Messages 结构访问的 gemini-3-1-progpt-5-5)效果一致。

Prompt caching

r = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[
        {"type": "text", "text": "You are a helpful assistant."},
        {
            "type": "text",
            "text": LARGE_KNOWLEDGE_BASE,
            "cache_control": {"type": "ephemeral"},
        },
    ],
    messages=[{"role": "user", "content": "..."}],
)

# usage.cache_read_input_tokens and usage.cache_creation_input_tokens
# are populated and billed per the documented discount.

扩展思考(Opus / Sonnet 4.x)

r = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    thinking={"type": "enabled", "budget_tokens": 2000},
    messages=[{"role": "user", "content": "..."}],
)

# Response contains thinking blocks followed by text blocks.

需要再确认的点

在 key 上挑一个包含你想用的模型的路由分组。claude-default 覆盖 Claude 系列。要跨厂商访问 Messages 结构的模型 (DeepSeek-Anthropic、Gemini 经翻译),挑包含这些的分组 —— 通常是多厂商分组,或者 org-tier 账号上的 default 分组。
Claude 模型用 Anthropic 的 tokenizer —— 计数与 Anthropic 直连 一致。翻译路径(经 Messages 结构访问的 Gemini、GPT)按底层 模型的 token 费率计费,但计数方式跟随该模型 —— 可能有小差异。
ByteSpike 不复刻 Anthropic Workbench(prompt 开发的 Console UI)。 如果你的 prompt 开发依赖它,直连 Anthropic 做开发,再把 prompt 部署到 ByteSpike。
原样转发给模型。Anthropic 用这个头门禁的 beta 功能在 ByteSpike 上行为一致。
Anthropic 的 /v1/messages/batches 当前未在 ByteSpike 上 暴露。可排队的工作请用同步端点,或者我们的异步 /v1/tasks/* 流。

分步操作

  1. console.bytespike.ai 注册账号 —— 详见 注册账号
  2. 充值 至少 $5 —— 详见 充值 credits
  3. claude-default(或多厂商分组)下创建一把 key
  4. 设置环境变量 —— ANTHROPIC_BASE_URL + ANTHROPIC_API_KEY —— 全局或者放 .envrc
  5. 原样跑已有脚本,确认 Claude 调用照旧能用。
  6. 逐个试跨厂商 iddeepseek-v3-anthropicgemini-3-1-pro)。
  7. 验证缓存保留 —— usage.cache_read_input_tokens 应该和 Anthropic 直连一样填上。

反向迁移

删掉两个环境变量,你就回到 Anthropic 直连。想 A/B 路由就把两份配置 都放秘钥管理器里。

下一步

从 OpenAI 迁移

同样思路,OpenAI 那一边。

Claude Code CLI

CLI 端的具体配置。

/messages 参考

完整的 Messages-API 协议。

Endpoint 类型

跨协议翻译背后的工作原理。