ホーム / 学習 / Vercel AI SDKでClaudeを使う:createAnthropicのbaseURL、ストリーミング、問題の解決
Vercel AI SDK。折り畳まれた三角形の紙の構造が、コードウィンドウと応答テキストのような記号が流れるリボンをつなぎ、アプリケーション出力のストリーミングを表しています。

Vercel AI SDKでClaudeを使用:createAnthropicのbaseURL、ストリーミング、問題の修正

AI SDKのAnthropicプロバイダーである @ai-sdk/anthropicは、Messages APIと通信します。その baseURL のデフォルト値は https://api.anthropic.com/v1なので、ゲートウェイを使う場合は、 /v1を含むプレフィックス全体を置き換えます。OpenCode、Kilo Code、多くのエージェントフレームワークは内部で同じプロバイダーを使用しているため、それらの設定にも同じルールが適用されます。

インストール

ターミナル
npm i ai @ai-sdk/anthropic

プロバイダーを作成する

lib/anthropic.ts
import { createAnthropic } from '@ai-sdk/anthropic';

export const anthropic = createAnthropic({
  baseURL: 'https://aiprimetech.io/v1',                 // replaces https://api.anthropic.com/v1
  apiKey: process.env.AIPRIME_API_KEY,  // sent as x-api-key; defaults to ANTHROPIC_API_KEY
});
ベースURLを指定する環境変数は、 @ai-sdk/anthropicにはありません。 baseURL をコード内で渡してください。通常の anthropic のインポートは、常にAnthropic自身のエンドポイントに接続します。

generateTextとstreamText

generate.ts
import { generateText } from 'ai';
import { anthropic } from './lib/anthropic';

const { text, usage } = await generateText({
  model: anthropic('claude-sonnet-5'),
  prompt: 'Explain idempotency keys in two sentences.',
});
console.log(text, usage);
stream.ts
import { streamText } from 'ai';
import { anthropic } from './lib/anthropic';

const result = streamText({
  model: anthropic('claude-sonnet-5'),
  prompt: 'Write a haiku about load balancers.',
});

for await (const chunk of result.textStream) process.stdout.write(chunk);

どちらの呼び出しでも、 maxRetries (デフォルトは2)を指定でき、429や5xxなどの一時的な障害に対応できます。

思考とプロンプトキャッシュ

Anthropic固有のオプションは providerOptions.anthropicに指定します。現在のモデルは適応型思考を使用します。

thinking.ts
const { text } = await generateText({
  model: anthropic('claude-sonnet-5'),
  providerOptions: { anthropic: { thinking: { type: 'adaptive' } } },
  prompt: 'Plan a zero-downtime database migration in five steps.',
});

長く、内容が安定したシステムプロンプトをキャッシュするには、 cacheControlを使用します。キャッシュの読み取りは、その後 usage.inputTokenDetails.cacheReadTokensに表示されます。モデルの最小長に満たないプロンプトはキャッシュされません。

cache.ts
const result = await generateText({
  model: anthropic('claude-sonnet-5'),
  messages: [
    {
      role: 'system',
      content: longStableInstructions,
      providerOptions: { anthropic: { cacheControl: { type: 'ephemeral' } } },
    },
    { role: 'user', content: question },
  ],
});

OpenAI互換の代替手段

ゲートウェイはOpenAI Chat Completions形式にも対応しているため、 @ai-sdk/openai-compatible は同じ /v1 ベースURLで動作します。同じキーでGPTモデルを使う場合はこの経路を使用します。Claudeでは、上記のネイティブプロバイダーを使うことで、思考とキャッシュ制御を利用できます。

lib/gateway.ts
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';

const gateway = createOpenAICompatible({
  name: 'aiprime',
  baseURL: 'https://aiprimetech.io/v1',
  apiKey: process.env.AIPRIME_API_KEY,
});

// gateway('claude-sonnet-5') or a GPT model ID

トラブルシューティング

