DeepSeek-V4-Pro-0813 wurde am 12. August 2026 allgemein verfügbar und wird unter der immergrünen Modell-ID deepseek-v4-pro auf https://api.deepseek.com bereitgestellt, zusammen mit dem günstigeren deepseek-v4-flash (Unite.AI berichtete über die GA-Ankündigung). Die wichtigsten Spezifikationen sind beeindruckend: ein 1M-Token-Kontextfenster, 384K maximale Ausgabe, Tool-Aufrufe, strukturierte Ausgaben und drei Denkmodi, die die Argumentationskette des Modells in einem reasoning_content-Feld sichtbar machen.
Das Ungewöhnliche sind nicht die Spezifikationen. Es ist, dass ein einziges Modell in drei API-Dialekten antwortet. V4 Pro akzeptiert OpenAI ChatCompletions-Anfragen, Anthropic Messages-Anfragen und Anfragen an DeepSeeks eigene Responses API. Richten Sie Ihren bestehenden OpenAI SDK-Code darauf aus, richten Sie einen von Claude erstellten Agenten darauf aus oder verbinden Sie es mit einer Agentenschleife im Codex-Stil, gleiche Gewichte, drei Wire-Formate.
Noch niemand hat die drei DeepSeek V4 Pro API-Formate nebeneinander dargestellt, daher tut dieser Leitfaden dies. Sie werden eine funktionierende Anfrage pro Format sehen, wo sich die Formen tatsächlich unterscheiden, eine Vergleichstabelle und wie man alle drei von einem einzigen Apidog-Projekt mit gemeinsamen Umgebungsvariablen testen kann. Wenn Sie die Kontoeinrichtung und den ersten Aufruf durchgehen möchten, beginnen Sie mit wie man die DeepSeek V4 API verwendet und kehren Sie dann zurück.
TL;DR
- DeepSeek-V4-Pro-0813 ist GA unter
deepseek-v4-proaufhttps://api.deepseek.com;deepseek-v4-flashbietet die gleichen Schnittstellen zu einem niedrigeren Preis. - Es unterstützt drei API-Formate: OpenAI ChatCompletions (funktioniert mit dem Standard-
openai-SDK durch Änderung derbase_url), Anthropic Messages (Drop-in füranthropic-SDK-förmige Anfragen, einschließlich Claude Code) und DeepSeeks Responses API (seine neueste Schnittstelle, gebaut für Agenten im Codex-Stil und zustandsbehaftete Workflows). - Spezifikationen: 1M Kontext, 384K maximale Ausgabe, Tool-Aufrufe, strukturierte Ausgaben, drei Denkmodi mit
reasoning_content. - Preise: $0.435/M Eingabetokens (Cache-Fehler), $0.003625/M bei Cache-Treffer, $0.87/M Ausgabe.
- Die Formate unterscheiden sich in der Platzierung des System-Prompts, der Semantik von
max_tokens, der Form des Tool-Schemas und der Form der Streaming-Ereignisse, Details siehe unten. - Ein Apidog-Projekt mit
{{DEEPSEEK_API_KEY}}und Format-spezifischen Basis-URL-Variablen ermöglicht es Ihnen, den gleichen Prompt an alle drei zu senden und die Rohantworten zu vergleichen.
Warum ein Modell drei Dialekte spricht
Dies ist ein Schritt zur Ökosystem-Kompatibilität: Jedes API-Format ist eine installierte Tooling-Basis, die DeepSeek kostenlos erhält. ChatCompletions ist die Lingua franca; Tausende von SDKs und Frameworks können V4 Pro mit einer einzeiligen base_url-Änderung aufrufen. Das Anthropic Messages-Format richtet sich an Teams, die auf Claude aufgebaut haben: Agenten, Evaluierungs-Harnesses und Tools wie Claude Code können V4 Pro ohne Neuschreiben ansprechen. Und die Responses API ist DeepSeeks Wette auf Agenten: deepseek-v4-flash erhielt es im Juli für die Kompatibilität im Codex-Stil, und V4 Pro wird mit ihr zur GA für zustandsbehaftete, mehrstufige Workflows ausgeliefert.
V4 Pro ist auch auf Aggregatoren gelistet (siehe die OpenRouter-Seite für deepseek-v4-pro-0813), aber die Drei-Formate-Geschichte bezieht sich auf DeepSeeks First-Party API, die dieser Artikel testet. Für einen umfassenderen Blick auf die V4-Familie siehe wie man DeepSeek V4 verwendet.
Format 1: OpenAI ChatCompletions
Dies ist das Format, das Sie bereits kennen: ein messages-Array, in dem der System-Prompt als erste Nachricht mit role: "system" enthalten ist, und eine optionale Obergrenze für Max-Tokens. Die Einrichtung ist für alle drei Formate gleich, daher hier einmalig: Ihren DeepSeek API-Schlüssel, DeepSeeks Basis-URL und das model auf deepseek-v4-pro (oder deepseek-v4-flash) gesetzt. Nur der Endpunkt und die Form des Anfragetextes ändern sich.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_DEEPSEEK_API_KEY",
base_url="https://api.deepseek.com",
)
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "You are a precise technical writer."},
{"role": "user", "content": "Explain idempotency keys in two sentences."}
],
)
print(response.choices[0].message.content)
Kein neues SDK, kein neues Authentifizierungsschema. Tool-Aufrufe verwenden das bekannte verschachtelte function-Format, und Streaming erfolgt als chat.completion.chunk-Deltas, die mit data: [DONE] terminiert werden und der OpenAI-Spezifikation entsprechen. Ein V4-spezifisches Verhalten, das zu berücksichtigen ist: Bei aktivem Denkmodus wird die Argumentationskette in einem separaten reasoning_content-Feld neben content geliefert, daher sollten Parser das zusätzliche Feld tolerieren.
Wann sollte man es verwenden: Wenn Sie bestehende OpenAI-Tools, Frameworks im LangChain-Stil oder interne Bibliotheken haben, die bereits ChatCompletions beherrschen. Es ist der reibungsärmste Weg und am einfachsten zu verifizieren; die Anfrageanatomie ist identisch mit dem, was in Testen der ChatGPT API mit Apidog behandelt wird, wobei nur der Host und das Modell ausgetauscht wurden.
Format 2: Anthropic Messages
Das Messages-Format sieht auf den ersten Blick ähnlich aus und unterscheidet sich in Weisen, die eine naive Übersetzung erschweren. Drei Unterschiede sind am wichtigsten, alle stammen aus der Anthropic-Spezifikation:
- Der System-Prompt wird aus dem Array verschoben. Er ist ein
system-Parameter auf oberster Ebene; dasmessages-Array enthält nur abwechselndeuser- undassistant-Runden. max_tokensist erforderlich, nicht optional. Jede Anfrage deklariert ein explizites Ausgabebudget. Mit der maximalen Ausgabe von 384K bei V4 Pro ist diese Obergrenze großzügig, aber Sie müssen sie angeben.- Tool-Definitionen sind flach. Jedes Tool enthält
name,descriptionund eininput_schemaauf oberster Ebene, keine verschachteltefunction-Wrapper. Tool-Aufrufe kommen alstool_use-Inhaltsblöcke zurück, und Sie geben Ergebnisse alstool_result-Blöcke innerhalb einer Benutzer-Nachricht zurück.
Python, Messages-Anfrage über das anthropic-SDK:
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com/anthropic", # Anthropic-compatible base; confirm current path in DeepSeek's docs
)
message = client.messages.create(
model="deepseek-v4-pro",
max_tokens=8192,
system="You are a precise technical writer.",
messages=[
{"role": "user", "content": "Explain idempotency keys in two sentences."}
],
)
print(message.content[0].text)
Antworten kommen als Liste von Inhaltsblöcken und nicht als einzelner String zurück, und Streaming verwendet typisierte SSE-Ereignisse message_start, content_block_delta, message_stop anstelle von einheitlichen Blöcken. Die Authentifizierung folgt den Header-Konventionen der Anthropic-Spezifikation anstelle eines Bearer-Tokens. Die DeepSeek API-Dokumentation enthält die aktuellen Details der kompatiblen Schnittstelle.
Der praktische Nutzen sind Agenten. Da Tools wie Claude Code ihren Endpunkt aus Umgebungsvariablen lesen, können Sie einen von Claude erstellten Agenten auf DeepSeek ausrichten, ohne dessen Code zu ändern:
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=$DEEPSEEK_API_KEY
export ANTHROPIC_MODEL=deepseek-v4-pro
Wann sollte man es verwenden: Wenn Ihre Tools für Claude entwickelt wurden. Wenn Ihr Team bereits Messages-förmige Anfragen an Anthropic-Modelle sendet (die gleiche Anatomie, die in unserem Claude Opus 5 API-Leitfaden behandelt wird), ermöglicht Ihnen dieses Format, DeepSeek gegen Claude im selben Harness A/B-Tests zu unterziehen, mit denselben Anfrage-Bodies und denselben Streaming-Handlern.
Format 3: DeepSeeks Responses API
Die Responses API ist DeepSeeks neueste Schnittstelle, und der Grund für ihre Existenz sind Agenten. V4 Flash hat es im Juli übernommen, damit Agenten im Codex-Stil DeepSeek-Modelle steuern können; V4 Pro wurde am ersten Tag damit gestartet. Die Anfrageform folgt der OpenAI Responses-Spezifikation: Sie senden input (einen String oder eine Liste von typisierten Elementen) plus instructions auf oberster Ebene, anstelle eines einzelnen Nachrichten-Arrays.
curl https://api.deepseek.com/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-v4-pro",
"instructions": "You are an API review agent. Be terse.",
"input": "Review this OpenAPI diff and list any breaking changes: [diff here]",
"stream": false
}'
Drei Dinge unterscheiden dieses Format von den anderen beiden, alle der Responses-Spezifikation folgend:
- Der Zustand kann serverseitig liegen. Anstatt die gesamte Konversation bei jeder Runde erneut zu senden, kann eine Folgeanfrage die vorherige Antwort über ihre ID (
previous_response_idin der Spezifikation) referenzieren, was mehrstufige Agentenschleifen kostengünstig orchestrierbar macht. - Die Ausgabe ist eine Liste von typisierten Elementen, keine einzelne Nachricht: Argumentationselemente, Textelemente und Tool-Aufruf-Elemente kommen als separate Einträge an, was für Agenten geeignet ist, die auf jeden Elementtyp unterschiedlich reagieren.
- Streaming ist semantisch. Anstatt roher Textdeltas sendet der Stream benannte Ereignisse (
response.output_text.delta,response.completedund ähnliche), sodass ein Agent auf Lebenszyklusänderungen reagieren kann, ohne Chunks per Regex zu parsen.
Tool-Aufrufe existieren auch hier, wobei Tool-Definitionen und function_call/function_call_output-Elemente gemäß der Responses-Spezifikation und nicht gemäß der älteren Formate gestaltet sind. Wo DeepSeeks Implementierungsdetails über die Spezifikation hinausgehen, sollte api-docs.deepseek.com als Quelle der Wahrheit betrachtet werden.
Wann sollte man es verwenden: für agentische und Codex-Stil-Integrationen, lange mehrstufige Workflows oder jedes System, bei dem der serverseitig verwaltete Konversationszustand und typisierte Ausgabeelemente Ihren Orchestrierungscode vereinfachen. Für eine einfache Chat-Vervollständigung ist dies mehr Aufwand, als Sie brauchen.
Die drei Formate im Vergleich
| OpenAI ChatCompletions | Anthropic Messages | DeepSeek Responses API | |
|---|---|---|---|
| Endpunkt | POST /chat/completions auf api.deepseek.com |
POST /v1/messages auf der Anthropic-kompatiblen Basis (/anthropic) |
POST /responses auf api.deepseek.com |
| Anfrageform | Einzelnes messages-Array, System-Prompt als erste Nachricht |
system auf oberster Ebene + abwechselnde user-/assistant-Nachrichten |
instructions auf oberster Ebene + input-String oder Item-Liste |
| Ausgabebegrenzung | Optionale Max-Tokens-Begrenzung | max_tokens erforderlich |
Optionale Begrenzung gemäß Responses-Spezifikation |
| Tool-Definitionen | Verschachtelt: function-Objekt mit parameters |
Flach: input_schema pro Tool |
Flache Einträge gemäß Responses-Spezifikation |
| Tool-Ergebnisse | role: "tool"-Nachrichten |
tool_result-Inhaltsblöcke |
function_call_output-Elemente |
| Streaming | Einheitliche chat.completion.chunk-Deltas, endet mit [DONE] |
Typisierte Ereignisse: message_start → content_block_delta → message_stop |
Semantische Lebenszyklusereignisse (response.output_text.delta, …) |
| Konversationszustand | Client-verwaltet (Historie erneut senden) | Client-verwaltet (Historie erneut senden) | Serverseitige Option über Referenz auf vorherige Antwort |
| Am besten für | Bestehende OpenAI-Tools und Frameworks | Claude-native Tools und Agenten (Claude Code) | Agentenschleifen, Codex-Stil und zustandsbehaftete Workflows |
Gleiches Modell, gleiche Preise, drei Verträge. Die Unterschiede liegen vollständig auf Wire-Ebene, was genau die Art von Unterschied ist, die am einfachsten empirisch zu überprüfen ist, anstatt sie aus dem Gedächtnis abzurufen.
Alle drei in einem Apidog-Projekt testen
Zu beobachten, wie der gleiche Prompt drei unterschiedlich geformte Antworten produziert, erfasst die Implementierungsdetails, die keine Vergleichstabelle leisten kann. Die wiederholbare Einrichtung:
- Erstellen Sie ein Projekt, drei Ordner:
chat-completions,anthropic-messages,responses, jeder enthält eine gespeicherte Anfrage pro Szenario (einfache Vervollständigung, Tool-Aufruf, Streaming). - Teilen Sie Anmeldeinformationen über Umgebungsvariablen. Definieren Sie
{{DEEPSEEK_API_KEY}},{{BASE_URL}}und{{ANTHROPIC_BASE}}einmal; das Rotieren eines Schlüssels oder der Wechsel zudeepseek-v4-flashwird zu einer Änderung in einem Feld. - Senden Sie den identischen Prompt durch jedes Format und vergleichen Sie die Roh-Bodies:
choices[0].message.contentgegenüber einercontent-Blockliste gegenüber typisierten Ausgabeelementen. - Untersuchen Sie die Streams mit
stream: true. Die integrierte SSE-Ansicht macht die Unterschiede deutlich: anonyme, mit[DONE]terminierte Chunks, benannte Messages-Ereignisse, Responses-Lebenszyklusereignisse. Wenn SSE-Debugging neu für Sie ist, behandelt wie man API-Antworten mit SSE streamt die Mechanik. - Fügen Sie Assertions zu den Feldern hinzu, die Ihre Integration tatsächlich liest (Inhaltspfad, Position der Tool-Call-ID, Abbruchgrund), und führen Sie die Sammlung jedes Mal erneut aus, wenn DeepSeek ein Snapshot-Update veröffentlicht.
Das Drei-Ordner-Projekt dient gleichzeitig als lebende Dokumentation: „Wie sieht das Messages-Tool-Schema noch mal aus?“ wird zu einer gespeicherten Anfrage mit einer tatsächlich erfassten Antwort.
Migrationshinweise
Bestehenden Code auf V4 Pro zu migrieren, ist absichtlich langweilig, und genau das ist der Punkt.
Von OpenAI: Ändern Sie drei Werte – base_url auf https://api.deepseek.com, den API-Schlüssel und das Modell auf deepseek-v4-pro. Ihre Nachrichtenkonstruktion, Tool-Definitionen und Streaming-Handler bleiben erhalten. Zwei Überprüfungen, bevor Sie es veröffentlichen: Bestätigen Sie, dass alle Parameter über die Kernspezifikation hinaus das erwartete Verhalten zeigen (führen Sie sie durch Ihre Testsammlung, anstatt anzunehmen), und stellen Sie sicher, dass Ihre Antwortverarbeitung reasoning_content neben content toleriert.
Von Anthropic: Tauschen Sie die Basis-URL zum Anthropic-kompatiblen Pfad, tauschen Sie den Schlüssel aus und legen Sie das Modell fest. Da die Messages-Form übernommen wird, sind für einen spezifikationskonformen Client keine Logikänderungen erforderlich (erforderliche max_tokens, Inhaltsblöcke, typisierte Stream-Ereignisse). Für Agenten, die Umgebungsvariablen lesen, besteht die Migration aus den drei zuvor gezeigten export-Zeilen.
Zur Responses API: Dies ist eine Neuentwicklung Ihrer Anfrageschicht und keine Konfigurationsänderung, da keines der älteren Formate mechanisch übersetzt werden kann. Übernehmen Sie es, wenn Sie das nutzen möchten, was es einzigartig bietet – serverseitigen Zustand und typisierte Ausgabeelemente –, nicht weil es das Neueste ist.
In jeder Richtung ist der Rat derselbe: Migrieren Sie die Konfiguration und führen Sie dann Ihre Regressionstest-Sammlung erneut aus, bevor Sie ihr vertrauen. Bei diesen Preisen kostet ein Nachmittag Verifizierungsverkehr weniger als der Kaffee, den Sie dabei trinken.
FAQ
Welches Format sollte ein neues Projekt wählen? Standardmäßig ChatCompletions für die breiteste Tool-Unterstützung. Wählen Sie Messages, wenn Ihr Stack Claude-nativ ist. Wählen Sie die Responses API, wenn Sie einen mehrstufigen Agenten erstellen und serverseitig verwalteten Zustand wünschen.
Kann ich Claude Code auf DeepSeek V4 Pro ausrichten? Ja. Setzen Sie ANTHROPIC_BASE_URL auf DeepSeeks Anthropic-kompatiblen Endpunkt, verwenden Sie Ihren DeepSeek-Schlüssel als Authentifizierungs-Token und setzen Sie das Modell auf deepseek-v4-pro. Das ist der praktische Nutzen der Messages-Format-Unterstützung.
Funktionieren Tool-Aufrufe und strukturierte Ausgaben in jedem Format? Das Modell unterstützt beides, und jeder Dialekt macht Tool-Aufrufe in der Form seiner eigenen Spezifikation zugänglich: verschachtelte Funktions-Objekte, input_schema-Tools oder Responses-Stil-Elemente. Überprüfen Sie Ihre spezifischen Schemata gegen jede Schnittstelle in einer Testsammlung, bevor Sie sie veröffentlichen; Kantenfälle bei der Schema-Form sind genau die Punkte, an denen kompatible Implementierungen auseinandergehen.
