Source: https://aiprimetech.io/de/learn/use-claude-api-with-vercel-ai-sdk/ [Startseite](/de/) / [Lernen](/de/learn/) / Claude mit dem Vercel AI SDK: createAnthropic baseURL, Streaming und Fehlerbehebung # Claude mit dem Vercel AI SDK: createAnthropic baseURL, Streaming und Fehlerbehebung Der Anthropic-Anbieter des AI SDK, @ai-sdk/anthropic, kommuniziert mit der Messages API. Seine baseURL ist standardmäßig https://api.anthropic.com/v1, daher ersetzen Sie für ein Gateway dieses gesamte Präfix, einschließlich /v1. OpenCode, Kilo Code und viele Agenten-Frameworks verwenden intern denselben Anbieter, weshalb dieselbe Regel auch in ihren Konfigurationen gilt. ## Installation TerminalKopieren ``` npm i ai @ai-sdk/anthropic ``` ## Anbieter erstellen lib/anthropic.tsKopieren ``` 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 }); ``` Es gibt keine Umgebungsvariable für die Basis-URL in @ai-sdk/anthropic: Übergeben Sie baseURL im Code. Der einfache anthropic -Import verwendet immer den eigenen Endpunkt von Anthropic. ## generateText und streamText generate.tsKopieren ``` 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.tsKopieren ``` 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); ``` Beide Aufrufe akzeptieren maxRetries (standardmäßig 2) für vorübergehende Fehler wie 429 und 5xx. ## Thinking und Prompt-Caching Anthropic-spezifische Optionen werden in providerOptions.anthropicangegeben. Aktuelle Modelle verwenden adaptives Thinking: thinking.tsKopieren ``` const { text } = await generateText({ model: anthropic('claude-sonnet-5'), providerOptions: { anthropic: { thinking: { type: 'adaptive' } } }, prompt: 'Plan a zero-downtime database migration in five steps.', }); ``` Speichern Sie einen langen, stabilen Systemprompt im Cache mit cacheControl; Cache-Lesezugriffe erscheinen dann in usage.inputTokenDetails.cacheReadTokens. Prompts unterhalb der Mindestlänge des Modells werden nicht im Cache gespeichert. cache.tsKopieren ``` const result = await generateText({ model: anthropic('claude-sonnet-5'), messages: [ { role: 'system', content: longStableInstructions, providerOptions: { anthropic: { cacheControl: { type: 'ephemeral' } } }, }, { role: 'user', content: question }, ], }); ``` ## Die OpenAI-kompatible Alternative Das Gateway unterstützt auch das Format von OpenAI Chat Completions, sodass @ai-sdk/openai-compatible mit derselben /v1 -Basis-URL funktioniert. Dies ist der Zugangsweg für GPT-Modelle mit demselben Schlüssel; bei Claude erhält der oben beschriebene native Anbieter Thinking und die Cache-Steuerung. lib/gateway.tsKopieren ``` 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 ``` ## Fehlerbehebung | Was Sie sehen | Ursache | Lösung | Ein JSON-Parsing-Fehler, die Antwort beginnt mit < | baseURL ohne /v1: Die Anfrage erreichte die Website | baseURL: 'https://aiprimetech.io/v1' | 404 page not found | /v1 zweimal | Genau ein /v1 | Invalid API key | process.env -Wert ist in dieser Laufzeitumgebung nicht definiert (Serverless- und Edge-Funktionen haben eigene Umgebungsvariablen), daher griff das SDK zurück auf ANTHROPIC_API_KEY | Setzen Sie die Variable in der Umgebung des Deployments | Modell nicht unterstützt | Veraltete oder falsch geschriebene Modell-ID | Verwenden Sie eine ID aus der folgenden Tabelle | Concurrency limit exceeded for user | Promise.all über ein großes Array | Begrenzen Sie parallele Aufrufe, z. B. mit p-limit | No available accounts / 503 | Vorübergehend begrenzte Kapazität beim vorgelagerten Anbieter | Wird automatisch erneut versucht; erhöhen Sie maxRetries | Modell-ID | Einsatzbereich | claude-sonnet-5 | Standard für Programmier- und Agentenaufgaben: schnell, leistungsstark, mittleres Preisniveau. | claude-opus-5-5 | Anspruchsvollere Denkaufgaben, umfangreiche Refactorings, lange Agentenläufe. | claude-fable-5-1 | Am leistungsfähigsten und am teuersten; für die schwierigsten Aufgaben reservieren. | claude-haiku-4-5 | Günstig und schnell: Titel, Zusammenfassungen, Klassifizierung, kleine Schritte. ## Häufig gestellte Fragen Was ist die standardmäßige baseURL von @ai-sdk/anthropic? https://api.anthropic.com/v1. Ein Gateway ersetzt das gesamte Präfix, daher muss es mit /v1 enden, z. B. https://aiprimetech.io/v1. Gibt es eine Umgebungsvariable für die Anthropic-Basis-URL des AI SDK? Nein. Der Anbieter liest ANTHROPIC_API_KEY (oder ANTHROPIC_AUTH_TOKEN) aus der Umgebung, aber die Basis-URL wird mit createAnthropic({ baseURL }) festgelegt. Warum schlägt das AI SDK beim Aufruf von Claude mit einem Parsing-Fehler fehl? Meist fehlt /v1 in der baseURL, sodass die Anfrage eine Website erreicht und HTML statt JSON zurückerhält. Sollte ich @ai-sdk/anthropic oder @ai-sdk/openai-compatible für Claude verwenden? @ai-sdk/anthropic: Es verwendet die native Messages API, sodass Thinking und Prompt-Caching funktionieren. Verwenden Sie den OpenAI-kompatiblen Anbieter für GPT-Modelle. Claude in wenigen Minuten nutzen Holen Sie sich einen API-Schlüssel – ohne Anthropic-Konto oder Warteliste.[API-Schlüssel erhalten](/register) AI Prime Tech ist ein unabhängiges API-Gateway. Es ist weder mit Anthropic verbunden noch von Anthropic empfohlen und auch kein Wiederverkäufer von Anthropic. Claude und zugehörige Modellnamen sind Marken ihrer jeweiligen Inhaber. ## Weitere Anleitungen zur Claude API [So erhalten Sie einen Claude API-Schlüssel](/de/learn/how-to-get-a-claude-api-key/)[Claude-API-Preise erklärt](/de/learn/claude-api-pricing-explained/)[Die günstigste Möglichkeit, die Claude API zu nutzen](/de/learn/cheapest-way-to-use-claude-api/)[Cursor unbegrenzt mit der Claude API nutzen](/learn/use-claude-api-with-cursor/)[Unbegrenzter Zugang zu Claude Code](/de/learn/use-claude-api-with-claude-code/)[Claude API-Gateway vs. direkter Zugang zu Anthropic](/de/learn/claude-api-vs-anthropic-direct/)[Claude über eine OpenAI-kompatible API nutzen](/de/learn/openai-compatible-claude-api/)[Claude-Modelle erklärt: ein Vergleich von Claude Opus, Sonnet, Haiku und Fable — alle Claude-API-Modelle, Anthropic-Modellnamen und Preise (2026)](/de/learn/claude-api-models-compared/)[Die Claude API mit Kryptowährungen bezahlen](/de/learn/claude-api-with-crypto-payment/)[Zugang zur Claude API ohne Warteliste](/de/learn/claude-api-without-waitlist/)[So reduzieren Sie den Token-Verbrauch von Claude](/de/learn/how-to-reduce-claude-token-usage/)[Cline unbegrenzt mit der Claude API nutzen](/de/learn/use-claude-api-with-cline/)[Roo Code unbegrenzt mit der Claude API nutzen](/de/learn/use-claude-api-with-roo-code/)[Claude unbegrenzt in JetBrains-IDEs nutzen](/de/learn/use-claude-api-with-jetbrains/)[Aider unbegrenzt mit der Claude API nutzen](/de/learn/use-claude-api-with-aider/)[Claude unbegrenzt in VS Code nutzen](/de/learn/use-claude-api-with-vscode/)[OpenCode-Konfiguration für Claude: Einrichtung von opencode.json, Modelle und häufige Fehler](/de/learn/use-claude-api-with-opencode/)[Einen unbegrenzten Hermes-Agenten mit Claude betreiben](/de/learn/run-hermes-agent-with-claude-api/)[OpenClaw unbegrenzt mit Claude betreiben](/de/learn/run-openclaw-with-claude-api/)[Was eine Anthropic-kompatible API bedeutet](/de/learn/anthropic-compatible-api/)[Claude Code-API-Schlüssel — ANTHROPIC_API_KEY: So erhalten und konfigurieren Sie ihn, und wann Sie stattdessen claude setup-token verwenden sollten](/de/learn/claude-code-api-key-setup/)[Claude Code-API-Kosten — Preise und Möglichkeiten zur Kostensenkung](/de/learn/claude-code-api-costs/)[Claude API-Fehler erklärt: Serverfehler 500, Überlastung 529, Ratenlimit 429, fehlerhafte Anfrage 400 — und die jeweilige Lösung](/de/learn/claude-api-errors-troubleshooting/)[So kaufen Sie Claude API-Guthaben – und warum Claude-Guthaben besser ist als jedes Angebot zum „Kauf eines Claude-Kontos“](/de/learn/buy-claude-api-credits/)[Kostenlose Claude API: Gibt es einen kostenlosen Claude API-Schlüssel, und was ist in 2026 tatsächlich kostenlos?](/de/learn/claude-api-free-trial/)[Claude API vs. Claude Pro/Max-Abonnement — welche Option wählen?](/de/learn/claude-api-vs-subscription/)[Die Codex CLI mit Claude ausführen](/de/learn/use-claude-api-with-codex/)[Claude mit n8n verbinden](/de/learn/use-claude-api-with-n8n/)[LiteLLM-Anfragen an Claude weiterleiten](/de/learn/use-claude-api-with-litellm/)[Claude in Kilo Code verwenden](/de/learn/use-claude-api-with-kilo-code/)[Claude in GitHub Copilot integrieren](/de/learn/use-claude-api-with-github-copilot/)[Zed über das Gateway mit Claude verbinden](/de/learn/use-claude-api-with-zed/)[Cherry Studio mit Claude verbinden](/de/learn/use-claude-api-with-cherry-studio/)[ChatAnthropic in LangChain: Import, base_url, Streaming, Tools und Fehler](/de/learn/use-claude-api-with-langchain/)[Anthropic Python SDK: installieren, base_url setzen, streamen und Fehler behandeln](/de/learn/anthropic-python-sdk/)[Factory Droid mit Claude betreiben](/de/learn/use-claude-api-with-factory-droid/)[Die Claude Code API erklärt](/de/learn/claude-code-api/)[Die Claude API in Ihre Anwendung integrieren](/de/learn/claude-api-integration/)[So nutzen Sie Claude unbegrenzt – und warum es kein „gecracktes Claude Code“ gibt](/de/learn/get-unlimited-claude-usage/)