表示される内容 原因 対処方法
JSON の解析エラー、次で始まるレスポンス <baseURL なしで /v1:リクエストがウェブサイトに届いていますbaseURL: 'https://aiprimetech.io/v1'
404 page not found/v1 重複必ず単一の /v1
Invalid API keyprocess.env の値がそのランタイムで未定義です(サーバーレス関数とエッジ関数には独自の環境があります)。そのため、SDKはフォールバック先として ANTHROPIC_API_KEYデプロイ先の環境に変数を設定してください
モデルがサポートされていないモデルIDが古いか、スペルが間違っています以下の表にあるIDを使用してください
Concurrency limit exceeded for userPromise.all を大きな配列に対して実行並列呼び出しを制限してください。例えば、 p-limit
No available accounts / 503上流サービスの一時的な処理能力不足自動で再試行されます。次の値を増やしてください: maxRetries
モデルID 用途
claude-sonnet-5コーディングとエージェント作業の標準モデル:高速、高性能、中程度の価格。
claude-opus-5-5より難しい推論、大規模なリファクタリング、長時間のエージェント実行。
claude-fable-5-1最も高性能で最も高価。最も難しいタスクに絞って使いましょう。
claude-haiku-4-5低価格で高速:タイトル、要約、分類、小さな処理。

よくある質問

@ai-sdk/anthropicのデフォルトのbaseURLは何ですか?
https://api.anthropic.com/v1. ゲートウェイではプレフィックス全体を置き換えるため、末尾は/v1にする必要があります。例:https://aiprimetech.io/v1.
AI SDKのAnthropicベースURLを指定する環境変数はありますか?
いいえ。プロバイダーは環境からANTHROPIC_API_KEY(またはANTHROPIC_AUTH_TOKEN)を読み取りますが、ベースURLはcreateAnthropic({ baseURL })で設定します。
AI SDKからClaudeを呼び出すと解析エラーが発生するのはなぜですか?
通常はbaseURLに/v1が付いていないため、リクエストがウェブサイトに届き、JSONの代わりにHTMLが返されることが原因です。
Claudeには@ai-sdk/anthropicと@ai-sdk/openai-compatibleのどちらを使うべきですか?
@ai-sdk/anthropicを使ってください。ネイティブのMessages APIで通信するため、思考とプロンプトキャッシュが動作します。GPTモデルにはOpenAI互換プロバイダーを使用してください。
数分でClaudeの利用を開始

APIキーを取得 — Anthropicアカウントもウェイトリストへの登録も不要です。

APIキーを取得

AI Prime Techは独立したAPIゲートウェイです。Anthropicとの提携関係はなく、同社の承認を受けておらず、同社の再販業者でもありません。Claudeおよび関連するモデル名は、それぞれの所有者の商標です。

Claude APIのその他のガイド

Claude APIキーの取得方法Claude API の料金を解説Claude APIを最も安く利用する方法Claude APIでCursorを無制限に利用Claude Codeへの無制限アクセスClaude APIゲートウェイとAnthropicへの直接接続の比較OpenAI互換API経由でClaudeを使うClaude モデルを解説:Claude Opus、Sonnet、Haiku、Fable のモデル比較 — すべての Claude API モデル、Anthropic のモデル名と料金(2026)暗号資産でClaude APIの料金を支払うウェイティングリストなしでClaude APIを利用Claudeのトークン使用量を削減する方法Claude APIでClineを無制限に利用Claude APIでRoo Codeを無制限に利用JetBrains IDEでClaudeを無制限に利用Claude APIでAiderを無制限に使うVS CodeでClaudeを無制限に利用Claude向けのOpenCode設定:opencode.jsonの設定、モデル、よくあるエラーClaudeでHermesエージェントを無制限に実行するClaudeでOpenClawを無制限に実行Anthropic互換APIとはClaude CodeのAPIキー — ANTHROPIC_API_KEY:取得方法、設定方法、代わりにclaude setup-tokenを使うべき場合Claude Code APIのコスト — 料金と削減方法Claude APIエラーを解説:サーバーエラー500、過負荷529、レート制限429、不正なリクエスト400 — それぞれの解決方法Claude APIクレジットの購入方法 — Claudeクレジットがどの「Claudeアカウント購入」のオファーよりも優れている理由Claudeの無料API:無料のClaude APIキーはあるのか、2026に実際に無料で使えるものは?Claude APIとClaude Pro/Maxサブスクリプション — どちらを選ぶべきかClaudeでCodex CLIを実行するClaudeをn8nに接続するLiteLLMからClaudeへのルーティングKilo CodeでClaudeを使うGitHub CopilotにClaudeを導入するゲートウェイ経由でZedをClaudeに接続するCherry StudioをClaudeに接続LangChainのChatAnthropic:インポート、base_url、ストリーミング、ツール、エラーAnthropic Python SDK:インストール、base_urlの設定、ストリーミング、エラー処理ClaudeでFactory Droidを実行Claude Code APIの仕組みを解説アプリケーションへのClaude APIの統合Claudeを無制限に利用する方法 — 「Claude Codeのクラック版」が存在しない理由

