Doubao(豆包)API 的 OpenAI 兼容接入 —— 无需 ep- 端点 ID

Doubao 是字节跳动的模型家族,通常经火山引擎方舟(Ark)用创建好的推理端点 ID 调用。通过 DaoXE 你可以跳过这步,用一个 key 调普通目录模型 ID。

更新于 2026-09-15

原生上,火山方舟要你先创建推理端点并调用形如 ep-… 的 ID。通过 DaoXE,Doubao 与 GPT、Claude、DeepSeek 共用同一个 OpenAI 兼容 key —— 你直接调 GET /v1/models 里的普通目录 ID,无需火山控制台。成本分流见最便宜 API 教程。

通过 DaoXE 调用 Doubao#

用 /v1/chat/completions,模型填 GET /v1/models 里的准确 Doubao ID。这里没有端点创建步骤:目录 ID 取代了原生的 ep-… 标识。推理由非标准的 thinking 字段管控(enabled/disabled/auto),思维链落在 reasoning_content,思考深度由 reasoning_effort 调节。支持视觉的版本用 OpenAI 风格 content 数组收图片。

bash
# Doubao (Volcengine Ark) natively wants endpoint IDs like "ep-2024...".
# Through DaoXE you use the catalog model ID from GET /v1/models instead —
# no endpoint provisioning, no separate Volcengine console.
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/chat/completions \
  -H "Authorization: Bearer ${DAOXE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_EXACT_MODEL_ID",
    "max_tokens": 64,
    "messages": [{"role": "user", "content": "Reply with OK."}]
  }'

Doubao/Seed 如何暴露思考内容#

方舟的思维链落在 choices.message.reasoning_content —— 在 thinking-summary 模型上这是思考的摘要,原始轨迹以 encrypted_content 密文块随行。多轮工具循环里回传密文块(优先级更高)或摘要;从 doubao-seed-1.8 起,保留的 reasoning_content 由模型自行决定是否参与推理,模型没看到的思维链内容不计 token。普通轮次之间 CoT 不拼入上下文 —— 只有工具调用轮次会保留。控制它的有 thinking 字段(enabled/disabled/auto)与七档 reasoning_effort 阶梯,默认值与重映射规则按模型而异 —— 这些非标准字段哪些能穿过某条中转路径,正是要验证的事 —— 绑定客户端前先发一次测试调用。

Doubao 特有的注意点#

  • 这里不用 ep- ID。 别粘贴火山的 ep-… 字符串;改用 GET /v1/models 里的目录模型 ID。
  • thinking 字段有三态。 enabled 强制开思维链,disabled 强制关,auto 由模型自己决定 —— 非标准字段,用你 SDK 的 extra-body 发送。当前 doubao-seed 推理系 ID 的默认态,厂商文档写明是 enabled。
  • 拿到的是摘要,不是原始轨迹。 在 thinking-summary 模型上,厂商返回 reasoning_content 摘要,原始思考放在 encrypted_content 密文块里。多轮历史的规则按版本分叉:251228 之前的版本要剔除 reasoning_content;doubao-seed-1.8 起保留,由模型自行判断是否参与推理。工具循环里要回传 encrypted_content(优先级更高)或摘要 —— 两者都丢会降低下一轮回答质量。
  • effort 档位与输出预算。 reasoning_effort 从 none 到 max 七档,但各模型对越界值的映射不同(Seed-2.1 档默认 high,会把 max 映射成 high;Seed-2.0 档默认 medium,把 low/medium 映射成 high)。另外 max_tokens 只管回答 —— 要让思考共享预算,用 max_completion_tokens。准确 ID 永远从 GET /v1/models 读。

这要花多少钱#

一个余额,一个充值汇率

充值统一按 1 元人民币 = $1 额度,所有支付方式一致;模型再各按自己的美元标价计费 —— 实时单价见定价页。支付宝、微信、USDT、银行卡(Visa · Mastercard)、Apple Pay 与 Google Pay 都是同一个汇率 —— 目录里所有模型共用一个余额,不用选套餐,也没有月度低消。单价与账户绑定且会变动,所以请用一小笔充值去确认,而不是相信教程里的某个数字。

验证你拿到的是真模型#

先证明端点可用,再怀疑客户端 —— 这一步失败,改任何设置都没用:

bash
export DAOXE_API_KEY="your_api_key"

# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/models \
  -H "Authorization: Bearer ${DAOXE_API_KEY}"

先确认连通,再在 temperature 0 下把固定 prompt 与官方火山/方舟 API 对比,确认模型档位:

别信我们 —— 自己验证

把 开源 benchmark 对准 DaoXE 和官方 API,在 temperature 0 下对比。再学会如何鉴别掉包,让便宜端点无法悄悄把你换成更小的模型。

常见问题#

需要火山账号或 ep- 端点吗?

不需要 —— 通过 DaoXE,Doubao 在你的单一 key 后面,用普通目录 ID;没有端点创建步骤。

怎么开关思考?

发非标准的 thinking 字段:enabled 强制开思维链、disabled 强制关、auto 由模型决定。当前 doubao-seed 推理系 ID 的默认是 enabled。

为什么拿到的是摘要而不是原始思考?

thinking-summary 模型上,方舟返回 reasoning_content 摘要,原始思考放在 encrypted_content。工具循环里回传密文块(或摘要)—— 两者都丢会降低下一轮回答质量。

这里 Doubao 多少钱?

按模型、按账号 —— 见实时定价。充值统一按 1 元 = $1 额度,所有支付方式一致。

试用 DaoXE —— 并亲自 benchmark 它

一个 key 调 GPT、Claude、Gemini、DeepSeek 等。用开源 benchmark 对准我们做对比 —— 别只听我们说。