Doubao Seed 2.1 API(2026):Pro と Turbo、Volcano 登録なしで使う
Doubao Seed 2.1 Pro($0.884/$4.42 per M)と Turbo(半額:$0.442/$2.212)を一つの endpoint から呼び出す。256K コンテキスト、キー一本、Volcano の別途登録は不要。
Doubao Seed 2.1 API(2026):Pro と Turbo、Volcano 登録なしで使う
ByteDance は 2026 年 6 月 24 日、Volcano Engine FORCE カンファレンスで Doubao Seed 2.1 を発表しました。Pro と Turbo の 2 バリアント、いずれも 256K コンテキストです。直接使うには Volcano Engine アカウントが要ります。電話番号・実名認証・CNY チャージを求める登録か、国際カードで Volcano の国際版コンソールに別アカウントを作るか、どちらかです。本ガイドは 3 つ目の経路をとります。すでに持っているかもしれない 1 本のキーで、両バリアントを 1 つの OpenAI 互換 endpoint から呼び、文字列を 1 つ書き換えるだけで切り替えます。
30 秒で分かる答え
- できること: 標準の OpenAI SDK(Python または Node)から Doubao Seed 2.1 Pro と Turbo を呼び、
model文字列を変えるだけで切り替え、どちらにも画像入力を送れます。- 所要時間: ofox キーをすでに持っているなら約 5 分。登録が必要なら約 10 分。
- 必要なもの: ofox.ai の API キー、
openaiSDK(最近のバージョンならどれでも)、2 つのモデル ID:volcengine/doubao-seed-2.1-proとvolcengine/doubao-seed-2.1-turbo。
料金の要点。以下のあらゆるルーティング判断を左右するからです。Pro は 100 万トークンあたり入力 $0.884、出力 $4.42。Turbo はちょうど半額で $0.442 と $2.212。キャッシュ入力はさらに下限を下げ、Pro が $0.177、Turbo が $0.085。256K ウィンドウは両方とも同じです。
| Doubao Seed 2.1 Pro | Doubao Seed 2.1 Turbo | |
|---|---|---|
| モデル ID | volcengine/doubao-seed-2.1-pro | volcengine/doubao-seed-2.1-turbo |
| 入力($/M) | $0.884 | $0.442 |
| 出力($/M) | $4.42 | $2.212 |
| キャッシュ入力($/M) | $0.177 | $0.085 |
| コンテキストウィンドウ | 256,000 | 256,000 |
| 最大出力 | 256,000 | 256,000 |
| モダリティ | テキスト+画像入力、テキスト出力 | テキスト+画像入力、テキスト出力 |
| 位置づけ | フラグシップ深層思考:複雑なコーディング、ロングチェーンエージェント、多段納品 | 低コスト・低レイテンシ:高頻度の企業トラフィック |
Turbo のトークン単価は、入力・出力・キャッシュ入力のすべてで Pro のちょうど半分です。ByteDance は Turbo の機能は完成しており性能は Pro に匹敵すると述べていますが、これはベンダーの枠組みでありベンチマークではありません。したがって以下のルーティングの問いは、実のところ「この特定のタスクで安いバリアントが通用すると、どれだけ確信できるか」です。
このセットアップでできること(とできないこと)
まず期待値を合わせます。組み上げてから壁にぶつかるのは誰だって嫌だからです。
セットアップで得られるもの:
- OpenAI Chat Completions の形で両方の Seed 2.1 バリアントを呼べます。既存の OpenAI コードは、キー・base URL・モデルの 3 か所を直せばほぼそのまま動きます。
- コストでルーティングできます。安く高頻度な呼び出しは Turbo に送り、難しい推論は Pro に取っておく。どちらを使うかは呼び出しごとに 1 つの文字列が決めます。
- 画像を送れます。両バリアントが
image_urlコンテンツブロックを受け取るので、スクリーンショットや図をテキストと並べて渡せます。 - 国際カードで USD 建て請求。すでに他のモデルをカバーしているかもしれないキー 1 本で、登録する 2 つ目のアカウントはありません。
- 同じゲートウェイ上の Doubao と他のモデルでキー 1 本を共有できます。もう 1 回の登録ではないフォールバックが欲しいときに効いてきます。
そして得られないもの:
- Volcano Engine の正確な定価。経路にゲートウェイが挟まるので、ここの USD の数字は ofox レートであって、生の Volcano レートではありません。両者は近く連動します(ByteDance 公表の 100 万あたり
¥6/¥30に対しておよそ 1 ドル 6.8 元)が、同一ではありません。 - 「Turbo は Pro と同じ性能」という保証。これはローンチ時の ByteDance の枠組みです。マーケティングの一文を頼りに本番トラフィックを流す前に、自分のワークロードで試してください。
- オフラインやセルフホストの選択肢。Seed 2.1 は API 専用モデルです。ダウンロードできるオープンウェイトのチェックポイントはありません。
今年すでに Doubao Seed 2.0 のセットアップを済ませていれば、手の感覚はそのまま使えます。違うのはラインナップです。2.0 は 4 段構成のバジェットファミリー(Pro、Lite、Mini、Code)でしたが、2.1 は 2 バリアントのフラグシップ分割(深層思考の Pro と半額の Turbo)で、モデル ID もそれに合わせて変わりました。
判断フレーム:このセットアップを使うとき(と使わないとき)
手順に入る前に、ゲートウェイ経路が本当にあなたの経路か決めましょう。
使うとき:
- モデルを評価するだけのために、別の Volcano アカウントを開いたり、電話番号と実名認証を通したりしたくない。
- Pro と Turbo をキー 1 本の裏に置き、コストルーティングを 2 つ目の統合ではなく文字列の入れ替えにしたい。
- すでに OpenAI 互換 endpoint から他のモデルを呼んでおり、Doubao を同じコードパスに加えたい。
見送るとき:
- 検証済みの Volcano Engine アカウント(国内または国際)をすでに維持していて、Doubao だけしか呼ばない。直接行けばゲートウェイの一段を避けられ、登録コストはもう払い済みです。
- 調達用スプレッドシートのために Volcano の正確な定価が小数点まで必要。それは発生元へ。
- コンプライアンス規則が特定のデータ所在地の保証を要求する。それはプロバイダーに直接確認してください。第三者ゲートウェイは推論が走る場所を変えません。
中止ルール 1 つ:モデルが存在して答えることを確かめる最初の成功呼び出しさえできればよいなら、Step 4 で止めて構いません。Step 5 以降はルーティング、エラー処理、チームセットアップです。
システム要件
重いものはありません。OpenAI 互換 endpoint の眼目は、クライアントが退屈なほど普通であることです。
| コンポーネント | 要件 | 備考 |
|---|---|---|
| ランタイム | Python 3.8+ または Node.js 18+ | 既存の OpenAI SDK が動いているものなら何でも |
| SDK | openai(Python または JS) | 最近のバージョンならどれでも。Chat Completions の形は安定 |
| API キー | ofox.ai のキー 1 本(sk-ofox-...) | 登録後 ofox ダッシュボードから |
| Endpoint | https://api.ofox.ai/v1 | OpenAI 互換の base URL |
| ネットワーク | 外向き HTTPS | 標準の外向き HTTPS、特別なルーティング不要 |
Volcano Engine の SDK、volces.com の endpoint、ByteDance 固有のクライアントは要りません。ゲートウェイが裏側の API を OpenAI の形に正規化します。
ステップバイステップのインストール
Step 1:API キーを取得する
ofox.ai で登録し、ダッシュボードを開いてキーを作成します。sk-ofox-... のような形です。ソース管理には入れないこと。環境変数が定番の置き場所です。
export OFOX_API_KEY="sk-ofox-your-key-here"
期待される結果:現在のシェルで echo $OFOX_API_KEY がキーを表示する。
Step 2:SDK をインストールする
# Python
pip install openai
# or Node
npm install openai
期待される結果:pip show openai(または npm ls openai)がインストール済みバージョンを報告する。最近のものなら問題ありません。ここで使うリクエストの形はモダンな SDK 全体で変わっていません。
Step 3:curl で endpoint をスモークテストする
コードを書く前に、キーと endpoint が会話できることを確かめます。この呼び出しは、テスト相手として安い方なので Turbo を叩きます。
curl https://api.ofox.ai/v1/chat/completions \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "volcengine/doubao-seed-2.1-turbo",
"messages": [{"role": "user", "content": "Reply with the single word: ready"}]
}'
期待される結果:choices[0].message.content に ready を含む JSON ボディ。401 が返れば、キーが間違っているか未設定です。モデルで 404 が返れば、ID の綴りを再確認してください(volcengine/doubao-seed-2.1-turbo、2.1 はダッシュでなくドット)。
Step 4:Python からの最初の呼び出し
from openai import OpenAI
client = OpenAI(
api_key="sk-ofox-...", # or os.environ["OFOX_API_KEY"]
base_url="https://api.ofox.ai/v1",
)
resp = client.chat.completions.create(
model="volcengine/doubao-seed-2.1-pro",
messages=[{"role": "user", "content": "Explain MoE routing in two sentences."}],
)
print(resp.choices[0].message.content)
期待される結果:ターミナルに 2 文の回答。素の OpenAI 呼び出しと違うのは 3 つ、api_key、base_url、model です。ストリーミング、ツール、構造化出力はすべて、すでに知っている SDK メソッドをそのまま使います。
Step 5:Node からの同じ呼び出し
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OFOX_API_KEY,
baseURL: "https://api.ofox.ai/v1",
});
const resp = await client.chat.completions.create({
model: "volcengine/doubao-seed-2.1-pro",
messages: [{ role: "user", content: "Explain MoE routing in two sentences." }],
});
console.log(resp.choices[0].message.content);
期待される結果:同じ 2 文の回答。JS SDK は Python が base_url を使うところで baseURL(キャメルケース)を使います。綴りの罠はそこだけです。
Step 6:1 つの文字列で Pro と Turbo を切り替える
ここはじっくり見る価値があります。両方をキー 1 本の裏で動かす理由そのものだからです。変わるのは model の値だけです。
MODELS = {
"pro": "volcengine/doubao-seed-2.1-pro",
"turbo": "volcengine/doubao-seed-2.1-turbo",
}
def ask(tier: str, prompt: str) -> str:
resp = client.chat.completions.create(
model=MODELS[tier],
messages=[{"role": "user", "content": prompt}],
)
return resp.choices[0].message.content
print(ask("turbo", "Summarize this ticket in one line.")) # cheap path
print(ask("pro", "Plan a three-step refactor for this module.")) # hard path
期待される結果:両方の呼び出しが返る。安い要約は $0.442/$2.212 の Turbo を通り、計画タスクは $0.884/$4.42 の Pro を通ります。どちらに払うかは呼び出しごとに自分が決めます。
flowchart TD
A[Incoming request] --> B{Hard reasoning,<br/>long-chain agent,<br/>multi-step delivery?}
B -->|Yes| C[model = volcengine/<br/>doubao-seed-2.1-pro<br/>$0.884 in / $4.42 out]
B -->|No: summarize, classify,<br/>high-frequency call| D[model = volcengine/<br/>doubao-seed-2.1-turbo<br/>$0.442 in / $2.212 out]
C --> E[Same endpoint<br/>api.ofox.ai/v1]
D --> E
E --> F[Response]
セットアップでよくあるエラー(と対処)
ここでの失敗はほぼ同じ 3 つに収まります。キーが違う、モデル文字列が違う、リクエストの形が違う。表は実際に出てくるものを扱います。
| 症状 | 想定原因 | 対処 |
|---|---|---|
401 Unauthorized | キーが未設定・期限切れ、または余計なスペース | キーを再 export。Authorization: Bearer ヘッダに末尾の空白がないか確認 |
モデルで 404 | ID の打ち間違い、たいてい 2.1 の代わりに 2-1 | 正確な文字列を使う:volcengine/doubao-seed-2.1-pro / volcengine/doubao-seed-2.1-turbo |
Connection refused / DNS エラー | base URL が OpenAI やタイプミスのホストを指している | base URL を https://api.ofox.ai/v1(/v1 に注意)に設定 |
画像リクエストで 400 | image_url ブロックの不備、または base64 に data: プレフィックスがない | {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}} を送る |
| 出力が空または途切れる | max_tokens が低すぎる、または読む先のフィールドが違う | max_tokens を上げる。choices[0].message.content を読む |
429 Too Many Requests | 現在のレート枠を超えるバースト | 指数バックオフを追加。レスポンスが示す遅延後に再試行 |
| Pro で最初のトークンが遅い | 深層思考モデルが出力前に時間を使う | 難しいプロンプトでは Pro の想定動作。レイテンシ重視の呼び出しは Turbo へ回す |
model が curl では通るが SDK で失敗 | SDK が env var 経由で古い base URL に固定されている | OPENAI_BASE_URL を確認。明示的な base_url/baseURL 引数が勝つはずだが、残った env var が古い構成を混乱させることがある |
チーム/複数開発者の構成
ソロのセットアップは、環境変数 1 つにキー 1 本です。チームでは、キーを安全に共有でき、モデル選択が一貫している必要があります。各自が別々のティアをハードコードしないようにするためです。
うまくいくパターンはこうです。キーはシークレットマネージャーに置き、endpoint とデフォルトティアを環境変数で公開し、小さな設定が環境ごとに Pro か Turbo かを決める。
# .env.example (committed); real .env stays out of git
OFOX_API_KEY= # pulled from the team secret manager, never committed
OFOX_BASE_URL=https://api.ofox.ai/v1
DOUBAO_TIER=turbo # dev/staging default; prod can override to pro per route
そして、リテラルの代わりにこれらを読むことで、誤ってティアを固定する開発者をなくします。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OFOX_API_KEY"],
base_url=os.environ.get("OFOX_BASE_URL", "https://api.ofox.ai/v1"),
)
DEFAULT_MODEL = f"volcengine/doubao-seed-2.1-{os.environ.get('DOUBAO_TIER', 'turbo')}"
チームをトラブルから遠ざける要点をいくつか:
| 関心事 | ソロ | チーム |
|---|---|---|
| キーの保管 | ローカルの env var 1 つ | シークレットマネージャー(Vault、AWS Secrets Manager、Doppler)、デプロイ時に注入 |
| ティア選択 | ハードコードで十分 | DOUBAO_TIER env var で駆動。dev は Turbo がデフォルト、prod は Pro を選択 |
| コストの可視性 | ダッシュボードを目視 | サービスごとにリクエストをタグ付けし、Pro/Turbo の内訳を帰属可能に |
| オンボーディング | 「これがキー」 | リポジトリに .env.example、キーはシークレットマネージャー経由でのみ配布 |
キー 1 本・endpoint 1 つの形こそ、運用を安くする要です。ローテートする資格情報は 1 つ、base URL は 1 つ、チームごとの唯一の判断は各環境がどのティアをデフォルトにするかだけです。コスト帰属には、各レスポンスの usage オブジェクト(prompt_tokens、completion_tokens)を読み、呼んだティアに紐づけてログを取ります。これが、1 か月後に Pro/Turbo の内訳が計画どおりだったか、それとも静かに高い方へ流れていたかを知る方法です。複数モデルの前に広めのゲートウェイを立てているなら、マルチモデルルーターのパターンが、この上に乗るルーティング層を扱っています。
上級:Pro/Turbo ルーティングと画像入力
1 つのループでコストを意識したルーティング
よくある本番の形は、Turbo で安く 1 回投げ、安い答えが不十分なときだけ Pro へエスカレーションするものです。エスカレーション規則はあなたが決める部分で、ここが考える価値のあるところです。悪い規則は、すべてをエスカレーションするか(Turbo 向きの問題に Pro 価格を払う)、まったくエスカレーションしないか(Pro が必要だったタスクで Turbo の答えを出荷する)のどちらかになるからです。信頼度のしきい値、長さのチェック、安いバリデータでの一巡、どれも妥当なトリガーです。モデルの入れ替え自体は 1 行です。
def answer(prompt: str, hard: bool) -> str:
tier = "pro" if hard else "turbo"
resp = client.chat.completions.create(
model=f"volcengine/doubao-seed-2.1-{tier}",
messages=[{"role": "user", "content": prompt}],
)
return resp.choices[0].message.content
これが効く理由は計算にあります。月 100 万リクエスト、各平均 500 入力・500 出力トークンのワークロードを考えます。全 Pro なら、入力 500M を $0.884、出力 500M を $4.42、キャッシュ入力の節約前でおよそ月 $2,652。全 Turbo なら、同じ量で $1,327 付近、請求は半分です。Turbo の単価が全項目でちょうど半分だからです。80% を Turbo に回し、難しい 20% を Pro へエスカレーションすると、$1,592 あたりに収まり、Pro の天井よりずっと Turbo の床に近くなります。レバーはモデルではなく内訳です。キャッシュ入力は、システムブロックを繰り返すプロンプトでさらに下げます。キャッシュレートが Pro で $0.177、Turbo で $0.085、フルの入力レートに対してそうなるからです。
レスポンスをストリーミングする
長い Pro の回答は、完了をまるごと待つと遅く感じます。トークンを届くそばからストリームしましょう。変更点は stream=True とチャンクを反復することだけです。モデルの入れ替えはここでも 1 行です。
stream = client.chat.completions.create(
model="volcengine/doubao-seed-2.1-pro",
messages=[{"role": "user", "content": "Draft a migration plan, step by step."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
期待される結果:一度にまとめてではなく、テキストが少しずつ表示される。これは Pro でより効きます。深層思考の一巡で、出し始める前にしばし沈黙することがあるからです。Turbo は最初のトークンがたいてい速く着き、それが存在理由そのものです。
どちらのバリアントにも画像を送る
両バリアントはマルチモーダル(テキスト+画像入力、テキスト出力)です。コンテンツブロックは標準の OpenAI ビジョンの形なので、スクリーンショットやチャートをそのまま入れられます。
import base64
with open("screenshot.png", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
resp = client.chat.completions.create(
model="volcengine/doubao-seed-2.1-pro",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What does this error dialog say to do?"},
{"type": "image_url",
"image_url": {"url": f"data:image/png;base64,{b64}"}},
],
}],
)
print(resp.choices[0].message.content)
期待される結果:画像を読んだテキスト回答。モデル文字列を volcengine/doubao-seed-2.1-turbo に入れ替えれば、同じ呼び出しが安いバリアントで走ります。理解ではなく画像の生成が必要なら、それは別の ByteDance モデルです。Seedream 4.5 の画像 APIがそちらをカバーしています。
実際のワークロードで試したいですか?ofox キー 1 本で、両方の Seed 2.1 バリアントとカタログの残りを
https://api.ofox.ai/v1から呼べ、Volcano Engine 登録なしで USD 建て請求です。Doubao Seed 2.1 Pro モデルページから始める。
代替案
ゲートウェイ経路がしっくりこないなら、率直な選択肢です。
- ofox.ai(本ガイド)。 キー 1 本、両バリアント、USD 建て請求、OpenAI 互換 endpoint、同じ資格情報で他のモデルも。別の Volcano アカウントを開かずに Doubao を使いたく、同じキーでフォールバックモデルが欲しいときに最適。Volcano の定価の上にゲートウェイのマークアップが乗ります。
- Volcano Engine(直接)。 ByteDance 自身の endpoint、コンソールは 2 種類。標準の登録は電話番号・実名認証・CNY チャージを求めます。国際版コンソールは海外アカウント用にメール登録と国際カードを受け付けます。それらのアカウントを開いて維持するなら最安の定価で、Doubao が唯一使うモデルなら正解です。
- 別の OpenAI 互換アグリゲーター。 いまや複数のゲートウェイが Doubao を扱います。統合の形はここと同じです。価格、残りのカタログの幅、請求通貨で比べてください。すでにマルチモデル構成なら、Kimi K2.5 アクセスガイドが別のモデルファミリーで同じシングル endpoint のパターンを通しで説明しており、「キー 1 本で多くのモデル」が実際に何を買うのかをクロスチェックするのに役立ちます。
FAQ
Doubao Seed 2.1 とは何で、いつリリースされましたか? Doubao Seed 2.1 は ByteDance の次世代モデルファミリーで、2026 年 6 月 24 日の Volcano Engine FORCE カンファレンスで発表されました。Pro と Turbo の 2 バリアント、いずれも 256K コンテキストです。Pro はフラグシップ深層思考モデル、Turbo は大量トラフィック向けの低コスト・低レイテンシ版です。
Doubao Seed 2.1 API の料金はいくらですか?
ofox.ai 経由、USD 建てで、Pro は 100 万トークンあたり入力 $0.884、出力 $4.42、キャッシュ入力 $0.177。Turbo はちょうど半額で、入力 $0.442、出力 $2.212、キャッシュ入力 $0.085。両方とも 256K コンテキスト、256K 最大出力です。
Volcano Engine アカウントなしで Doubao Seed 2.1 を使えますか? はい。Volcano 自身の登録は電話番号と実名認証を求め、国際版コンソールは別の海外アカウントを求めます。ofox が 3 つ目の経路です。メール登録と国際カードで、両バリアントと他のモデルを呼べるキー 1 本が手に入ります。
Pro と Turbo の違いは何ですか? Pro は高難度の作業向けのフラグシップ深層思考モデルです。Turbo はトークンあたりちょうど半額で、レイテンシ重視・高頻度の本番を狙います。ByteDance は Turbo の性能は Pro に匹敵すると述べていますが、ベンダーの主張として扱い、自分のタスクで検証してください。
コード内で Pro と Turbo を切り替えるには?
1 つの文字列を変えるだけです。どちらも同じ endpoint で動くので、model を volcengine/doubao-seed-2.1-pro と volcengine/doubao-seed-2.1-turbo の間で入れ替えます。それ以外はそのままです。
Doubao Seed 2.1 は画像入力に対応していますか?
はい。両バリアントはマルチモーダル(テキスト+画像入力、テキスト出力)です。テキストプロンプトと並べて、URL か base64 のデータ URI を持つ image_url コンテンツブロックを添付します。
Doubao Seed 2.1 は GPT-5.5 と比べてどうですか? ByteDance は Seed 2.1 の 3 つのアップグレード(コーディング納品、エージェントのロングチェーンタスク、マルチモーダル理解)を GPT-5.5 に対して位置づけています。これはローンチ時のベンダーの枠組みであり独立ベンチマークではないので、依存する前に検証してください。
コンテキストウィンドウは? 256,000 トークンのコンテキストと最大 256,000 トークンの出力、Pro と Turbo で同じです。
今回の更新で確認したソース
- ofox モデルページ、Doubao Seed 2.1 Pro:https://ofox.ai/models/volcengine/doubao-seed-2.1-pro (モデル ID、価格、256K コンテキスト、2026-06-26 確認)
- ofox モデルページ、Doubao Seed 2.1 Turbo:https://ofox.ai/models/volcengine/doubao-seed-2.1-turbo (モデル ID、半額の価格、2026-06-26 確認)
- ByteDance Seed チーム:https://seed.bytedance.com/en/
- Volcano Engine Doubao 製品ページ:https://www.volcengine.com/product/doubao
- ローンチ報道、FORCE カンファレンスでの Doubao 2.1 Pro:https://dataconomy.com/2026/06/24/bytedance-launches-doubao-2-1-pro-language-model/ (リリース日、FORCE の会場、Pro/Turbo の分割)