その他の Claude API ガイド

Anthropic互換APIとはAnthropic Python SDK:インストール、base_urlの設定、ストリーミング、エラー処理Claude APIクレジットの購入方法Claude APIを最も安く利用する方法Claude APIエラーを解説:サーバーエラー500、過負荷529、レート制限429、不正なリクエスト400 — それぞれの解決方法Claudeの無料API:無料のClaude APIキーはあるのか、2026に実際に無料で使えるものは?アプリケーションへのClaude APIの統合Claude モデルを解説:Claude Opus、Sonnet、Haiku、Fable のモデル比較 — すべての Claude API モデル、Anthropic のモデル名と料金(2026)Claude API の料金を解説Claude APIゲートウェイとAnthropicへの直接接続の比較Claude APIとClaude Pro/Maxサブスクリプション — どちらを選ぶべきか暗号資産でClaude APIの料金を支払うウェイティングリストなしでClaude APIを利用Claude Code APIの仕組みを解説Claude Code APIのコスト — 料金と削減方法Claude CodeのAPIキー — ANTHROPIC_API_KEY:取得方法、設定方法、代わりにclaude setup-tokenを使うべき場合Claudeを無制限に利用する方法Claude API キーの取得方法Claudeのトークン使用量を削減する方法OpenAI SDK で Claude を使う:OpenAI 互換エンドポイント、ストリーミング、ツール、制限ゲートウェイ経由でHermes AgentとClaudeを使う:カスタムプロバイダーの設定、コスト管理、問題の解決方法ClaudeでOpenClawを無制限に実行Claude APIへの無制限アクセスとは無制限のClaude APIキーを取得する方法Claude Codeを無制限に利用 — トークン制限なしClaude Opus 4.8への無制限アクセスClaudeを無制限に利用 — プランと料金ゲートウェイ経由でAiderとClaudeを使う:ANTHROPIC_API_BASE、設定ファイル、アーキテクトモード、問題の解決方法Cherry StudioをClaudeに接続Claude Codeへの無制限アクセスClaude APIでClineを無制限に利用カスタムプロバイダーでCodex CLIを使う:config.toml、GPTとClaudeのモデル、IDE拡張機能、問題の解決方法Claudeの無制限アクセスでCursorを使うClaudeでFactory Droidを実行ゲートウェイ経由でGitHub Copilot ChatとClaudeを使う:Custom Endpointの設定、エージェントモード、問題の解決方法JetBrains IDEでClaudeを無制限に利用Kilo CodeでClaudeを使うLangChainのChatAnthropic:インポート、base_url、ストリーミング、ツール、エラーLiteLLMからClaudeへのルーティングClaudeをn8nに接続するClaude向けのOpenCode設定:opencode.jsonの設定、モデル、よくあるエラーClaude APIでRoo Codeを無制限に利用VS CodeでClaudeを無制限に利用ゲートウェイ経由でZedをClaudeに接続する