<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Emre Demir</title>
    <description>The latest articles on Forem by Emre Demir (@emree_demir).</description>
    <link>https://forem.com/emree_demir</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3821679%2F6e70a234-c701-4cfd-b54c-26469311e90f.png</url>
      <title>Forem: Emre Demir</title>
      <link>https://forem.com/emree_demir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/emree_demir"/>
    <language>en</language>
    <item>
      <title>Claude Code: 'Ungültige custom3p Enterprise Config' Fehler beheben</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Mon, 11 May 2026 03:36:29 +0000</pubDate>
      <link>https://forem.com/emree_demir/claude-code-ungultige-custom3p-enterprise-config-fehler-beheben-3j36</link>
      <guid>https://forem.com/emree_demir/claude-code-ungultige-custom3p-enterprise-config-fehler-beheben-3j36</guid>
      <description>&lt;p&gt;Wenn Sie Claude Code auf DeepSeek V4, OpenRouter, LiteLLM oder ein anderes Drittanbieter-LLM-Gateway routen, kann der Start mit &lt;code&gt;Invalid custom3p enterprise config&lt;/code&gt; abbrechen. Der Fehler bedeutet: Claude Code konnte Ihre benutzerdefinierte Drittanbieter-Konfiguration nicht validieren, bevor die erste Modellanfrage gesendet wurde.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Teste Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Dieser Leitfaden zeigt, was &lt;code&gt;custom3p&lt;/code&gt; bedeutet, welche sechs Ursachen am häufigsten sind und wie Sie jede davon praktisch beheben. Die Beispiele decken OpenRouter, LiteLLM und lokale vLLM-Setups ab.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Invalid custom3p enterprise config&lt;/code&gt; bedeutet, dass Claude Code Ihre Drittanbieter-Konfiguration nicht akzeptiert.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;custom3p&lt;/code&gt; ist die interne Bezeichnung für einen benutzerdefinierten Drittanbieter-Endpunkt, der über &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; gesetzt wird.&lt;/p&gt;

&lt;p&gt;Prüfen Sie zuerst diese Punkte:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; darf meist &lt;strong&gt;kein nachgestelltes &lt;code&gt;/v1&lt;/code&gt;&lt;/strong&gt; enthalten.&lt;/li&gt;
&lt;li&gt;Verwenden Sie die richtige Auth-Variable:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ANTHROPIC_AUTH_TOKEN&lt;/code&gt; für Bearer-Token&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; für &lt;code&gt;x-api-key&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Validieren Sie &lt;code&gt;~/.claude/settings.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Stellen Sie sicher, dass das Claude-Code-Onboarding abgeschlossen ist.&lt;/li&gt;
&lt;li&gt;Prüfen Sie, ob Ihr Gateway benötigte Header weiterleitet.&lt;/li&gt;
&lt;li&gt;Prüfen Sie verwaltete Unternehmensrichtlinien.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In vielen Fällen reicht bereits das Entfernen von &lt;code&gt;/v1&lt;/code&gt; aus der Base-URL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was „custom3p“ bedeutet
&lt;/h2&gt;

&lt;p&gt;Claude Code kann Anfragen über verschiedene Modi routen:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modus&lt;/th&gt;
&lt;th&gt;Auslöser&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic API&lt;/td&gt;
&lt;td&gt;Keine Überschreibung gesetzt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Bedrock&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CLAUDE_CODE_USE_BEDROCK=1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Vertex AI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CLAUDE_CODE_USE_VERTEX=1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Foundry&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CLAUDE_CODE_USE_FOUNDRY=1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Benutzerdefinierter Drittanbieter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; zeigt auf einen anderen Host&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Die letzte Variante ist &lt;code&gt;custom3p&lt;/code&gt;: ein benutzerdefinierter Third-Party-Provider.&lt;/p&gt;

&lt;p&gt;Beispiele:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;LiteLLM&lt;/li&gt;
&lt;li&gt;lokaler vLLM-Server&lt;/li&gt;
&lt;li&gt;internes Unternehmens-Gateway&lt;/li&gt;
&lt;li&gt;eigener Proxy vor einem Modellanbieter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenn Claude Code eine solche Base-URL erkennt, validiert es die Enterprise-/Gateway-Konfiguration vor dem ersten Request. Schlägt diese Validierung fehl, erscheint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Invalid custom3p enterprise config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das ist ein Konfigurationsfehler, keine automatische Policy-Blockade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Warum der Fehler häufiger auftritt
&lt;/h2&gt;

&lt;p&gt;Im April 2026 blockierte Anthropic den Zugriff auf Claude Pro- und Max-Abonnements für agentische Drittanbieter-Tools, die die Claude-Code-Client-ID fälschten.&lt;/p&gt;

&lt;p&gt;Das ist &lt;strong&gt;nicht&lt;/strong&gt; dasselbe Problem.&lt;/p&gt;

&lt;p&gt;Viele Entwickler nutzen seitdem die offiziell unterstützte Drittanbieter-Konfiguration von Claude Code, um den Agenten-Loop über günstigere oder eigene Backends zu betreiben. Ein Beispiel ist DeepSeek V4 Pro über &lt;a href="https://openrouter.ai/deepseek/deepseek-v4-pro" rel="noopener noreferrer"&gt;OpenRouter&lt;/a&gt;. Projekte wie &lt;a href="https://github.com/aattaran/deepclaude" rel="noopener noreferrer"&gt;DeepClaude&lt;/a&gt; verpacken solche Setups in eine CLI.&lt;/p&gt;

&lt;p&gt;Der Haken: Die offizielle Drittanbieter-Konfiguration muss exakt stimmen. Ein falscher Header, ein falscher JSON-Eintrag oder ein falsch formatierter Endpoint reicht aus, um &lt;code&gt;Invalid custom3p enterprise config&lt;/code&gt; auszulösen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grundursache 1: &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; enthält ein nachgestelltes &lt;code&gt;/v1&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Claude Code hängt selbst &lt;code&gt;/v1/messages&lt;/code&gt; an Ihre &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; an.&lt;/p&gt;

&lt;p&gt;Wenn Sie bereits &lt;code&gt;/v1&lt;/code&gt; setzen, entsteht:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/v1/v1/messages
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das führt häufig zu &lt;code&gt;404&lt;/code&gt; oder zur fehlgeschlagenen Preflight-Validierung.&lt;/p&gt;

&lt;h3&gt;
  
  
  Falsch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://api.openrouter.ai/api/v1"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://litellm.yourcompany.com/v1"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Richtig
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://api.openrouter.ai/api"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://litellm.yourcompany.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Endpoint testen
&lt;/h3&gt;

&lt;p&gt;Prüfen Sie, welche URL Claude Code effektiv aufrufen würde:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s2"&gt;"%{http_code}"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/v1/messages"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"claude-sonnet-4-6","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Interpretation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;200&lt;/code&gt;: Endpoint existiert und Anfrage wurde akzeptiert&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;400&lt;/code&gt;: Endpoint existiert, Body ist aber unvollständig oder ungültig&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;404&lt;/code&gt;: sehr wahrscheinlich falsche Base-URL, oft wegen doppeltem &lt;code&gt;/v1&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Grundursache 2: Falsche Authentifizierungsvariable
&lt;/h2&gt;

&lt;p&gt;Claude Code unterstützt zwei Auth-Varianten:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable&lt;/th&gt;
&lt;th&gt;Gesendeter Header&lt;/th&gt;
&lt;th&gt;Typischer Einsatz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;x-api-key&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Anthropic-kompatible Gateways mit API-Key-Header&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ANTHROPIC_AUTH_TOKEN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Authorization: Bearer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;OAuth-/Bearer-Gateways, LiteLLM, viele OpenRouter-Setups&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Wenn Ihr Gateway Bearer-Token erwartet, aber Claude Code &lt;code&gt;x-api-key&lt;/code&gt; sendet, schlägt die Validierung fehl.&lt;/p&gt;

&lt;h3&gt;
  
  
  OpenRouter
&lt;/h3&gt;

&lt;p&gt;OpenRouter erwartet typischerweise einen Bearer-Token:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-or-your-openrouter-key"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://openrouter.ai/api"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nicht verwenden:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-or-your-openrouter-key"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das würde einen &lt;code&gt;x-api-key&lt;/code&gt;-Header senden, den OpenRouter in diesem Setup nicht erwartet.&lt;/p&gt;

&lt;h3&gt;
  
  
  LiteLLM
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-litellm-your-virtual-key"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://your-litellm-server:4000"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Lokaler vLLM-Server oder DeepSeek-Gateway mit API-Key
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-key-here"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://your-vllm-server"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prüfen Sie immer die Auth-Dokumentation Ihres Gateways: Entscheidend ist, welchen Header der Server erwartet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grundursache 3: Fehlerhafte &lt;code&gt;settings.json&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Wenn Sie Claude Code über &lt;code&gt;~/.claude/settings.json&lt;/code&gt; konfigurieren, muss die Datei gültiges JSON enthalten.&lt;/p&gt;

&lt;p&gt;Häufige Fehler sind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nachgestellte Kommas&lt;/li&gt;
&lt;li&gt;typografische Anführungszeichen&lt;/li&gt;
&lt;li&gt;Kommentare in JSON&lt;/li&gt;
&lt;li&gt;fehlende Klammern&lt;/li&gt;
&lt;li&gt;falsch verschachtelte &lt;code&gt;env&lt;/code&gt;-Einträge&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Falsch: nachgestelltes Komma
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_BASE_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://openrouter.ai/api"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_AUTH_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sk-or-your-key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Falsch: intelligente Anführungszeichen
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;“ANTHROPIC_BASE_URL”:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;“https://openrouter.ai/api”&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Richtig
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_BASE_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://openrouter.ai/api"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_AUTH_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sk-or-your-openrouter-key"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  JSON validieren
&lt;/h3&gt;

&lt;p&gt;Mit Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"import json, os; json.load(open(os.path.expanduser('~/.claude/settings.json')))"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Gültiges JSON"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Oder mit &lt;code&gt;jq&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;jq &lt;span class="nb"&gt;.&lt;/span&gt; ~/.claude/settings.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn die Datei nicht parsebar ist, kann Claude Code die Enterprise-Konfiguration nicht lesen und meldet sie als ungültig.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grundursache 4: Onboarding bei Neuinstallation nicht abgeschlossen
&lt;/h2&gt;

&lt;p&gt;Claude Code prüft in &lt;code&gt;~/.claude.json&lt;/code&gt;, ob das Onboarding abgeschlossen wurde.&lt;/p&gt;

&lt;p&gt;Relevant ist:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"hasCompletedOnboarding"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fehlt dieser Wert, kann Claude Code in den Onboarding-Flow wechseln und Ihre &lt;code&gt;settings.json&lt;/code&gt; ignorieren.&lt;/p&gt;

&lt;h3&gt;
  
  
  Status prüfen
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.claude.json | python3 &lt;span class="nt"&gt;-m&lt;/span&gt; json.tool 2&amp;gt;/dev/null | &lt;span class="nb"&gt;grep &lt;/span&gt;hasCompletedOnboarding
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn der Eintrag fehlt oder &lt;code&gt;false&lt;/code&gt; ist, setzen Sie ihn manuell.&lt;/p&gt;

&lt;h3&gt;
  
  
  Minimal funktionierende &lt;code&gt;~/.claude.json&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"hasCompletedOnboarding"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"primaryApiKey"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sk-placeholder"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;primaryApiKey&lt;/code&gt; ist hier nur ein Platzhalter. Ihre eigentliche Gateway-Konfiguration kommt aus &lt;code&gt;settings.json&lt;/code&gt; oder den Umgebungsvariablen.&lt;/p&gt;

&lt;p&gt;Danach Claude Code neu starten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grundursache 5: Gateway leitet erforderliche Header nicht weiter
&lt;/h2&gt;

&lt;p&gt;Claude Code sendet für die Validierung zusätzliche Header. Einige Proxies oder Gateways entfernen diese Header.&lt;/p&gt;

&lt;p&gt;Wichtige Header:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;anthropic-beta
anthropic-version
X-Claude-Code-Session-Id
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn Ihr Gateway diese Header nicht weiterleitet, kann die Preflight-Validierung fehlschlagen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nginx-Beispiel
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/v1/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kn"&gt;proxy_pass&lt;/span&gt; &lt;span class="s"&gt;http://backend&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;anthropic-beta&lt;/span&gt; &lt;span class="nv"&gt;$http_anthropic_beta&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;anthropic-version&lt;/span&gt; &lt;span class="nv"&gt;$http_anthropic_version&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;X-Claude-Code-Session-Id&lt;/span&gt; &lt;span class="nv"&gt;$http_x_claude_code_session_id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;LiteLLM unterstützt diese Weiterleitung seit v1.82.9+ standardmäßig.&lt;/p&gt;

&lt;h3&gt;
  
  
  Workaround: experimentelle Betas deaktivieren
&lt;/h3&gt;

&lt;p&gt;Wenn Sie das Gateway nicht anpassen können:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Damit überspringt Claude Code Funktionen, die den Beta-Header benötigen. Der Kern-Agenten-Loop funktioniert weiter, aber einige experimentelle Funktionen stehen nicht zur Verfügung.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grundursache 6: Konflikt mit verwalteten Unternehmensrichtlinien
&lt;/h2&gt;

&lt;p&gt;Wenn Sie einen Team- oder Enterprise-Plan verwenden, können Administratoren verwaltete Einstellungen ausrollen.&lt;/p&gt;

&lt;p&gt;Diese Einstellungen haben Vorrang vor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;lokalen Umgebungsvariablen&lt;/li&gt;
&lt;li&gt;manuell gesetzten Modelloptionen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prüfen Sie, ob verwaltete Einstellungen aktiv sind:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; ~/.claude/managed-settings.json 2&amp;gt;/dev/null &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Verwaltete Einstellungen gefunden"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Oder innerhalb von Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn verwaltete Einstellungen aktiv sind, muss Ihr Administrator prüfen, ob:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ihre Gateway-Domain erlaubt ist&lt;/li&gt;
&lt;li&gt;Ihre Modell-IDs in &lt;code&gt;availableModels&lt;/code&gt; enthalten sind&lt;/li&gt;
&lt;li&gt;benutzerdefinierte Base-URLs blockiert werden&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für selbstverwaltete Unternehmensbereitstellungen liegen die Einstellungen beispielsweise unter macOS hier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/Library/Application Support/ClaudeCode/managed-settings.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Funktionierende Beispielkonfigurationen
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Claude Code + OpenRouter + DeepSeek V4 Pro
&lt;/h3&gt;

&lt;p&gt;OpenRouter bietet eine Anthropic-kompatible API. Verwenden Sie für OpenRouter eine Base-URL ohne &lt;code&gt;/v1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_BASE_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://openrouter.ai/api"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_AUTH_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sk-or-your-openrouter-key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_DEFAULT_SONNET_MODEL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deepseek/deepseek-v4-pro"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_DEFAULT_OPUS_MODEL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deepseek/deepseek-v4-pro"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_DEFAULT_HAIKU_MODEL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deepseek/deepseek-v4-pro"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Modellüberschreibungen sind wichtig, weil Claude Code sonst weiterhin Standardmodellnamen wie &lt;code&gt;claude-sonnet-4-6&lt;/code&gt; sendet. Dann kann OpenRouter zwar erreichbar sein, aber ein anderes Modell routen als beabsichtigt.&lt;/p&gt;

&lt;p&gt;Hinweis: OpenRouter implementiert die Anthropic-Streaming-Spezifikation für Tool-Aufrufe nicht in allen Randfällen vollständig. Der Haupt-Agenten-Loop funktioniert, komplexe Multi-Tool-Ketten können jedoch Einschränkungen haben. Prüfen Sie den aktuellen Status in der &lt;a href="https://openrouter.ai/docs/guides/coding-agents/claude-code-integration" rel="noopener noreferrer"&gt;OpenRouter Claude Code Integration&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Code + LiteLLM
&lt;/h3&gt;

&lt;p&gt;LiteLLM ist für Claude-Code-Gateways besonders praktisch, weil es Header-Weiterleitung und Modellrouting zentral übernimmt.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;config.yaml&lt;/code&gt; für LiteLLM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;model_list&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;model_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;claude-sonnet-4-6&lt;/span&gt;
    &lt;span class="na"&gt;litellm_params&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deepseek/deepseek-v4&lt;/span&gt;
      &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sk-your-deepseek-key"&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;model_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;claude-opus-4-7&lt;/span&gt;
    &lt;span class="na"&gt;litellm_params&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deepseek/deepseek-v4-pro&lt;/span&gt;
      &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sk-your-deepseek-key"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude-Code-Konfiguration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_BASE_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:4000"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ANTHROPIC_AUTH_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sk-litellm-your-key"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vorteil: Claude Code kann weiterhin &lt;code&gt;claude-sonnet-4-6&lt;/code&gt; senden. LiteLLM mappt diesen Modellnamen intern auf DeepSeek oder ein anderes Backend.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Code + lokales vLLM
&lt;/h3&gt;

&lt;p&gt;Für lokale Modellinferenz mit &lt;a href="https://docs.vllm.ai/en/stable/serving/integrations/claude_code/" rel="noopener noreferrer"&gt;vLLM&lt;/a&gt; starten Sie den Server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; vllm.entrypoints.openai.api_server &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--model&lt;/span&gt; deepseek-ai/DeepSeek-V3 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dtype&lt;/span&gt; auto &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--api-key&lt;/span&gt; local-key &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt; 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Danach Claude Code konfigurieren:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:8000"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"local-key"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_DEFAULT_SONNET_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"deepseek-ai/DeepSeek-V3"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wichtig: Hier wird &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; verwendet, weil der lokale Server in diesem Beispiel API-Key-Authentifizierung nutzt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debugging-Workflow
&lt;/h2&gt;

&lt;p&gt;Wenn die Konfiguration weiterhin fehlschlägt, starten Sie Claude Code mit Debug-Logging:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--debug&lt;/span&gt; 2&amp;gt;&amp;amp;1 | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-100&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Suchen Sie in der Ausgabe nach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Sending request to:&lt;/code&gt; – zeigt die tatsächlich verwendete URL&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Response status:&lt;/code&gt; – zeigt den HTTP-Status des Gateways&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;enterprise config error:&lt;/code&gt; – zeigt Hinweise zur internen Validierung&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Gateway direkt testen
&lt;/h3&gt;

&lt;p&gt;Senden Sie eine Anfrage mit den Headern, die Claude Code typischerweise verwendet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/v1/messages"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"anthropic-version: 2023-06-01"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"anthropic-beta: max-tokens-3-5-sonnet-2024-07-15"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "claude-sonnet-4-6",
    "max_tokens": 10,
    "messages": [{"role": "user", "content": "hi"}]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Interpretation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;200&lt;/code&gt;: Gateway akzeptiert Request&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;401&lt;/code&gt;: Authentifizierung falsch&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;403&lt;/code&gt;: Zugriff blockiert&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;404&lt;/code&gt;: Base-URL oder Pfad falsch&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;422&lt;/code&gt;: Body oder Modellformat nicht akzeptiert&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenn Curl funktioniert, Claude Code aber nicht, prüfen Sie die Debug-Ausgabe. Claude Code sendet zusätzlich Preflight-/Validierungsanfragen, die Ihr einfacher Curl-Test möglicherweise nicht abbildet.&lt;/p&gt;

&lt;h2&gt;
  
  
  APIs mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Beim Debuggen von LLM-Gateways hilft &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, die exakten Requests und Responses unabhängig von Claude Code zu prüfen.&lt;/p&gt;

&lt;p&gt;Erstellen Sie eine Collection für den &lt;code&gt;/v1/messages&lt;/code&gt;-Endpoint Ihres Gateways und legen Sie diese Werte als Collection-Variablen an:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;base_url
authorization_token
anthropic_version
anthropic_beta
model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Beispiel-Header:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;Authorization: Bearer {{authorization_token}}
anthropic-version: {{anthropic_version}}
anthropic-beta: {{anthropic_beta}}
Content-Type: application/json
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Beispiel-Body:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{model}}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"max_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"hi"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So können Sie OpenRouter, LiteLLM, vLLM oder ein internes Gateway testen, ohne Claude Code jedes Mal neu zu starten.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-30.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-30.png" alt="Apidog-Screenshot mit API-Anfragekonfiguration und Headern" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Das ist besonders hilfreich bei Header-Problemen: Sie sehen direkt, ob Ihr Gateway &lt;code&gt;anthropic-beta&lt;/code&gt;, &lt;code&gt;anthropic-version&lt;/code&gt; und Auth-Header akzeptiert oder entfernt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weitere nützliche Claude-Code-Konfigurationen
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Beta-Header-Abhängigkeit deaktivieren
&lt;/h3&gt;

&lt;p&gt;Wenn Ihr Gateway keine benutzerdefinierten Header weiterleiten kann:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Damit deaktivieren Sie den Beta-Feature-Handshake. Der Agenten-Loop bleibt nutzbar, aber Funktionen, die an den Beta-Header gebunden sind, können fehlen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gateway-Modellerkennung aktivieren
&lt;/h3&gt;

&lt;p&gt;Ab Claude Code v2.1.129 kann Claude Code Modelle vom Gateway abrufen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code fragt dann beim Start &lt;code&gt;/v1/models&lt;/code&gt; ab.&lt;/p&gt;

&lt;p&gt;Einschränkung: Automatisch hinzugefügt werden nur Modell-IDs, die mit &lt;code&gt;claude&lt;/code&gt; oder &lt;code&gt;anthropic&lt;/code&gt; beginnen. Für Modelle wie DeepSeek setzen Sie weiterhin explizit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_DEFAULT_SONNET_MODEL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"deepseek/deepseek-v4-pro"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Benutzerdefiniertes Modell in &lt;code&gt;/model&lt;/code&gt; anzeigen
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_CUSTOM_MODEL_OPTION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"deepseek/deepseek-v4-pro"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_CUSTOM_MODEL_OPTION_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"DeepSeek V4 Pro"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"Günstigeres Gateway-Modell"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Damit erscheint das Modell in der &lt;code&gt;/model&lt;/code&gt;-Auswahl und kann während der Arbeit schneller ausgewählt werden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verwandte Leitfäden
&lt;/h2&gt;

&lt;p&gt;Wenn Sie Claude Code mit benutzerdefinierten Modell-Backends nutzen, sind diese Themen ebenfalls relevant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://apidog.com/blog/how-to-write-agents-md-files?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;So schreiben Sie AGENTS.md-Dateien für API-Entwicklungsteams&lt;/a&gt; – Verhalten von Claude Code für Ihren Stack konfigurieren&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://apidog.com/blog/ruflo-multi-agent-claude-code?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Ruflo: Multi-Agenten-Orchestrierung für Claude Code&lt;/a&gt; – Schwärme, persistenter Speicher und MCP-Tools für Claude Code&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://apidog.com/blog/get-free-unlimited-claude-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Erhalten Sie kostenlose, unbegrenzte Claude API über Puter.js&lt;/a&gt; – Browser-basierte Alternative für Client-Anwendungen&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://apidog.com/blog/best-local-llms-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Beste lokale LLMs 2026&lt;/a&gt; – lokale Inferenz über vLLM&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ist die Verwendung eines Drittanbieters mit Claude Code gegen die Nutzungsbedingungen von Anthropic?
&lt;/h3&gt;

&lt;p&gt;Nein. Anthropic unterstützt das &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;-Muster für Bedrock, Vertex AI, Foundry und benutzerdefinierte Gateways.&lt;/p&gt;

&lt;p&gt;Blockiert wurden Tools, die die Claude-Code-Client-ID fälschten, um Anthropic-Abonnements anders zu nutzen. Ein eigenes Gateway oder ein Anbieter wie OpenRouter mit eigenem API-Key ist ein anderes Setup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Funktioniert der Claude-Code-Agenten-Loop mit DeepSeek V4 Pro?
&lt;/h3&gt;

&lt;p&gt;Der Kern-Loop funktioniert: Dateibearbeitung, Shell-Kommandos und mehrstufige Aufgaben.&lt;/p&gt;

&lt;p&gt;Einschränkungen gibt es bei Drittanbietern typischerweise bei:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MCP-Server-Tools&lt;/li&gt;
&lt;li&gt;Bild-/Vision-Eingaben&lt;/li&gt;
&lt;li&gt;komplexen Tool-Call-Streaming-Randfällen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenn Ihr Workflow diese Funktionen benötigt, bleiben Anthropic API, Bedrock oder Vertex oft die zuverlässigere Wahl.&lt;/p&gt;

&lt;h3&gt;
  
  
  Warum sagt der Fehler „enterprise config“, obwohl ich keinen Enterprise-Plan habe?
&lt;/h3&gt;

&lt;p&gt;Claude Code verwendet „enterprise config“ intern für Drittanbieter- und Gateway-Konfigurationen. Das ist keine Aussage über Ihren Tarif.&lt;/p&gt;

&lt;p&gt;Auch einzelne Entwickler können benutzerdefinierte Drittanbieter über &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; konfigurieren.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich während einer Claude-Code-Sitzung zwischen Anthropic und Drittanbieter wechseln?
&lt;/h3&gt;

&lt;p&gt;Nicht innerhalb derselben Sitzung. Claude Code liest die Base-URL beim Start.&lt;/p&gt;

&lt;p&gt;Zum Wechseln:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Claude Code beenden&lt;/li&gt;
&lt;li&gt;Umgebungsvariablen oder &lt;code&gt;settings.json&lt;/code&gt; ändern&lt;/li&gt;
&lt;li&gt;Neue Sitzung starten&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tools wie &lt;a href="https://github.com/aattaran/deepclaude" rel="noopener noreferrer"&gt;DeepClaude&lt;/a&gt; kapseln diesen Wechsel über CLI-Flags.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mein Gateway liegt hinter einer Unternehmens-Firewall. Kann Claude Code einen Proxy nutzen?
&lt;/h3&gt;

&lt;p&gt;Ja:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;HTTPS_PROXY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"http://your-proxy:8080"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://your-internal-gateway"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bei TLS-Inspection durch Unternehmens-Proxies setzen Sie zusätzlich:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;NODE_EXTRA_CA_CERTS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/path/to/corporate-ca-bundle.pem"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Curl funktioniert, Claude Code aber nicht. Warum?
&lt;/h3&gt;

&lt;p&gt;Claude Code führt zusätzliche Preflight-Validierungen aus. Ihr Curl-Test trifft möglicherweise nur den normalen &lt;code&gt;/v1/messages&lt;/code&gt;-Endpoint.&lt;/p&gt;

&lt;p&gt;Starten Sie Claude Code mit Debug-Logging:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--debug&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vergleichen Sie dann:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;finale URL&lt;/li&gt;
&lt;li&gt;Header&lt;/li&gt;
&lt;li&gt;Auth-Format&lt;/li&gt;
&lt;li&gt;JSON-Body&lt;/li&gt;
&lt;li&gt;HTTP-Status&lt;/li&gt;
&lt;li&gt;Preflight-Request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Häufige Unterschiede sind &lt;code&gt;anthropic-beta&lt;/code&gt;, &lt;code&gt;X-Claude-Code-Session-Id&lt;/code&gt; und das exakte Validierungsformat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Invalid custom3p enterprise config&lt;/code&gt; ist fast immer ein behebarer Konfigurationsfehler.&lt;/p&gt;

&lt;p&gt;Gehen Sie in dieser Reihenfolge vor:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Entfernen Sie ein nachgestelltes &lt;code&gt;/v1&lt;/code&gt; aus &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Prüfen Sie &lt;code&gt;ANTHROPIC_AUTH_TOKEN&lt;/code&gt; vs. &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Validieren Sie &lt;code&gt;~/.claude/settings.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Setzen Sie &lt;code&gt;hasCompletedOnboarding: true&lt;/code&gt; bei Neuinstallationen.&lt;/li&gt;
&lt;li&gt;Prüfen Sie Header-Weiterleitung im Gateway.&lt;/li&gt;
&lt;li&gt;Prüfen Sie verwaltete Unternehmensrichtlinien.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sobald die Validierung erfolgreich ist, kann Claude Code seinen Agenten-Loop über OpenRouter, LiteLLM, vLLM oder ein internes Gateway ausführen. Die wichtigsten Einschränkungen bleiben MCP-Tools, Vision-Eingaben und einzelne Tool-Streaming-Randfälle bei Drittanbieter-Backends.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kostenlose Unbegrenzte Gemini API erhalten</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Sat, 09 May 2026 07:04:16 +0000</pubDate>
      <link>https://forem.com/emree_demir/kostenlose-unbegrenzte-gemini-api-erhalten-15cn</link>
      <guid>https://forem.com/emree_demir/kostenlose-unbegrenzte-gemini-api-erhalten-15cn</guid>
      <description>&lt;p&gt;Googles Gemini-Familie ist eine kostengünstige Modellreihe für Workloads mit hohem Volumen. Trotzdem können sich die Kosten bei öffentlichen Apps, Nebenprojekten oder Hackathon-Prototypen schnell summieren, sobald viele Benutzer denselben Endpunkt verwenden. Puter.js dreht dieses Modell um: Sie integrieren Gemini und Gemma direkt im Browser, ohne Google API-Schlüssel, ohne Google Cloud-Projekt und ohne eigenes Backend. Die Nutzung wird dem Endnutzer über dessen Puter-Konto zugeordnet; für Sie als Entwickler bleibt die Integration kostenlos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Probieren Sie Apidog noch heute aus&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Kurz gesagt
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Puter.js&lt;/strong&gt; bietet Zugriff auf Gemini- und Gemma-Modelle ohne Google API-Schlüssel, Google Cloud-Projekt oder Server.&lt;/li&gt;
&lt;li&gt;Unterstützte Gemini-Modelle: &lt;strong&gt;2.5 Pro, 2.5 Flash, 2.5 Flash Lite, 2.0 Flash, 2.0 Flash Lite, 3 Flash Preview&lt;/strong&gt; sowie ältere Previews.&lt;/li&gt;
&lt;li&gt;Unterstützte Gemma-Modelle: &lt;strong&gt;Gemma 2, 3, 4&lt;/strong&gt; in verschiedenen Größen, z. B. 4B, 12B, 27B, 31B und 26B-A4B.&lt;/li&gt;
&lt;li&gt;Die Basisintegration besteht aus einem &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;-Tag und einem Funktionsaufruf.&lt;/li&gt;
&lt;li&gt;Streaming, Bildeingaben und Temperatursteuerung funktionieren direkt im Browser.&lt;/li&gt;
&lt;li&gt;Die Nutzung läuft über das Puter-Konto des Endnutzers.&lt;/li&gt;
&lt;li&gt;Mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; können Sie Puter-Prototypen mit der offiziellen Gemini API vergleichen und Migrationen planen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wie „kostenlos und unbegrenzt“ funktioniert
&lt;/h2&gt;

&lt;p&gt;Bei der klassischen Gemini-Integration besitzen Sie den Google AI Studio- oder Google Cloud-Schlüssel und tragen alle Token-Kosten selbst. Puter.js verschiebt diese Verantwortung auf den Benutzer: Der Endnutzer meldet sich bei Puter an, und die Nutzung wird seinem Puter-Konto zugeordnet.&lt;/p&gt;

&lt;p&gt;Für Entwickler bedeutet das:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kein Google Cloud-Projekt:&lt;/strong&gt; Sie müssen kein Projekt anlegen, keine Abrechnung konfigurieren und keine API-Schlüssel verwalten.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kein eigener Gemini-Proxy:&lt;/strong&gt; Der Aufruf läuft direkt aus der Browser-App über Puter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kein eigenes Token-Budget:&lt;/strong&gt; Ihre Kosten skalieren nicht mit der Anzahl der Nutzer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Der wichtigste Kompromiss: Puter ist browserzentriert. Ein Backend-Cronjob, ein Worker oder ein Discord-Bot kann Puter nicht einfach ohne aktive Benutzersitzung verwenden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 1: Puter.js installieren
&lt;/h2&gt;

&lt;p&gt;Für eine statische HTML-Seite reicht ein CDN-Script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für eine gebündelte App können Sie das Paket installieren:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @heyputer/puter.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Und anschließend importieren:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heyputer/puter.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Schritt 2: Passendes Gemini- oder Gemma-Modell auswählen
&lt;/h2&gt;

&lt;p&gt;Wählen Sie das Modell nach Latenz, Qualität und Prompt-Komplexität aus.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modell-ID&lt;/th&gt;
&lt;th&gt;Wann verwenden&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;google/gemini-2.5-pro&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Komplexe Analysen, schwierige Schlussfolgerungen, Aufgaben mit langem Kontext&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;google/gemini-2.5-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Standardmodell für Chat, Q&amp;amp;A, Content-Generierung und allgemeine Prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;google/gemini-2.5-flash-lite&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hohe Volumen, Klassifizierung, Tagging, einfache strukturierte Aufgaben&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;google/gemini-2.0-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stabile Basislinie mit gut bekanntem Verhalten&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;google/gemini-3-flash-preview&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Aktuelle Preview für schnelle Tests neuer Gemini-Funktionen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;google/gemma-3-27b-it&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Offenes Gemma-Modell, instruktionsoptimiert, geeignet für Open-Weight-Vergleiche&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;google/gemma-4-31b-it&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Größeres offenes Gemma-Modell für höhere Qualität innerhalb der Gemma-Familie&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Praktische Standardeinstellung:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;DEFAULT_MODEL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nutzen Sie &lt;code&gt;gemini-2.5-pro&lt;/code&gt; nur für Prompts, bei denen Flash sichtbar nicht ausreicht. Verwenden Sie Lite-Varianten für einfache Aufgaben mit hohem Durchsatz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 3: Ersten Gemini-Aufruf im Browser ausführen
&lt;/h2&gt;

&lt;p&gt;Minimalbeispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"de"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Erklären Sie maschinelles Lernen in drei Sätzen.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ablauf:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Datei als &lt;code&gt;index.html&lt;/code&gt; speichern.&lt;/li&gt;
&lt;li&gt;Im Browser öffnen.&lt;/li&gt;
&lt;li&gt;Puter startet bei Bedarf den Login-Flow.&lt;/li&gt;
&lt;li&gt;Die Gemini-Antwort wird direkt auf der Seite ausgegeben.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sie benötigen keine &lt;code&gt;.env&lt;/code&gt;-Datei, keinen API-Key und keinen Server-Endpunkt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 4: Antwort in einer Chat-UI streamen
&lt;/h2&gt;

&lt;p&gt;Für Chat-Oberflächen sollten Sie Antworten streamen, damit Nutzer nicht auf die komplette Ausgabe warten müssen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;outputDiv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#output&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Erklären Sie Photosynthese im Detail.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;part&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;outputDiv&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ein einfaches HTML-Gerüst dazu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"output"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jeder &lt;code&gt;part.text&lt;/code&gt; enthält ein Stück der Antwort. Hängen Sie diese Teile direkt an Ihre UI an.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 5: Bilder an Gemini übergeben
&lt;/h2&gt;

&lt;p&gt;Gemini unterstützt multimodale Prompts. Übergeben Sie eine Bild-URL als zweites Argument:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Was sehen Sie auf diesem Bild? Beschreiben Sie Farben, Objekte und Stimmung.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://assets.puter.site/doge.jpeg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Typische Anwendungsfälle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alt-Text-Generierung&lt;/li&gt;
&lt;li&gt;visuelle Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;Screenshot-Analyse&lt;/li&gt;
&lt;li&gt;OCR-nahe Aufgaben&lt;/li&gt;
&lt;li&gt;Barrierefreiheitstools&lt;/li&gt;
&lt;li&gt;Produktbild-Tagging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gemini ist besonders stark bei natürlichen Bildern und Diagrammen. Bei Screenshots mit sehr dichtem Text kann je nach Aufgabe ein anderes Modell besser geeignet sein.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 6: Temperatur konfigurieren
&lt;/h2&gt;

&lt;p&gt;Die Temperatur steuert, wie deterministisch oder kreativ die Ausgabe wird.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Schreiben Sie eine kreative Kurzgeschichte über einen Roboterkoch.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Faustregeln:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;0.0&lt;/code&gt; bis &lt;code&gt;0.3&lt;/code&gt;: faktenorientierte, strukturierte oder reproduzierbare Ausgaben&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;0.4&lt;/code&gt; bis &lt;code&gt;0.7&lt;/code&gt;: allgemeine Chat- und Content-Aufgaben&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;0.8&lt;/code&gt; bis &lt;code&gt;1.0&lt;/code&gt;: kreatives Schreiben, Brainstorming, Varianten&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für viele Chat-Anwendungsfälle ist &lt;code&gt;0.7&lt;/code&gt; ein brauchbarer Startwert.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 7: Mehrstufige Gespräche verwalten
&lt;/h2&gt;

&lt;p&gt;Für Konversationen übergeben Sie ein Nachrichtenarray:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Ich entwickle eine Next.js-App mit Postgres.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assistant&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Verstanden. Wobei benötigen Sie Hilfe?&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Wie sollte ich Migrationen strukturieren?&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-pro&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In einer echten App speichern Sie den Verlauf clientseitig:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userInput&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userInput&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;assistant&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So bleibt Gemini über mehrere Runden hinweg im Kontext.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gemini mit anderen Modellen vergleichen
&lt;/h2&gt;

&lt;p&gt;Puter stellt mehrere LLMs über eine einheitliche Schnittstelle bereit. Dadurch können Sie denselben Prompt gegen verschiedene Modelle testen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;models&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;x-ai/grok-4.3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Refaktorieren Sie diese React-Komponente, um Hooks zu verwenden: ...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;models&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;performance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;performance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;elapsed&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toFixed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;ms`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;---&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bewerten Sie pro Modell mindestens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Antwortqualität&lt;/li&gt;
&lt;li&gt;Latenz&lt;/li&gt;
&lt;li&gt;Konsistenz bei wiederholten Prompts&lt;/li&gt;
&lt;li&gt;Eignung für Ihren konkreten Use Case&lt;/li&gt;
&lt;li&gt;Benutzerakzeptanz des Puter-Flows&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Was Sie bekommen und was nicht
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Das bekommen Sie
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Gemini 2.5/2.0/3-Flash-Modelle plus 2.5 Pro&lt;/li&gt;
&lt;li&gt;Gemma-Familie 2/3/4 für Open-Weight-Workflows&lt;/li&gt;
&lt;li&gt;mehrstufige Gespräche&lt;/li&gt;
&lt;li&gt;Streaming-Antworten&lt;/li&gt;
&lt;li&gt;Bildeingaben über Bild-URL&lt;/li&gt;
&lt;li&gt;Optionen wie Temperatur, &lt;code&gt;max_tokens&lt;/code&gt; und System-Prompts&lt;/li&gt;
&lt;li&gt;browserbasierte Integration ohne eigenes Backend&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Das bekommen Sie möglicherweise nicht
&lt;/h3&gt;

&lt;p&gt;Je nach aktueller Puter-Version können Einschränkungen bestehen bei:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nativen Funktionsaufrufen auf Gemini&lt;/li&gt;
&lt;li&gt;Code-Ausführungstools&lt;/li&gt;
&lt;li&gt;Google Search Grounding&lt;/li&gt;
&lt;li&gt;vollem 2M-Token-Kontextfenster&lt;/li&gt;
&lt;li&gt;serverseitiger Nutzung ohne Browserkontext&lt;/li&gt;
&lt;li&gt;direkter Sichtbarkeit der Google-Ratenlimits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für agentenbasierte Workflows mit Tool-Aufrufen, Code-Ausführung oder Search Grounding ist die offizielle Google AI Studio API oft besser geeignet. Für Chat, Q&amp;amp;A, Content-Generierung und einfache Vision-Aufgaben reicht Puter in vielen Browser-Apps aus.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wann Sie Puter statt der offiziellen Gemini API verwenden sollten
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Verwenden Sie Puter, wenn:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sie eine kostenlose öffentliche App ohne eigenes Abrechnungsrisiko veröffentlichen möchten.&lt;/li&gt;
&lt;li&gt;Sie schnell prototypisieren und kein Google Cloud-Projekt einrichten wollen.&lt;/li&gt;
&lt;li&gt;Sie Gemini in einer statischen Website, Browser-Erweiterung oder Hackathon-App brauchen.&lt;/li&gt;
&lt;li&gt;Ihre Nutzer einen Puter-Login akzeptieren.&lt;/li&gt;
&lt;li&gt;Ihre App primär im Browser läuft.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Verwenden Sie die offizielle Gemini API, wenn:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sie serverseitige Aufrufe benötigen, z. B. Cronjobs, Batch-Prozesse oder Webhooks.&lt;/li&gt;
&lt;li&gt;Sie Code-Ausführung, Search Grounding oder den vollen langen Kontext benötigen.&lt;/li&gt;
&lt;li&gt;Sie Compliance-Anforderungen direkt mit Google abdecken müssen.&lt;/li&gt;
&lt;li&gt;Sie Fine-Tuning oder eigene Datenpipelines benötigen.&lt;/li&gt;
&lt;li&gt;Ihre Nutzer keinen zusätzlichen Puter-Anmeldeschritt akzeptieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eine detaillierte Anleitung für Gemini 3 Flash finden Sie hier: &lt;a href="http://apidog.com/blog/how-to-use-gemini-3-flash-preview-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;So verwenden Sie die Gemini 3 Flash Preview API&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integration mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Puter-Aufrufe laufen im Browser. Deshalb testen Sie diese nicht wie einen klassischen Backend-Endpunkt. Ein praktikables Setup sieht so aus:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Erstellen Sie eine kleine statische Testseite mit Puter.js.&lt;/li&gt;
&lt;li&gt;Lesen Sie Prompt und Modell aus Query-Parametern.&lt;/li&gt;
&lt;li&gt;Testen Sie die offizielle Gemini API separat in Apidog.&lt;/li&gt;
&lt;li&gt;Halten Sie Puter-Prototyp und Gemini-API-Variante als getrennte Umgebungen in derselben Sammlung.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Beispiel für eine lokale Puter-Testseite:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;URLSearchParams&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;prompt&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Erklären Sie Gemini in einem Satz.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;model&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#output&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Richten Sie in &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; zwei Umgebungen ein:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;puter-prototype&lt;/code&gt;: lokale URL Ihrer Puter-Testseite&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gemini-prod&lt;/code&gt;: &lt;code&gt;https://generativelanguage.googleapis.com/v1&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So können Sie später sauber von einem Browser-Prototyp auf eine direkte Gemini-API-Integration migrieren. Weitere Testmuster finden Sie unter &lt;a href="http://apidog.com/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Test-Tool für QA-Ingenieure&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weitere kostenlose LLM-Pfade über Puter
&lt;/h2&gt;

&lt;p&gt;Das Nutzer-zahlt-Modell funktioniert nicht nur für Gemini. Über Puter können Sie auch andere Modellfamilien über denselben Aufrufstil testen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://apidog.com/blog/get-free-unlimited-claude-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Holen Sie sich eine kostenlose unbegrenzte Claude API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://apidog.com/blog/get-free-unlimited-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Holen Sie sich eine kostenlose unbegrenzte GPT-5.5 API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://apidog.com/blog/how-to-use-grok-4-3-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;So verwenden Sie Grok 4.3 kostenlos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://apidog.com/blog/get-free-unlimited-deepseek-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Holen Sie sich eine kostenlose unbegrenzte DeepSeek API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Der Wechsel besteht meist nur aus einem anderen &lt;code&gt;model&lt;/code&gt;-String:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Häufig gestellte Fragen
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ist das wirklich unbegrenzt?
&lt;/h3&gt;

&lt;p&gt;Aus Entwicklersicht ja: Sie verwalten kein eigenes Token-Budget. Die tatsächliche Nutzung hängt vom Guthaben des jeweiligen Puter-Kontos ab. Neue Konten erhalten ein Startguthaben; Nutzer können bei Bedarf Guthaben aufladen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benötige ich ein Google-Konto oder ein Google Cloud-Projekt?
&lt;/h3&gt;

&lt;p&gt;Nein. Puter übernimmt den Zugriff auf Gemini. Sie verwalten keinen Google API-Schlüssel.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich das in Produktion verwenden?
&lt;/h3&gt;

&lt;p&gt;Ja, für browserbasierte Apps. Entscheidend ist, ob Ihre Nutzer den Puter-Anmeldeschritt akzeptieren.&lt;/p&gt;

&lt;h3&gt;
  
  
  Funktioniert Gemini über Puter identisch mit der offiziellen API?
&lt;/h3&gt;

&lt;p&gt;Puter ruft Gemini im Namen des Benutzers auf. Das Modellverhalten sollte daher vergleichbar sein. Durch den zusätzlichen Hop kann die Latenz geringfügig höher sein.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was ist mit Geminis 2M-Token-Kontextfenster?
&lt;/h3&gt;

&lt;p&gt;Puter stellt nicht zwingend für jede Modellvariante das volle 2M-Token-Limit bereit. Für extrem lange Kontexte ist die offizielle Google AI Studio API der passendere Weg.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich Gemini über Puter in einem Discord-Bot oder Backend-Dienst verwenden?
&lt;/h3&gt;

&lt;p&gt;Nicht ohne Weiteres. Puter ist browserbasiert und setzt eine Benutzersitzung voraus. Für Backend-Dienste sollten Sie die offizielle Gemini API direkt verwenden.&lt;/p&gt;

&lt;h3&gt;
  
  
  Welches Modell sollte ich standardmäßig verwenden?
&lt;/h3&gt;

&lt;p&gt;Starten Sie mit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;google/gemini-2.5-flash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wechseln Sie zu &lt;code&gt;google/gemini-2.5-pro&lt;/code&gt; für komplexe Denkaufgaben und zu &lt;code&gt;google/gemini-2.5-flash-lite&lt;/code&gt; für einfache Aufgaben mit hohem Volumen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wird Bildgenerierung unterstützt?
&lt;/h3&gt;

&lt;p&gt;Puter bietet Bildgenerierung über OpenAI-Modelle wie &lt;code&gt;gpt-image-2&lt;/code&gt; und DALL-E-Varianten an, nicht über Imagen. Weitere Informationen finden Sie unter &lt;a href="http://apidog.com/blog/get-free-unlimited-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Holen Sie sich eine kostenlose unbegrenzte GPT-5.5 API&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Puter.js ist ein schneller Weg, Gemini in browserbasierte Apps einzubauen, ohne Google Cloud-Projekt, API-Key oder eigenes Backend. Für die meisten Prototypen starten Sie mit &lt;code&gt;google/gemini-2.5-flash&lt;/code&gt;, aktivieren bei Bedarf Streaming und verwalten den Chatverlauf im Browser.&lt;/p&gt;

&lt;p&gt;Für serverseitige Workloads, Fine-Tuning, Tool-Aufrufe, Code-Ausführung oder sehr lange Kontexte bleibt die offizielle Google Gemini API die bessere Wahl.&lt;/p&gt;

&lt;p&gt;Erstellen Sie Ihre API-Variante in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, vergleichen Sie Puter mit der offiziellen Gemini API und wählen Sie den Integrationspfad, der zu Ihrer App passt.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kostenlose GPT-5.5 API &amp; Alle OpenAI Modelle Unbegrenzt</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Sat, 09 May 2026 02:42:00 +0000</pubDate>
      <link>https://forem.com/emree_demir/kostenlose-gpt-55-api-alle-openai-modelle-unbegrenzt-210d</link>
      <guid>https://forem.com/emree_demir/kostenlose-gpt-55-api-alle-openai-modelle-unbegrenzt-210d</guid>
      <description>&lt;p&gt;OpenAIs GPT-5.5 wird mit einer kostenpflichtigen API ausgeliefert: 5 US-Dollar pro Million Input-Tokens, 30 US-Dollar pro Million Output-Tokens. Für Nebenprojekte, Hackathons oder kostenlose öffentliche Apps kann diese Rechnung schon vor dem ersten Release zum Problem werden. Ein praktikabler Workaround ist Puter.js: Es stellt den OpenAI-Katalog im Browser bereit, ohne dass Sie einen OpenAI-Schlüssel verwalten. Die Kosten werden dem Endnutzer über dessen Puter-Konto zugeordnet; für Entwickler bleibt die Nutzung kostenlos und unbegrenzt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Probiere Apidog noch heute aus&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Puter.js&lt;/strong&gt; gibt Entwicklern kostenlosen, unbegrenzten Zugriff auf OpenAI-Modelle ohne API-Key, OpenAI-Konto oder Backend.&lt;/li&gt;
&lt;li&gt;Unterstützte Textmodelle umfassen &lt;strong&gt;gpt-5.5, gpt-5.5-pro, gpt-5.4, gpt-5, gpt-5-mini, o1, o3, gpt-4.1, gpt-4o&lt;/strong&gt; sowie Chat- und Codex-Varianten.&lt;/li&gt;
&lt;li&gt;Bildmodelle: &lt;strong&gt;gpt-image-2, gpt-image-1.5, dall-e-3&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;TTS-Modelle: &lt;strong&gt;gpt-4o-mini-tts, tts-1, tts-1-hd&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ein &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;-Tag und ein Aufruf von &lt;code&gt;puter.ai.chat()&lt;/code&gt; reichen für den ersten GPT-5.5-Call.&lt;/li&gt;
&lt;li&gt;Streaming, Function Calling, Vision, Bildgenerierung und Text-zu-Sprache laufen direkt im Browser.&lt;/li&gt;
&lt;li&gt;Der Endnutzer deckt die Nutzung über ein Puter-Konto; Sie zahlen nichts.&lt;/li&gt;
&lt;li&gt;Nutzen Sie &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, um Prompts gegen Puter und die offizielle OpenAI API zu vergleichen, bevor Sie migrieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wie „kostenlos unbegrenzt“ funktioniert
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://developer.puter.com/tutorials/free-unlimited-openai-api/" rel="noopener noreferrer"&gt;Puter.js&lt;/a&gt; dreht das übliche LLM-Abrechnungsmodell um:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Nicht Ihre App besitzt den OpenAI-Key.&lt;/li&gt;
&lt;li&gt;Der Nutzer meldet sich bei Puter an.&lt;/li&gt;
&lt;li&gt;Der Modellaufruf wird über das Puter-Konto des Nutzers abgewickelt.&lt;/li&gt;
&lt;li&gt;Ihr Projekt benötigt keinen eigenen OpenAI-Vertrag und keine eigene Abrechnung.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Daraus ergeben sich drei praktische Vorteile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kein API-Key im Frontend oder Repo.&lt;/strong&gt; Kein Leckagerisiko, keine Rotation, keine Secret-Verwaltung.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keine zentrale Kostenstelle für Ihr Projekt.&lt;/strong&gt; Jeder Nutzer läuft über sein eigenes Puter-Konto.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geringe Einstiegshürde für Prototypen.&lt;/strong&gt; Statische Website, Browser-Erweiterung oder Hackathon-Demo reichen aus.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Der wichtigste Kompromiss: Puter.js ist browserzentriert. Ein Backend-Node-Skript kann Puter nicht sauber ohne angemeldete Benutzersitzung nutzen. Für Cronjobs, Webhooks, Batch-Jobs oder serverseitige Agenten bleibt die offizielle OpenAI API der richtige Weg.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 1: Puter.js installieren
&lt;/h2&gt;

&lt;p&gt;Für eine statische HTML-Seite reicht ein CDN-Script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Minimalbeispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"de"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für eine gebündelte App installieren Sie das Paket:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @heyputer/puter.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@heyputer/puter.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verwenden Sie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CDN&lt;/strong&gt;, wenn Sie schnell prototypen, eine statische Seite bauen oder in DevTools testen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NPM&lt;/strong&gt;, wenn Sie mit Bundler, TypeScript oder Komponentenframework arbeiten.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Schritt 2: Modell auswählen
&lt;/h2&gt;

&lt;p&gt;Puter bietet die GPT-5.x-Reihe sowie ältere OpenAI-Modelle. Wählen Sie das Modell nach Aufgabe, nicht nach Hype.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modell-ID&lt;/th&gt;
&lt;th&gt;Geeignet für&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.5-pro&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Komplexe Analyse, Code-Agenten, tiefe Schlussfolgerungen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Standardmodell für Chat, Assistenzfunktionen und allgemeine Aufgaben&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.4-nano&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Schnelle, günstige Textaufgaben und hochvolumige Klassifizierung&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.4-mini&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Chat-UIs mit guter Balance aus Qualität und Geschwindigkeit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-5.3-codex&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Codespezifische Aufgaben&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;o3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Komplexe Argumentationsketten&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;o1-pro&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mehrstufige Planung und agentenbasierte Workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;gpt-4.1&lt;/code&gt;, &lt;code&gt;gpt-4o&lt;/code&gt;, &lt;code&gt;gpt-4o-mini&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Stabile, gut verstandene Basis für bestehende Integrationen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Für Bildgenerierung:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;gpt-image-2&lt;/code&gt;: aktuelle Bildausgabe, scharf und schnell.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gpt-image-1.5&lt;/code&gt;, &lt;code&gt;gpt-image-1&lt;/code&gt;, &lt;code&gt;dall-e-3&lt;/code&gt;, &lt;code&gt;dall-e-2&lt;/code&gt;: ältere, stabile Optionen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für Text-zu-Sprache:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;gpt-4o-mini-tts&lt;/code&gt;: neuere, natürlich klingende TTS-Ausgabe.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tts-1&lt;/code&gt;, &lt;code&gt;tts-1-hd&lt;/code&gt;: klassische TTS-Modelle mit niedriger Latenz.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Schritt 3: Ersten GPT-5.5-Call ausführen
&lt;/h2&gt;

&lt;p&gt;Der kleinste lauffähige Chat-Aufruf sieht so aus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"de"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Explain WebSockets in three sentences&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ablauf:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Datei als &lt;code&gt;index.html&lt;/code&gt; speichern.&lt;/li&gt;
&lt;li&gt;Im Browser öffnen.&lt;/li&gt;
&lt;li&gt;Puter übernimmt die Authentifizierung des Nutzers.&lt;/li&gt;
&lt;li&gt;Die Antwort wird direkt auf der Seite ausgegeben.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sie brauchen dafür:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keinen OpenAI-Key,&lt;/li&gt;
&lt;li&gt;keine &lt;code&gt;.env&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;keinen Server,&lt;/li&gt;
&lt;li&gt;keine Proxy-Route.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Schritt 4: Antwort streamen
&lt;/h2&gt;

&lt;p&gt;Für Chat-UIs sollten Sie Streaming als Standard verwenden. So sieht der Nutzer sofort Fortschritt, statt auf die vollständige Antwort zu warten.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Explain the theory of relativity in detail&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;part&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In einer echten UI hängen Sie die Chunks an ein DOM-Element an:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#answer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fasse HTTP Caching für Backend-Entwickler zusammen.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;part&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HTML dazu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"answer"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Schritt 5: Vision mit Bildeingabe verwenden
&lt;/h2&gt;

&lt;p&gt;Für Bildanalyse übergeben Sie zusätzlich eine Bild-URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;What do you see in this image? Describe colors, objects, and mood.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://assets.puter.site/doge.jpeg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Typische Anwendungsfälle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alt-Text für Bilder generieren&lt;/li&gt;
&lt;li&gt;Screenshots analysieren&lt;/li&gt;
&lt;li&gt;visuelle QA bauen&lt;/li&gt;
&lt;li&gt;OCR-ähnliche Workflows prototypen&lt;/li&gt;
&lt;li&gt;Barrierefreiheitstools testen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Das funktioniert mit GPT-5.x-Modellen und GPT-4o-Varianten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 6: Bilder generieren
&lt;/h2&gt;

&lt;p&gt;Mit &lt;code&gt;puter.ai.txt2img()&lt;/code&gt; erzeugen Sie ein Bild aus einem Prompt. Die Funktion gibt ein bereits geladenes &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;-Element zurück.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;txt2img&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;A futuristic cityscape at night, cinematic, neon, rain&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-image-2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;imageElement&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;imageElement&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für eine kleine UI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"prompt"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Bildbeschreibung eingeben"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"generate"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Generieren&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"result"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#generate&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#prompt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#result&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Generiere Bild...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;txt2img&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-image-2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

    &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;image&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Bildgenerierungskosten werden dem Puter-Konto des Nutzers zugeordnet. Für kostenlose öffentliche Generatoren ist das ein sauberes Modell, weil Ihre App keine zentrale OpenAI-Rechnung erzeugt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 7: Text-zu-Sprache einbauen
&lt;/h2&gt;

&lt;p&gt;Die OpenAI-TTS-Linie wird über &lt;code&gt;txt2speech&lt;/code&gt; bereitgestellt. Die Funktion gibt ein &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt;-Element mit der generierten Stimme zurück.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;txt2speech&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Welcome back. Your account balance is $1,247.50.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-4o-mini-tts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;audio&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;controls&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Praktische Einsätze:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sprachansagen in Web-Apps&lt;/li&gt;
&lt;li&gt;Voiceover für Tutorials&lt;/li&gt;
&lt;li&gt;Podcast-Intros&lt;/li&gt;
&lt;li&gt;Barrierefreiheits-Narrationen&lt;/li&gt;
&lt;li&gt;Vorlesefunktion für lange Texte&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Schritt 8: Function Calling nutzen
&lt;/h2&gt;

&lt;p&gt;Puter verwendet die bekannte OpenAI-Struktur für Tools. Sie definieren Funktionen, das Modell gibt &lt;code&gt;tool_calls&lt;/code&gt; zurück, und Ihre App führt die Funktion aus.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;function&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;function&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;get_weather&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Get the current weather for a city.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;object&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;city&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;city&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;What's the weather in Tokyo right now?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;tools&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;toolCalls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;toolCalls&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;toolCalls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;toolCalls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arguments&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ein vollständiges Muster besteht aus drei Schritten:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tool definieren.&lt;/li&gt;
&lt;li&gt;Modell aufrufen.&lt;/li&gt;
&lt;li&gt;Tool-Aufruf ausführen und Ergebnis zurückgeben.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Beispiel für die lokale Ausführung:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;get_weather&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;city&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;city&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;22°C&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Cloudy&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;toolCalls&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;call&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;toolCalls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;get_weather&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;args&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_weather&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;args&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Tool result:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Struktur ähnelt der offiziellen OpenAI API. Dadurch lassen sich bestehende Tool-Definitionen leichter portieren. Für Tests tool-gesteuerter Abläufe in produktionsnahen Umgebungen siehe &lt;a href="http://apidog.com/blog/mcp-server-testing-apidog?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;MCP-Servertests in Apidog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 9: Temperatur und &lt;code&gt;max_tokens&lt;/code&gt; setzen
&lt;/h2&gt;

&lt;p&gt;Sie übergeben Standardparameter im Optionsobjekt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Tell me about Mars&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;max_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Faustregeln:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;temperature: 0.0&lt;/code&gt; bis &lt;code&gt;0.3&lt;/code&gt;: faktische, stabile Antworten&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;temperature: 0.7&lt;/code&gt; bis &lt;code&gt;1.0&lt;/code&gt;: kreativer Output&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;max_tokens&lt;/code&gt;: begrenzt die Antwortlänge und damit die Kosten auf Nutzerseite&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für öffentliche Apps ist &lt;code&gt;max_tokens&lt;/code&gt; besonders wichtig. Es verhindert, dass ein einzelner Prompt sehr lange Antworten erzeugt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was Sie erhalten und was nicht
&lt;/h2&gt;

&lt;p&gt;Puter bietet kostenlosen, unbegrenzten GPT-5.5-Zugriff aus Entwicklersicht. Trotzdem ersetzt es nicht jede Funktion der offiziellen OpenAI API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sie erhalten:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPT-5.x-Katalog inklusive 5.5, 5.5 Pro, 5.4-Varianten und Codex-Varianten&lt;/li&gt;
&lt;li&gt;ältere OpenAI-Modelle wie GPT-4.1, GPT-4o, o1 und o3&lt;/li&gt;
&lt;li&gt;GPT-Image-2 und DALL-E für Bildgenerierung&lt;/li&gt;
&lt;li&gt;OpenAI-TTS-Modelle inklusive &lt;code&gt;gpt-4o-mini-tts&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Streaming&lt;/li&gt;
&lt;li&gt;Vision&lt;/li&gt;
&lt;li&gt;Function Calling&lt;/li&gt;
&lt;li&gt;Temperatursteuerung&lt;/li&gt;
&lt;li&gt;&lt;code&gt;max_tokens&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Was Sie möglicherweise nicht erhalten:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responses API&lt;/li&gt;
&lt;li&gt;Prompt-Caching zur Kostenreduzierung&lt;/li&gt;
&lt;li&gt;Files API für hochgeladene Dokumente&lt;/li&gt;
&lt;li&gt;serverseitige Nutzung ohne Browserkontext&lt;/li&gt;
&lt;li&gt;direkte Rate-Limit-Header von OpenAI&lt;/li&gt;
&lt;li&gt;strukturierte Ausgaben mit JSON-Schema-Erzwingung&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kurz gesagt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Puter&lt;/strong&gt; eignet sich sehr gut für Browser-Apps, Prototypen, kostenlose Tools und statische Seiten.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offizielle OpenAI API&lt;/strong&gt; eignet sich besser für Backend-Workloads, Compliance-Anforderungen und produktionsreife Serverarchitekturen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wann Puter verwenden?
&lt;/h2&gt;

&lt;p&gt;Verwenden Sie Puter, wenn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sie eine kostenlose öffentliche App ohne eigenes Kostenrisiko veröffentlichen möchten.&lt;/li&gt;
&lt;li&gt;Sie prototypen und keine OpenAI-Abrechnung einrichten wollen.&lt;/li&gt;
&lt;li&gt;Sie eine statische Website, Browser-Erweiterung oder Hackathon-Demo bauen.&lt;/li&gt;
&lt;li&gt;Sie keinen Backend-Proxy betreiben möchten.&lt;/li&gt;
&lt;li&gt;Ihre Nutzer einen Puter-Login akzeptieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wann die offizielle OpenAI API verwenden?
&lt;/h2&gt;

&lt;p&gt;Verwenden Sie die offizielle OpenAI API, wenn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sie serverseitige Aufrufe brauchen.&lt;/li&gt;
&lt;li&gt;Sie Cronjobs, Webhooks oder Batch-Verarbeitung ausführen.&lt;/li&gt;
&lt;li&gt;Sie Prompt-Caching für stabile System-Prompts nutzen möchten.&lt;/li&gt;
&lt;li&gt;Sie Responses API, Files oder strukturierte Ausgaben benötigen.&lt;/li&gt;
&lt;li&gt;Sie Compliance- oder Vertragsanforderungen erfüllen müssen.&lt;/li&gt;
&lt;li&gt;Ihre Nutzer keinen zusätzlichen Puter-Login akzeptieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Viele Projekte starten mit Puter und migrieren später zur offiziellen API, sobald Backend-Anforderungen, Compliance oder spezielle API-Funktionen wichtig werden. Die Migration ist einfacher, weil die Nachrichtenstruktur ähnlich bleibt.&lt;/p&gt;

&lt;p&gt;Für ein kostenpflichtiges Produktions-Setup siehe &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-5.5 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integration in Apidog testen
&lt;/h2&gt;

&lt;p&gt;Puter-Aufrufe laufen im Browser. Deshalb können Sie sie nicht wie reine Backend-Requests direkt über einen klassischen API-Test-Runner ausführen. Ein praktikables Setup sieht so aus:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Erstellen Sie eine kleine statische Seite mit Puter.js.&lt;/li&gt;
&lt;li&gt;Lesen Sie den Prompt aus einem Query-Parameter.&lt;/li&gt;
&lt;li&gt;Testen Sie dieselbe Prompt-Struktur separat gegen die offizielle OpenAI API.&lt;/li&gt;
&lt;li&gt;Halten Sie beide Varianten in Apidog als getrennte Umgebungen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Beispiel für eine Puter-Testseite:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"de"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;pre&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"output"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/pre&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;URLSearchParams&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;prompt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Sag Hallo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#output&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aufruf lokal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:3000/?prompt=Erkläre%20WebSockets%20in%20drei%20Sätzen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Apidog können Sie parallel Umgebungen anlegen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;puter-prototype&lt;/code&gt;: lokale URL Ihrer Puter-Testseite&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;openai-prod&lt;/code&gt;: &lt;code&gt;https://api.openai.com/v1&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-29.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-29.png" alt="" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Laden Sie &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; herunter und pflegen Sie Puter-Prototyp und OpenAI-Produktions-Setup in derselben Sammlung. So können Sie Prompts, Request-Strukturen und erwartete Antworten systematisch vergleichen. Für breitere API-Testmuster siehe &lt;a href="http://apidog.com/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Testtool für QA-Ingenieure&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ist dies wirklich unbegrenzt, oder gibt es eine versteckte Obergrenze?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Aus Entwicklersicht ist es unbegrenzt. Der Endnutzer nutzt sein Puter-Konto. Neue Konten erhalten Startguthaben, und Nutzer können bei Bedarf mehr aufladen. Es gibt keine zentrale Obergrenze pro Entwicklerprojekt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brauche ich ein OpenAI-Konto?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nein. Puter wickelt die OpenAI-Beziehung ab. Sie verwalten keinen OpenAI-Schlüssel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich das in Produktion verwenden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, für browserbasierte Apps. Entscheidend ist, ob Ihre Nutzer bereit sind, sich bei Puter anzumelden.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verhält sich GPT-5.5 über Puter identisch zur offiziellen API?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Die Modellausgabe basiert auf der offiziellen OpenAI API im Namen des Nutzers. Durch den zusätzlichen Hop kann die Latenz geringfügig höher sein.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie sieht es mit Prompt-Caching aus?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Puter bietet derzeit keine Preissteuerung für OpenAI-Prompt-Caching. Wenn Sie stabile große System-Prompts haben und Cache-Rabatte benötigen, verwenden Sie die offizielle API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Puter in einem Backend-Dienst verwenden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nicht sauber. Puter ist browserzentriert und setzt eine Benutzersitzung voraus. Backend-Dienste sollten die offizielle OpenAI API verwenden. Für kostenlose serverseitige Optionen siehe &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-5.5 API kostenlos verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welches Modell sollte ich standardmäßig verwenden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Verwenden Sie &lt;code&gt;gpt-5.5&lt;/code&gt; für allgemeine Aufgaben, &lt;code&gt;gpt-5.4-nano&lt;/code&gt; für hochvolumige Klassifizierung, &lt;code&gt;gpt-5.5-pro&lt;/code&gt; für komplexe Denkaufgaben und &lt;code&gt;o3&lt;/code&gt; für lange Schlussfolgerungsketten.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Werden meine Nutzer viel bezahlen müssen?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Chat-ähnliche Nutzung kostet typischerweise nur geringe Beträge pro Sitzung. Bildgenerierung ist teurer. Begrenzen Sie &lt;code&gt;max_tokens&lt;/code&gt; und vermeiden Sie unnötige Generierungsaufrufe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Bilder mit Puter kostenlos generieren?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, über &lt;code&gt;txt2img&lt;/code&gt; mit &lt;code&gt;gpt-image-2&lt;/code&gt; oder DALL-E. Die Kosten werden dem Puter-Guthaben des Nutzers zugeordnet. Eine Anleitung zur offiziellen kostenpflichtigen API finden Sie unter &lt;a href="http://apidog.com/blog/how-to-use-gpt-image-2-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-Image-2 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Puter.js ist ein praktischer Weg, GPT-5.5 und andere OpenAI-Modelle in browserbasierte Apps einzubauen, ohne einen eigenen OpenAI-Key oder ein eigenes Abrechnungsmodell zu verwalten.&lt;/p&gt;

&lt;p&gt;Der Implementierungsweg ist kurz:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Puter-Script einbinden.&lt;/li&gt;
&lt;li&gt;Modell auswählen.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;puter.ai.chat()&lt;/code&gt; oder eine der Spezialfunktionen aufrufen.&lt;/li&gt;
&lt;li&gt;Optional Streaming, Vision, Function Calling, Bildgenerierung oder TTS ergänzen.&lt;/li&gt;
&lt;li&gt;Bei Bedarf später zur offiziellen OpenAI API migrieren.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Für serverseitige Workloads, Prompt-Caching, Responses API, Files oder strukturierte Ausgaben bleibt die offizielle OpenAI API die bessere Wahl. Für Prototypen, Hackathons, kostenlose öffentliche Apps und statische Websites ist Puter eine sehr schnelle Lösung.&lt;/p&gt;

&lt;p&gt;Erstellen Sie die Anfrage einmal in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, vergleichen Sie Puter mit der offiziellen API und wählen Sie den Pfad, der zu Ihrer Architektur passt.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kostenlose Unbegrenzte Claude Opus 4.7 API</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Sat, 09 May 2026 02:34:48 +0000</pubDate>
      <link>https://forem.com/emree_demir/kostenlose-unbegrenzte-claude-opus-47-api-2amh</link>
      <guid>https://forem.com/emree_demir/kostenlose-unbegrenzte-claude-opus-47-api-2amh</guid>
      <description>&lt;p&gt;Die Claude-Familie von Anthropic ist eine leistungsfähige Closed-Source-Modellreihe für Programmierung, autonome Aufgaben und Long-Context-Reasoning. Der API-Preis kann jedoch schnell zum Limit für Seitenprojekte werden: Sonnet kostet 3 $ / 15 $ pro Million Tokens, Opus ist teurer. Puter.js dreht das Abrechnungsmodell um: Sie integrieren Claude im Browser ohne Anthropic-API-Key, während die Nutzung über das Puter-Konto des Endbenutzers läuft. Für Sie als Entwickler entstehen dadurch keine direkten Anthropic-Kosten.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Teste Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Dieser Leitfaden zeigt die praktische Integration: Skript einbinden, Modell auswählen, Chat-Aufrufe ausführen, Streaming aktivieren, Konversationen verwalten und die Grenzen des Ansatzes kennen.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Puter.js&lt;/strong&gt; ermöglicht browserbasierten Zugriff auf Claude ohne eigenen Anthropic-API-Key.&lt;/li&gt;
&lt;li&gt;Die Nutzung wird dem Puter-Konto des Endbenutzers zugeordnet, nicht Ihrem Entwicklerkonto.&lt;/li&gt;
&lt;li&gt;Unterstützte Modelle laut ursprünglichem Katalog: &lt;strong&gt;Opus 4.7, Opus 4.6, Opus 4.6 Fast, Opus 4.5, Opus 4.1, Opus 4, Sonnet 4.6, Sonnet 4.5, Sonnet 4, Haiku 4.5&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Die Basisintegration besteht aus einem &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;-Tag und einem Aufruf von &lt;code&gt;puter.ai.chat()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Streaming, System-Prompts und mehrstufige Unterhaltungen funktionieren über eine Anthropic-ähnliche Nachrichtenstruktur.&lt;/li&gt;
&lt;li&gt;Mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; können Sie dieselben Prompts gegen Puter-Prototypen und eine spätere offizielle Anthropic-API-Integration vergleichen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wie das Abrechnungsmodell funktioniert
&lt;/h2&gt;

&lt;p&gt;Puter.js ist eine browserbasierte Cloud- und KI-Bibliothek. Der zentrale Unterschied zur direkten Anthropic-Integration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sie speichern keinen Anthropic-API-Key.&lt;/li&gt;
&lt;li&gt;Ihr Backend muss keine Claude-Aufrufe signieren.&lt;/li&gt;
&lt;li&gt;Der Benutzer meldet sich bei Puter an.&lt;/li&gt;
&lt;li&gt;Die Nutzung läuft über das Guthaben des jeweiligen Puter-Kontos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für Entwickler bedeutet das:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kein API-Key im Frontend oder Repository&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Kein Schlüssel, kein Leak-Risiko, keine Rotation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keine zentrale Entwicklerabrechnung&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Jeder Benutzer bringt seine eigene Nutzung mit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Schneller Prototyping-Pfad&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Besonders geeignet für statische Websites, Hackathon-Projekte, Browser-Apps und Demos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Der wichtigste Kompromiss: Puter.js ist browserzentriert. Für Cron-Jobs, Discord-Bots, serverseitige Batch-Verarbeitung oder API-Endpunkte ist die offizielle Anthropic API weiterhin die passendere Option.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 1: Puter.js einbinden
&lt;/h2&gt;

&lt;p&gt;Für eine statische Seite reicht ein Script-Tag:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Minimalbeispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"de"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Claude mit Puter.js&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"output"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Erkläre Quantencomputing in einfachen Worten.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;);&lt;/span&gt;

      &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;output&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
        &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn Sie eine gebündelte App mit Vite, Webpack oder ähnlichen Tools bauen, können Sie stattdessen das Paket verwenden:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @heyputer/puter.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@heyputer/puter.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für den schnellsten Einstieg ist das CDN-Tag meist ausreichend. Für TypeScript-Projekte oder größere Frontends ist der NPM-Import praktischer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 2: Claude-Modell auswählen
&lt;/h2&gt;

&lt;p&gt;Puter stellt Claude-Modelle über Modell-IDs bereit. Die Auswahl hängt vom Anwendungsfall ab:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modell-ID&lt;/th&gt;
&lt;th&gt;Wann verwenden?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-opus-4-7&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Für besonders anspruchsvolle Reasoning-, Coding- und Agentenaufgaben&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-opus-4-6&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Starke Code-Erstellung und komplexe Aufgaben&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-opus-4.6-fast&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Opus-Variante mit Fokus auf geringere Latenz&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-opus-4-5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stabile Option für komplexere Produktionsszenarien&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-opus-4-1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Älteres, gut einschätzbares Opus-Modell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-opus-4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Basislinie der Opus-4-Reihe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-sonnet-4-6&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Guter Standard für tägliche Entwicklungs- und Chat-Aufgaben&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-sonnet-4-5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Frühere Sonnet-Version für allgemeine Aufgaben&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-sonnet-4&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Basislinie der Sonnet-4-Reihe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;claude-haiku-4-5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Schnelle Antworten, Klassifizierung, einfache Transformationen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Praktische Startpunkte:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verwenden Sie &lt;code&gt;claude-sonnet-4-6&lt;/code&gt; als Standardmodell.&lt;/li&gt;
&lt;li&gt;Verwenden Sie &lt;code&gt;claude-haiku-4-5&lt;/code&gt;, wenn Latenz wichtiger ist als maximale Tiefe.&lt;/li&gt;
&lt;li&gt;Verwenden Sie &lt;code&gt;claude-opus-4-7&lt;/code&gt;, wenn der Prompt komplexe Planung, tiefe Codeanalyse oder mehrstufiges Reasoning benötigt.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Schritt 3: Einen einfachen Chat-Aufruf bauen
&lt;/h2&gt;

&lt;p&gt;Der kleinste funktionierende Aufruf sieht so aus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Erklären Sie Quantencomputing in einfachen Worten&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Antwortstruktur ähnelt der Anthropic Messages API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für reine Textantworten reicht meist der erste Content-Block. Wenn Sie mit mehrteiligen Antworten arbeiten, sollten Sie alle Blöcke iterieren:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;block&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Schritt 4: Fehlerbehandlung ergänzen
&lt;/h2&gt;

&lt;p&gt;Für Prototypen reicht der Minimalcode. Für eine echte UI sollten Sie Ladezustand und Fehler anzeigen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"run"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Prompt senden&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;pre&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"output"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/pre&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;output&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;run&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Lade...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Gib mir drei Ideen für eine REST-API-Teststrategie.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;);&lt;/span&gt;

      &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fehler beim Claude-Aufruf. Details siehe Konsole.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das ist besonders wichtig, weil der Benutzer sich gegebenenfalls zuerst bei Puter anmelden muss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 5: Streaming aktivieren
&lt;/h2&gt;

&lt;p&gt;Für längere Antworten ist Streaming deutlich angenehmer. Aktivieren Sie es mit &lt;code&gt;stream: true&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Schreiben Sie einen detaillierten Aufsatz über die Auswirkungen künstlicher Intelligenz auf die Gesellschaft.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;part&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für eine eigene Chat-Oberfläche hängen Sie jeden Chunk an ein DOM-Element an:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;output&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Erstelle eine Schritt-für-Schritt-Anleitung für API-Mocking.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;part&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;part&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Schritt 6: Mehrstufige Unterhaltungen verwalten
&lt;/h2&gt;

&lt;p&gt;Für Chatverläufe übergeben Sie ein Array von Nachrichten:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ich entwickle eine Next.js-App mit Postgres.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;assistant&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Verstanden. Wobei benötigen Sie Hilfe?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Wie soll ich den Migrationsordner strukturieren?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-opus-4-7&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In einer echten App speichern Sie den Verlauf clientseitig:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;sendMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userText&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userText&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;assistantText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;assistant&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;assistantText&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;assistantText&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wichtig: Je länger der Verlauf wird, desto mehr Kontext wird mitgeschickt. Für lange Chats sollten Sie ältere Nachrichten zusammenfassen oder gezielt kürzen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 7: System-Prompts verwenden
&lt;/h2&gt;

&lt;p&gt;System-Prompts definieren Rolle, Stil, Einschränkungen und Ausgabeformat:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;system&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Sie sind ein erfahrener Backend-Ingenieur. Antworten Sie in nummerierten Punkten und mit maximal fünf Punkten.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Wie verhindere ich SQL-Injection in einer Node-App?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gute System-Prompts sind konkret:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;systemPrompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`
Sie sind ein API-Reviewer.
Prüfen Sie die folgende OpenAPI-Spezifikation.
Antworten Sie mit:
1. Kritischen Fehlern
2. Sicherheitsrisiken
3. Verbesserungen für Developer Experience
4. Konkreten Änderungsvorschlägen
`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Modelle mit demselben Prompt vergleichen
&lt;/h2&gt;

&lt;p&gt;Um ein passendes Modell zu wählen, testen Sie denselben Prompt gegen mehrere Modelle:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;models&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-haiku-4-5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-opus-4-7&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Refaktorisieren Sie diese React-Komponente, um Hooks zu verwenden: ...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;models&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;performance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;performance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;elapsed&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toFixed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="s2"&gt;ms`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;---&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bewerten Sie nicht nur die Antwortqualität, sondern auch:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latenz&lt;/li&gt;
&lt;li&gt;Antwortlänge&lt;/li&gt;
&lt;li&gt;Konsistenz bei wiederholten Runs&lt;/li&gt;
&lt;li&gt;Qualität bei Randfällen&lt;/li&gt;
&lt;li&gt;Eignung für Ihren konkreten UI-Flow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für viele Anwendungen ist &lt;code&gt;claude-sonnet-4-6&lt;/code&gt; ein sinnvoller Default. &lt;code&gt;claude-haiku-4-5&lt;/code&gt; eignet sich für schnelle Klassifizierung oder einfache Texttransformationen. &lt;code&gt;claude-opus-4-7&lt;/code&gt; sollten Sie für Aufgaben reservieren, bei denen bessere Reasoning-Qualität den Mehraufwand rechtfertigt.&lt;/p&gt;

&lt;p&gt;Wenn Sie Puter mit einer späteren offiziellen Anthropic-Integration vergleichen möchten, können Sie in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; separate Umgebungen für Prototyp und Produktion pflegen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was Sie bekommen — und was nicht
&lt;/h2&gt;

&lt;p&gt;Puter.js ist praktisch, aber nicht identisch mit einer direkten Backend-Integration über die offizielle Anthropic API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sie bekommen:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zugriff auf Claude-Modelle über eine einfache Browser-API&lt;/li&gt;
&lt;li&gt;Mehrstufige Unterhaltungen&lt;/li&gt;
&lt;li&gt;System-Prompts&lt;/li&gt;
&lt;li&gt;Streaming-Antworten&lt;/li&gt;
&lt;li&gt;Keine Verwaltung eigener Anthropic-Keys&lt;/li&gt;
&lt;li&gt;Kein zentrales Abrechnungsrisiko für Ihr Projekt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sie bekommen möglicherweise nicht oder nur eingeschränkt:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Native Tool-Nutzung / Function Calling, abhängig vom aktuellen Puter-Funktionsumfang&lt;/li&gt;
&lt;li&gt;Vision-Eingaben wie Bildanhänge&lt;/li&gt;
&lt;li&gt;Direkte Kontrolle über Anthropic-spezifisches Prompt-Caching&lt;/li&gt;
&lt;li&gt;Serverseitige Nutzung ohne Browserkontext&lt;/li&gt;
&lt;li&gt;Direkte Einsicht in Anthropic-Rate-Limit-Header&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für Workflows mit komplexer Tool-Nutzung, MCP-Servern oder Backend-Automatisierung bietet die offizielle Anthropic API mehr Kontrolle. Für MCP-bezogene Tests siehe auch &lt;a href="http://apidog.com/blog/mcp-server-testing-apidog?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;MCP-Server-Testing in Apidog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wann Sie Puter verwenden sollten
&lt;/h2&gt;

&lt;p&gt;Verwenden Sie Puter.js, wenn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sie eine browserbasierte Demo oder öffentliche App bauen.&lt;/li&gt;
&lt;li&gt;Sie keine eigene Anthropic-Abrechnung verwalten möchten.&lt;/li&gt;
&lt;li&gt;Sie schnell prototypen wollen.&lt;/li&gt;
&lt;li&gt;Ihre App ohne Backend auskommen soll.&lt;/li&gt;
&lt;li&gt;Ihre Benutzer einen Puter-Login akzeptieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Verwenden Sie die offizielle Anthropic API, wenn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sie serverseitige Jobs, Cron-Prozesse oder Backend-Endpunkte haben.&lt;/li&gt;
&lt;li&gt;Sie Tool-Nutzung, Vision oder Files-Workflows benötigen.&lt;/li&gt;
&lt;li&gt;Sie Prompt-Caching gezielt zur Kostenoptimierung einsetzen wollen.&lt;/li&gt;
&lt;li&gt;Sie Compliance-Anforderungen vertraglich abdecken müssen.&lt;/li&gt;
&lt;li&gt;Ihre Benutzer keinen zusätzlichen Login-Schritt akzeptieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ein praktikabler Weg ist: mit Puter prototypen, Produktlogik validieren und bei Bedarf später auf die offizielle API migrieren. Da die Nachrichtenstruktur ähnlich ist, bleibt die Migration überschaubar.&lt;/p&gt;

&lt;p&gt;Für das GPT-Äquivalent siehe &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-5.5 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Die Integration mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Puter-Aufrufe laufen im Browser. Ein klassischer Backend-Test-Runner kann sie daher nicht direkt wie eine normale REST-API testen. Ein praktikabler Testaufbau:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Erstellen Sie eine kleine statische Testseite mit Puter.js.&lt;/li&gt;
&lt;li&gt;Übergeben Sie den Prompt per Query-Parameter oder Formularfeld.&lt;/li&gt;
&lt;li&gt;Loggen Sie Modell, Prompt, Antwort und Laufzeit im Browser.&lt;/li&gt;
&lt;li&gt;Pflegen Sie in Apidog parallel die spätere Anthropic-API-Struktur.&lt;/li&gt;
&lt;li&gt;Vergleichen Sie beide Pfade über separate Umgebungen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-28.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-28.png" alt="" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Laden Sie &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; herunter und legen Sie zwei Umgebungen an:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;puter-prototype&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Beispiel: &lt;code&gt;http://localhost:5173&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;anthropic-prod&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Beispiel: &lt;code&gt;https://api.anthropic.com/v1&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So können Sie Prompts, erwartete Antworten und spätere API-Verträge an einem Ort dokumentieren.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beispiel: Prompt über URL testen
&lt;/h2&gt;

&lt;p&gt;Eine einfache Testseite kann den Prompt aus der URL lesen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"de"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Puter Claude Test&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;pre&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"output"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Lade...&lt;span class="nt"&gt;&amp;lt;/pre&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;URLSearchParams&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;prompt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Sag Hallo in einem Satz.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;model&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;claude-sonnet-4-6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;output&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

      &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;performance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;model&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;performance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;elapsedMs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;elapsed&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;response&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;
          &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;2&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aufruf im Browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:5173/?model=claude-sonnet-4-6&amp;amp;prompt=Erkläre%20API-Mocking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Damit erhalten Sie einen reproduzierbaren Prototyp, den Sie später mit einer serverseitigen Anthropic-Route vergleichen können.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ist das wirklich unbegrenzt?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Aus Entwicklersicht gibt es keine zentrale Anthropic-Abrechnung über Ihr Konto. Die tatsächliche Nutzung hängt vom Puter-Konto und Guthaben des jeweiligen Endbenutzers ab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Muss ich mich bei Anthropic anmelden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nein. Bei diesem Ansatz verwalten Sie keinen Anthropic-API-Key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich das in Produktion verwenden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ja, für browserbasierte Apps, wenn der Puter-Login für Ihre Benutzer akzeptabel ist. Für serverseitige Produktionslogik sollten Sie die offizielle Anthropic API prüfen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verhält sich Claude über Puter identisch zur offiziellen API?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Die Modellantworten sollten grundsätzlich aus demselben Claude-Modell stammen. Die verfügbare API-Oberfläche, Latenz und Zusatzfunktionen können sich jedoch von der direkten Anthropic API unterscheiden.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was ist mit Prompt-Caching?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Wenn Sie Anthropic-spezifisches Prompt-Caching gezielt steuern möchten, ist die offizielle API der bessere Weg.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich Puter in einem Discord-Bot oder Backend-Dienst verwenden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Nicht sauber, da Puter.js browserzentriert ist und eine Benutzersitzung voraussetzt. Für Bots und Backends verwenden Sie besser die offizielle Anthropic API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welches Modell sollte ich standardmäßig verwenden?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;claude-sonnet-4-6&lt;/code&gt; ist ein guter Startpunkt. Wechseln Sie zu &lt;code&gt;claude-opus-4-7&lt;/code&gt; für tiefere Analyse und zu &lt;code&gt;claude-haiku-4-5&lt;/code&gt; für schnelle, einfache Aufgaben.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Puter.js ist ein schneller Weg, Claude in browserbasierte Apps einzubauen, ohne einen eigenen Anthropic-API-Key zu verwalten. Die Integration ist minimal: Skript einfügen, Modell wählen, &lt;code&gt;puter.ai.chat()&lt;/code&gt; aufrufen.&lt;/p&gt;

&lt;p&gt;Für Prototypen, statische Websites, Hackathon-Projekte und kostenlose öffentliche Tools ist dieser Ansatz besonders praktisch. Für serverseitige Workloads, Tool-Nutzung, Prompt-Caching oder Compliance-Anforderungen bleibt die offizielle Anthropic API die robustere Option.&lt;/p&gt;

&lt;p&gt;Erstellen Sie Ihre Testfälle in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, vergleichen Sie Puter-Prototypen mit einer offiziellen API-Integration und migrieren Sie erst dann, wenn Ihr Anwendungsfall es wirklich erfordert.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Grok 4.3 Kostenlos Nutzen: 4 Funktionierende Wege 2026</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Sat, 09 May 2026 02:28:59 +0000</pubDate>
      <link>https://forem.com/emree_demir/grok-43-kostenlos-nutzen-4-funktionierende-wege-2026-3afa</link>
      <guid>https://forem.com/emree_demir/grok-43-kostenlos-nutzen-4-funktionierende-wege-2026-3afa</guid>
      <description>&lt;p&gt;Grok 4.3 ist ab Mai 2026 xAIs Vorzeigemodell: 1M-Token-Kontextfenster, native Videoeingabe und ein Preis von 1,25 $ / 2,50 $ pro Million Tokens. Wenn Sie Prototypen bauen, lernen oder ein Nebenprojekt entwickeln, können Sie Grok 4.3 über drei realistische Wege kostenlos nutzen: xAI Console-Werbeguthaben, Puter.js mit Benutzer-zahlt-Modell und die kostenlosen Chat-Oberflächen auf grok.com und X.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Testen Sie Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Dieser Leitfaden zeigt die praktische Umsetzung für jeden Weg: Einrichtung, Beispielaufrufe, Grenzen und Entscheidungskriterien. Den vollständigen Leitfaden für die kostenpflichtige API finden Sie unter &lt;a href="http://apidog.com/blog/how-to-use-grok-4-3-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;So verwenden Sie die Grok 4.3 API&lt;/a&gt;. Für das Sprach-Äquivalent siehe &lt;a href="http://apidog.com/blog/how-to-use-grok-voice-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;So verwenden Sie Grok Voice kostenlos&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Drei kostenlose Wege zu Grok 4.3:&lt;/strong&gt; xAI Console mit Werbeguthaben, Puter.js mit Benutzer-zahlt-Modell und die Chat-UIs auf &lt;a href="http://grok.com" rel="noopener noreferrer"&gt;grok.com&lt;/a&gt; und X.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Für Entwickler am praktischsten:&lt;/strong&gt; Puter.js. Sie stellen ohne eigenen Billing-Key bereit; der Endbenutzer trägt seine Nutzung.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Für API-Prototyping:&lt;/strong&gt; xAI Console. Das Startguthaben reicht typischerweise, um eine Integration Ende-zu-Ende zu testen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Für Nicht-Entwickler:&lt;/strong&gt; &lt;a href="http://grok.com" rel="noopener noreferrer"&gt;grok.com&lt;/a&gt; oder X-App. Kein Code, aber tägliche Limits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modell-IDs:&lt;/strong&gt; Puter: &lt;code&gt;x-ai/grok-4.3&lt;/code&gt;; direkt bei xAI: &lt;code&gt;grok-4.3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Nutzen Sie &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, um Anfragen an mehrere Anbieter zu testen und Latenz, Antwortqualität und Token-Verbrauch zu vergleichen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Weg 1: xAI Console-Werbeguthaben
&lt;/h2&gt;

&lt;p&gt;Nutzen Sie diesen Weg, wenn Sie die echte Produktions-API testen möchten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 1: Konto erstellen
&lt;/h3&gt;

&lt;p&gt;Gehen Sie zu &lt;code&gt;console.x.ai&lt;/code&gt; und erstellen Sie ein Konto. Die Anmeldung läuft über Ihr X-Konto.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 2: Guthaben prüfen
&lt;/h3&gt;

&lt;p&gt;xAI bietet zeitweise Werbeguthaben für neue Konten an. Betrag und Laufzeit können sich ändern. Prüfen Sie nach der Registrierung den Bereich &lt;strong&gt;Abrechnung&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Wichtig:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Das Guthaben erneuert sich normalerweise nicht automatisch.&lt;/li&gt;
&lt;li&gt;Es eignet sich für Prototyping, nicht für dauerhafte Produktion.&lt;/li&gt;
&lt;li&gt;Sobald das Guthaben aufgebraucht ist, müssen Sie zahlen oder zu einem anderen Weg wechseln.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Schritt 3: API-Key setzen
&lt;/h3&gt;

&lt;p&gt;Erstellen Sie in der Console einen API-Key und exportieren Sie ihn lokal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"xai-..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Schritt 4: Grok 4.3 aufrufen
&lt;/h3&gt;

&lt;p&gt;Der Endpoint ist OpenAI-kompatibel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.x.ai/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "grok-4.3",
    "messages": [
      {
        "role": "user",
        "content": "Explain prompt caching in three sentences."
      }
    ],
    "reasoning_effort": "low"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für Prototyping sollten Sie mit &lt;code&gt;reasoning_effort: "low"&lt;/code&gt; starten. &lt;code&gt;medium&lt;/code&gt; und &lt;code&gt;high&lt;/code&gt; verbrauchen Ihr Guthaben schneller.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vor- und Nachteile
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Vorteile&lt;/th&gt;
&lt;th&gt;Nachteile&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Echte Produktions-API&lt;/td&gt;
&lt;td&gt;Guthaben ist begrenzt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gleiche Oberfläche wie bei bezahlter Nutzung&lt;/td&gt;
&lt;td&gt;Werbebedingungen können sich ändern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unterstützt Grok 4.3-Funktionen wie 1M Kontext, Video und Function Calling&lt;/td&gt;
&lt;td&gt;Für Lasttests ungeeignet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keine Code-Migration beim Wechsel zu Paid&lt;/td&gt;
&lt;td&gt;Rate Limits bleiben bestehen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Empfehlung:&lt;/strong&gt; Starten Sie mit der Console, wenn Sie wissen möchten, wie sich die direkte xAI API in Ihrer App verhält. Das vollständige Request-Schema finden Sie unter &lt;a href="http://apidog.com/blog/how-to-use-grok-4-3-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;So verwenden Sie die Grok 4.3 API&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weg 2: Puter.js — Benutzer zahlt, Entwickler kostenlos
&lt;/h2&gt;

&lt;p&gt;Puter.js ist der sauberste Weg für öffentliche Web-Apps, wenn Sie keine eigene AI-Abrechnung betreiben möchten.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-26.png" alt="" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie das Modell funktioniert
&lt;/h3&gt;

&lt;p&gt;Puter.js stellt einen JavaScript-Client bereit, der LLMs wie Grok, GPT, Claude, Gemini und DeepSeek aufrufen kann.&lt;/p&gt;

&lt;p&gt;Der wichtige Unterschied:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Der Endbenutzer bezahlt die Nutzung über sein Puter-Konto, nicht Sie als Entwickler.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Das bedeutet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sie benötigen keinen API-Key im Frontend.&lt;/li&gt;
&lt;li&gt;Sie müssen keine eigene Billing-Logik bauen.&lt;/li&gt;
&lt;li&gt;Ihre öffentliche App kann AI-Funktionen anbieten, ohne dass Sie die Modellkosten tragen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Schritt 1: Puter.js einbinden
&lt;/h3&gt;

&lt;p&gt;Fügen Sie das Skript in Ihre HTML-Seite ein:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mehr Setup ist nicht nötig.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 2: Grok 4.3 aufrufen
&lt;/h3&gt;

&lt;p&gt;Verwenden Sie &lt;code&gt;puter.ai.chat()&lt;/code&gt; mit der Modell-ID &lt;code&gt;x-ai/grok-4.3&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.puter.com/v2/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Summarize the trade-offs between SQLite and Postgres in three bullets.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x-ai/grok-4.3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Beim ersten Aufruf fordert Puter den Benutzer auf, sich anzumelden oder ein Konto zu erstellen. Danach werden die Aufrufe gegen dessen Puter-Guthaben abgerechnet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 3: Streaming verwenden
&lt;/h3&gt;

&lt;p&gt;Für längere Antworten sollten Sie Streaming aktivieren:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;puter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Walk me through migrating a React app to Next.js.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x-ai/grok-4.3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;reasoning_effort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;medium&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;chunk&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Wann Puter.js passt
&lt;/h3&gt;

&lt;p&gt;Puter.js eignet sich besonders für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;öffentliche Web-Tools&lt;/li&gt;
&lt;li&gt;Demos&lt;/li&gt;
&lt;li&gt;Lernprojekte&lt;/li&gt;
&lt;li&gt;clientseitige Apps&lt;/li&gt;
&lt;li&gt;Nebenprojekte ohne eigene AI-Kostenstelle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nicht ideal ist Puter.js für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reine Backend-Jobs&lt;/li&gt;
&lt;li&gt;interne Automatisierung&lt;/li&gt;
&lt;li&gt;Bots, bei denen kein Endbenutzer im Browser sitzt&lt;/li&gt;
&lt;li&gt;Workloads, bei denen Sie die vollständige Server-Kontrolle brauchen&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Vor- und Nachteile
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Vorteile&lt;/th&gt;
&lt;th&gt;Nachteile&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Entwickler zahlt dauerhaft 0 $&lt;/td&gt;
&lt;td&gt;Benutzer muss sich bei Puter anmelden&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kein API-Key im Repo&lt;/td&gt;
&lt;td&gt;Weniger geeignet für reine Backend-Systeme&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Einfache Browser-Integration&lt;/td&gt;
&lt;td&gt;Benötigt Browser-Kontext&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unterstützt mehrere LLM-Anbieter&lt;/td&gt;
&lt;td&gt;Potenziell höhere Latenz als direkte xAI API&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Empfehlung:&lt;/strong&gt; Verwenden Sie Puter.js, wenn Ihre Benutzer diejenigen sind, die die Abfragen ausführen. Für serverseitige Automatisierung ist die xAI Console der bessere kostenlose Einstieg.&lt;/p&gt;

&lt;p&gt;Ähnliche Muster finden Sie in &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die DeepSeek V4 API kostenlos nutzt&lt;/a&gt; und &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-5.5 API kostenlos nutzt&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weg 3: grok.com und X-App
&lt;/h2&gt;

&lt;p&gt;Wenn Sie keinen API-Zugriff brauchen, sondern nur mit Grok chatten möchten, nutzen Sie die kostenlosen Chat-Oberflächen.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="http://grok.com" rel="noopener noreferrer"&gt;grok.com&lt;/a&gt;:&lt;/strong&gt; Web-Chat mit X-Login.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;X-App:&lt;/strong&gt; Grok ist in den mobilen und Web-Apps von X verfügbar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Diese Option eignet sich für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;einmalige Fragen&lt;/li&gt;
&lt;li&gt;manuelle Prompt-Tests&lt;/li&gt;
&lt;li&gt;schnelle Modell-Evaluierung&lt;/li&gt;
&lt;li&gt;Recherche ohne Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sie können diese Oberfläche nicht skripten. Wenn Sie automatisierte Requests, Logs, Tests oder Integration in eine App brauchen, verwenden Sie xAI Console oder Puter.js.&lt;/p&gt;

&lt;p&gt;Die kostenlose Stufe auf &lt;a href="http://grok.com" rel="noopener noreferrer"&gt;grok.com&lt;/a&gt; verwendet standardmäßig eine kleinere Grok-Variante. Premium-Abonnements auf X schalten Grok 4.3 in der Chat-Oberfläche mit höheren Kontingenten frei.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weg 4: OpenRouter — günstig, aber nicht kostenlos für Grok 4.3
&lt;/h2&gt;

&lt;p&gt;OpenRouter aggregiert mehrere Modellanbieter hinter einem API-Key und einer Billing-Oberfläche.&lt;/p&gt;

&lt;p&gt;Für Grok 4.3 ist OpenRouter nicht kostenlos. Der Preis entspricht direkt bei xAI: 1,25 $ / 2,50 $ pro 1 Mio. Tokens.&lt;/p&gt;

&lt;p&gt;Trotzdem kann OpenRouter nützlich sein, weil es kostenlose Varianten anderer Grok-Modelle gibt, zum Beispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;x-ai/grok-4-fast:free
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn Sie nicht zwingend Grok 4.3 benötigen, können Sie damit kostenlos eine Grok-ähnliche Ausgabe testen.&lt;/p&gt;

&lt;p&gt;Beispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://openrouter.ai/api/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$OPENROUTER_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "x-ai/grok-4-fast:free",
    "messages": [
      {
        "role": "user",
        "content": "Hello!"
      }
    ]
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verwenden Sie OpenRouter, wenn Sie mehrere Modelle über eine einheitliche API vergleichen möchten. Verwenden Sie einen der ersten drei Wege, wenn Sie speziell Grok 4.3 kostenlos nutzen möchten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vergleich der Wege
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Weg&lt;/th&gt;
&lt;th&gt;Kosten für Entwickler&lt;/th&gt;
&lt;th&gt;Kosten für Endbenutzer&lt;/th&gt;
&lt;th&gt;Am besten geeignet für&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;xAI Console-Guthaben&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0 $ innerhalb des Guthabens&lt;/td&gt;
&lt;td&gt;n. a.&lt;/td&gt;
&lt;td&gt;API-Prototyping, Lernen der Produktions-API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Puter.js&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0 $&lt;/td&gt;
&lt;td&gt;wenige Cent pro Sitzung&lt;/td&gt;
&lt;td&gt;öffentliche Web-Apps, Demos, kostenlose Tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://grok.com" rel="noopener noreferrer"&gt;grok.com&lt;/a&gt; / X&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0 $&lt;/td&gt;
&lt;td&gt;0 $ mit Kontingent&lt;/td&gt;
&lt;td&gt;manuelle Nutzung, Prompt-Tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenRouter Free-Modell&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0 $&lt;/td&gt;
&lt;td&gt;n. a.&lt;/td&gt;
&lt;td&gt;Grok-ähnliche Ausgabe, aber nicht Grok 4.3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Anbieterübergreifend mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Wenn Sie mehrere Anbieter vergleichen, sollten Sie dieselbe Anfrage gegen mehrere Base-URLs ausführen. So sehen Sie Unterschiede bei Antwortqualität, Token-Verbrauch und Latenz.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setup in Apidog
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Erstellen Sie eine neue Umgebung in Apidog.&lt;/li&gt;
&lt;li&gt;Legen Sie Variablen an:

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;XAI_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OPENROUTER_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BASE_URL&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Erstellen Sie eine Request-Collection für Chat Completions.&lt;/li&gt;
&lt;li&gt;Verwenden Sie für xAI:

&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://api.x.ai/v1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Model: &lt;code&gt;grok-4.3&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verwenden Sie für OpenRouter:

&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://openrouter.ai/api/v1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Model: &lt;code&gt;x-ai/grok-4-fast:free&lt;/code&gt; oder ein anderes verfügbares Modell&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Führen Sie denselben Prompt gegen beide Umgebungen aus.&lt;/li&gt;
&lt;li&gt;Vergleichen Sie Antwort, Latenz und Token-Verbrauch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Puter.js läuft browserseitig und fällt aus diesem API-Test-Loop heraus.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Laden Sie Apidog herunter&lt;/a&gt; und erstellen Sie eine Collection mit dem OpenAI Chat Completions Schema. Weitere Informationen zum anbieterübergreifenden Testen finden Sie unter &lt;a href="http://apidog.com/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Testtool für QA-Ingenieure&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was Sie bei kostenlosen Wegen beachten müssen
&lt;/h2&gt;

&lt;p&gt;Kostenlose Optionen sind gut für Prototypen, aber sie haben Grenzen.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Strengere Rate Limits
&lt;/h3&gt;

&lt;p&gt;Konsolen-Guthaben hebt Rate Limits nicht auf. Wenn Sie viele Requests parallel senden, können &lt;code&gt;429&lt;/code&gt;-Fehler auftreten, bevor das Guthaben verbraucht ist.&lt;/p&gt;

&lt;p&gt;Planen Sie deshalb:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request-Throttling&lt;/li&gt;
&lt;li&gt;Retry mit Backoff&lt;/li&gt;
&lt;li&gt;kleinere Testdatensätze&lt;/li&gt;
&lt;li&gt;Logging für Fehlerraten&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Prompt-Caching bringt erst später viel
&lt;/h3&gt;

&lt;p&gt;Prompt-Caching ist bei großen, wiederverwendeten System-Prompts nützlich. Für einen kleinen 50-Request-Prototypen werden Sie die Einsparung kaum merken.&lt;/p&gt;

&lt;p&gt;Relevant wird es, wenn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ihr System-Prompt sehr groß ist&lt;/li&gt;
&lt;li&gt;Sie denselben Kontext häufig wiederverwenden&lt;/li&gt;
&lt;li&gt;Sie wiederkehrende Workloads haben&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Support ist eingeschränkt
&lt;/h3&gt;

&lt;p&gt;Kostenlose Konten erhalten in der Regel keinen produktionskritischen Support. Wenn Sie SLAs, Audit-Trails oder Compliance-Anforderungen brauchen, sollten Sie bezahlte Nutzung einplanen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wann Sie auf kostenpflichtige Nutzung wechseln sollten
&lt;/h2&gt;

&lt;p&gt;Wechseln Sie auf Paid, wenn eines dieser Signale zutrifft:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Regelmäßiger Durchsatz:&lt;/strong&gt; Sie stoßen mehrmals pro Woche an Rate Limits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stabile große Prompts:&lt;/strong&gt; Ihr System-Prompt ist groß und wird häufig wiederverwendet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Produktionsbetrieb:&lt;/strong&gt; Benutzer verlassen sich auf Ihre Anwendung.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance:&lt;/strong&gt; Sie brauchen Audit-Trails, BAAs, SOC-2-Anforderungen oder regionale Datenresidenz.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend-Automatisierung:&lt;/strong&gt; Sie können das Benutzer-zahlt-Modell von Puter.js nicht nutzen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Die Migration ist meist klein: Base URL, API-Key und gegebenenfalls Modell-ID ändern. Das Chat-Completions-Request-Format bleibt weitgehend gleich.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ist Grok 4.3 wirklich kostenlos?
&lt;/h3&gt;

&lt;p&gt;Es hängt vom Weg ab:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;xAI Console:&lt;/strong&gt; kostenlos innerhalb des Werbeguthabens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Puter.js:&lt;/strong&gt; kostenlos für den Entwickler; der Benutzer trägt die Nutzung.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;grok.com / X:&lt;/strong&gt; kostenlos mit täglichem Nachrichtenlimit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Kann ich Grok 4.3 aus einem Backend nutzen, ohne zu bezahlen?
&lt;/h3&gt;

&lt;p&gt;Ja, solange Ihr xAI Console-Guthaben reicht. Danach müssen Sie zahlen oder eine browserseitige Option wie Puter.js verwenden, bei der der Endbenutzer die Nutzung trägt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Funktioniert Puter.js in Node.js?
&lt;/h3&gt;

&lt;p&gt;Puter.js ist primär für den Browser gedacht. Das Benutzer-zahlt-Modell basiert auf der Browser-Sitzung des Endbenutzers. Für Backend-Code ist die xAI Console der passendere kostenlose Einstieg.&lt;/p&gt;

&lt;h3&gt;
  
  
  Welche Modell-ID nutze ich bei Puter.js?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;x-ai/grok-4.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Welche Modell-ID nutze ich direkt bei xAI?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grok-4.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Deckt xAI Console-Guthaben Function Calling und Videoeingabe ab?
&lt;/h3&gt;

&lt;p&gt;Ja. Das Guthaben gilt für die Grok 4.3-Nutzung. Achten Sie aber auf den Token-Verbrauch: Video und große Kontexte können Guthaben schnell verbrauchen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie unterscheidet sich das von Grok Voice?
&lt;/h3&gt;

&lt;p&gt;Grok Voice ist separat zu betrachten. Grok 4.3 Text ist über Guthaben oder alternative Wege nutzbar. Siehe &lt;a href="http://apidog.com/blog/how-to-use-grok-voice-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;So verwenden Sie Grok Voice kostenlos&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gibt es ein kostenloses Grok 4.3 Mini?
&lt;/h3&gt;

&lt;p&gt;Noch nicht. xAI hat keine separate Mini-SKU für die 4.3-Linie veröffentlicht. Eine kostenlose Alternative ist &lt;code&gt;grok-4-fast:free&lt;/code&gt; auf OpenRouter, aber das ist nicht Grok 4.3.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Für Grok 4.3 gibt es drei sinnvolle kostenlose Einstiege:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;xAI Console:&lt;/strong&gt; beste Wahl für API-Prototyping mit echter Produktionsoberfläche.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Puter.js:&lt;/strong&gt; beste Wahl für öffentliche Web-Apps ohne eigene AI-Kosten.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;grok.com / X:&lt;/strong&gt; beste Wahl für manuelle Nutzung ohne Code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OpenRouter ist zusätzlich nützlich, wenn Sie kostenlose Grok-ähnliche Modelle testen möchten, aber Grok 4.3 selbst ist dort nicht kostenlos.&lt;/p&gt;

&lt;p&gt;Wenn Ihr Projekt produktiv wird, ist bezahlte Nutzung oft der einfachste Weg: API-Key setzen, Base URL stabil halten und Requests weiter über das OpenAI-kompatible Schema ausführen. Für die vollständige Anleitung zur kostenpflichtigen API siehe &lt;a href="http://apidog.com/blog/how-to-use-grok-4-3-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;So verwenden Sie die Grok 4.3 API&lt;/a&gt;. Für den direkten Vergleich mit OpenAI siehe &lt;a href="http://apidog.com/blog/grok-voice-vs-gpt-realtime-best-voice-model?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Grok Voice vs. GPT-Realtime&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Erstellen Sie die Anfrage einmal in Apidog, wechseln Sie die Base URL je nach Anbieter und testen Sie mit identischen Prompts, welcher Weg zu Ihrer Nutzungskurve passt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-27.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-27.png" alt="" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Grok 4.3 API Nutzung: Eine Anleitung</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 08 May 2026 07:46:24 +0000</pubDate>
      <link>https://forem.com/emree_demir/grok-43-api-nutzung-eine-anleitung-43jn</link>
      <guid>https://forem.com/emree_demir/grok-43-api-nutzung-eine-anleitung-43jn</guid>
      <description>&lt;p&gt;xAI hat Grok 4.3 schrittweise ausgerollt: Beta am 17. April 2026, API-Zugang am 30. April und allgemeine Verfügbarkeit am 6. Mai. Für Entwickler sind vor allem vier Punkte relevant: ein 1.000.000-Token-Kontextfenster, native Videoeingabe, durchgängiges Reasoning und eine Preissenkung von ungefähr 40 % gegenüber Grok 4.20. Da acht ältere Grok-Modelle am 15. Mai eingestellt werden, sollten bestehende Integrationen mit grok-3- oder grok-4-Modellen jetzt migriert und getestet werden.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Probieren Sie Apidog noch heute aus&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Dieser Leitfaden zeigt die praktische Integration von Grok 4.3: Endpunkt, Authentifizierung, OpenAI-kompatible &lt;code&gt;base_url&lt;/code&gt;, &lt;code&gt;reasoning_effort&lt;/code&gt;, Videoeingabe, Funktionsaufrufe und ein reproduzierbares Test-Setup in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Für die Sprachseite derselben Veröffentlichung siehe &lt;a href="http://apidog.com/blog/how-to-use-grok-voice-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man Grok Voice kostenlos nutzt&lt;/a&gt;. Für den direkten Vergleich mit OpenAIs führendem Sprachmodell siehe &lt;a href="http://apidog.com/blog/grok-voice-vs-gpt-realtime-best-voice-model?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Grok Voice vs. GPT-Realtime&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Grok 4.3 ist seit dem &lt;strong&gt;6. Mai 2026&lt;/strong&gt; allgemein verfügbar. Acht ältere Modelle werden am &lt;strong&gt;15. Mai 2026&lt;/strong&gt; eingestellt.&lt;/li&gt;
&lt;li&gt;Preise: &lt;strong&gt;$1.25 pro 1M Eingabe-Tokens&lt;/strong&gt;, &lt;strong&gt;$2.50 pro 1M Ausgabe-Tokens&lt;/strong&gt;, zwischengespeicherte Eingabe &lt;strong&gt;$0.20 pro 1M&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Kontextfenster: &lt;strong&gt;1M Tokens&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Neue Fähigkeit: native &lt;strong&gt;Videoeingabe&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Reasoning ist durchgängig aktiv und kann über &lt;code&gt;reasoning_effort&lt;/code&gt; gesteuert werden: &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;API-Endpunkt: &lt;code&gt;https://api.x.ai/v1/chat/completions&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;OpenAI-kompatibel: OpenAI SDK verwenden, &lt;code&gt;base_url&lt;/code&gt; austauschen.&lt;/li&gt;
&lt;li&gt;Durchsatz: ungefähr 159 Tokens/Sekunde auf Standard-Tiers.&lt;/li&gt;
&lt;li&gt;Testen Sie Varianten mit &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, um Latenz, Antwortqualität und &lt;code&gt;usage.reasoning_tokens&lt;/code&gt; zu vergleichen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Was sich in Grok 4.3 geändert hat
&lt;/h2&gt;

&lt;p&gt;Die wichtigsten Änderungen für Implementierungen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Niedrigere Kosten&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Die Eingabekosten sinken um 37,5 % gegenüber Grok 4.20, die Ausgabekosten um 58,3 %. Zwischengespeicherte Eingaben kosten jetzt 0,20 $ pro 1M Tokens. Das ist besonders relevant für stabile System-Prompts, große Kontextblöcke und wiederkehrende Agenten-Workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;1M-Token-Kontext&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Das Kontextfenster steigt von 256k auf 1M Tokens. Damit können Sie große Diffs, lange Dokumente, komplette Berichte oder längere Konversationshistorien in einer Anfrage verarbeiten.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Native Videoeingabe&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Grok 4.3 kann Video-URLs direkt als Inhaltsblock verarbeiten. Sie müssen nicht zuerst manuell Frames extrahieren.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Durchgängiges Reasoning&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Jede Anfrage nutzt mindestens &lt;code&gt;low&lt;/code&gt; Reasoning. Über &lt;code&gt;reasoning_effort&lt;/code&gt; steuern Sie, wie viel Reasoning-Zeit und Tokens das Modell investieren soll.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bessere agentische Workflows&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
xAI nennt einen Gewinn von +300 Elo-Punkten auf GDPval-AA gegenüber Grok 4.20. In der Praxis ist das vor allem bei Tool-Auswahl, mehrstufigen Abläufen und Fehlererholung relevant.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Der Intelligenzindex von 53 (Artificial Analysis) platziert Grok 4.3 über dem Durchschnitt von 35 für seine Preisklasse und auf Platz 10 von 146 erfassten Modellen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voraussetzungen
&lt;/h2&gt;

&lt;p&gt;Bereiten Sie vor der ersten Anfrage diese Komponenten vor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ein &lt;strong&gt;xAI Console-Konto&lt;/strong&gt; unter &lt;code&gt;console.x.ai&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Einen API-Schlüssel, idealerweise projektbezogen für Produktionsumgebungen.&lt;/li&gt;
&lt;li&gt;Das &lt;strong&gt;OpenAI SDK&lt;/strong&gt; oder das xAI SDK.&lt;/li&gt;
&lt;li&gt;Einen API-Client wie Apidog, damit Sie Requests versionieren, wiederholen und Varianten vergleichen können.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-24.png" alt="" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Exportieren Sie den Schlüssel lokal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"xai-..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Endpunkt und Authentifizierung
&lt;/h2&gt;

&lt;p&gt;Grok 4.3 wird über die OpenAI-kompatible Chat-Completions-Schnittstelle bereitgestellt.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST https://api.x.ai/v1/chat/completions
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Header entsprechen dem üblichen Bearer-Token-Muster:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;Authorization: Bearer $XAI_API_KEY
Content-Type: application/json
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn Sie bereits das OpenAI SDK verwenden, müssen Sie in vielen Fällen nur &lt;code&gt;base_url&lt;/code&gt; und &lt;code&gt;model&lt;/code&gt; ändern.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.x.ai/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-4.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Summarize the trade-offs of GraphQL vs REST in three bullets.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Anfrageparameter
&lt;/h2&gt;

&lt;p&gt;Die wichtigsten Parameter für Grok 4.3:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Typ&lt;/th&gt;
&lt;th&gt;Werte&lt;/th&gt;
&lt;th&gt;Hinweise&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;model&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;code&gt;grok-4.3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Erforderlich.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;messages&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;array&lt;/td&gt;
&lt;td&gt;OpenAI-Nachrichtenstruktur&lt;/td&gt;
&lt;td&gt;Erforderlich. Unterstützt &lt;code&gt;system&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;assistant&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reasoning_effort&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Optional. Standard: &lt;code&gt;medium&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;max_tokens&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;1–32768&lt;/td&gt;
&lt;td&gt;Begrenzt die Ausgabe.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;temperature&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;0.0–2.0&lt;/td&gt;
&lt;td&gt;Standard: 1.0.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;top_p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;0.0–1.0&lt;/td&gt;
&lt;td&gt;Nucleus Sampling.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stream&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;true&lt;/code&gt;, &lt;code&gt;false&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Server-Sent Events bei &lt;code&gt;true&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tools&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;array&lt;/td&gt;
&lt;td&gt;OpenAI-Tool-Struktur&lt;/td&gt;
&lt;td&gt;Für Funktionsaufrufe.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tool_choice&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string / object&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;auto&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt;, spezifisches Tool&lt;/td&gt;
&lt;td&gt;Standard-OpenAI-Semantik.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;response_format&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;object&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "type": "json_object" }&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Strukturierte Ausgabe.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;seed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;beliebig&lt;/td&gt;
&lt;td&gt;Für Reproduzierbarkeit bei &lt;code&gt;temperature: 0&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Minimaler &lt;code&gt;curl&lt;/code&gt;-Request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.x.ai/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "grok-4.3",
    "messages": [
      {
        "role": "system",
        "content": "You are a senior backend engineer."
      },
      {
        "role": "user",
        "content": "Review this query plan and flag the bottleneck."
      }
    ],
    "reasoning_effort": "high"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Antwort folgt der OpenAI-Struktur:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"choices"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"usage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prompt_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;123&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"completion_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;456&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"reasoning_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;78&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"total_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;657&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Reasoning-Aufwand richtig wählen
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;reasoning_effort&lt;/code&gt; ist einer der wichtigsten Tuning-Parameter.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;low&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Geeignet für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Klassifizierung&lt;/li&gt;
&lt;li&gt;einfache Zusammenfassungen&lt;/li&gt;
&lt;li&gt;FAQ-Antworten&lt;/li&gt;
&lt;li&gt;Routing&lt;/li&gt;
&lt;li&gt;einfache Extraktion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-4.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Classify this ticket as billing, technical, or account.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;low&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;medium&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Geeignet für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kundenservice&lt;/li&gt;
&lt;li&gt;einfache Tool-Nutzung&lt;/li&gt;
&lt;li&gt;Datenanalyse&lt;/li&gt;
&lt;li&gt;Standard-Agenten&lt;/li&gt;
&lt;li&gt;strukturierte Antworten&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;medium&lt;/code&gt; ist der Standard und für den meisten Produktionsverkehr der erste sinnvolle Wert.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-4.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Analyze this API error log and suggest likely causes.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;high&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Geeignet für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mehrstufige Agenten&lt;/li&gt;
&lt;li&gt;komplexe Code-Reviews&lt;/li&gt;
&lt;li&gt;mathematische Aufgaben&lt;/li&gt;
&lt;li&gt;Planungsaufgaben&lt;/li&gt;
&lt;li&gt;Workflows mit mehreren Tool-Aufrufen
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-4.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Review this migration plan and identify hidden failure modes.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;high&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wichtig: Reasoning ist in Grok 4.3 nicht vollständig deaktivierbar. Auch &lt;code&gt;low&lt;/code&gt; führt einen grundlegenden Reasoning-Schritt aus.&lt;/p&gt;

&lt;h2&gt;
  
  
  Funktionsaufrufe verwenden
&lt;/h2&gt;

&lt;p&gt;Grok 4.3 unterstützt die OpenAI-kompatible Tool-Struktur. Der Ablauf:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tool-Schema deklarieren.&lt;/li&gt;
&lt;li&gt;Anfrage mit &lt;code&gt;tools&lt;/code&gt; senden.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tool_calls&lt;/code&gt; aus der Antwort lesen.&lt;/li&gt;
&lt;li&gt;Tool serverseitig ausführen.&lt;/li&gt;
&lt;li&gt;Ergebnis als &lt;code&gt;tool&lt;/code&gt;-Nachricht zurückgeben.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Beispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lookup_user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Look up a user by ID.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-4.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Find user u_42 and tell me their last login.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;tool_calls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Danach führen Sie das Tool in Ihrer Anwendung aus und senden das Ergebnis zurück:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Find user u_42 and tell me their last login.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool_call_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user_id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;u_42&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;,&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;last_login&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;2026-05-01T13:45:00Z&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;final_response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-4.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;final_response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn Sie Tool-Abläufe isoliert testen möchten, beschreibt &lt;a href="http://apidog.com/blog/mcp-server-testing-apidog?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;MCP-Servertests in Apidog&lt;/a&gt; eine passende Wiedergabe- und Testeinrichtung.&lt;/p&gt;

&lt;h2&gt;
  
  
  Videoeingabe
&lt;/h2&gt;

&lt;p&gt;Grok 4.3 ist das erste Grok-Modell mit nativer Videoeingabe. Sie übergeben eine Video-URL als Inhaltsblock:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-4.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Describe what happens in this clip and flag any anomalies.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;video_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;video_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/clip.mp4&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Praktische Hinweise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Video-Tokens zählen zu den Eingabe-Tokens.&lt;/li&gt;
&lt;li&gt;Lange Clips verbrauchen den Kontext schnell.&lt;/li&gt;
&lt;li&gt;Wenn Kosten relevant sind, kürzen oder komprimieren Sie Videos vor dem Senden.&lt;/li&gt;
&lt;li&gt;Da das Modell nativ über Frames reasonen kann, müssen Sie keine eigenen Keyframes extrahieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1M-Token-Kontext praktisch nutzen
&lt;/h2&gt;

&lt;p&gt;Das 1M-Kontextfenster ist besonders nützlich, wenn Sie bisher Chunking, Retrieval oder manuelles Zusammenführen einsetzen mussten.&lt;/p&gt;

&lt;p&gt;Typische Muster:&lt;/p&gt;

&lt;h3&gt;
  
  
  Code-Review über große Diffs
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System:
You are a senior backend reviewer. Focus on correctness, security, and migration risks.

User:
Here is the full diff:
&amp;lt;diff&amp;gt;

Here are the affected files:
&amp;lt;files&amp;gt;

Here is the CI output:
&amp;lt;logs&amp;gt;

Return:
1. Critical issues
2. Risky assumptions
3. Suggested fixes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Dokumenten-QA
&lt;/h3&gt;

&lt;p&gt;Sie können lange Verträge, technische Spezifikationen oder Berichte direkt in den Prompt aufnehmen und gezielte Fragen stellen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Based only on the document below, list all clauses that affect data retention.

&amp;lt;full document&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Agenten-Kontext
&lt;/h3&gt;

&lt;p&gt;Für länger laufende Agenten können Sie mehr Verlauf im Kontext halten, statt aggressive Zusammenfassungen zu erzwingen.&lt;/p&gt;

&lt;p&gt;Zwischengespeicherte Eingaben reduzieren die Kosten bei stabilen Prompts deutlich. Ein stabiler System-Prompt mit 400.000 Tokens kostet bei zwischengespeicherter Eingabe 0,08 $ pro Aufruf statt 0,50 $ bei regulärer Eingabe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migration von älteren Grok-Modellen
&lt;/h2&gt;

&lt;p&gt;Acht ältere Grok-Modelle werden am &lt;strong&gt;15. Mai 2026, 12:00 Uhr PT&lt;/strong&gt; eingestellt. Wenn Ihre Anwendung noch &lt;code&gt;grok-3&lt;/code&gt;- oder ältere &lt;code&gt;grok-4&lt;/code&gt;-Varianten nutzt, planen Sie mindestens diese Schritte:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Modellnamen auf &lt;code&gt;grok-4.3&lt;/code&gt; ändern.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;base_url&lt;/code&gt; auf &lt;code&gt;https://api.x.ai/v1&lt;/code&gt; setzen, falls noch nicht geschehen.&lt;/li&gt;
&lt;li&gt;Testfälle mit echten Produktionsprompts ausführen.&lt;/li&gt;
&lt;li&gt;Latenz und &lt;code&gt;usage.reasoning_tokens&lt;/code&gt; vergleichen.&lt;/li&gt;
&lt;li&gt;Regex- oder Parser-Nachbearbeitung erneut validieren.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Beispiel für eine minimale Migration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt; response = client.chat.completions.create(
&lt;span class="gd"&gt;-    model="grok-4.20",
&lt;/span&gt;&lt;span class="gi"&gt;+    model="grok-4.3",
&lt;/span&gt;     messages=messages,
&lt;span class="gi"&gt;+    reasoning_effort="medium",
&lt;/span&gt; )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Achten Sie besonders auf zwei Punkte:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reasoning-Latenz:&lt;/strong&gt; Grok 4.3 führt immer Reasoning aus. Wenn Ihr vorheriger Pfad auf sehr niedrige Latenz optimiert war, testen Sie &lt;code&gt;reasoning_effort="low"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ausgabeformat:&lt;/strong&gt; Grok 4.3 erzeugt tendenziell strukturiertere Antworten. Wenn Ihre Nachbearbeitung stark auf Regex basiert, testen Sie alle erwarteten Antwortvarianten.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für Preisvergleiche mit OpenAI-Modellen siehe &lt;a href="http://apidog.com/blog/gpt-5-5-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;GPT-5.5-Preise&lt;/a&gt;. Für eine ähnliche API-Integration siehe &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-5.5 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testen in Apidog
&lt;/h2&gt;

&lt;p&gt;Ein pragmatisches Test-Setup in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Erstellen Sie eine Umgebung mit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;XAI_API_KEY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BASE_URL = https://api.x.ai/v1&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Legen Sie einen Request an:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST {{BASE_URL}}/chat/completions
Authorization: Bearer {{XAI_API_KEY}}
Content-Type: application/json
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Verwenden Sie diesen Body:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"grok-4.3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"system"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"You are a senior backend engineer."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Review this API design and identify production risks."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reasoning_effort"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{{REASONING_EFFORT}}"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Erstellen Sie drei Varianten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;REASONING_EFFORT = low&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REASONING_EFFORT = medium&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REASONING_EFFORT = high&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Vergleichen Sie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Antwortqualität&lt;/li&gt;
&lt;li&gt;Latenz&lt;/li&gt;
&lt;li&gt;&lt;code&gt;usage.prompt_tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;usage.completion_tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;usage.reasoning_tokens&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;usage.total_tokens&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optional: Erstellen Sie eine vierte Variante mit OpenAI-Base-URL, um bei identischem Prompt ein Vergleichsmodell zu testen.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Laden Sie Apidog herunter&lt;/a&gt;, um diese Varianten als wiederholbare API-Tests zu speichern. Für eine breitere Teststrategie siehe &lt;a href="http://apidog.com/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Testtool für QA-Ingenieure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-23.png" alt="" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ratenbegrenzungen und Backoff
&lt;/h2&gt;

&lt;p&gt;Die konkreten Tier-Limits ändern sich und sollten in der xAI-Konsole geprüft werden. xAI nennt ungefähr 159 Tokens/Sekunde als Ausgabegeschwindigkeit pro Stream. Das ist nicht dasselbe wie ein globaler Aggregatdurchsatz.&lt;/p&gt;

&lt;p&gt;Wenn Sie ein Rate Limit erreichen, gibt die API einen &lt;code&gt;429&lt;/code&gt;-Fehler mit &lt;code&gt;retry-after&lt;/code&gt; zurück. Implementieren Sie exponentiellen Backoff:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;RateLimitError&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;call_with_backoff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_retries&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;delay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;attempt&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_retries&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;RateLimitError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;attempt&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;max_retries&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;raise&lt;/span&gt;

            &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;delay&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verwendung:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;call_with_backoff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;grok-4.3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Summarize this incident report.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;reasoning_effort&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ist Grok 4.3 Ende-zu-Ende OpenAI-kompatibel?
&lt;/h3&gt;

&lt;p&gt;Für Chat Completions: ja. Sie können das OpenAI SDK verwenden, &lt;code&gt;base_url&lt;/code&gt; ändern und &lt;code&gt;model="grok-4.3"&lt;/code&gt; setzen. Funktionsaufrufe, strukturierte Ausgabe und Streaming folgen der OpenAI-kompatiblen Form.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unterstützt Grok 4.3 die Responses API?
&lt;/h3&gt;

&lt;p&gt;Die xAI-Schnittstelle ist aktuell Chat Completions. Die Responses API ist nur für OpenAI verfügbar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was ist das tatsächliche Kontextlimit?
&lt;/h3&gt;

&lt;p&gt;1.000.000 Tokens. Lange Eingaben verursachen auch bei 1,25 $ pro 1M Tokens reale Kosten. Verwenden Sie Caching, wenn große Promptteile stabil bleiben.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie beeinflusst Reasoning die Latenz?
&lt;/h3&gt;

&lt;p&gt;Die Latenz bis zum ersten Token kann höher sein als bei Modellen ohne Reasoning. Danach streamt Grok 4.3 mit ungefähr 159 Tokens/Sekunde. Für Genauigkeits- und Agenten-Workloads ist der Trade-off häufig sinnvoll.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich Grok 4.3 mit Grok Voice verwenden?
&lt;/h3&gt;

&lt;p&gt;Ja. Der Sprachagent &lt;code&gt;grok-voice-think-fast-1.0&lt;/code&gt; ruft Grok 4.3 im Hintergrund auf, wenn Reasoning benötigt wird. Sie können Grok 4.3 auch direkt aus einer eigenen Sprachschleife mit TTS- und STT-Komponenten aufrufen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was passiert mit alten Grok-3- oder Grok-4-Aufrufen nach dem 15. Mai?
&lt;/h3&gt;

&lt;p&gt;Sie schlagen mit einem &lt;code&gt;410&lt;/code&gt;-Fehler fehl, weil das Modell eingestellt wurde. Migrieren Sie vorher auf &lt;code&gt;grok-4.3&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unterstützt Grok 4.3 Bildeingabe?
&lt;/h3&gt;

&lt;p&gt;Ja. Zusätzlich zur neuen Videoeingabe können Sie Bild-URLs als Inhaltsblock übergeben, analog zur OpenAI-kompatiblen Form.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Grok 4.3 ist für Entwickler vor allem wegen OpenAI-kompatibler Integration, 1M-Kontext, durchgängigem Reasoning, nativer Videoeingabe und niedrigeren Kosten interessant. Für bestehende Grok-Integrationen ist die Migration meist klein: &lt;code&gt;model&lt;/code&gt; ändern, optional &lt;code&gt;reasoning_effort&lt;/code&gt; setzen und reale Prompts erneut testen.&lt;/p&gt;

&lt;p&gt;Der schnellste Validierungspfad: Legen Sie in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; drei Varianten mit &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt; und &lt;code&gt;high&lt;/code&gt; an, messen Sie Latenz und &lt;code&gt;usage.reasoning_tokens&lt;/code&gt;, und migrieren Sie vor dem 15. Mai.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Grok Voice Kostenlos Nutzen: Konsolen Einrichtung, Stimmklonung &amp; Echtzeit Sprachagenten</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 08 May 2026 07:34:10 +0000</pubDate>
      <link>https://forem.com/emree_demir/grok-voice-kostenlos-nutzen-konsolen-einrichtung-stimmklonung-echtzeit-sprachagenten-4f19</link>
      <guid>https://forem.com/emree_demir/grok-voice-kostenlos-nutzen-konsolen-einrichtung-stimmklonung-echtzeit-sprachagenten-4f19</guid>
      <description>&lt;p&gt;xAI hat Grok Voice mit Grok 4.3 ausgeliefert. Für Entwickler ist der wichtigste Punkt: Der Zugriff ist in der xAI Console kostenlos verfügbar. Es gibt keine Kosten pro Minute und keine separaten Token-Kosten für das Sprachagentenmodell, Text-to-Speech, Speech-to-Text oder Custom-Voices-Klonen. Abgerechnet wird nur die zugrunde liegende Grok-4.3-Token-Nutzung, wenn der Agent Reasoning ausführt; dafür gibt es in der Console eine eigene kostenlose Freigrenze zum Testen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Testen Sie Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Dieser Leitfaden zeigt praktisch, wie Sie Grok Voice einrichten, eine eigene Stimme klonen, eine WebSocket-Sitzung starten und den Ablauf mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; testen, bevor Sie ihn in ein Produkt integrieren.&lt;/p&gt;

&lt;p&gt;Wenn Sie zusätzlich den umfassenderen &lt;a href="http://apidog.com/blog/how-to-use-grok-4-3-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Grok 4.3 API-Leitfaden&lt;/a&gt; oder einen direkten Vergleich mit OpenAIs Stack in &lt;a href="http://apidog.com/blog/grok-voice-vs-gpt-realtime-best-voice-model?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Grok Voice vs. GPT-Realtime&lt;/a&gt; benötigen, decken diese begleitenden Beiträge den Rest der Oberfläche ab.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kurz gesagt
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Grok Voice ist für Benutzer der &lt;strong&gt;xAI Console&lt;/strong&gt; (&lt;code&gt;console.x.ai&lt;/code&gt;) kostenlos nutzbar.&lt;/li&gt;
&lt;li&gt;Keine Gebühr pro Minute oder pro Token für TTS, STT, Sprachagenten oder benutzerdefinierte Stimmen.&lt;/li&gt;
&lt;li&gt;Flaggschiff-Modell: &lt;code&gt;grok-voice-think-fast-1.0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Zeit bis zum ersten Audio: unter &lt;strong&gt;1 Sekunde&lt;/strong&gt;; xAI gibt an, dass es ungefähr &lt;strong&gt;5x schneller&lt;/strong&gt; als der nächste Wettbewerber ist.&lt;/li&gt;
&lt;li&gt;Über 80 voreingestellte Stimmen in &lt;strong&gt;28 Sprachen&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;5 integrierte Sprachagenten-Personas: Eve, Ara, Rex, Sal und Leo.&lt;/li&gt;
&lt;li&gt;Benutzerdefiniertes Stimmenklonen aus etwa &lt;strong&gt;1 Minute Sprache&lt;/strong&gt;; produktionsreife Stimme in &lt;strong&gt;unter 2 Minuten&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;WebSocket-Endpunkt:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;REST-Endpunkte für TTS, STT und Custom Voices teilen sich eine API-Oberfläche.&lt;/li&gt;
&lt;li&gt;Verwenden Sie &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, um WebSocket-Sitzungen zu skripten und ohne erneute Audioaufnahme zu reproduzieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Was Grok Voice kostenlos bietet
&lt;/h2&gt;

&lt;p&gt;Der kostenlose Zugriff läuft über die xAI Console. Melden Sie sich unter &lt;code&gt;console.x.ai&lt;/code&gt; an, generieren Sie einen API-Schlüssel und verwenden Sie damit vier Oberflächen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjkeqwamuyap7ndjjrwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjkeqwamuyap7ndjjrwg.png" alt="Übersicht über die Voice-APIs in der xAI Console mit Voice Agent, Text-to-Speech, Speech-to-Text und Custom Voices." width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Verfügbare Oberflächen
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sprachagent&lt;/strong&gt;: Echtzeit-Sprache-zu-Sprache mit Tool-Nutzung, serverseitiger Spracherkennungsaktivität und integriertem Turn-Taking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text-to-Speech&lt;/strong&gt;: Über 80 voreingestellte Stimmen in 28 Sprachen, Ausgabe als MP3 oder μ-law für Telefonie.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speech-to-Text&lt;/strong&gt;: Streaming- und Batch-Transkription in 25 Eingabesprachen, inklusive Wortzeitstempeln und Sprechererkennung.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benutzerdefinierte Stimmen&lt;/strong&gt;: Klonen einer Stimme aus einer kurzen Stichprobe. Die resultierende &lt;code&gt;voice_id&lt;/code&gt; funktioniert für TTS und den Sprachagenten.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Der einzige relevante Verbrauchszähler ist die Grok-4.3-Token-Nutzung, wenn der Agent Reasoning ausführt. Die Console stellt dafür kostenlose Credits bereit, sodass Sie End-to-End-Flows validieren können, bevor Abrechnung relevant wird.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 1: API-Schlüssel in der Console erstellen
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Öffnen Sie &lt;code&gt;console.x.ai&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Melden Sie sich mit Ihrem X-Konto an.&lt;/li&gt;
&lt;li&gt;Wechseln Sie zur Seite &lt;strong&gt;API-Schlüssel&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Erstellen Sie einen neuen Schlüssel.&lt;/li&gt;
&lt;li&gt;Aktivieren Sie die Bereiche &lt;code&gt;voice&lt;/code&gt; und &lt;code&gt;chat&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Speichern Sie den Schlüssel lokal als Umgebungsvariable:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"xai-..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für serverseitige Tests reicht dieser Schlüssel aus.&lt;/p&gt;

&lt;p&gt;Für Browser-Anwendungen sollten Sie den Hauptschlüssel nicht an den Client ausliefern. Erstellen Sie stattdessen ein &lt;strong&gt;ephemeres Token&lt;/strong&gt; über die Console-Einstellungen oder über den Endpunkt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/v1/realtime/sessions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ephemere Token haben denselben Umfang, laufen aber nach wenigen Minuten ab. Damit kann ein Browser direkt mit dem WebSocket-Endpunkt verbunden werden, ohne den übergeordneten API-Schlüssel offenzulegen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 2: Stimme auswählen
&lt;/h2&gt;

&lt;p&gt;Sie haben zwei Optionen: voreingestellte Stimmen oder benutzerdefinierte Stimmklone.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option A: Voreingestellte Stimmen verwenden
&lt;/h3&gt;

&lt;p&gt;Der Sprachagent enthält fünf benannte Personas:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stimme&lt;/th&gt;
&lt;th&gt;Beschreibung&lt;/th&gt;
&lt;th&gt;Geeignete Verwendung&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;eve&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;weiblich, energisch&lt;/td&gt;
&lt;td&gt;positive Support-Flows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ara&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;weiblich, warm&lt;/td&gt;
&lt;td&gt;allgemeine Unterstützung&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rex&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;männlich, selbstbewusst&lt;/td&gt;
&lt;td&gt;Verkaufsgespräche&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;neutral, sanft&lt;/td&gt;
&lt;td&gt;Erzählungen und längere Lesungen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;leo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;männlich, autoritär&lt;/td&gt;
&lt;td&gt;Compliance und formale Abläufe&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Für die breitere TTS-API gibt es zusätzlich über 80 Stimmen in 28 Sprachen. Diese werden über den &lt;code&gt;voice&lt;/code&gt;-Parameter am TTS-Endpunkt ausgewählt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option B: Eigene Stimme klonen
&lt;/h3&gt;

&lt;p&gt;Für einen benutzerdefinierten Stimmklon laden Sie eine WAV-Datei mit etwa einer Minute sauberer Sprache eines einzelnen Sprechers hoch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.x.ai/v1/custom-voices &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-F&lt;/span&gt; &lt;span class="s2"&gt;"name=narrator-jane"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-F&lt;/span&gt; &lt;span class="s2"&gt;"language=en"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-F&lt;/span&gt; &lt;span class="s2"&gt;"audio=@sample.wav"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Antwort enthält eine &lt;code&gt;voice_id&lt;/code&gt;, die Sie anschließend sowohl für TTS als auch für den Sprachagenten verwenden können.&lt;/p&gt;

&lt;p&gt;Praktische Hinweise für bessere Ergebnisse:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verwenden Sie einen ruhigen Raum.&lt;/li&gt;
&lt;li&gt;Nehmen Sie eine einzelne Stimme auf.&lt;/li&gt;
&lt;li&gt;Vermeiden Sie Hintergrundmusik.&lt;/li&gt;
&lt;li&gt;Verwenden Sie einen konsistenten Abstand zum Mikrofon.&lt;/li&gt;
&lt;li&gt;Nutzen Sie einen einzelnen Take statt zusammengeschnittener Clips.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die maximale Länge des Referenzclips beträgt 120 Sekunden. Sauberes Audio ist wichtiger als maximale Länge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 3: WebSocket-Sitzung starten
&lt;/h2&gt;

&lt;p&gt;Der Sprachagent läuft über eine einzelne WebSocket-Verbindung:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;WebSocket öffnen.&lt;/li&gt;
&lt;li&gt;Sitzung konfigurieren.&lt;/li&gt;
&lt;li&gt;Audio als Frames senden.&lt;/li&gt;
&lt;li&gt;Audio-Deltas als Antwort empfangen.&lt;/li&gt;
&lt;li&gt;Verbindung für weitere Gesprächsrunden offen halten.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Minimaler Node.js-Client:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;WebSocket&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ws&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ws&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;WebSocket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;Authorization&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Bearer &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;XAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;open&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;session.update&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;session&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;voice&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ara&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;You are a friendly support agent. Keep replies under two sentences.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;input_audio_format&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pcm16&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;output_audio_format&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pcm16&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;turn_detection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;server_vad&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;message&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;response.audio.delta&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;base64&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;response.audio.done&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Audio response finished&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benutzeraudio senden Sie als Base64-kodierte PCM16-Frames über &lt;code&gt;input_audio_buffer.append&lt;/code&gt;-Ereignisse.&lt;/p&gt;

&lt;p&gt;Der Server sendet während der Antwort:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;response.audio.delta
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn die Runde beendet ist, folgt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;response.audio.done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für Browser- und Desktop-Anwendungen ist PCM16 bei 24 kHz ein sicherer Standard. Für Telefonie verwenden Sie μ-law.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 4: Tool-Nutzung aktivieren
&lt;/h2&gt;

&lt;p&gt;Der Sprachagent unterstützt Funktionsaufrufe. Dadurch kann das Modell während eines Gesprächs Ihre APIs verwenden.&lt;/p&gt;

&lt;p&gt;Beispiel: Ein Tool zum Abrufen eines Bestellstatus deklarieren.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;session.update&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;session&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;function&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lookup_order&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Look up the status of a customer order by order number.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;object&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
              &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="p"&gt;},&lt;/span&gt;
          &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;order_id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn das Modell das Tool aufrufen möchte, erhalten Sie ein Ereignis wie:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;response.function_call_arguments.done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Implementieren Sie dann auf Ihrer Seite den eigentlichen API-Aufruf und senden Sie das Ergebnis als &lt;code&gt;conversation.item.create&lt;/code&gt; mit dem Typ &lt;code&gt;function_call_output&lt;/code&gt; zurück.&lt;/p&gt;

&lt;p&gt;Der Ablauf sieht so aus:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Modell erkennt, dass externe Daten benötigt werden.&lt;/li&gt;
&lt;li&gt;Modell gibt Funktionsargumente aus.&lt;/li&gt;
&lt;li&gt;Ihre Anwendung führt die Funktion aus.&lt;/li&gt;
&lt;li&gt;Ihre Anwendung sendet das Ergebnis zurück.&lt;/li&gt;
&lt;li&gt;Das Modell setzt die Antwort fort und spricht das Ergebnis aus.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Zusätzlich ist ein integriertes &lt;code&gt;web_search&lt;/code&gt;-Tool verfügbar. Das ist hilfreich, wenn Antworten mit aktuellen Daten angereichert werden sollen, ohne direkt eine eigene Retrieval-Schicht zu bauen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 5: Text-to-Speech ohne Sprachagent verwenden
&lt;/h2&gt;

&lt;p&gt;Wenn Sie nur Audio aus Text generieren möchten, benötigen Sie keine WebSocket-Sitzung. Verwenden Sie stattdessen den REST-Endpunkt für TTS.&lt;/p&gt;

&lt;p&gt;Beispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.x.ai/v1/tts &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "grok-tts-1",
    "voice": "ara",
    "input": "Welcome back to your account. Your last login was Tuesday at 3pm.",
    "format": "mp3"
  }'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--output&lt;/span&gt; greeting.mp3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verfügbare Ausgabeformate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mp3&lt;/code&gt;: High-Fidelity-Ausgabe&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mulaw&lt;/code&gt;: 8 kHz, geeignet für Telefonie&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Der Endpunkt ist synchron. Sie senden Text und erhalten Audiodaten zurück. Eine Streaming-Sitzung ist dafür nicht erforderlich.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schritt 6: WebSocket-Flow in Apidog testen
&lt;/h2&gt;

&lt;p&gt;WebSocket-APIs sind im Terminal schwer zu debuggen, weil die Konversation zustandsbehaftet ist. Ein reproduzierbarer Test-Flow hilft besonders bei Voice-Agents, da kleine Änderungen an Stimme, Prompt oder Turn-Taking das Verhalten beeinflussen können.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi62iow0zbhkz10jerr2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi62iow0zbhkz10jerr2c.png" alt="Ein Screenshot der Apidog-Anwendung, die eine WebSocket-Sitzung mit verschiedenen Nachrichten und Ereignissen anzeigt." width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ein praktisches Setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Erstellen Sie in Apidog eine neue WebSocket-Anfrage.&lt;/li&gt;
&lt;li&gt;Speichern Sie die WebSocket-URL:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Legen Sie &lt;code&gt;XAI_API_KEY&lt;/code&gt; als Umgebungsvariable an.&lt;/li&gt;
&lt;li&gt;Fügen Sie den Authorization-Header hinzu:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Authorization: Bearer {{XAI_API_KEY}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Erstellen Sie ein Nachrichtenskript mit:

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session.update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;input_audio_buffer.append&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;response.create&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Verwenden Sie einen Fixture-Audioframe, damit Tests reproduzierbar bleiben.&lt;/li&gt;
&lt;li&gt;Erfassen Sie alle Serverereignisse als Baum.&lt;/li&gt;
&lt;li&gt;Vergleichen Sie mehrere Durchläufe, wenn Sie Stimme oder Instruktionen ändern.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Das ist besonders nützlich, um Unterschiede im Turn-Taking-Verhalten, in der Latenz oder in der Audioausgabe sichtbar zu machen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Laden Sie Apidog herunter&lt;/a&gt;, erstellen Sie eine neue WebSocket-Anfrage und speichern Sie Ihren &lt;code&gt;XAI_API_KEY&lt;/code&gt; in den Umgebungsvariablen. Dieselbe Sammlung kann auch REST-Endpunkte für TTS und STT enthalten, sodass WebSocket- und REST-Tests in einem Projekt bleiben.&lt;/p&gt;

&lt;p&gt;Weitere Testmuster für zustandsbehaftete APIs finden Sie im Beitrag &lt;a href="http://apidog.com/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Test-Tool für QA-Ingenieure&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limits des kostenlosen Tarifs
&lt;/h2&gt;

&lt;p&gt;Die Console bietet Zugriff ohne Gebühren pro Minute oder separate Token-Gebühren für die Sprachfunktionen selbst. Trotzdem gibt es Grenzen, die Sie beim Prototyping berücksichtigen sollten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ratenbegrenzungen
&lt;/h3&gt;

&lt;p&gt;Die Console erzwingt Anfragen-pro-Minute-Grenzen pro Endpunkt, um Missbrauch zu verhindern. Diese reichen für Tests, Demos und Prototypen aus, sind aber keine Produktionsfreigabe.&lt;/p&gt;

&lt;p&gt;Wenn Sie Rate-Limit-Fehler erhalten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anfragen bündeln&lt;/li&gt;
&lt;li&gt;weniger parallele Sessions starten&lt;/li&gt;
&lt;li&gt;Audio-Frames effizienter senden&lt;/li&gt;
&lt;li&gt;auf einen kostenpflichtigen Tarif wechseln&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Das API-Verhalten bleibt gleich; nur die Obergrenzen ändern sich.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kontingent für benutzerdefinierte Stimmen
&lt;/h3&gt;

&lt;p&gt;Ein einzelnes Konto kann nur eine begrenzte Anzahl benutzerdefinierter Stimmklone gleichzeitig speichern. Wenn ein Slot benötigt wird, löschen Sie eine nicht mehr benötigte Stimme und erstellen Sie den Klon erneut.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reasoning-Tokens
&lt;/h3&gt;

&lt;p&gt;Wenn der Sprachagent im Hintergrund Grok 4.3 für Reasoning nutzt, wird diese Token-Nutzung Ihrem Konsolenguthaben angerechnet. Das kostenlose Guthaben reicht für Prototyping; für Produktion ist ein kostenpflichtiger Plan erforderlich.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stimmen vor dem Live-Gang vergleichen
&lt;/h2&gt;

&lt;p&gt;Testen Sie jede Stimme mit denselben Beispielsätzen, bevor Sie sie produktiv verwenden. Stimmen unterscheiden sich in Ton, Intonation und Eignung für bestimmte Use Cases.&lt;/p&gt;

&lt;p&gt;Eine kurze Testliste reicht oft aus:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eine zweiseitige Begrüßung.&lt;/li&gt;
&lt;li&gt;Eine Bestätigungsphrase wie: „Verstanden, das ist alles erledigt.“&lt;/li&gt;
&lt;li&gt;Ein langer Satz mit Zahl, Datum und Komma.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ein modellunabhängiger Test:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Schreiben Sie einen kurzen Prompt.&lt;/li&gt;
&lt;li&gt;Lassen Sie ihn mit derselben Stimme in drei Gesprächssituationen erzeugen:

&lt;ul&gt;
&lt;li&gt;ruhig&lt;/li&gt;
&lt;li&gt;normal&lt;/li&gt;
&lt;li&gt;dringend&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Hören Sie auf Intonation, Tempo und Natürlichkeit.&lt;/li&gt;
&lt;li&gt;Wiederholen Sie den Test mit zwei bis drei anderen Stimmen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Groks voreingestellte Stimmen bewältigen solche Varianten besser als viele TTS-Engines, die wir getestet haben. Trotzdem sollte diese Prüfung vor dem Live-Gang Teil Ihres Voice-QA-Prozesses sein.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ist die API tatsächlich kostenlos, oder gibt es eine versteckte Obergrenze?
&lt;/h3&gt;

&lt;p&gt;Die Sprachfunktionen TTS, STT, Sprachagent und Custom Voices sind in der Console ohne Gebühren pro Minute oder separate Token-Gebühren nutzbar. Das zugrunde liegende Reasoning-Modell wird über das Konsolenguthaben abgerechnet. Die kostenlose Freigrenze reicht für Prototyping.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benötige ich ein X-Konto?
&lt;/h3&gt;

&lt;p&gt;Ja. Für die Anmeldung an der xAI Console wird ein X-Konto verwendet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich Grok Voice im Browser verwenden?
&lt;/h3&gt;

&lt;p&gt;Ja. Verwenden Sie dafür ein ephemeres Token.&lt;/p&gt;

&lt;p&gt;Der empfohlene Ablauf:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ihr Server erstellt ein kurzlebiges Token über &lt;code&gt;/v1/realtime/sessions&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Der Browser erhält nur dieses ephemere Token.&lt;/li&gt;
&lt;li&gt;Der Browser öffnet direkt die WebSocket-Verbindung.&lt;/li&gt;
&lt;li&gt;Der Haupt-API-Schlüssel bleibt auf Ihrem Server.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Welche Audioqualität kann ich erwarten?
&lt;/h3&gt;

&lt;p&gt;Die TTS-Ausgabe ist hochauflösendes MP3 oder 8 kHz μ-law. Der Sprachagent verwendet intern PCM16 bei 24 kHz. Die Qualität ist vergleichbar mit großen kommerziellen TTS-Engines; die Latenz ist das wichtigste Unterscheidungsmerkmal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Funktioniert Grok Voice mit Telefonie?
&lt;/h3&gt;

&lt;p&gt;Ja. Die μ-law-Ausgabe ist das Standardformat für SIP- und PSTN-Brücken. Sie benötigen weiterhin einen SIP-Anbieter, da xAI derzeit kein eigenes SIP-Gateway bereitstellt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie gut ist die Qualität beim Stimmenklonen?
&lt;/h3&gt;

&lt;p&gt;Die Qualität hängt stärker von der Referenzaufnahme als von der Länge ab. Eine saubere 60-Sekunden-Aufnahme in einem ruhigen Raum ist in der Praxis besser als eine verrauschte 120-Sekunden-Aufnahme. Die resultierende &lt;code&gt;voice_id&lt;/code&gt; kann sowohl mit dem TTS-Endpunkt als auch mit dem Sprachagenten genutzt werden.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich Grok Voice für KI-Charaktere in einem Spiel verwenden?
&lt;/h3&gt;

&lt;p&gt;Ja. Der TTS-Endpunkt ist schnell genug für Laufzeitgenerierung, und Custom Voices ermöglichen eigene Stimmen pro Charakter. Achten Sie bei langen Zeilen auf die Latenz; chunked TTS ist dafür das passende Muster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Grok Voice ist 2026 ein direkter Weg zu einem kostenlosen Echtzeit-Sprachagenten. Die Console erhebt keine Gebühr pro Minute für Sprachfunktionen, die Latenz ist niedrig, und Custom Voices reduzieren den Aufwand für individuelle Sprachoberflächen.&lt;/p&gt;

&lt;p&gt;Der schnellste Validierungsweg:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;API-Schlüssel in der xAI Console erstellen.&lt;/li&gt;
&lt;li&gt;Eine voreingestellte Stimme auswählen.&lt;/li&gt;
&lt;li&gt;WebSocket-Sitzung starten.&lt;/li&gt;
&lt;li&gt;Einen reproduzierbaren Test in Apidog skripten.&lt;/li&gt;
&lt;li&gt;Drei Stimmen mit denselben Prompts vergleichen.&lt;/li&gt;
&lt;li&gt;Erst danach Browser-, App- oder Telefonie-Integration bauen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Wenn Sie Grok Voice mit der Grok-4.3-Reasoning-Engine kombinieren möchten, lesen Sie den &lt;a href="http://apidog.com/blog/how-to-use-grok-4-3-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Grok 4.3 API-Leitfaden&lt;/a&gt;. Für einen direkten Vergleich mit OpenAIs Stack siehe &lt;a href="http://apidog.com/blog/grok-voice-vs-gpt-realtime-best-voice-model?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Grok Voice vs. GPT-Realtime&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>GPT-Realtime-2: Was ist das &amp; GPT-Realtime-2 API nutzen</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 08 May 2026 07:30:37 +0000</pubDate>
      <link>https://forem.com/emree_demir/gpt-realtime-2-was-ist-das-gpt-realtime-2-api-nutzen-1l98</link>
      <guid>https://forem.com/emree_demir/gpt-realtime-2-was-ist-das-gpt-realtime-2-api-nutzen-1l98</guid>
      <description>&lt;p&gt;OpenAI hat am 6. November 2026 eine neue Generation von Sprachmodellen veröffentlicht. Die wichtigste Neuerung ist &lt;code&gt;gpt-realtime-2&lt;/code&gt;: ein Sprach-zu-Sprach-Modell mit GPT-5-Klasse-Reasoning, 128.000 Token Kontextfenster und konfigurierbarem Reasoning-Aufwand. Wenn Sie bereits &lt;code&gt;gpt-realtime&lt;/code&gt; integriert haben, ist die Migration im Kern ein Modellstring-Wechsel plus einige neue Sitzungs- und Tool-Felder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Teste Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Dieser Leitfaden zeigt, was GPT-Realtime-2 ist, was sich gegenüber dem Vorgängermodell geändert hat, wie die Preise aussehen und wie Sie das Modell per WebSocket oder SIP anbinden. Zusätzlich richten wir ein testbares Setup in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; ein, damit Sie Realtime-Sitzungen reproduzierbar wiedergeben können, ohne Audio jedes Mal neu aufzunehmen.&lt;/p&gt;

&lt;p&gt;Für den Kontext zu OpenAIs breiterer Modelllinie 2026 siehe &lt;a href="http://apidog.com/blog/what-is-gpt-5-5?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Was ist GPT-5.5&lt;/a&gt;. Für das multimodale Geschwistermodell siehe &lt;a href="http://apidog.com/blog/how-to-use-gpt-image-2-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-Image-2 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;gpt-realtime-2&lt;/code&gt; ist OpenAIs Flaggschiffmodell für Sprach-zu-Sprach-Anwendungen mit GPT-5-Klasse-Reasoning, 128k Kontext und 32k maximalen Ausgabetoken.&lt;/li&gt;
&lt;li&gt;Audiopreise: &lt;strong&gt;32 $ pro 1 Mio. Eingabetoken&lt;/strong&gt; und &lt;strong&gt;64 $ pro 1 Mio. Ausgabetoken&lt;/strong&gt;. Zwischengespeicherte Eingaben kosten 0,40 $ pro 1 Mio. Token.&lt;/li&gt;
&lt;li&gt;Neue Stimmen: &lt;strong&gt;Cedar&lt;/strong&gt; und &lt;strong&gt;Marin&lt;/strong&gt;, exklusiv für die Realtime API. Acht bestehende Stimmen wurden überarbeitet.&lt;/li&gt;
&lt;li&gt;Reasoning-Stufen: &lt;code&gt;minimal&lt;/code&gt;, &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;, &lt;code&gt;xhigh&lt;/code&gt;. Standard ist &lt;code&gt;low&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;WebSocket-Endpunkt: &lt;code&gt;wss://api.openai.com/v1/realtime?model=gpt-realtime-2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;SIP wird für eingehende Telefonanrufe unterstützt.&lt;/li&gt;
&lt;li&gt;Begleitmodelle: &lt;strong&gt;GPT-Realtime-Translate&lt;/strong&gt; für Live-Übersetzung und &lt;strong&gt;GPT-Realtime-Whisper&lt;/strong&gt; für Streaming-STT.&lt;/li&gt;
&lt;li&gt;Nutzen Sie &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, um WebSocket-Sitzungen zu skripten, Frames zu erfassen und Läufe zu vergleichen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Was ist GPT-Realtime-2?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openai.com/index/advancing-voice-intelligence-with-new-models-in-the-api/" rel="noopener noreferrer"&gt;GPT-Realtime-2&lt;/a&gt; ist ein End-to-End-Sprach-zu-Sprach-Modell. Sie streamen Audio hinein, erhalten Audio zurück, und das Modell übernimmt Transkription, Reasoning, Tool-Auswahl und Sprachgenerierung in einem Durchlauf.&lt;/p&gt;

&lt;p&gt;Das ersetzt die klassische Pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Speech-to-Text → LLM → Text-to-Speech
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;durch eine direkte Realtime-Sitzung:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Audio/Text/Bild → GPT-Realtime-2 → Audio/Text
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-18.png" alt="Abbildung 1: GPT-Realtime-2 ist ein End-to-End-Sprach-zu-Sprach-Modell." width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Das Modell akzeptiert Text, Audio und Bilder als Eingabe und gibt Text sowie Audio aus. Neu ist die Bildeingabe: Sie können während einer Live-Konversation etwa einen Screenshot oder ein Foto übergeben und den Agenten laut dazu befragen.&lt;/p&gt;

&lt;p&gt;Typische Anwendungsfälle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Voice-Support-Agenten mit Tool-Zugriff&lt;/li&gt;
&lt;li&gt;Sprach-Copiloten, die Screenshots oder Fotos analysieren&lt;/li&gt;
&lt;li&gt;Telefonagenten über SIP&lt;/li&gt;
&lt;li&gt;Live-Übersetzungs- und Assistenzsysteme&lt;/li&gt;
&lt;li&gt;Barrierefreiheits- und Screen-Reader-ähnliche Anwendungen&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Spezifikationen
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attribut&lt;/th&gt;
&lt;th&gt;Wert&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Modell-ID&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gpt-realtime-2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kontextfenster&lt;/td&gt;
&lt;td&gt;128.000 Token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max. Ausgabe&lt;/td&gt;
&lt;td&gt;32.000 Token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eingabe-Modalitäten&lt;/td&gt;
&lt;td&gt;Text, Audio, Bild&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ausgabe-Modalitäten&lt;/td&gt;
&lt;td&gt;Text, Audio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wissensgrenze&lt;/td&gt;
&lt;td&gt;30.09.2024&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reasoning-Stufen&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;minimal&lt;/code&gt;, &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;, &lt;code&gt;xhigh&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktionsaufruf&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remote MCP-Server&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bildeingabe&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SIP-Telefonanruf&lt;/td&gt;
&lt;td&gt;Ja&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Was sich gegenüber &lt;code&gt;gpt-realtime&lt;/code&gt; geändert hat
&lt;/h2&gt;

&lt;p&gt;Gegenüber &lt;code&gt;gpt-realtime-1.5&lt;/code&gt; verbessert &lt;code&gt;gpt-realtime-2&lt;/code&gt; laut den veröffentlichten Benchmarks vor allem Audio-Intelligenz und Anweisungsbefolgung:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Big Bench Audio:&lt;/strong&gt; 81,4 % → 96,6 %&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio MultiChallenge:&lt;/strong&gt; 34,7 % → 48,5 %&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Diese Werte wurden mit &lt;code&gt;high&lt;/code&gt; und &lt;code&gt;xhigh&lt;/code&gt; Reasoning erzielt. Für Produktionsanwendungen ist &lt;code&gt;low&lt;/code&gt; der Standard, weil es geringere Latenz bietet.&lt;/p&gt;

&lt;p&gt;Wichtige Verhaltensänderungen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Preambeln:&lt;/strong&gt; Das Modell kann kurze Übergangssätze wie „Ich prüfe das kurz“ ausgeben, während es Reasoning oder Tool-Aufrufe vorbereitet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parallele Tool-Aufrufe:&lt;/strong&gt; Mehrere Tools können gleichzeitig gestartet werden, während das Modell den Fortschritt per Audio erklärt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bessere Wiederherstellung:&lt;/strong&gt; Mehrdeutige oder teilweise fehlgeschlagene Abläufe werden stabiler fortgesetzt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domänen-Tonsteuerung:&lt;/strong&gt; Fachterminologie und gewünschter Sprachstil bleiben über längere Sitzungen konsistenter.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-19.png" alt="Abbildung 2: Reasoning ist der neue Engpass. GPT-Realtime-2 ist besser darin." width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Das Kontextfenster wächst von 32k auf 128k Token. Das ist relevant für lange Support-, Banking-, Lern- oder Beratungs-Sitzungen, in denen das Modell über viele Minuten Kontext behalten muss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preise
&lt;/h2&gt;

&lt;p&gt;GPT-Realtime-2 wird pro Token abgerechnet. Text, Audio und Bild haben separate Tarife.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Token-Typ&lt;/th&gt;
&lt;th&gt;Eingabe&lt;/th&gt;
&lt;th&gt;Zwischengespeicherte Eingabe&lt;/th&gt;
&lt;th&gt;Ausgabe&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Text&lt;/td&gt;
&lt;td&gt;4,00 $ / 1 Mio.&lt;/td&gt;
&lt;td&gt;0,40 $ / 1 Mio.&lt;/td&gt;
&lt;td&gt;24,00 $ / 1 Mio.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audio&lt;/td&gt;
&lt;td&gt;32,00 $ / 1 Mio.&lt;/td&gt;
&lt;td&gt;0,40 $ / 1 Mio.&lt;/td&gt;
&lt;td&gt;64,00 $ / 1 Mio.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bild&lt;/td&gt;
&lt;td&gt;5,00 $ / 1 Mio.&lt;/td&gt;
&lt;td&gt;0,50 $ / 1 Mio.&lt;/td&gt;
&lt;td&gt;n. z.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Zwischengespeicherte Eingaben sind besonders wichtig, wenn Ihr Agent mit einem stabilen Systemprompt, festen Richtlinien oder wiederverwendbaren Dokumenten arbeitet. Halten Sie diesen Kontext cache-freundlich, um wiederholte Eingaben günstiger zu machen.&lt;/p&gt;

&lt;p&gt;Zum Vergleich mit der restlichen OpenAI-Modelllinie siehe &lt;a href="http://apidog.com/blog/gpt-5-5-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;GPT-5.5-Preise&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Die Begleitmodelle werden pro Minute abgerechnet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GPT-Realtime-Translate:&lt;/strong&gt; 0,034 $ pro Minute. Unterstützt 70 Eingabesprachen und 13 Ausgabesprachen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPT-Realtime-Whisper:&lt;/strong&gt; 0,017 $ pro Minute. Streaming-Sprach-zu-Text für Live-Untertitel und kontinuierliche Transkription.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Faustregel:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verwenden Sie &lt;strong&gt;GPT-Realtime-2&lt;/strong&gt;, wenn Reasoning und Sprachausgabe zusammen benötigt werden.&lt;/li&gt;
&lt;li&gt;Verwenden Sie &lt;strong&gt;GPT-Realtime-Translate&lt;/strong&gt; für Live-Übersetzung.&lt;/li&gt;
&lt;li&gt;Verwenden Sie &lt;strong&gt;GPT-Realtime-Whisper&lt;/strong&gt;, wenn Sie nur ein Transkript benötigen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Endpunkte und Authentifizierung
&lt;/h2&gt;

&lt;p&gt;GPT-Realtime-2 ist über mehrere Endpunkte erreichbar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST https://api.openai.com/v1/chat/completions
POST https://api.openai.com/v1/responses
WSS  wss://api.openai.com/v1/realtime?model=gpt-realtime-2
WSS  wss://api.openai.com/v1/realtime?call_id={call_id}
POST https://api.openai.com/v1/realtime/translations
POST https://api.openai.com/v1/realtime/transcription_sessions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für Sprachagenten ist der WebSocket-Endpunkt relevant:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wss://api.openai.com/v1/realtime?model=gpt-realtime-2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Authentifizierung:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Authorization: Bearer $OPENAI_API_KEY
OpenAI-Beta: realtime=v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setzen Sie Ihren API-Key als Umgebungsvariable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-proj-..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Verbindung über WebSocket
&lt;/h2&gt;

&lt;p&gt;Ein minimaler Node.js-Client:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;WebSocket&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ws&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ws&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;WebSocket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;wss://api.openai.com/v1/realtime?model=gpt-realtime-2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;Authorization&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Bearer &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;OpenAI-Beta&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;realtime=v1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;open&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;session.update&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;session&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;voice&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cedar&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;You are a friendly support agent for a fintech app.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;input_audio_format&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pcm16&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;output_audio_format&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pcm16&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;turn_detection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;server_vad&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;reasoning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;effort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;low&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;message&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;response.audio.delta&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// base64 PCM16 Audio-Chunk.&lt;/span&gt;
    &lt;span class="c1"&gt;// In der Praxis an Lautsprecher, Browser oder Telefon-Bridge weiterleiten.&lt;/span&gt;
    &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;base64&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Realtime API ist ereignisgesteuert:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Client öffnet WebSocket.&lt;/li&gt;
&lt;li&gt;Client sendet &lt;code&gt;session.update&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Client streamt Audio mit &lt;code&gt;input_audio_buffer.append&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Server erkennt Gesprächsgrenzen per VAD.&lt;/li&gt;
&lt;li&gt;Server sendet Audio mit &lt;code&gt;response.audio.delta&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Client spielt Audio ab oder leitet es weiter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;PCM16 bei 24 kHz ist ein sicherer Standard. Für Telefonie sind auch G.711 mu-law und A-law relevant.&lt;/p&gt;

&lt;p&gt;Wenn Sie die Realtime-Oberfläche mit der Responses API vergleichen möchten, siehe &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-5.5 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stimmen
&lt;/h2&gt;

&lt;p&gt;Mit dieser Version gibt es zwei neue Stimmen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cedar:&lt;/strong&gt; Warme, mitteltiefe männliche Stimme. Geeignet für allgemeine Agenten.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Marin:&lt;/strong&gt; Helle, klare weibliche Stimme. Geeignet für Übersetzungen und Ansagen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beide sind exklusiv für die Realtime API.&lt;/p&gt;

&lt;p&gt;Bestehende Stimmen bleiben verfügbar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alloy
ash
ballad
coral
echo
sage
shimmer
verse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sie können die Stimme während einer laufenden Sitzung wechseln:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;session.update&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;session&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;voice&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;marin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Bildeingabe
&lt;/h2&gt;

&lt;p&gt;Sie können einem Benutzerbeitrag ein Bild hinzufügen. Das Modell kann das Bild in der laufenden Sprachsitzung berücksichtigen.&lt;/p&gt;

&lt;p&gt;Beispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;conversation.item.create&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;item&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;message&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;input_image&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;image_url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://example.com/screenshot.png&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;input_text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;What does this error mean?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}));&lt;/span&gt;

&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;response.create&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Praktische Muster:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sprachgesteuerte QA:&lt;/strong&gt; Tester zeigt eine fehlerhafte UI per Kamera; der Agent beschreibt den Fehler und formuliert einen Bugreport.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vor-Ort-Support:&lt;/strong&gt; Techniker teilt ein Foto einer Verkabelung; der Agent führt durch die Diagnose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Barrierefreiheit:&lt;/strong&gt; Der Agent beschreibt den aktuellen Bildschirm während eines Support-Anrufs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mehr zum Bild-Stack: &lt;a href="http://apidog.com/blog/how-to-use-gpt-image-2-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-Image-2 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Funktionsaufruf und MCP
&lt;/h2&gt;

&lt;p&gt;GPT-Realtime-2 unterstützt klassische Funktionstools und Remote-MCP-Server in derselben Sitzung.&lt;/p&gt;

&lt;h3&gt;
  
  
  Standard-Funktionsaufrufe
&lt;/h3&gt;

&lt;p&gt;Der Ablauf ähnelt Chat Completions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tools in der Sitzung deklarieren.&lt;/li&gt;
&lt;li&gt;Modell sendet Funktionsargumente als Events.&lt;/li&gt;
&lt;li&gt;Anwendung führt die Funktion aus.&lt;/li&gt;
&lt;li&gt;Anwendung sendet das Ergebnis als &lt;code&gt;function_call_output&lt;/code&gt; zurück.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Konzeptionell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;session.update → tools deklarieren
response.function_call_arguments.delta → Argumente empfangen
Tool ausführen
conversation.item.create → function_call_output senden
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neu ist, dass das Modell mehrere Tool-Aufrufe parallel auslösen kann. Das ist nützlich für Sprachagenten, die beispielsweise gleichzeitig Kontostand, letzte Transaktionen und Supportstatus abrufen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remote MCP-Server
&lt;/h3&gt;

&lt;p&gt;Bei Remote MCP konfigurieren Sie einen MCP-Server direkt in der Sitzung. Die Realtime API kann dann erlaubte Tools über diesen Server verwenden.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;session.update&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;session&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mcp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;server_url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://mcp.example.com/sse&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;allowed_tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lookup_account&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;list_transactions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das reduziert die eigene Event-Loop-Logik, wenn Ihr Agent viele Tools anbinden muss.&lt;/p&gt;

&lt;p&gt;Wenn Sie MCP-Server vor der Integration testen möchten, siehe &lt;a href="http://apidog.com/blog/mcp-server-testing-apidog?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;MCP-Server-Test in Apidog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  SIP-Telefonanrufe
&lt;/h2&gt;

&lt;p&gt;GPT-Realtime-2 kann über SIP in Telefonie-Workflows eingebunden werden.&lt;/p&gt;

&lt;p&gt;Grundidee:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SIP-Trunk an OpenAIs SIP-Gateway weiterleiten.&lt;/li&gt;
&lt;li&gt;Eingehender Anruf erzeugt eine Realtime-Sitzung.&lt;/li&gt;
&lt;li&gt;Anwendung verbindet sich per WebSocket mit:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wss://api.openai.com/v1/realtime?call_id={call_id}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das Modell akzeptiert G.711 mu-law und A-law direkt. Dadurch müssen Telefonie-Bridges nicht zwingend transkodieren.&lt;/p&gt;

&lt;p&gt;Das ist besonders relevant für Callcenter-Agenten, die während eines Gesprächs Tools ausführen, Daten nachschlagen oder MCP-Server verwenden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reasoning-Stufen
&lt;/h2&gt;

&lt;p&gt;Die Reasoning-Stufe steuert den Kompromiss zwischen Latenz und Antwortqualität.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stufe&lt;/th&gt;
&lt;th&gt;Anwendungsfall&lt;/th&gt;
&lt;th&gt;Ungefähre Latenzkosten&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minimal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Einfache Ja/Nein-Antworten&lt;/td&gt;
&lt;td&gt;Keine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;low&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Standard; Support und Chat&lt;/td&gt;
&lt;td&gt;Gering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;medium&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disambiguierung, komplexerer Tool-Dispatch&lt;/td&gt;
&lt;td&gt;Moderat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;high&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Mehrstufiges Reasoning, Code-Review per Sprache&lt;/td&gt;
&lt;td&gt;Hoch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xhigh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Benchmarks, schwierige analytische Fragen&lt;/td&gt;
&lt;td&gt;Höchste&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Standard ist:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;reasoning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;effort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;low&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Starten Sie in Produktion mit &lt;code&gt;low&lt;/code&gt;. Erhöhen Sie die Stufe nur, wenn Sie konkret messen, dass die Antwortqualität nicht ausreicht.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testen der Realtime API in Apidog
&lt;/h2&gt;

&lt;p&gt;WebSocket-APIs sind im Terminal schwer zu debuggen, weil Sitzungen zustandsbehaftet sind. Mit Apidog können Sie Realtime-Flows reproduzierbar testen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F05%2Fimage-20.png" alt="Abbildung 3: Apidog unterstützt WebSocket-Wiedergabe, wodurch Entwickler die Realtime API debuggen können." width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Praktisches Setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Neue WebSocket-Anfrage erstellen.&lt;/li&gt;
&lt;li&gt;URL setzen:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wss://api.openai.com/v1/realtime?model=gpt-realtime-2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Header hinzufügen:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Authorization: Bearer {{OPENAI_API_KEY}}
OpenAI-Beta: realtime=v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;session.update&lt;/code&gt; als erste Nachricht speichern:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"session.update"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"session"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"voice"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cedar"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"instructions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"You are a concise technical support agent."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"input_audio_format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pcm16"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"output_audio_format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pcm16"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"turn_detection"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"server_vad"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"reasoning"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"effort"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"low"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Danach Testnachrichten wie &lt;code&gt;conversation.item.create&lt;/code&gt;, &lt;code&gt;input_audio_buffer.append&lt;/code&gt; und &lt;code&gt;response.create&lt;/code&gt; ausführen.&lt;/li&gt;
&lt;li&gt;Serverevents erfassen und zwischen Läufen vergleichen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Laden Sie Apidog herunter&lt;/a&gt;, erstellen Sie eine WebSocket-Anfrage und speichern Sie API-Key, Voice und Modell als Umgebungsvariablen. So können Sie dieselbe Sitzung mit unterschiedlichen Reasoning-Stufen oder Stimmen wiederholen.&lt;/p&gt;

&lt;p&gt;Zum Vergleich mit einem anderen schnellen multimodalen Modell siehe &lt;a href="http://apidog.com/blog/how-to-use-gemini-3-flash-preview-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die Gemini 3 Flash Preview API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Welche Modell-ID soll ich verwenden?
&lt;/h3&gt;

&lt;p&gt;Verwenden Sie:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gpt-realtime-2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das frühere Modell ist weiterhin als &lt;code&gt;gpt-realtime&lt;/code&gt; verfügbar, falls Sie ein Rollback benötigen. Für die Lite-Version ist auch &lt;code&gt;gpt-realtime-2-mini&lt;/code&gt; live.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich Audio-Eingabe streamen, während Audio-Ausgabe abgespielt wird?
&lt;/h3&gt;

&lt;p&gt;Ja. Die Realtime API nutzt standardmäßig serverseitige Voice Activity Detection. Das Modell kann aufhören zu sprechen, wenn der Benutzer beginnt. Sie können VAD deaktivieren und Gesprächsgrenzen clientseitig steuern.&lt;/p&gt;

&lt;h3&gt;
  
  
  Umfasst der 128k-Kontext Audio-Token?
&lt;/h3&gt;

&lt;p&gt;Ja. Audio wird tokenisiert. Eine Sekunde Audio entspricht je nach Format etwa 50 Token. Lange Supportanrufe verbrauchen Kontext schneller als reine Textchats.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wird Fine-Tuning unterstützt?
&lt;/h3&gt;

&lt;p&gt;Noch nicht. Laut Modellkarte unterstützt GPT-Realtime-2 derzeit kein Fine-Tuning, keine vorhergesagten Ausgaben und kein Textstreaming bei Chat Completions. Der Realtime-Endpunkt streamt Audio nativ.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie unterscheidet sich GPT-Realtime-2 von GPT-5.5 mit TTS?
&lt;/h3&gt;

&lt;p&gt;GPT-Realtime-2 verarbeitet Sprache End-to-End. Es kann Tonfall, Zögern und Betonung direkt berücksichtigen. Ein Textmodell mit separater TTS-Schicht verliert diese Signale.&lt;/p&gt;

&lt;p&gt;Für reines Text-Reasoning siehe &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Wie man die GPT-5.5 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Welche Ratenbegrenzungen gelten?
&lt;/h3&gt;

&lt;p&gt;Tier 1 beginnt bei 40.000 Token pro Minute und skaliert bis 15 Millionen TPM bei Tier 5. Ratenbegrenzungen gelten pro Modell; bestehende GPT-5-Kontingente werden nicht übertragen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;GPT-Realtime-2 macht Sprachagenten näher an vollwertigen Textagenten: 128k Kontext, GPT-5-Klasse-Reasoning, Bildeingabe, MCP und SIP laufen in einer Realtime-Sitzung zusammen.&lt;/p&gt;

&lt;p&gt;Für die Implementierung:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;WebSocket mit &lt;code&gt;gpt-realtime-2&lt;/code&gt; öffnen.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;session.update&lt;/code&gt; mit Stimme, Audioformat, VAD und Reasoning senden.&lt;/li&gt;
&lt;li&gt;Audio per &lt;code&gt;input_audio_buffer.append&lt;/code&gt; streamen.&lt;/li&gt;
&lt;li&gt;Antworten über &lt;code&gt;response.audio.delta&lt;/code&gt; abspielen.&lt;/li&gt;
&lt;li&gt;Tools oder MCP nur dort hinzufügen, wo der Agent externe Daten benötigt.&lt;/li&gt;
&lt;li&gt;Mit &lt;code&gt;low&lt;/code&gt; Reasoning starten und nur bei messbarer Qualitätslücke erhöhen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Der schnellste Weg zum Debugging ist eine gespeicherte WebSocket-Sitzung in Apidog: Headers, Session-Setup, Tool-Konfiguration und Testnachrichten versionieren, wiedergeben und zwischen Läufen vergleichen.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Beste Lokale LLMs 2026: Die Top Sprachmodelle im Vergleich</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 08 May 2026 06:46:29 +0000</pubDate>
      <link>https://forem.com/emree_demir/beste-lokale-llms-2026-die-top-sprachmodelle-im-vergleich-4kem</link>
      <guid>https://forem.com/emree_demir/beste-lokale-llms-2026-die-top-sprachmodelle-im-vergleich-4kem</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Das „beste“ lokale LLM im Jahr 2026 hängt von VRAM-Budget, Latenzziel und Anwendungsfall ab: Coding, Reasoning, Mehrsprachigkeit oder Vision.&lt;/li&gt;
&lt;li&gt;Für 24-GB-GPUs sind &lt;strong&gt;Qwen 3.6 32B&lt;/strong&gt; und &lt;strong&gt;DeepSeek V4 Flash&lt;/strong&gt; die stärksten Allrounder.&lt;/li&gt;
&lt;li&gt;Für 8 GB und darunter sind &lt;strong&gt;Gemma 4 9B&lt;/strong&gt; und &lt;strong&gt;Llama 5.1 8B&lt;/strong&gt; die Favoriten.&lt;/li&gt;
&lt;li&gt;Für reine Reasoning- oder Coding-Workloads führen &lt;strong&gt;DeepSeek V4 Pro&lt;/strong&gt; quantisiert oder &lt;strong&gt;GLM 5&lt;/strong&gt; die offene Rangliste an.&lt;/li&gt;
&lt;li&gt;Verwenden Sie &lt;strong&gt;Ollama&lt;/strong&gt; oder &lt;strong&gt;LM Studio&lt;/strong&gt;, um ein lokales Modell mit OpenAI-kompatiblem HTTP-Endpunkt bereitzustellen. Testen Sie diesen anschließend mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; wie eine gehostete API.&lt;/li&gt;
&lt;li&gt;Mit Apidog können Sie lokalen Modellverkehr simulieren, wiedergeben und benchmarken, ohne Token-Budget bei einem gehosteten LLM zu verbrauchen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dieser Leitfaden reduziert die Auswahl auf die lokalen LLMs, die 2026 praktisch relevant sind. Sie erfahren, welches Modell zu welcher Hardware passt, wie Sie es über einen OpenAI-kompatiblen Endpunkt bereitstellen und wie Sie lokale Modelle mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; testen, als wären sie gehostete APIs. Wenn Sie DeepSeek V4 gezielt lokal ausführen möchten, finden Sie mehr Details im &lt;a href="http://apidog.com/blog/how-to-run-deepseek-v4-locally?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4 Installationsleitfaden&lt;/a&gt; und in der &lt;a href="http://apidog.com/blog/what-is-deepseek-v4?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4 Übersicht&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog noch heute ausprobieren&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Warum lokale LLMs 2026 wieder wichtig sind
&lt;/h2&gt;

&lt;p&gt;Vor drei Jahren bedeutete „lokales LLM“ meistens: schlechtere Qualität, mehr Setup-Aufwand und langsame Inferenz. Das gilt nicht mehr. Open-Weight-Modelle haben seit 2024 stark aufgeholt. Bei Reasoning, Coding, Extraktion, Klassifikation und Tool-Calling liegt der Abstand zu gehosteten Modellen oft nur noch im einstelligen Prozentbereich.&lt;/p&gt;

&lt;p&gt;Auch die Hardware ist praktischer geworden:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Eine 24-GB-Consumer-GPU kann ein 32B-Modell in 4-Bit-Quantisierung ausführen.&lt;/li&gt;
&lt;li&gt;Ein Mac Studio mit 64 GB gemeinsamem Speicher kann DeepSeek V4 Flash mit brauchbarer Geschwindigkeit ausführen.&lt;/li&gt;
&lt;li&gt;Für Teams mit Anforderungen an Datenresidenz, Kostenkontrolle oder Anbieterunabhängigkeit ist lokale Inferenz keine Forschungsaufgabe mehr.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die entscheidende Frage lautet daher nicht mehr nur: „Ist das Modell gut genug?“&lt;br&gt;&lt;br&gt;
Sondern: „Wie teste, dokumentiere und betreibe ich den lokalen Endpunkt wie eine Produktions-API?“&lt;/p&gt;
&lt;h2&gt;
  
  
  Auswahlkriterien
&lt;/h2&gt;

&lt;p&gt;Die Shortlist basiert nicht nur auf Benchmark-Rankings. Wichtig waren diese Kriterien:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Offene Gewichte mit produktionsgeeigneter Lizenz, z. B. MIT, Apache 2.0 oder kompatible Community-Lizenz&lt;/li&gt;
&lt;li&gt;Aktive Wartung im Jahr 2026&lt;/li&gt;
&lt;li&gt;Bereitstellung über Ollama, vLLM oder LM Studio&lt;/li&gt;
&lt;li&gt;OpenAI-kompatibler HTTP-Endpunkt&lt;/li&gt;
&lt;li&gt;Stärke in mindestens einem Bereich: Reasoning, Code, Mehrsprachigkeit, Vision oder langer Kontext&lt;/li&gt;
&lt;li&gt;Realistische Hardware-Anforderungen für Entwicklerteams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Getestet wurden dieselben acht Prompts auf einer 4090 und einem Mac Studio M3 Ultra. Die Ergebnisse wurden mit der &lt;a href="https://chat.lmsys.org/" rel="noopener noreferrer"&gt;LMSYS Arena&lt;/a&gt; und dem &lt;a href="https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard" rel="noopener noreferrer"&gt;Hugging Face Open LLM Leaderboard&lt;/a&gt; abgeglichen.&lt;/p&gt;
&lt;h2&gt;
  
  
  Die lokalen LLMs, die 2026 relevant sind
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. DeepSeek V4 Pro
&lt;/h3&gt;

&lt;p&gt;DeepSeek V4 Pro ist das Flaggschiff der V4-Reihe. Es ist als 4-Bit-GGUF und AWQ auf Hugging Face verfügbar. Das vollständige Modell hat 1,6 Billionen Parameter mit 49 Milliarden aktiven Parametern. Damit liegt es klar im Bereich großer Workstations oder Rechenzentren.&lt;/p&gt;

&lt;p&gt;In Q4-Quantisierung benötigt es etwa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;192 GB gemeinsamen Speicher auf einem Mac Studio M3 Ultra&lt;/li&gt;
&lt;li&gt;oder 2x 80 GB GPU-Speicher, z. B. H100&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für die meisten Entwickler ist V4 Pro lokal eher ein Spezialfall. Relevant ist es trotzdem, weil kleinere Distillationen viel von seinem Reasoning-Verhalten übernehmen.&lt;/p&gt;

&lt;p&gt;Wenn Sie die gleichen Gewichte lieber gehostet nutzen möchten, ist der API-Weg in &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;„Wie man die DeepSeek V4 API verwendet“&lt;/a&gt; beschrieben.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geeignet für:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reasoning-intensive Agenten&lt;/li&gt;
&lt;li&gt;große lokale Workstations&lt;/li&gt;
&lt;li&gt;Teams mit Mac Studio M3 Ultra oder mehreren großen GPUs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;192 GB gemeinsamer Speicher&lt;/li&gt;
&lt;li&gt;oder 2x 80 GB GPU&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quelle:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro" rel="noopener noreferrer"&gt;DeepSeek V4 Pro GGUF auf Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2. DeepSeek V4 Flash
&lt;/h3&gt;

&lt;p&gt;DeepSeek V4 Flash ist die praktischere V4-Variante: 284B Parameter insgesamt, 13B aktiv. In 4-Bit-Quantisierung passt es in 24 GB VRAM und lässt Platz für ein 64K-Kontextfenster.&lt;/p&gt;

&lt;p&gt;Auf einer 4090 liegt der Durchsatz bei Langform-Generierung im Test bei durchschnittlich etwa 28 Token pro Sekunde.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi06uvwrpb8br1ylseq9h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi06uvwrpb8br1ylseq9h.png" alt="DeepSeek V4 Flash" width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Für viele Teams ist V4 Flash das Modell, das tatsächlich lokal läuft. Die Reasoning-Qualität lag in den getesteten Prompts innerhalb von etwa 5 Prozent von V4 Pro. Beim Coding ist es etwas schwächer.&lt;/p&gt;

&lt;p&gt;Der &lt;a href="http://apidog.com/blog/how-to-run-deepseek-v4-locally?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4 Installationsleitfaden&lt;/a&gt; zeigt die Einrichtung mit Ollama Schritt für Schritt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geeignet für:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lokale Allzweck-Agenten&lt;/li&gt;
&lt;li&gt;Coding-Assistenten&lt;/li&gt;
&lt;li&gt;RAG-Generatoren&lt;/li&gt;
&lt;li&gt;interne Automatisierungen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;24 GB VRAM bei Q4&lt;/li&gt;
&lt;li&gt;16 GB VRAM bei Q3, mit Qualitätsverlust&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Installation mit Ollama:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull deepseek-v4-flash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Quelle:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash" rel="noopener noreferrer"&gt;DeepSeek V4 Flash auf Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Qwen 3.6 32B
&lt;/h3&gt;

&lt;p&gt;Qwen ist seit Jahren eine der stabilsten Open-Weight-Modellfamilien. Qwen 3.6 32B passt in Q4-Quantisierung in 24 GB VRAM und schlägt ältere Llama-3-70B-Modelle in vielen Reasoning- und Tool-Calling-Benchmarks.&lt;/p&gt;

&lt;p&gt;Besonders stark ist Qwen bei Mehrsprachigkeit. Chinesisch, Japanisch, Koreanisch und Arabisch werden deutlich besser verarbeitet als bei vielen westlich fokussierten Modellen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddpqlfd78fqtq9387yx2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddpqlfd78fqtq9387yx2.png" alt="Qwen 3.6" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wenn Ihr Produkt international genutzt wird und Sie ein lokales Modell für Reasoning, strukturierte Ausgaben und Mehrsprachigkeit benötigen, ist Qwen 3.6 32B eine sehr gute Wahl.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geeignet für:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mehrsprachige Produkte&lt;/li&gt;
&lt;li&gt;strukturierte Ausgabe&lt;/li&gt;
&lt;li&gt;Tool Calling&lt;/li&gt;
&lt;li&gt;ausgewogene Qualität bei 24 GB VRAM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hardware:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;24 GB VRAM bei Q4&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Installation mit Ollama:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull qwen3.6:32b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Quelle:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/Qwen/Qwen3.6-32B" rel="noopener noreferrer"&gt;Qwen 3.6 auf Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. GLM 5.1
&lt;/h3&gt;

&lt;p&gt;Die GLM-Reihe von Zhipu AI ist besonders bei Tool Calling und strukturierter Extraktion stark. &lt;a href="https://z.ai/blog/glm-5.1" rel="noopener noreferrer"&gt;GLM 5.1&lt;/a&gt; erzielt bei Tool-Calling-Benchmarks unter offenen Modellen Top-Ergebnisse. Nur DeepSeek V4 liegt in vielen Tests darüber.&lt;/p&gt;

&lt;p&gt;Coding ist nicht seine stärkste Disziplin. Dafür ist GLM 5.1 gut geeignet für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reasoning&lt;/li&gt;
&lt;li&gt;Klassifikation&lt;/li&gt;
&lt;li&gt;JSON-Ausgabe&lt;/li&gt;
&lt;li&gt;strukturierte Datenextraktion&lt;/li&gt;
&lt;li&gt;Agenten-Workflows mit Tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllhaiswc3qyj6zu9nhmf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllhaiswc3qyj6zu9nhmf.png" alt="GLM 5.1" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Die lokale Bereitstellung ist über Ollama und vLLM solide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geeignet für:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool-Calling-Agenten&lt;/li&gt;
&lt;li&gt;strukturierte Extraktion&lt;/li&gt;
&lt;li&gt;JSON-Modus-Pipelines&lt;/li&gt;
&lt;li&gt;interne Automatisierungen mit klaren Schemas&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Lokale LLMs wie gehostete APIs bereitstellen
&lt;/h2&gt;

&lt;p&gt;Sobald das Modell läuft, erwartet Ihr Stack meistens keinen lokalen Prozess, sondern einen HTTP-Endpunkt. Deshalb sollten Sie lokale Modelle früh als API behandeln.&lt;/p&gt;

&lt;p&gt;2026 sind drei Bereitstellungswege besonders relevant:&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 1: Ollama
&lt;/h3&gt;

&lt;p&gt;Ollama ist der einfachste Einstieg. Es stellt einen OpenAI-kompatiblen Endpunkt bereit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Standard-URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:11434/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für viele Anwendungen reicht es, die Base URL von &lt;code&gt;https://api.openai.com/v1&lt;/code&gt; auf &lt;code&gt;http://localhost:11434/v1&lt;/code&gt; zu ändern.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 2: vLLM
&lt;/h3&gt;

&lt;p&gt;vLLM ist die bessere Produktionsoption, wenn Durchsatz und Latenz wichtig sind. Es unterstützt kontinuierliches Batching und stellt ebenfalls eine OpenAI-kompatible API bereit.&lt;/p&gt;

&lt;p&gt;Typische Base URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8000/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nutzen Sie vLLM, wenn mehrere Nutzer oder Services denselben lokalen Modellserver aufrufen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 3: LM Studio
&lt;/h3&gt;

&lt;p&gt;LM Studio ist die GUI-Option. Sie eignet sich gut für einzelne Entwickler, lokale Tests und schnelle Modellvergleiche. Wenn der lokale Server in den Einstellungen aktiviert ist, stellt LM Studio ebenfalls einen HTTP-Endpunkt bereit.&lt;/p&gt;

&lt;p&gt;Das Muster ist in &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;„Wie man DeepSeek V4 kostenlos nutzt“&lt;/a&gt; detailliert beschrieben.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minimaler Python-Client für ein lokales Modell
&lt;/h2&gt;

&lt;p&gt;Wenn Ihr Modell über Ollama läuft, können Sie den offiziellen OpenAI-Client weiterverwenden:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ollama&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# beliebiger String; Ollama ignoriert den Key
&lt;/span&gt;    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://localhost:11434/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;qwen3.6:32b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Fasse die Unterschiede zwischen MoE- und Dense-Modellen in drei Stichpunkten zusammen.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für ein anderes Modell ändern Sie nur den Modellnamen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;llama5.1:8b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Request-Struktur bleibt gleich.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lokale Modelle mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Für den produktiven Einsatz ist Debugging entscheidend. Bei gehosteten Modellen lesen Sie bei Problemen die Statusseite des Anbieters. Bei lokalen Modellen gehört der Fehler Ihnen: Treiber, VRAM, Quantisierung, Modellserver, Streaming, Timeouts und Formatabweichungen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fou3bxrkm26ig08d3q0jx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fou3bxrkm26ig08d3q0jx.png" alt="Apidog für lokale LLMs" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; behandelt Ihren Ollama- oder vLLM-Endpunkt wie jede andere API.&lt;/p&gt;

&lt;p&gt;Praktischer Workflow:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Lokalen Endpunkt anlegen
&lt;/h3&gt;

&lt;p&gt;Base URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:11434/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oder bei vLLM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8000/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST /chat/completions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Standard-Request speichern
&lt;/h3&gt;

&lt;p&gt;Beispiel für OpenAI-kompatible Chat Completions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"qwen3.6:32b"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Extrahiere Firmenname, Betrag und Fälligkeitsdatum aus folgendem Rechnungstext."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"temperature"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"max_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Speichern Sie solche Requests pro Modell und Use Case:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RAG-Antworten&lt;/li&gt;
&lt;li&gt;JSON-Extraktion&lt;/li&gt;
&lt;li&gt;Tool Calling&lt;/li&gt;
&lt;li&gt;Klassifikation&lt;/li&gt;
&lt;li&gt;Coding-Aufgaben&lt;/li&gt;
&lt;li&gt;längere Zusammenfassungen&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Modellantworten vergleichen
&lt;/h3&gt;

&lt;p&gt;Spielen Sie denselben Prompt gegen mehrere Modelle ab:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qwen 3.6 32B&lt;/li&gt;
&lt;li&gt;DeepSeek V4 Flash&lt;/li&gt;
&lt;li&gt;GLM 5.1&lt;/li&gt;
&lt;li&gt;Llama 5.1 8B&lt;/li&gt;
&lt;li&gt;Gemma 4 9B&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So erkennen Sie Regressionen, Formatabweichungen oder Qualitätsunterschiede schneller als mit manuellen Curl-Aufrufen.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. CI mit Mocks stabil halten
&lt;/h3&gt;

&lt;p&gt;CI sollte nicht davon abhängen, ob gerade eine 24-GB-GPU verfügbar ist. Simulieren Sie den lokalen LLM-Endpunkt in Apidog mit realistischen JSON- oder Streaming-Antworten.&lt;/p&gt;

&lt;p&gt;Das macht Tests stabiler, weil Unit- und Integrationstests nicht jedes Mal ein Modell laden müssen.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Durchsatz und Latenz benchmarken
&lt;/h3&gt;

&lt;p&gt;Vergleichen Sie Läufe mit unterschiedlichen Parametern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Q4 vs. Q5&lt;/li&gt;
&lt;li&gt;8K vs. 32K Kontext&lt;/li&gt;
&lt;li&gt;Temperatur 0.2 vs. 0.7&lt;/li&gt;
&lt;li&gt;Ollama vs. vLLM&lt;/li&gt;
&lt;li&gt;verschiedene GPUs oder Macs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Relevante Metriken:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Latenz&lt;/li&gt;
&lt;li&gt;Time-to-First-Token&lt;/li&gt;
&lt;li&gt;Tokens pro Sekunde&lt;/li&gt;
&lt;li&gt;Fehlerrate&lt;/li&gt;
&lt;li&gt;Timeout-Verhalten&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Lokale API dokumentieren
&lt;/h3&gt;

&lt;p&gt;Apidog-Projekte können OpenAPI 3.1 exportieren. Damit erhält Ihr Team einen klaren Vertrag für interne Modellendpunkte, z. B.:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST /chat/completions
POST /embeddings
GET /models
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Einen ähnlichen Workflow beschreibt &lt;a href="http://apidog.com/blog/best-self-hosted-postman-alternatives-2026-2?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog als Postman-Alternative&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufige Fehler beim Ausführen lokaler LLMs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Fehler 1: Das größte Modell wählen, das gerade noch passt
&lt;/h3&gt;

&lt;p&gt;Ein 32B-Modell bei Q3 ist oft schlechter als ein 14B-Modell bei Q5. Quantisierungsqualität ist nicht nur ein Detail. Ab 4 Bit kann sie mehr Einfluss haben als die reine Parameterzahl.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fehler 2: Kontextlänge unterschätzen
&lt;/h3&gt;

&lt;p&gt;Langer Kontext verbraucht VRAM über den KV-Cache. Ein 32K-Kontext auf einem 32B-Modell kann mehrere zusätzliche GB benötigen. Planen Sie den Speicherbedarf vor dem Start.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fehler 3: Zufällige Fine-Tunes nutzen
&lt;/h3&gt;

&lt;p&gt;Nicht jeder Hugging-Face-Upload ist vertrauenswürdig. Nutzen Sie bevorzugt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;offizielle Modellkarten&lt;/li&gt;
&lt;li&gt;bekannte Fine-Tunes&lt;/li&gt;
&lt;li&gt;Autoren mit nachvollziehbarer Historie&lt;/li&gt;
&lt;li&gt;Modelle mit klarer Lizenz&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ein vergifteter Fine-Tune ist ein reales Risiko.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fehler 4: Keine Mock-Schicht einbauen
&lt;/h3&gt;

&lt;p&gt;Lokale Modelle können ausfallen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Treiber stürzen ab&lt;/li&gt;
&lt;li&gt;Prozesse werden durch OOM beendet&lt;/li&gt;
&lt;li&gt;GPUs drosseln&lt;/li&gt;
&lt;li&gt;Modellserver hängen&lt;/li&gt;
&lt;li&gt;Streaming bricht ab&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenn CI direkt gegen das Modell läuft, werden Tests unzuverlässig. Mocken Sie den Endpunkt mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fehler 5: Tool-Call-Formate nicht testen
&lt;/h3&gt;

&lt;p&gt;Llama 5.1, Qwen 3.6 und DeepSeek V4 unterstützen Tool Calls, können aber leicht unterschiedliche JSON-Strukturen ausgeben. Testen Sie jedes Modell mit Ihren echten Tool-Schemas, bevor Sie es in Produktion austauschen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Praxisbeispiele
&lt;/h2&gt;

&lt;p&gt;Ein Startup mit Kundensupport-Agent wechselte von GPT-5.5 zu Qwen 3.6 32B auf einer einzelnen 4090. Die Latenz blieb unter 800 ms, die monatliche Inferenzrechnung sank von 9.400 $ auf 0 $, und das Team nutzt Apidog-Mocks, um CI deterministisch zu halten.&lt;/p&gt;

&lt;p&gt;Ein Solo-Entwickler für einen Sprachassistenten betreibt Gemma 4 9B auf einem M2 Pro mit 16 GB gemeinsamem Speicher. Multi-Token-Vorhersage-Drafter liefern 60 Token pro Sekunde, schnell genug für ein natives Nutzergefühl.&lt;/p&gt;

&lt;p&gt;Ein Fintech-Forschungsteam betreibt DeepSeek V4 Flash auf zwei 4090ern für nächtliche Batch-Zusammenfassungen regulatorischer Einreichungen. Die Kosten pro Zusammenfassung bestehen im Wesentlichen aus Strom und Wartungszeit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Das beste lokale LLM im Jahr 2026 ist das Modell, das zu Ihrem VRAM, Ihrem Latenzbudget und Ihren Qualitätsanforderungen passt.&lt;/p&gt;

&lt;p&gt;Für viele Teams ist die pragmatische Auswahl:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qwen 3.6 32B&lt;/strong&gt; für 24-GB-GPUs, Mehrsprachigkeit und Tool Calling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepSeek V4 Flash&lt;/strong&gt; für 24-GB-GPUs, Reasoning und lokale Agenten&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Llama 5.1 8B&lt;/strong&gt; oder &lt;strong&gt;Gemma 4 9B&lt;/strong&gt; für kleinere Hardware&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GLM 5.1&lt;/strong&gt; für Tool-Calling- und JSON-lastige Workloads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeepSeek V4 Pro&lt;/strong&gt; für sehr große lokale Setups&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wichtigste Punkte:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lokale Qualität ist bei vielen Aufgaben nah an gehosteten Modellen.&lt;/li&gt;
&lt;li&gt;Ollama plus OpenAI-kompatibler Client ist der schnellste HTTP-Einstieg.&lt;/li&gt;
&lt;li&gt;Quantisierung ist kritisch: Q4 oder Q5 ist oft besser als ein größeres Modell bei Q3.&lt;/li&gt;
&lt;li&gt;Behandeln Sie lokale LLMs wie Produktions-APIs.&lt;/li&gt;
&lt;li&gt;Speichern, simulieren, benchmarken und dokumentieren Sie Requests mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nächster Schritt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull &amp;lt;modellname&amp;gt;
ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Richten Sie anschließend &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; auf diese Base URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:11434/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dann können Sie innerhalb kurzer Zeit Requests speichern, Modelle vergleichen und Benchmarks ausführen.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Was ist das beste lokale LLM für eine 24-GB-GPU im Jahr 2026?
&lt;/h3&gt;

&lt;p&gt;Für die meisten Workloads sind &lt;strong&gt;Qwen 3.6 32B bei Q4&lt;/strong&gt; oder &lt;strong&gt;DeepSeek V4 Flash bei Q4&lt;/strong&gt; geeignet. Wählen Sie Qwen für mehrsprachige oder Tool-intensive Aufgaben. Wählen Sie DeepSeek V4 Flash für Reasoning und Coding.&lt;/p&gt;

&lt;p&gt;Mehr Details finden Sie im &lt;a href="http://apidog.com/blog/how-to-run-deepseek-v4-locally?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4 lokalen Leitfaden&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich ein lokales LLM auf einem Mac ausführen?
&lt;/h3&gt;

&lt;p&gt;Ja. Apple Silicon mit 16 GB oder mehr gemeinsamem Speicher kann Llama 5.1 8B und Gemma 4 9B ausführen. Ein M3 Ultra mit 192 GB gemeinsamem Speicher kann DeepSeek V4 Pro bei Q4 ausführen. Nutzen Sie dafür Ollama oder LM Studio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie teste ich ein lokales LLM wie OpenAI?
&lt;/h3&gt;

&lt;p&gt;Verwenden Sie denselben OpenAI-kompatiblen Client, ändern Sie aber die Base URL.&lt;/p&gt;

&lt;p&gt;Ollama:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:11434/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;vLLM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8000/v1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dasselbe gilt für Ihr &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;-Projekt: gleiche Request-Struktur, andere Base URL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ist die Qualität lokaler LLMs wirklich gleichwertig mit gehosteten Modellen?
&lt;/h3&gt;

&lt;p&gt;Bei Reasoning, Coding, Klassifikation, Extraktion und Tool Calling liegen die besten offenen Modelle oft innerhalb eines einstelligen Prozentbereichs. Bei Vision, Langkontext-Dokumenten-QA und kreativem Schreiben haben gehostete Modelle weiterhin Vorteile.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was ist mit den Kosten?
&lt;/h3&gt;

&lt;p&gt;Eine 4090 kann DeepSeek V4 Flash im Wesentlichen zum Strompreis betreiben, z. B. etwa 30 $ pro Monat bei typischer Nutzung. Ein gehostetes Äquivalent mit gleichem Volumen kann Hunderte bis Tausende Dollar pro Monat kosten. Der Break-even liegt häufig bei etwa 5 Millionen Token pro Monat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie wechsle ich eine Produktions-App zwischen gehostet und lokal?
&lt;/h3&gt;

&lt;p&gt;Behalten Sie den OpenAI-Client bei und ändern Sie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Base URL&lt;/li&gt;
&lt;li&gt;Modellname&lt;/li&gt;
&lt;li&gt;ggf. Tool-Call-Handling&lt;/li&gt;
&lt;li&gt;Timeout- und Retry-Parameter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testen Sie den Wechsel vorher mit Replay- und Vergleichstools, damit Verhaltensunterschiede sichtbar werden, bevor Nutzer sie bemerken. Siehe auch &lt;a href="http://apidog.com/blog/api-testing-without-postman-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Tests ohne Postman&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wo finde ich aktuelle Ranglisten?
&lt;/h3&gt;

&lt;p&gt;Nutzen Sie beide Quellen, weil sie unterschiedliche Aspekte messen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard" rel="noopener noreferrer"&gt;Hugging Face Open LLM Leaderboard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chat.lmsys.org/" rel="noopener noreferrer"&gt;LMSYS Chatbot Arena&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Computernutzung vs. Strukturierte APIs: Wann Was Besser Ist (2026)</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Fri, 08 May 2026 02:43:14 +0000</pubDate>
      <link>https://forem.com/emree_demir/computernutzung-vs-strukturierte-apis-wann-was-besser-ist-2026-4jo1</link>
      <guid>https://forem.com/emree_demir/computernutzung-vs-strukturierte-apis-wann-was-besser-ist-2026-4jo1</guid>
      <description>&lt;p&gt;Das Steuern eines Browsers mit einem LLM über Computer-Nutzungsmodelle ist ungefähr 45-mal teurer, als denselben Anbieter über eine strukturierte API aufzurufen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog noch heute ausprobieren&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Dieser Leitfaden zeigt, woher diese 45x-Kosten kommen, wann Computer-Nutzung trotzdem sinnvoll ist und wie Sie mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; strukturierte API-Flows für Agenten entwerfen, mocken und testen. Das Framework gilt für OpenAI Operator, Anthropic Computer-Nutzung, Browser-Nutzung, Skyvern und alle Tools, die mit einer Screenshot-Schleife arbeiten.&lt;/p&gt;

&lt;p&gt;Wenn Sie APIs für KI-Agenten schreiben, lesen Sie auch den ergänzenden Leitfaden zu &lt;a href="http://apidog.com/blog/how-to-write-agents-md-files?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;agents.md-Dateien&lt;/a&gt;. Die dortigen Konventionen machen strukturierte APIs für Agenten zur naheliegenden Standardeinstellung.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Computer-Nutzung: Das LLM sieht Screenshots und gibt Klicks, Tastatureingaben und Scroll-Aktionen aus.&lt;/li&gt;
&lt;li&gt;Strukturierte APIs: Das LLM erzeugt JSON-Tool-Aufrufe, die Ihr Backend ausführt.&lt;/li&gt;
&lt;li&gt;Für dieselbe Aufgabe verbraucht Computer-Nutzung oft 30- bis 50-mal mehr Token, weil jeder Schritt einen neuen Screenshot und häufig Wiederholungen braucht.&lt;/li&gt;
&lt;li&gt;Nutzen Sie Computer-Nutzung nur, wenn keine API existiert, die API stark limitiert ist oder der Workflow hinter einer schwer automatisierbaren Authentifizierung liegt.&lt;/li&gt;
&lt;li&gt;Nutzen Sie für Zahlungen, Suche, CRM-Updates, interne Tools und alles mit OpenAPI-Dokumentation strukturierte APIs.&lt;/li&gt;
&lt;li&gt;In der Praxis ist Hybrid meist richtig: APIs für die 90 Prozent mit Endpunkten, Computer-Nutzung für den Long Tail.&lt;/li&gt;
&lt;li&gt;Mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; können Sie JSON-Tool-Schemas entwerfen, Endpunkte mocken und Agenten-Flows testen, ohne unnötig Agenten-Guthaben zu verbrennen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Warum der Kostenunterschied so groß ist
&lt;/h2&gt;

&lt;p&gt;Die 45x-Zahl entsteht direkt aus der Token-Nutzung.&lt;/p&gt;

&lt;p&gt;Ein strukturierter API-Aufruf besteht typischerweise aus:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Benutzeranfrage&lt;/li&gt;
&lt;li&gt;Tool-Schema&lt;/li&gt;
&lt;li&gt;JSON-Antwort des Modells&lt;/li&gt;
&lt;li&gt;Backend-Aufruf&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Das sind oft nur wenige hundert Eingabe-Token und eine kleine JSON-Ausgabe.&lt;/p&gt;

&lt;p&gt;Eine Computer-Nutzungsschleife läuft anders:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Prompt senden&lt;/li&gt;
&lt;li&gt;Screenshot senden&lt;/li&gt;
&lt;li&gt;Modell gibt Klickkoordinate zurück&lt;/li&gt;
&lt;li&gt;Browser führt Klick aus&lt;/li&gt;
&lt;li&gt;Neuer Screenshot&lt;/li&gt;
&lt;li&gt;Nächster Modellschritt&lt;/li&gt;
&lt;li&gt;Wiederholen, bis die Aufgabe fertig ist&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Eine Aufgabe wie „Flug buchen“ oder „Bericht im Dashboard abrufen“ kann 12 bis 30 Runden benötigen. Jeder Screenshot kostet bei typischer Auflösung etwa 1.500 Token. Dazu kommen Fehlklicks, Cookie-Banner, falsches Scrollen und Wiederholungsversuche.&lt;/p&gt;

&lt;p&gt;Die &lt;a href="https://docs.anthropic.com/claude/docs/computer-use" rel="noopener noreferrer"&gt;Anthropic-Dokumentation zur Computer-Nutzung&lt;/a&gt; beschreibt die Screenshot-Token-Kosten offen. Der reale Overhead ist meist höher, weil der Agent UI-Zustände korrigieren muss. Der HN-Thread zu &lt;a href="https://news.ycombinator.com/item?id=48024859" rel="noopener noreferrer"&gt;Computer-Nutzung ist 45-mal teurer als strukturierte APIs&lt;/a&gt; kommt auf eine typische Strafe von 30- bis 50-fach. Das entspricht dem, was sichtbar wird, wenn man denselben Workflow in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; einmal als API-Flow und einmal als Browser-Flow testet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wann strukturierte APIs gewinnen
&lt;/h2&gt;

&lt;p&gt;Verwenden Sie standardmäßig strukturierte APIs, wenn eine dieser Bedingungen zutrifft.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Es gibt eine dokumentierte Schnittstelle
&lt;/h3&gt;

&lt;p&gt;Wenn der Anbieter eine OpenAPI-Spezifikation, ein GraphQL-Schema oder auch nur eine REST-Dokumentation bereitstellt, sollte der Agent diese Schnittstelle nutzen.&lt;/p&gt;

&lt;p&gt;Beispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"update_deal_status"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Aktualisiert den Status eines CRM-Deals"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"parameters"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"object"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"properties"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"deal_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"enum"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"open"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"won"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"lost"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"required"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"deal_id"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ein Agent kann dieses Schema direkt ausfüllen. Fehler sind leicht zu validieren und günstig zu wiederholen.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Die Aufgabe passt in ein oder zwei Endpunkte
&lt;/h3&gt;

&lt;p&gt;Diese Aufgaben sollten nicht über einen Browser laufen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stripe-Kunden erstellen&lt;/li&gt;
&lt;li&gt;HubSpot-Deal aktualisieren&lt;/li&gt;
&lt;li&gt;Slack-Nachricht posten&lt;/li&gt;
&lt;li&gt;CI-Rerun auslösen&lt;/li&gt;
&lt;li&gt;Rechnungsliste abrufen&lt;/li&gt;
&lt;li&gt;Support-Ticket schließen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenn ein einzelner HTTP-Aufruf reicht, ist eine Screenshot-Schleife unnötig langsam, teuer und fehleranfällig.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Der Workflow läuft unbeaufsichtigt
&lt;/h3&gt;

&lt;p&gt;Cron-Jobs, Webhooks und Queue Worker sollten keine UI bedienen. Sie brauchen deterministische Netzwerkaufrufe, keine Agenten, die eventuell in die falsche Richtung scrollen.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Latenz ist relevant
&lt;/h3&gt;

&lt;p&gt;Ein strukturierter API-Aufruf dauert oft 200 bis 800 Millisekunden. Eine Computer-Nutzungsschleife mit 15 Runden dauert 30 bis 90 Sekunden.&lt;/p&gt;

&lt;p&gt;Wenn ein Nutzer auf das Ergebnis wartet, ist fast immer die API der richtige Weg.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Sie müssen vor dem Versand testen
&lt;/h3&gt;

&lt;p&gt;JSON-Endpunkte lassen sich in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; schnell mocken. Eine Browser-Screenshot-Schleife zuverlässig zu mocken, ist deutlich komplexer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wann Computer-Nutzung sinnvoll ist
&lt;/h2&gt;

&lt;p&gt;Computer-Nutzung ist nicht nutzlos. Sie ist nur kein guter Standardpfad.&lt;/p&gt;

&lt;h3&gt;
  
  
  Veraltete Anbieterportale
&lt;/h3&gt;

&lt;p&gt;Einige Beschaffungs-, Fracht- oder Leistungsportale sind älter als moderne APIs. Sie laufen hinter &lt;a href="http://ASP.NET" rel="noopener noreferrer"&gt;ASP.NET&lt;/a&gt;-Sessions oder komplexen Formularen und bieten keine Maschinenschnittstelle.&lt;/p&gt;

&lt;p&gt;Wenn die Alternative ein instabiles Selenium-Skript ist, das jedes Quartal bricht, kann Computer-Nutzung trotz höherer Laufkosten sinnvoll sein.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interne Tools, die Sie nicht ändern können
&lt;/h3&gt;

&lt;p&gt;Beispiele:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;altes CRM&lt;/li&gt;
&lt;li&gt;Legacy-ERP&lt;/li&gt;
&lt;li&gt;SharePoint-Dashboard&lt;/li&gt;
&lt;li&gt;internes Admin-Panel ohne API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenn Sie keine Integration liefern können und kein iPaaS-Budget existiert, kann eine Screenshot-Schleife eine pragmatische Lösung sein.&lt;/p&gt;

&lt;h3&gt;
  
  
  Einmalige Operator-Aufgaben
&lt;/h3&gt;

&lt;p&gt;Beispiel:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Recherchiere diese 50 Wettbewerber und füge die Highlights in Notion ein.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Das ist möglicherweise kein Workflow, der einen stabilen API-Vertrag braucht. Für einmalige oder seltene Aufgaben können die Mehrkosten akzeptabel sein.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scraping hinter fremden Oberflächen
&lt;/h3&gt;

&lt;p&gt;Bei Anfragen wie „scrape diese Website mit Computer-Nutzung“ ist nicht nur der Preis relevant. Prüfen Sie zuerst Nutzungsbedingungen, Rechte und Zugriffserlaubnis. Die Token-Kosten sind hier oft das kleinste Problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Entscheidungsrahmenwerk
&lt;/h2&gt;

&lt;p&gt;Prüfen Sie vor jeder Computer-Nutzung diese vier Fragen:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Prüfung&lt;/th&gt;
&lt;th&gt;Wenn ja&lt;/th&gt;
&lt;th&gt;Wenn nein&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Existiert eine dokumentierte API?&lt;/td&gt;
&lt;td&gt;Nutzen Sie die API.&lt;/td&gt;
&lt;td&gt;Weiter prüfen.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Können Sie einen schlanken serverseitigen Adapter für einen privaten Endpunkt bauen?&lt;/td&gt;
&lt;td&gt;Adapter erstellen und als JSON-Tool bereitstellen.&lt;/td&gt;
&lt;td&gt;Weiter prüfen.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ist die Aufgabe einmalig oder geringvolumig (&amp;lt;100 Läufe/Tag)?&lt;/td&gt;
&lt;td&gt;Computer-Nutzung ist akzeptabel.&lt;/td&gt;
&lt;td&gt;Weiter prüfen.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sind 30-50x Token-Kosten pro Lauf akzeptabel?&lt;/td&gt;
&lt;td&gt;Computer-Nutzung.&lt;/td&gt;
&lt;td&gt;Stoppen und API-Zugang verhandeln.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In den meisten realen Workflows scheitert Computer-Nutzung bereits an Prüfung eins oder zwei.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie strukturierte APIs in einem Agenten aussehen
&lt;/h2&gt;

&lt;p&gt;Beispiel: Der Agent soll „fehlgeschlagene Zahlungen von gestern“ abrufen.&lt;/p&gt;

&lt;p&gt;Die strukturierte Variante definiert zuerst ein Tool-Schema:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;list_failed_payments&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;List failed payments in a date range&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;start&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;format&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;date&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;end&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;format&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;date&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;start&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;end&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}]&lt;/span&gt;

&lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-5.5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Show yesterday&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s failed payments.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tool_choice&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;payments&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;stripe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PaymentIntent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;created&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gte&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;start&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lte&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;end&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Der Agent sieht kein Dashboard. Er erzeugt nur strukturierte Argumente.&lt;/p&gt;

&lt;p&gt;Die Computer-Nutzungs-Variante müsste dagegen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Browser starten&lt;/li&gt;
&lt;li&gt;Bei Stripe anmelden&lt;/li&gt;
&lt;li&gt;Dashboard-Screenshot analysieren&lt;/li&gt;
&lt;li&gt;Datumsauswahl anklicken&lt;/li&gt;
&lt;li&gt;neuen Screenshot analysieren&lt;/li&gt;
&lt;li&gt;Zeitraum auswählen&lt;/li&gt;
&lt;li&gt;Filter für fehlgeschlagene Zahlungen setzen&lt;/li&gt;
&lt;li&gt;scrollen&lt;/li&gt;
&lt;li&gt;Werte aus Pixeln extrahieren&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Jeder Schritt erzeugt neue Screenshot-Token. Zwölf Runden sind schnell erreicht.&lt;/p&gt;

&lt;h2&gt;
  
  
  Den strukturierten Pfad mit Apidog gestalten
&lt;/h2&gt;

&lt;p&gt;Teams greifen oft nicht wegen technischer Notwendigkeit zu Computer-Nutzung, sondern weil keine saubere Tool-Oberfläche für den Agenten existiert. Genau dort hilft &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 1: Agentenoperationen als Endpunkte modellieren
&lt;/h3&gt;

&lt;p&gt;Erstellen Sie in Apidog ein Projekt und definieren Sie nur die Operationen, die der Agent wirklich braucht.&lt;/p&gt;

&lt;p&gt;Beispiele:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /invoices/search&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /deals/update-status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /messages/send&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /payments/failed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /tickets/close&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eine kleine Menge gut benannter Endpunkte ersetzt oft große Teile einer Browser-Automation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 2: OpenAPI-Schema exportieren
&lt;/h3&gt;

&lt;p&gt;Apidog generiert aus der Designansicht ein OpenAPI-3.1-Dokument. Dieses Schema wird zur Tool-Oberfläche für den Agenten.&lt;/p&gt;

&lt;p&gt;Viele Agenten-Frameworks können OpenAPI direkt nutzen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI &lt;code&gt;tools&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Anthropic Tool Use&lt;/li&gt;
&lt;li&gt;LangChain OpenAPI Loader&lt;/li&gt;
&lt;li&gt;DeepSeek Tool Calling&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Schritt 3: Mock-Server aktivieren
&lt;/h3&gt;

&lt;p&gt;Aktivieren Sie den Apidog-Mock-Server und lassen Sie den Agenten gegen Mock-URLs laufen.&lt;/p&gt;

&lt;p&gt;Vorteile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keine Produktionsdaten&lt;/li&gt;
&lt;li&gt;keine Seiteneffekte&lt;/li&gt;
&lt;li&gt;reproduzierbare Antworten&lt;/li&gt;
&lt;li&gt;geringere Kosten während der Entwicklung&lt;/li&gt;
&lt;li&gt;schnelleres Debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dasselbe Pattern wird im &lt;a href="http://apidog.com/blog/api-tool-contract-first-development?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog-Leitfaden zur Contract-First-Entwicklung&lt;/a&gt; beschrieben.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 4: Requests und Responses vergleichen
&lt;/h3&gt;

&lt;p&gt;Apidog zeichnet Anfragen und Antworten auf. Vergleichen Sie einen erfolgreichen Lauf mit einem fehlerhaften Lauf:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wurde das richtige Tool gewählt?&lt;/li&gt;
&lt;li&gt;Waren die Argumente valide?&lt;/li&gt;
&lt;li&gt;Hat der Mock anders geantwortet als Produktion?&lt;/li&gt;
&lt;li&gt;Fehlt ein Endpunkt?&lt;/li&gt;
&lt;li&gt;Ist das Schema zu ungenau?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So debuggen Sie Agenten-Flows auf API-Ebene statt auf Screenshot-Ebene.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 5: Bereitstellen und versionieren
&lt;/h3&gt;

&lt;p&gt;Das Apidog-Projekt dient gleichzeitig als:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API-Design&lt;/li&gt;
&lt;li&gt;OpenAPI-Schema&lt;/li&gt;
&lt;li&gt;Mock-Server&lt;/li&gt;
&lt;li&gt;Testumgebung&lt;/li&gt;
&lt;li&gt;Dokumentation&lt;/li&gt;
&lt;li&gt;QA-Basis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Behandeln Sie Agenten-Tools wie öffentliche APIs: versioniert, getestet und dokumentiert.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hybrid: Wenn Sie beide Wege benötigen
&lt;/h2&gt;

&lt;p&gt;Produktionsagenten sind häufig hybrid.&lt;/p&gt;

&lt;p&gt;Ein realistischer Aufbau:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;90 Prozent der Operationen laufen über strukturierte Tools.&lt;/li&gt;
&lt;li&gt;10 Prozent laufen über Computer-Nutzung für Legacy-Portale.&lt;/li&gt;
&lt;li&gt;Ein Router entscheidet, welcher Pfad verwendet wird.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beispiel für eine Router-Regel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Wenn die gewünschte Operation in known_tools existiert, rufe das strukturierte Tool auf.
Wenn kein passendes Tool existiert, übergib die Aufgabe an den Browser-Agenten.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anthropic Claude 4.5 und OpenAI GPT-5.5 können dieses Routing zuverlässig übernehmen. Dasselbe Muster lässt sich auch mit DeepSeek V4 umsetzen. Die Request-Form wird im Leitfaden &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;wie man die DeepSeek V4 API verwendet&lt;/a&gt; gezeigt.&lt;/p&gt;

&lt;p&gt;Wichtig: Messen Sie beide Pfade separat.&lt;/p&gt;

&lt;p&gt;Erwartetes Kostenprofil:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;strukturierte Tools: hohes Volumen, niedrige Kosten&lt;/li&gt;
&lt;li&gt;Computer-Nutzung: niedriges Volumen, hohe Kosten&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenn der Browser-Fallback plötzlich viel Volumen bekommt, fehlt wahrscheinlich ein Endpunkt in Ihrer Tool-Oberfläche.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufige Fehler
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Fehler 1: Kein striktes Schema definieren
&lt;/h3&gt;

&lt;p&gt;Nur mit Text-Prompts zu arbeiten, ist fragil. Definieren Sie immer ein JSON-Schema.&lt;/p&gt;

&lt;p&gt;Schlecht:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Wenn der Nutzer eine Zahlung sucht, finde die passenden Daten.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Besser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"object"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"properties"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"customer_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"enum"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"succeeded"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"failed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pending"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"from"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"date"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"to"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"date"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"required"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"from"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"to"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Fehler 2: Den Agenten das Schema zur Laufzeit entwerfen lassen
&lt;/h3&gt;

&lt;p&gt;Ein Schema ist eine Produktoberfläche. Entwerfen Sie es in Apidog, versionieren Sie es und behandeln Sie Änderungen wie API-Änderungen.&lt;/p&gt;

&lt;p&gt;Selbstmodifizierende Schemas führen schnell zu Produktionsfehlern.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fehler 3: Nur Tokens statt Kosten beobachten
&lt;/h3&gt;

&lt;p&gt;Screenshot-Token werden in vielen Observability-Tools anders ausgewiesen als Text-Token. Prüfen Sie die Abrechnungskonsole Ihres Modellanbieters, nicht nur Ihr Tracing-Dashboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fehler 4: Computer-Nutzung mit RPA verwechseln
&lt;/h3&gt;

&lt;p&gt;RPA klickt geskriptet auf bekannte DOM-Elemente.&lt;/p&gt;

&lt;p&gt;Computer-Nutzung entscheidet bei jedem Screenshot neu, was zu tun ist.&lt;/p&gt;

&lt;p&gt;RPA ist günstiger und wiederholbarer. Computer-Nutzung ist flexibler, aber teurer. Nutzen Sie nicht Computer-Nutzung, wenn ein Playwright- oder Puppeteer-Skript reicht.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fehler 5: Latenz ignorieren
&lt;/h3&gt;

&lt;p&gt;Eine 45x-Token-Rechnung ist teuer. Noch problematischer ist oft die Wartezeit. Eine 60-Sekunden-Screenshot-Schleife passt selten in einen interaktiven Nutzerfluss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Alternativen zur Computer-Nutzung
&lt;/h2&gt;

&lt;p&gt;Wenn ein Anbieter keine öffentliche API hat, gibt es Zwischenlösungen.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Headless-Browser-Skripte
&lt;/h3&gt;

&lt;p&gt;Tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Playwright&lt;/li&gt;
&lt;li&gt;Puppeteer&lt;/li&gt;
&lt;li&gt;Selenium&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vorteil: Nach der Entwicklung geringe Laufkosten.&lt;/p&gt;

&lt;p&gt;Nachteil: Bricht, wenn sich die UI ändert.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Zapier- oder Make-Konnektoren
&lt;/h3&gt;

&lt;p&gt;Manchmal hat der Anbieter keine gute öffentliche API-Dokumentation, aber fertige iPaaS-Konnektoren. Dann können Sie Integrationsaufwand einkaufen statt selbst bauen.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Private JSON-Endpunkte
&lt;/h3&gt;

&lt;p&gt;Viele Dashboards sprechen intern mit JSON-Endpunkten. Über den Netzwerk-Tab der DevTools lassen sich diese Endpunkte identifizieren.&lt;/p&gt;

&lt;p&gt;Wenn die Nutzung zulässig ist, können Sie sie in Apidog dokumentieren und als semi-stabile interne API behandeln. Ein ähnliches Vorgehen wird im Artikel &lt;a href="http://apidog.com/blog/api-testing-without-postman-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Testen ohne Postman&lt;/a&gt; beschrieben.&lt;/p&gt;

&lt;p&gt;Computer-Nutzung sollte der letzte Ausweg sein, nicht die Standardlösung.&lt;/p&gt;

&lt;h2&gt;
  
  
  Praxisbeispiele
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ein Fintech-Compliance-Team ersetzte einen 6-stufigen Stripe-Bericht, der Computer-Nutzung erforderte, durch drei strukturierte Aufrufe. Die Token-Kosten sanken um 92 Prozent, die Laufzeit von 41 auf 2 Sekunden.&lt;/li&gt;
&lt;li&gt;Ein B2B-SaaS-Support-Agent nutzte Computer-Nutzung nur für ein Beschaffungsportal ohne API. Alle anderen Operationen liefen über OpenAPI-Tool-Aufrufe, die in Apidog entworfen wurden. Die monatlichen Token-Ausgaben sanken von 4.200 $ auf 310 $.&lt;/li&gt;
&lt;li&gt;Ein Einzelgründer nutzte Computer-Nutzung einmal pro Woche, um ein Notion-Dashboard aus einem Legacy-ERP zu aktualisieren. Die 45x-Kosten waren bei einem wöchentlichen Lauf nur wenige Cents. Eine vollständige Integration hätte Wochen gedauert.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Die 45x-Zahl ist realistisch genug, um Ihre Tool-Strategie zu beeinflussen.&lt;/p&gt;

&lt;p&gt;Standardisieren Sie auf strukturierte APIs, die in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; entworfen, gemockt und getestet werden. Nutzen Sie Computer-Nutzung nur, wenn keine API existiert und der Workflow selten genug läuft, dass die Token-Kosten akzeptabel bleiben.&lt;/p&gt;

&lt;p&gt;Fünf konkrete Regeln:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nutzen Sie APIs, sobald ein dokumentierter Endpunkt existiert.&lt;/li&gt;
&lt;li&gt;Definieren Sie für jedes Agenten-Tool ein striktes JSON-Schema.&lt;/li&gt;
&lt;li&gt;Mocken Sie Tool-Endpunkte vor dem Live-Test.&lt;/li&gt;
&lt;li&gt;Trennen Sie API- und Browser-Kosten in Ihrer Observability.&lt;/li&gt;
&lt;li&gt;Bauen Sie neue Endpunkte, wenn der Agent häufig auf den Browser-Fallback ausweicht.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nächster Schritt: Öffnen Sie &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, erstellen Sie ein Projekt für die Tool-Oberfläche Ihres Agenten und aktivieren Sie den Mock-Server. In kurzer Zeit sehen Sie, ob der geplante Computer-Nutzungs-Workflow auf zwei strukturierte API-Aufrufe reduziert werden kann.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ist Computer-Nutzung jemals günstiger als eine strukturierte API?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nicht pro Lauf. Screenshot-Token dominieren die Kosten. Computer-Nutzung kann nur insgesamt günstiger sein, wenn die Integrationskosten höher wären als die Betriebskosten über die gesamte Lebensdauer. Das gilt vor allem für seltene Workflows ohne verfügbare API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wie mocke ich eine JSON-Tool-Oberfläche für einen Agenten?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Entwerfen Sie die Endpunkte in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, aktivieren Sie den integrierten Mock-Server und konfigurieren Sie Ihren Agenten auf die Mock-URL. Jede Anfrage liefert realistische JSON-Antworten ohne Produktionsrisiko. Der Workflow wird auch in &lt;a href="http://apidog.com/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Test-Tools für QA-Ingenieure&lt;/a&gt; behandelt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kann ich OpenAPI für Tool-Aufrufe in jedem Modell verwenden?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ja. OpenAI &lt;code&gt;tools&lt;/code&gt;, Anthropic &lt;code&gt;tool_use&lt;/code&gt; und DeepSeek V4 Tool Calling können mit OpenAPI-3.1-Schemas arbeiten. Apidog exportiert diese Schemas sauber. Siehe &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;wie man die DeepSeek V4 API verwendet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unterstützt GPT-5.5 noch Computer-Nutzung?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenAI liefert Computer-Nutzung über Operator und über die Responses API. Das Kostenprofil ähnelt Anthropic bei vergleichbaren Screenshot-Schleifen. Die Empfehlung bleibt unabhängig vom Anbieter gleich: API zuerst, Browser nur als Fallback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Was ist mit Skyvern, Browser-Nutzung und anderen Open-Source-Agenten?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Die Rechnung bleibt ähnlich. Günstigere Modelle senken den Preis pro Aufruf, aber Rundenanzahl und Screenshot-Größe bleiben das Problem. Wo APIs existieren, sind strukturierte Aufrufe weiterhin deutlich günstiger und zuverlässiger.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Woher weiß ich, wann für eine Agentenaufgabe ein Endpunkt fehlt?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Beobachten Sie, wann der Agent auf den Browser-Fallback ausweicht oder Tool-Aufrufe ablehnt. Wenn das wiederholt passiert, fehlt wahrscheinlich ein Endpunkt. Fügen Sie ihn in Apidog hinzu, exportieren Sie das Schema neu und lassen Sie den Agenten den strukturierten Pfad verwenden.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>TradingAgents: Open Source LLM Trading Framework</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Thu, 07 May 2026 04:06:51 +0000</pubDate>
      <link>https://forem.com/emree_demir/tradingagents-open-source-llm-trading-framework-1gli</link>
      <guid>https://forem.com/emree_demir/tradingagents-open-source-llm-trading-framework-1gli</guid>
      <description>&lt;p&gt;Die meisten Multi-Agenten-LLM-Frameworks versprechen mehr, als sie halten. &lt;a href="https://github.com/TauricResearch/TradingAgents" rel="noopener noreferrer"&gt;TradingAgents&lt;/a&gt; ist eine der seltenen Ausnahmen: Open Source von Tauric Research mit &lt;a href="https://arxiv.org/abs/2412.20138" rel="noopener noreferrer"&gt;arXiv-Paper&lt;/a&gt;, Version 0.2.4, und einer sauberen Rollenverteilung. Das System modelliert einen Research-Desk: Fundamentalanalyse, Sentimentanalyse, Nachrichtenanalyse und technische Analyse liefern Input für eine Bull/Bear-Debatte, danach entscheiden Trader und Risikomanagement-Komitee. Das Ergebnis ist eine strukturierte, protokollierte Entscheidung.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Teste Apidog noch heute&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Diese Rezension zeigt, was TradingAgents praktisch leistet, was v0.2.4 mitbringt, wie es sich gegenüber LangGraph und CrewAI einordnet und wie du die darunterliegenden LLM- und Marktdaten-Schnittstellen mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; testest. Wenn du dich mit Agenten-Vertragsschichten beschäftigst, passt der &lt;a href="http://apidog.com/blog/how-to-write-agents-md-files?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;agents.md-Leitfaden für API-Teams&lt;/a&gt; gut dazu.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;TradingAgents ist ein Multi-Agenten-LLM-Handelsframework von Tauric Research, &lt;a href="https://arxiv.org/abs/2412.20138" rel="noopener noreferrer"&gt;arXiv 2412.20138&lt;/a&gt;, Open Source und aktuell in Version 0.2.4.&lt;/li&gt;
&lt;li&gt;Es zerlegt den Workflow in spezialisierte Agenten: Fundamentalanalyse, Sentimentanalyse, Nachrichtenanalyse, technische Analyse, Bull/Bear-Forscher, Trader und Risikomanagement.&lt;/li&gt;
&lt;li&gt;v0.2.4 bringt strukturierte Agenten-Ausgaben, LangGraph-Checkpoint-Wiederaufnahme, persistente Entscheidungslogs und Provider-Support für DeepSeek, Qwen, GLM und Azure OpenAI.&lt;/li&gt;
&lt;li&gt;Das Framework läuft mit OpenAI-kompatiblen LLM-Endpunkten. Dadurch kannst du gehostete, lokale und selbst gehostete Modelle austauschen.&lt;/li&gt;
&lt;li&gt;Mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; kannst du Marktdaten-APIs mocken, LLM-Provider-Traffic reproduzieren und Kosten über DeepSeek, OpenAI und Anthropic vergleichen.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Lade Apidog herunter&lt;/a&gt;, wenn du diese Tests in CI integrieren willst, bevor Agenten mit realen Finanzdaten arbeiten.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Was TradingAgents tatsächlich ist
&lt;/h2&gt;

&lt;p&gt;TradingAgents ist ein Python-Paket mit CLI, das einen Handels-Workflow in Rollen zerlegt. Jede Rolle ist ein LLM-Agent mit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;klarer Aufgabenbeschreibung,&lt;/li&gt;
&lt;li&gt;fokussiertem Toolset,&lt;/li&gt;
&lt;li&gt;LangGraph-Orchestrierung,&lt;/li&gt;
&lt;li&gt;strukturierter Übergabe an den nächsten Schritt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Der Ablauf ist:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Daten sammeln&lt;/li&gt;
&lt;li&gt;Analysen erzeugen&lt;/li&gt;
&lt;li&gt;Bull/Bear-Debatte führen&lt;/li&gt;
&lt;li&gt;Entscheidung formulieren&lt;/li&gt;
&lt;li&gt;Risiko prüfen&lt;/li&gt;
&lt;li&gt;Ergebnis protokollieren&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Wichtig: Das README beschreibt TradingAgents als Forschungscode, nicht als Anlageberatung. Praktisch heißt das: Nutze es zum Experimentieren mit Multi-Agenten-Workflows, nicht als direkten Produktions-Trading-Bot.&lt;/p&gt;

&lt;p&gt;Die technische Stärke liegt in der Rollentrennung:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rolle&lt;/th&gt;
&lt;th&gt;Aufgabe&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fundamentalanalyse-Analyst&lt;/td&gt;
&lt;td&gt;Unternehmensfinanzen bewerten&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sentiment-Analyst&lt;/td&gt;
&lt;td&gt;soziale Medien und Stimmung auswerten&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nachrichten-Analyst&lt;/td&gt;
&lt;td&gt;makroökonomische und aktuelle Nachrichten prüfen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Technischer Analyst&lt;/td&gt;
&lt;td&gt;Indikatoren wie MACD und RSI berechnen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bull-Researcher&lt;/td&gt;
&lt;td&gt;Long-These formulieren&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bear-Researcher&lt;/td&gt;
&lt;td&gt;Short-These formulieren&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trader&lt;/td&gt;
&lt;td&gt;Berichte lesen und Handelsplan ableiten&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risikomanagement&lt;/td&gt;
&lt;td&gt;Entscheidung anhand von Constraints prüfen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Dieses Muster ist nicht nur für Trading relevant. Es ist eine gute Referenz für jeden komplexen Agenten-Workflow: Spezialisten, Debatte, Entscheidung, Review und Audit-Log.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was v0.2.4 ausgeliefert hat
&lt;/h2&gt;

&lt;p&gt;Die Veröffentlichung im April 2026 ist besonders relevant, wenn du TradingAgents ernsthaft evaluieren willst.&lt;/p&gt;

&lt;h3&gt;
  
  
  Strukturierte Agenten-Ausgaben
&lt;/h3&gt;

&lt;p&gt;Forschungsmanager, Trader und Portfoliomanager geben strukturierte Ergebnisse über die OpenAI Responses API oder Anthropics Tool-Use-Kanal zurück.&lt;/p&gt;

&lt;p&gt;Statt Freitext bekommst du typisiertes JSON. Das macht nachgelagerte Automatisierung stabiler, zum Beispiel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"ticker"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AAPL"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"decision"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"hold"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.72&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"rationale"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bullish fundamentals offset by short-term valuation risk."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"risk_notes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Earnings volatility"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Macro uncertainty"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das konkrete Schema hängt von der Implementierung ab, aber der wichtige Punkt ist: Parser müssen nicht mehr gegen unstrukturierten Text kämpfen.&lt;/p&gt;

&lt;h3&gt;
  
  
  LangGraph-Checkpoint-Wiederaufnahme
&lt;/h3&gt;

&lt;p&gt;Langlaufende Ausführungen können pausiert und von einem gespeicherten Checkpoint fortgesetzt werden.&lt;/p&gt;

&lt;p&gt;Das ist relevant, wenn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;eine Marktdaten-API drosselt,&lt;/li&gt;
&lt;li&gt;ein LLM-Provider &lt;code&gt;429&lt;/code&gt; zurückgibt,&lt;/li&gt;
&lt;li&gt;ein lokales Modell abstürzt,&lt;/li&gt;
&lt;li&gt;ein CI-Job unterbrochen wird.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ohne Checkpoints müsstest du den kompletten Lauf neu starten. Mit Checkpoints setzt du beim letzten stabilen Zustand fort.&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistentes Entscheidungslog
&lt;/h3&gt;

&lt;p&gt;Jede Trader-Entscheidung landet in einem SQLite-Log mit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entscheidung,&lt;/li&gt;
&lt;li&gt;Begründung,&lt;/li&gt;
&lt;li&gt;Eingaben,&lt;/li&gt;
&lt;li&gt;Zeitstempel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Damit kannst du später prüfen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Warum wurde ein bestimmter Plan erzeugt?&lt;/li&gt;
&lt;li&gt;Welche Daten lagen vor?&lt;/li&gt;
&lt;li&gt;Welches Modell war beteiligt?&lt;/li&gt;
&lt;li&gt;Welche Agenten haben widersprochen?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Für Experimente ist dieser Audit-Trail wichtiger als die einzelne Empfehlung.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Provider-Unterstützung
&lt;/h3&gt;

&lt;p&gt;v0.2.4 erweitert die Provider-Matrix um DeepSeek, Qwen, GLM und Azure OpenAI. Vorher waren bereits OpenAI, Anthropic, Gemini und Grok relevant.&lt;/p&gt;

&lt;p&gt;Wenn du günstigeres Reasoning testen willst, kannst du zum Beispiel &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4 über den OpenAI-kompatiblen Endpunkt&lt;/a&gt; verwenden. Wenn du lange Kontexte oder Vision brauchst, testest du Gemini.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker und Windows-UTF-8-Fix
&lt;/h3&gt;

&lt;p&gt;Unspektakulär, aber praktisch:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dockerfile für reproduzierbare Umgebungen&lt;/li&gt;
&lt;li&gt;behobener Windows-Pfad-Codierungsfehler aus v0.2.3&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gerade für Teams ist Docker wichtig, weil LLM-Experimente sonst schnell an lokalen Python-Umgebungen scheitern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Die Agentenarchitektur im Detail
&lt;/h2&gt;

&lt;p&gt;Eine typische TradingAgents-Ausführung sieht so aus:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Die CLI erhält Tickersymbol und Datum.&lt;/li&gt;
&lt;li&gt;Das Analysten-Team läuft parallel oder sequenziell:

&lt;ul&gt;
&lt;li&gt;Fundamentalanalyse&lt;/li&gt;
&lt;li&gt;Sentimentanalyse&lt;/li&gt;
&lt;li&gt;Nachrichtenanalyse&lt;/li&gt;
&lt;li&gt;technische Analyse&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Jeder Analyst ruft eigene Daten ab und schreibt einen Bericht.&lt;/li&gt;
&lt;li&gt;Der Bull-Researcher formuliert eine Long-These.&lt;/li&gt;
&lt;li&gt;Der Bear-Researcher formuliert eine Short-These.&lt;/li&gt;
&lt;li&gt;Beide debattieren.&lt;/li&gt;
&lt;li&gt;Der Forschungsmanager synthetisiert die Debatte.&lt;/li&gt;
&lt;li&gt;Der Trader erstellt einen Handelsplan.&lt;/li&gt;
&lt;li&gt;Das Risikomanagement prüft aus mehreren Perspektiven:

&lt;ul&gt;
&lt;li&gt;aggressiv,&lt;/li&gt;
&lt;li&gt;konservativ,&lt;/li&gt;
&lt;li&gt;neutral.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Der Portfoliomanager genehmigt oder fordert Überarbeitung.&lt;/li&gt;
&lt;li&gt;Die finale Entscheidung wird im SQLite-Log gespeichert.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Die teuersten Schritte sind meist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bull/Bear-Debatte&lt;/li&gt;
&lt;li&gt;Risikomanagement-Debatte&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dort werden Reasoning-Modelle relevant. Kleine Modelle können sich in Wiederholungen verlieren oder inkonsistente Argumente liefern. Reasoning-Modelle wie DeepSeek V4 im Denkmodus, GPT-5.5 oder Claude 4.5 erzeugen eher strukturierte Gegenargumente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Warum du die LLM-Schicht mit einem API-Tool testen solltest
&lt;/h2&gt;

&lt;p&gt;In der Praxis brechen TradingAgents-Läufe meist an zwei Stellen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Marktdaten-APIs&lt;/li&gt;
&lt;li&gt;LLM-Provider-APIs&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Marktdaten-APIs sind instabil
&lt;/h3&gt;

&lt;p&gt;Typische Probleme:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rate Limits in Free Tiers&lt;/li&gt;
&lt;li&gt;Felder ändern Namen&lt;/li&gt;
&lt;li&gt;Felder verschwinden&lt;/li&gt;
&lt;li&gt;neue Felder kommen hinzu&lt;/li&gt;
&lt;li&gt;Provider liefern leicht unterschiedliche Semantik&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beispiel: Ein Lauf funktioniert am Dienstag, bricht aber am Mittwoch, weil ein Anbieter &lt;code&gt;regularMarketTime&lt;/code&gt; in &lt;code&gt;regular_market_time&lt;/code&gt; geändert hat.&lt;/p&gt;

&lt;h3&gt;
  
  
  LLM-Provider sind ebenfalls nicht trivial
&lt;/h3&gt;

&lt;p&gt;Auch LLM-Schnittstellen unterscheiden sich:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeepSeek V4 Denkmodus kann Kosten erhöhen.&lt;/li&gt;
&lt;li&gt;OpenAI Responses API hat eigene Antwortstrukturen.&lt;/li&gt;
&lt;li&gt;Anthropic Tool Use liefert Inhaltsblöcke, die Parser beachten müssen.&lt;/li&gt;
&lt;li&gt;OpenAI-kompatibel heißt nicht automatisch identisch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Du brauchst deshalb wiederholbare API-Sammlungen mit Assertions. Dafür eignet sich &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;. Ein ähnliches Testmuster auf Protokollebene wird im &lt;a href="http://apidog.com/blog/mcp-server-testing-apidog?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;MCP Server Testing Playbook&lt;/a&gt; beschrieben.&lt;/p&gt;

&lt;h2&gt;
  
  
  Marktdaten-APIs in Apidog mocken
&lt;/h2&gt;

&lt;p&gt;Ziel: Deine Tests sollen nicht von Yahoo Finance, FinnHub, Polygon oder OpenBB abhängen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 1: Upstream-Endpunkte definieren
&lt;/h3&gt;

&lt;p&gt;Lege in Apidog ein Projekt an und erfasse die Endpunkte, die TradingAgents nutzt.&lt;/p&gt;

&lt;p&gt;Beispiele:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET /quote/AAPL
GET /fundamentals/AAPL
GET /news?symbol=AAPL
GET /indicators/rsi?symbol=AAPL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Speichere zu jeder Anfrage Beispielantworten aus echten Provider-Antworten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 2: Mock-Server aktivieren
&lt;/h3&gt;

&lt;p&gt;Aktiviere den Apidog-Mock-Server und zeige die TradingAgents-Konfiguration auf die Mock-URL.&lt;/p&gt;

&lt;p&gt;Konzeptionell sieht das so aus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;MARKET_DATA_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://mock.apidog.local/project-id"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Der konkrete Konfigurationsname hängt vom jeweiligen Tool/Provider-Adapter ab. Wichtig ist: Die Agenten rufen jetzt deterministische Fixtures ab.&lt;/p&gt;

&lt;p&gt;Das Ergebnis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keine Rate-Limit-Probleme in Tests,&lt;/li&gt;
&lt;li&gt;reproduzierbare Agenten-Ausgaben,&lt;/li&gt;
&lt;li&gt;schnellere CI-Läufe,&lt;/li&gt;
&lt;li&gt;bessere Regressionstests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Schritt 3: Provider-Abweichungen prüfen
&lt;/h3&gt;

&lt;p&gt;Führe regelmäßig Live-Requests gegen die echten Provider aus und vergleiche sie mit deinen gespeicherten Fixtures.&lt;/p&gt;

&lt;p&gt;Prüfe auf:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;entfernte Felder,&lt;/li&gt;
&lt;li&gt;neue Felder,&lt;/li&gt;
&lt;li&gt;umbenannte Felder,&lt;/li&gt;
&lt;li&gt;geänderte Datentypen,&lt;/li&gt;
&lt;li&gt;geänderte Nullability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dieses Pattern entspricht der &lt;a href="http://apidog.com/blog/api-tool-contract-first-development?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Contract-First-API-Entwicklung&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  LLM-Provider-Schicht testen
&lt;/h2&gt;

&lt;p&gt;Bevor du Läufe skalierst, solltest du drei Dinge testen.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Kosten pro Rolle messen
&lt;/h3&gt;

&lt;p&gt;Führe einen einzelnen Ticker durch alle Agenten und erfasse Token-Nutzung pro Rolle.&lt;/p&gt;

&lt;p&gt;Beispielhafte Tabelle:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rolle&lt;/th&gt;
&lt;th&gt;Input Tokens&lt;/th&gt;
&lt;th&gt;Output Tokens&lt;/th&gt;
&lt;th&gt;Kosten&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fundamentalanalyse&lt;/td&gt;
&lt;td&gt;8.000&lt;/td&gt;
&lt;td&gt;1.200&lt;/td&gt;
&lt;td&gt;niedrig&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sentimentanalyse&lt;/td&gt;
&lt;td&gt;5.000&lt;/td&gt;
&lt;td&gt;900&lt;/td&gt;
&lt;td&gt;niedrig&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bull/Bear-Debatte&lt;/td&gt;
&lt;td&gt;30.000&lt;/td&gt;
&lt;td&gt;6.000&lt;/td&gt;
&lt;td&gt;hoch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risikomanagement&lt;/td&gt;
&lt;td&gt;18.000&lt;/td&gt;
&lt;td&gt;4.000&lt;/td&gt;
&lt;td&gt;hoch&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Die Bull/Bear-Debatte ist häufig 3- bis 5-mal teurer als einzelne Analystenläufe. Wenn nicht, kann das ein Hinweis sein, dass das Modell zu knapp oder oberflächlich argumentiert.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Ausgabeform validieren
&lt;/h3&gt;

&lt;p&gt;Für strukturierte Agenten-Ausgaben solltest du JSONPath-Assertions definieren.&lt;/p&gt;

&lt;p&gt;Beispiele:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$.decision exists
$.confidence is number
$.rationale exists
$.risk_notes is array
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Damit erkennst du sofort, wenn ein Provider plötzlich Freitext oder eine inkompatible Tool-Use-Struktur zurückgibt.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Provider-Parität vergleichen
&lt;/h3&gt;

&lt;p&gt;Wenn du von OpenAI zu DeepSeek V4 wechselst, sollten einzelne Entscheidungen variieren dürfen. Über viele Läufe sollten die Schlussfolgerungen aber vergleichbar bleiben.&lt;/p&gt;

&lt;p&gt;Praktischer Test:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Wähle 50 Ticker.&lt;/li&gt;
&lt;li&gt;Führe alle Ticker mit Provider A aus.&lt;/li&gt;
&lt;li&gt;Führe dieselben Ticker mit Provider B aus.&lt;/li&gt;
&lt;li&gt;Vergleiche das persistente Entscheidungslog.&lt;/li&gt;
&lt;li&gt;Miss Abweichungen bei:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;buy&lt;/code&gt; / &lt;code&gt;hold&lt;/code&gt; / &lt;code&gt;sell&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;Confidence,&lt;/li&gt;
&lt;li&gt;Risikobewertung,&lt;/li&gt;
&lt;li&gt;Begründungsmustern.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Der &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4 API-Leitfaden&lt;/a&gt; zeigt die Request-Form. Der &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;GPT-5.5 API-Leitfaden&lt;/a&gt; deckt die OpenAI-Seite ab. Mit Apidogs Response-Diff kannst du Unterschiede visuell vergleichen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minimaler TradingAgents-Lauf
&lt;/h2&gt;

&lt;p&gt;Der Quickstart sieht ungefähr so aus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/TauricResearch/TradingAgents
&lt;span class="nb"&gt;cd &lt;/span&gt;TradingAgents
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-..."&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;FINNHUB_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;

python &lt;span class="nt"&gt;-m&lt;/span&gt; tradingagents.cli &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--ticker&lt;/span&gt; AAPL &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--date&lt;/span&gt; 2026-04-30 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--models&lt;/span&gt; gpt-5.5 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--rounds&lt;/span&gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zwei Debattenrunden sind der kleinste sinnvolle Lauf. Die Ergebnisse landen in &lt;code&gt;tradingagents/results/&lt;/code&gt; als JSON und Markdown-Zusammenfassung.&lt;/p&gt;

&lt;p&gt;Wenn du für reasoning-intensive Rollen DeepSeek V4 Pro testen willst:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-..."&lt;/span&gt;

python &lt;span class="nt"&gt;-m&lt;/span&gt; tradingagents.cli &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--ticker&lt;/span&gt; AAPL &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--date&lt;/span&gt; 2026-04-30 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--models&lt;/span&gt; deepseek-v4-pro &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--provider&lt;/span&gt; deepseek &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--rounds&lt;/span&gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dasselbe Muster funktioniert für Qwen 3.6, GLM 5 oder lokale Modelle über Ollama oder vLLM. Der Beitrag zu den &lt;a href="http://apidog.com/blog/best-local-llms-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;besten lokalen LLMs von 2026&lt;/a&gt; behandelt lokale Bereitstellung.&lt;/p&gt;

&lt;h2&gt;
  
  
  Häufige Fallstricke
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Zu kleines Modell verwenden
&lt;/h3&gt;

&lt;p&gt;Ein 7B-Modell kann die Bull/Bear-Debatte in Wiederholungen treiben. Für sinnvolle Debatten brauchst du mindestens mittlere Reasoning-Qualität.&lt;/p&gt;

&lt;p&gt;Realistische Untergrenze:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DeepSeek V4 Flash&lt;/li&gt;
&lt;li&gt;Qwen 3.6 32B&lt;/li&gt;
&lt;li&gt;GPT-5.5&lt;/li&gt;
&lt;li&gt;Claude 4.5&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Marktdaten-Caching überspringen
&lt;/h3&gt;

&lt;p&gt;Jeder Analyst kann eigene Daten abrufen. Ohne Caching erzeugt ein einzelner Lauf schnell 4 bis 8 Provider-Requests.&lt;/p&gt;

&lt;p&gt;Aktiviere Caching, sonst verbrauchst du Rate Limits unnötig.&lt;/p&gt;

&lt;h3&gt;
  
  
  Forschungscode als Trading-Bot behandeln
&lt;/h3&gt;

&lt;p&gt;TradingAgents ist Forschungscode. Backtest-Ergebnisse hängen ab von:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modell,&lt;/li&gt;
&lt;li&gt;Prompt-Seed,&lt;/li&gt;
&lt;li&gt;Debattenlänge,&lt;/li&gt;
&lt;li&gt;Datenqualität,&lt;/li&gt;
&lt;li&gt;Provider-Antworten.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Behandle jede Ausgabe als Hypothese, nicht als Strategie.&lt;/p&gt;

&lt;h3&gt;
  
  
  Token-Verbrauch nicht protokollieren
&lt;/h3&gt;

&lt;p&gt;Ein einzelner Ticker-Lauf kann je nach Modell und Runden zwischen 0,10 und 5 US-Dollar kosten.&lt;/p&gt;

&lt;p&gt;Protokolliere:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modell,&lt;/li&gt;
&lt;li&gt;Agentenrolle,&lt;/li&gt;
&lt;li&gt;Input Tokens,&lt;/li&gt;
&lt;li&gt;Output Tokens,&lt;/li&gt;
&lt;li&gt;Kosten,&lt;/li&gt;
&lt;li&gt;Laufzeit,&lt;/li&gt;
&lt;li&gt;Fehler.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die Replay-Historie von &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; hilft, Ausreißer zu finden. Eine Endlosschleife in der Debatte kann schnell teuer werden.&lt;/p&gt;

&lt;h3&gt;
  
  
  Provider fest verdrahten
&lt;/h3&gt;

&lt;p&gt;v0.2.0 brachte Multi-Provider-Support genau dafür, Modelle austauschbar zu machen.&lt;/p&gt;

&lt;p&gt;Teste kleine Chargen über mehrere Provider, bevor du dich festlegst:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AAPL, MSFT, NVDA, TSLA, AMZN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vergleiche danach das Entscheidungslog.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wo Apidog in den Entwicklungszyklus passt
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; ist besonders nützlich an drei Stellen.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. API-Design vor Live-Integration
&lt;/h3&gt;

&lt;p&gt;Bevor du TradingAgents mit echten Providern verbindest, skizziere jeden Marktdaten-Endpunkt als Anfrage mit Beispielkörper.&lt;/p&gt;

&lt;p&gt;Das zwingt dich zu klären:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Welche Felder nutzt das Framework wirklich?&lt;/li&gt;
&lt;li&gt;Welche Felder sind optional?&lt;/li&gt;
&lt;li&gt;Welche Antworttypen kommen vor?&lt;/li&gt;
&lt;li&gt;Welche Provider sind austauschbar?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Viele Teams merken dabei, dass sie teure Datenfelder kaum verwenden.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Lokale CI mit Mocks
&lt;/h3&gt;

&lt;p&gt;Der Mock-Server ersetzt externe Provider während Unit- und Integrationstests.&lt;/p&gt;

&lt;p&gt;Vorteile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tests laufen schneller.&lt;/li&gt;
&lt;li&gt;Tests funktionieren am Wochenende.&lt;/li&gt;
&lt;li&gt;Keine Rate-Limit-Abhängigkeit.&lt;/li&gt;
&lt;li&gt;Keine API-Schlüssel in CI für einfache Tests nötig.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dieses Pattern wird auch in &lt;a href="http://apidog.com/blog/api-testing-without-postman-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Tests ohne Postman&lt;/a&gt; beschrieben.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Regression-Diff gegen Live-Provider
&lt;/h3&gt;

&lt;p&gt;Führe regelmäßig Live-Requests gegen die echten Provider aus und diff sie gegen Fixtures.&lt;/p&gt;

&lt;p&gt;Das ist ein günstiger Alarm für:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Die Datenschicht hat sich geändert.
Agenten könnten jetzt falsche oder unvollständige Informationen verarbeiten.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Warum das über Trading hinaus wichtig ist
&lt;/h2&gt;

&lt;p&gt;TradingAgents ist ein klares Open-Source-Beispiel für agentenbasierte Zerlegung. Das Muster lässt sich direkt übertragen auf:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kunden-Support-Triage: Agenten pro Tickettyp, Debatte, Entscheidung&lt;/li&gt;
&lt;li&gt;Code-Review: Sicherheits-, Performance- und Stil-Agenten plus Synthese&lt;/li&gt;
&lt;li&gt;Compliance-Review: Datenanalyse, Risikoanalyse, Entscheidungsausschuss&lt;/li&gt;
&lt;li&gt;Research-Zusammenfassung: mehrere spezialisierte Leser, Debatte, Synthese&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenn du einen mehrstufigen Agenten-Workflow baust, lohnt sich ein Blick in den TradingAgents-Code. Wiederverwendbar sind vor allem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;klare Rollen,&lt;/li&gt;
&lt;li&gt;explizite Debattenphase,&lt;/li&gt;
&lt;li&gt;strukturierte Entscheidungen,&lt;/li&gt;
&lt;li&gt;persistente Logs,&lt;/li&gt;
&lt;li&gt;testbare API-Grenzen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Genau deshalb passt das Framework gut zu &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;: Agenten-Workflows sind nur so stabil wie ihre Schnittstellen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Praxisbeispiele
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Quant-Research
&lt;/h3&gt;

&lt;p&gt;Ein Quant-Student vergleicht DeepSeek V4, GPT-5.5 und Claude 4.5 auf demselben Korb von 30 Tickern.&lt;/p&gt;

&lt;p&gt;Workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fixtures für Marktdaten in Apidog speichern.&lt;/li&gt;
&lt;li&gt;Pro Provider denselben Lauf ausführen.&lt;/li&gt;
&lt;li&gt;Requests und Responses erfassen.&lt;/li&gt;
&lt;li&gt;Entscheidungslogs vergleichen.&lt;/li&gt;
&lt;li&gt;Kosten pro Entscheidung berechnen.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Interne Code-Reviews
&lt;/h3&gt;

&lt;p&gt;Ein Fintech-Ingenieur übernimmt nicht den Trading-Code, sondern das Multi-Agenten-Muster.&lt;/p&gt;

&lt;p&gt;Agentenrollen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security Reviewer&lt;/li&gt;
&lt;li&gt;Performance Reviewer&lt;/li&gt;
&lt;li&gt;Naming/Style Reviewer&lt;/li&gt;
&lt;li&gt;Synthesizer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Der Synthesizer schreibt den finalen PR-Kommentar. Angegebene Gesamtkosten pro PR: etwa 0,04 US-Dollar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Solo-Developer-Watchlist
&lt;/h3&gt;

&lt;p&gt;Ein Solo-Entwickler führt TradingAgents nachts für eine Watchlist von 10 Tickern aus.&lt;/p&gt;

&lt;p&gt;Setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entscheidungen in Postgres speichern&lt;/li&gt;
&lt;li&gt;Live-Marktdaten nur für echte Läufe nutzen&lt;/li&gt;
&lt;li&gt;Apidog-Mock-Server für Wochenendtests einsetzen&lt;/li&gt;
&lt;li&gt;Provider-Kosten regelmäßig vergleichen&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;TradingAgents ist ein funktionierendes Beispiel dafür, wie man ein Multi-Agenten-LLM-System baut, das strukturierte Entscheidungen statt Chats produziert. v0.2.4 macht das Framework deutlich praktischer: strukturierte Ausgaben, Checkpoint-Wiederaufnahme, Audit-Trail und Multi-Provider-Unterstützung.&lt;/p&gt;

&lt;p&gt;Der kritische Punkt bleibt die Testbarkeit. Wenn Marktdaten- und LLM-Schnittstellen instabil sind, werden auch die Agenten instabil. Deshalb lohnt sich die Kombination mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Fünf Takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TradingAgents zerlegt Trading in spezialisierte Agenten mit klaren Rollen.&lt;/li&gt;
&lt;li&gt;v0.2.4 ergänzt strukturierte Ausgaben, LangGraph-Checkpoints und neue Provider.&lt;/li&gt;
&lt;li&gt;Marktdaten-Provider solltest du in Apidog mocken, damit Tests deterministisch laufen.&lt;/li&gt;
&lt;li&gt;LLM-Provider-Parität solltest du messen, bevor du Modelle austauschst.&lt;/li&gt;
&lt;li&gt;Das Muster aus Spezialisten, Debatte, Entscheidung und Log ist auf viele Agenten-Workflows übertragbar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nächster Schritt: Klone das Repository, führe einen einzelnen Ticker gegen dein bevorzugtes LLM aus und leite die Upstream-Aufrufe über einen &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;-Mock-Server. Nach etwa einer Stunde weißt du, ob das Framework zu deinem Workflow passt.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ist TradingAgents sicher mit echtem Geld zu verwenden?
&lt;/h3&gt;

&lt;p&gt;Das Repository weist explizit darauf hin, dass es Forschungscode und keine Finanzberatung ist. Behandle Ausgaben als Hypothesen. Wer es mit einem Live-Broker verbindet, trägt das Risiko selbst; die Betreuer unterstützen diesen Einsatz nicht.&lt;/p&gt;

&lt;h3&gt;
  
  
  Welcher LLM-Anbieter bietet das beste Kosten-Qualitäts-Verhältnis?
&lt;/h3&gt;

&lt;p&gt;Für viele Workloads Anfang 2026 ist DeepSeek V4 Flash mit Denkmodus deutlich günstiger als GPT-5.5 und erreicht bei der Bull/Bear-Debatte eine vergleichbare Qualität. Details zur Request-Form stehen im &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4 API-Leitfaden&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich TradingAgents auf lokalen Modellen ausführen?
&lt;/h3&gt;

&lt;p&gt;Ja. v0.2.0 fügte Multi-Provider-Unterstützung hinzu. Ollama, vLLM und LM Studio stellen OpenAI-kompatible Endpunkte bereit, die das Framework nutzen kann. Modelloptionen findest du im Beitrag zu den &lt;a href="http://apidog.com/blog/best-local-llms-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;besten lokalen LLMs von 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie mocke ich die Marktdaten-APIs?
&lt;/h3&gt;

&lt;p&gt;Definiere jeden Provider-Endpunkt in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, aktiviere den Mock-Server und richte die Tool-Konfiguration des Frameworks auf die Mock-URL aus. Dasselbe Muster ist in &lt;a href="http://apidog.com/blog/api-testing-tool-qa-engineers?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Testtools für QA-Ingenieure&lt;/a&gt; dokumentiert.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was ist die Mindesthardware?
&lt;/h3&gt;

&lt;p&gt;Wenn du gehostete LLMs wie OpenAI, Anthropic oder DeepSeek nutzt, reicht ein Laptop mit Python 3.10+. Wenn du lokale Modelle betreibst, hängt die Hardware vom Modell ab:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;24 GB GPU: DeepSeek V4 Flash oder Qwen 3.6 32B&lt;/li&gt;
&lt;li&gt;8 GB GPU: Llama 5.1 8B&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kleinere Modelle reduzieren meist die Qualität der Debatte.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unterstützt es Simulationen nach Börsenschluss und am Wochenende?
&lt;/h3&gt;

&lt;p&gt;Ja, sofern die Marktdatenanbieter historische Daten liefern. Das Framework kann für ein beliebiges Datum ausgeführt werden. Live-Handel ist ein separates Problem, das TradingAgents explizit nicht löst.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie vergleicht es sich mit anderen Multi-Agenten-Frameworks?
&lt;/h3&gt;

&lt;p&gt;TradingAgents ist stark auf Trading zugeschnitten. CrewAI, AutoGen und LangGraph sind allgemeiner. Wenn du ein konkretes Multi-Agenten-Muster lernen willst, lies TradingAgents. Wenn du ein generisches Agentensystem bauen willst, starte mit LangGraph und übernimm nur die passenden Architekturideen.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Claude Code Richtig Nutzen: Ruflo Macht's Besser</title>
      <dc:creator>Emre Demir</dc:creator>
      <pubDate>Thu, 07 May 2026 03:58:17 +0000</pubDate>
      <link>https://forem.com/emree_demir/claude-code-richtig-nutzen-ruflo-machts-besser-26c7</link>
      <guid>https://forem.com/emree_demir/claude-code-richtig-nutzen-ruflo-machts-besser-26c7</guid>
      <description>&lt;p&gt;Wenn Sie das Claude-Code-Ökosystem verfolgen, ist Ihnen wahrscheinlich Ruflo aufgefallen: ein Projekt, das sich vom interessanten npm-Paket zur Koordinationsschicht für ernsthafte Claude-Code-Workflows entwickelt hat. Ruflo wird von &lt;a href="https://github.com/ruvnet/ruflo" rel="noopener noreferrer"&gt;&lt;code&gt;rUv&lt;/code&gt;&lt;/a&gt; gepflegt, stammt aus der ursprünglichen claude-flow-Arbeit und macht aus Claude Code mehr als einen einzelnen Agenten: Es orchestriert Schwärme.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Apidog heute ausprobieren&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Dieser Leitfaden zeigt, was Ruflo praktisch leistet, welche Installationsoption Sie wählen sollten und wie Sie den MCP-Verkehr mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; testbar machen. Wenn Sie zuerst verstehen möchten, wie Claude Code &lt;code&gt;agents.md&lt;/code&gt; beim Start liest, lesen Sie den &lt;a href="http://apidog.com/blog/how-to-write-agents-md-files?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;agents.md-Leitfaden&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ruflo, früher claude-flow, ist eine Multi-Agenten-Orchestrierungsplattform für Claude Code von &lt;a href="https://github.com/ruvnet" rel="noopener noreferrer"&gt;&lt;code&gt;rUv&lt;/code&gt;&lt;/a&gt;. Sie bringt 98 Agenten, über 60 Befehle, 30 Skills, einen MCP-Server, Hooks und einen Daemon mit.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;npx ruvflo init&lt;/code&gt; fügt Ihrem Projekt eine Koordinationsschicht hinzu: Schwärme, persistenten Speicher und optionale Föderation über Maschinen hinweg.&lt;/li&gt;
&lt;li&gt;Es gibt zwei Installationspfade:

&lt;ul&gt;
&lt;li&gt;Claude Code Plugin: schlank, nur Slash-Befehle.&lt;/li&gt;
&lt;li&gt;CLI-Installation: vollständige Integration inklusive MCP, Hooks und Speicher.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Unter der Oberfläche stehen eine Rust-basierte KI-Engine, Embeddings, ein Plugin-System und die &lt;a href="https://cognitum.one/?RuFlo" rel="noopener noreferrer"&gt;Cognitum.One&lt;/a&gt;-Architektur.&lt;/li&gt;

&lt;li&gt;Testen Sie die Ruflo-MCP-Schnittstelle mit &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;: &lt;code&gt;tools/list&lt;/code&gt;, &lt;code&gt;tools/call&lt;/code&gt;, Speicheroperationen, Föderation und Anbieter-Mocks.&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Laden Sie Apidog herunter&lt;/a&gt;, um Ruflo wie eine API mit Verträgen, Assertions und CI-Tests abzusichern.&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Was Ruflo tatsächlich tut
&lt;/h2&gt;

&lt;p&gt;Claude Code arbeitet standardmäßig als Single-Agent-Loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sie geben eine Aufgabe ein.&lt;/li&gt;
&lt;li&gt;Ein Modell bearbeitet den Workspace.&lt;/li&gt;
&lt;li&gt;Der Kontext endet weitgehend mit der Sitzung.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Das reicht für kleine Änderungen. Es wird schwieriger, wenn Sie mehrere spezialisierte Agenten brauchen, z. B. für Refactoring, Security Review, Tests und Dokumentation, oder wenn Wissen aus einer Sitzung in der nächsten verfügbar sein soll.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqszpqk086ceinqlxr4l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqszpqk086ceinqlxr4l.png" alt="Ruflo Überblick" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ruflo setzt sich als Koordinationsschicht vor Claude Code. Nach der Initialisierung laufen Aufgaben durch einen Router. Dieser entscheidet, ob Ruflo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;die Aufgabe als einzelnen Agenten ausführt,&lt;/li&gt;
&lt;li&gt;einen Schwarm spezialisierter Agenten startet,&lt;/li&gt;
&lt;li&gt;Kontext aus früheren Sitzungen lädt,&lt;/li&gt;
&lt;li&gt;Arbeit an einen Agenten auf einer anderen Maschine föderiert.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die README beschreibt Ruflo als „Claude Code mit einem Nervensystem“. Das ist eine passende Kurzform: Ruflo ersetzt Claude Code nicht, sondern ergänzt Routing, Speicher, Schwärme und Tool-Orchestrierung.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zqd3c7u8vsw83l1o82f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zqd3c7u8vsw83l1o82f.png" alt="Ruflo Agenten" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Architektur: der Laufzeitfluss
&lt;/h2&gt;

&lt;p&gt;Der vereinfachte Ablauf aus der README:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Benutzer -&amp;gt; Ruflo (CLI/MCP) -&amp;gt; Router -&amp;gt; Schwarm -&amp;gt; Agenten -&amp;gt; Speicher -&amp;gt; LLM-Anbieter
                       ^                          |
                       +---- Lernschleife &amp;lt;------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für Implementierung und Tests sind fünf Komponenten wichtig.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. CLI/MCP-Einstieg
&lt;/h3&gt;

&lt;p&gt;Sie steuern Ruflo entweder über die CLI oder über die MCP-Integration von Claude Code. Beide Oberflächen führen auf dieselben Fähigkeiten: Tools registrieren, Agenten starten, Speicher lesen/schreiben und Föderation auslösen.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Router
&lt;/h3&gt;

&lt;p&gt;Der Router klassifiziert Aufgaben. Er entscheidet zwischen Einzelagent, Schwarm, Fortsetzen aus dem Speicher oder föderierter Ausführung.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Schwarm
&lt;/h3&gt;

&lt;p&gt;Ein Schwarm ist ein Pool spezialisierter Agenten. Ein typisches Setup kann so aussehen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Code-Review-Schwarm
├── Security-Agent
├── Performance-Agent
├── Test-Agent
├── Documentation-Agent
└── Synthesizer-Agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jeder Agent bekommt fokussierte Prompts und passende Tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Speicher
&lt;/h3&gt;

&lt;p&gt;Der Speicher persistiert über Sitzungen hinweg. Agenten können später darauf zugreifen, um Muster, Entscheidungen oder Projekthistorie wiederzuverwenden.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. LLM-Anbieter
&lt;/h3&gt;

&lt;p&gt;Ruflo ist anbieterunabhängig. Claude ist der Standard, aber Anbieter wie OpenAI, DeepSeek, Gemini oder lokale Ollama-Modelle können über die Provider-Konfiguration angebunden werden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation: welchen Pfad Sie wählen sollten
&lt;/h2&gt;

&lt;p&gt;Ruflo bietet zwei Installationspfade. Wählen Sie bewusst, da sie unterschiedliche Integrationsgrade haben.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pfad A: Claude Code Plugin, leichtgewichtig
&lt;/h3&gt;

&lt;p&gt;Installation über den Claude Code Marketplace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin install ruflo-core@ruflo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das liefert:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slash-Befehle,&lt;/li&gt;
&lt;li&gt;Agenten-Definitionen,&lt;/li&gt;
&lt;li&gt;eine schnelle Evaluierung ohne vollständige Projektintegration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Das liefert nicht:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;registrierten Ruflo-MCP-Server,&lt;/li&gt;
&lt;li&gt;vollständige Tool-Aufrufe wie &lt;code&gt;memory_store&lt;/code&gt;, &lt;code&gt;swarm_init&lt;/code&gt;, &lt;code&gt;agent_spawn&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;persistente Koordination über Hooks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nutzen Sie diesen Pfad, wenn Sie Ruflo isoliert ausprobieren möchten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pfad B: CLI-Installation, vollständig
&lt;/h3&gt;

&lt;p&gt;Für produktive Claude-Code-Workflows starten Sie Ruflo im Projekt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx ruvflo init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Das richtet typischerweise ein:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.claude/
.claude-flow/
CLAUDE.md
Hilfsskripte
MCP-Server
Hooks
persistenten Speicher
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Danach verwenden Sie Claude Code normal weiter. Die Hooks leiten Aufgaben automatisch an Ruflo weiter.&lt;/p&gt;

&lt;p&gt;Für Teams ist Pfad B in der Regel der sinnvolle Standard, weil erst damit Schwärme, Speicher, MCP-Tools und Föderation zusammenarbeiten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was im Lieferumfang enthalten ist
&lt;/h2&gt;

&lt;p&gt;Einige zentrale Ruflo-Komponenten:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ruflo-core&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Basisfunktionen für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speicher,&lt;/li&gt;
&lt;li&gt;Schwarm-Initialisierung,&lt;/li&gt;
&lt;li&gt;Agenten-Spawn,&lt;/li&gt;
&lt;li&gt;gemeinsame Primitive für andere Plugins.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ruflo-swarm&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Multi-Agenten-Koordination mit Rollenspezialisierung. Typischer Einsatz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Prüfe diesen PR auf Security, Performance, Tests und Dokumentation."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ruflo kann daraus mehrere spezialisierte Agenten ableiten und die Ergebnisse zusammenführen.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ruflo-autopilot&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Automatisierung für lang laufende Aufgaben. Sie geben ein Ziel vor, Ruflo iteriert mit Checkpoints bis zur Fertigstellung.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ruflo-federation&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Agent-zu-Agent-Kommunikation über Maschinen hinweg. Die Föderationsschicht verschlüsselt Nutzdaten, sodass Agenten auf unterschiedlichen Systemen zusammenarbeiten können.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/ruvnet/ruvector" rel="noopener noreferrer"&gt;RuVector&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;RuVector ist das Vektorspeicher- und Graph-Backend für die Speicherschicht. Es ist optional, wird aber relevant, wenn Ihr Projekt viel akkumulierten Kontext verwaltet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Warum die MCP-Schicht der wichtigste Testpunkt ist
&lt;/h2&gt;

&lt;p&gt;Der Ruflo-MCP-Server verbindet das Framework mit Claude Code. Aktionen wie Schwarmstart, Speicherzugriff oder föderierte Übergaben laufen als JSON-RPC-Aufrufe an den lokalen MCP-Server.&lt;/p&gt;

&lt;p&gt;Beispiele für kritische MCP-Methoden:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;initialize
tools/list
tools/call
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn &lt;code&gt;tools/list&lt;/code&gt; bricht, sieht Claude Code die Schwarm-Tools nicht mehr. Das Team fällt dann möglicherweise unbemerkt auf Einzelagentenverhalten zurück.&lt;/p&gt;

&lt;p&gt;Wenn &lt;code&gt;memory_store&lt;/code&gt; oder &lt;code&gt;memory_get&lt;/code&gt; falsche Shapes zurückgeben, bekommen Agenten unzuverlässigen Kontext.&lt;/p&gt;

&lt;p&gt;Behandeln Sie den Ruflo-MCP-Server daher wie jede andere JSON-RPC-API. Das Muster entspricht dem Vorgehen aus dem &lt;a href="http://apidog.com/blog/mcp-server-testing-apidog?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;MCP-Server-Test-Playbook&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ruflo-MCP-Server mit Apidog testen
&lt;/h2&gt;

&lt;p&gt;Ein minimaler Testplan besteht aus fünf Schritten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 1: Scratch-Projekt initialisieren
&lt;/h3&gt;

&lt;p&gt;Erstellen Sie ein Testprojekt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;ruflo-mcp-test
&lt;span class="nb"&gt;cd &lt;/span&gt;ruflo-mcp-test
npx ruvflo init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Führen Sie anschließend einige repräsentative Aufgaben in Claude Code aus, z. B.:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Analysiere dieses Projekt und schlage eine Teststrategie vor.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;oder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Starte einen Code-Review-Schwarm für diese Änderung.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Schritt 2: MCP-Frames erfassen
&lt;/h3&gt;

&lt;p&gt;Öffnen Sie den MCP-Inspektor von Claude Code und erfassen Sie JSON-RPC-Frames für:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;initialize&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tools/list&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tools/call&lt;/code&gt; mit &lt;code&gt;swarm_init&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tools/call&lt;/code&gt; mit &lt;code&gt;memory_store&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;optional &lt;code&gt;tools/call&lt;/code&gt; mit &lt;code&gt;memory_get&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ein typischer JSON-RPC-Request sieht vereinfacht so aus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"jsonrpc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tools/list"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"params"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Schritt 3: Requests in Apidog anlegen
&lt;/h3&gt;

&lt;p&gt;Legen Sie in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; ein neues Projekt an.&lt;/p&gt;

&lt;p&gt;Konfigurieren Sie:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Base URL: lokaler Ruflo-MCP-Server
Content-Type: application/json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Speichern Sie jeden erfassten JSON-RPC-Frame als eigenen Request.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 4: Assertions hinzufügen
&lt;/h3&gt;

&lt;p&gt;Fügen Sie pro Request konkrete Prüfungen hinzu.&lt;/p&gt;

&lt;p&gt;Für &lt;code&gt;initialize&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;result.serverInfo.name == "ruflo"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für &lt;code&gt;tools/list&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;result.tools.length &amp;gt;= 100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;und pro Tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name vorhanden
description vorhanden
inputSchema vorhanden
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für &lt;code&gt;swarm_init&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kein error-Feld
Schwarm-ID vorhanden
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für &lt;code&gt;memory_store&lt;/code&gt; und &lt;code&gt;memory_get&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Schreibvorgang erfolgreich
gleicher Schlüssel kann gelesen werden
geladener Wert entspricht gespeichertem Wert
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Schritt 5: LLM-Anbieter in Tests mocken
&lt;/h3&gt;

&lt;p&gt;Ruflo ruft für Agentenentscheidungen einen konfigurierten LLM-Anbieter auf. CI sollte dafür nicht bei jedem Commit echte Tokens verbrauchen.&lt;/p&gt;

&lt;p&gt;Ein praktikabler Ansatz:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Erstellen Sie in Apidog einen Mock für einen OpenAI-kompatiblen Endpoint.&lt;/li&gt;
&lt;li&gt;Hinterlegen Sie realistische Antwortkörper.&lt;/li&gt;
&lt;li&gt;Zeigen Sie die Ruflo-Provider-Konfiguration während CI auf diesen Mock.&lt;/li&gt;
&lt;li&gt;Testen Sie MCP-Verhalten ohne externe LLM-Kosten.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Das Muster entspricht dem Workflow aus &lt;a href="http://apidog.com/blog/api-testing-without-postman-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API-Tests ohne Postman&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Schritt 6: Suite in CI ausführen
&lt;/h3&gt;

&lt;p&gt;Führen Sie die Apidog-Suite in GitHub Actions oder einem anderen CI-System aus. Der CLI-Runner beendet den Lauf mit einem Nicht-Null-Code, wenn eine Assertion fehlschlägt.&lt;/p&gt;

&lt;p&gt;Beispielstruktur:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Ruflo MCP Contract Tests&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;mcp-tests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;

    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Node.js&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-node@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;node-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Initialize Ruflo&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npx ruvflo init&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Run Apidog tests&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apidog run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Passen Sie den Start des lokalen MCP-Servers an Ihre Ruflo-Konfiguration an.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wo Apidog im Ruflo-Alltag hilft
&lt;/h2&gt;

&lt;p&gt;Neben CI gibt es drei wiederkehrende Debugging-Situationen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wenn ein Schwarm falsche Ergebnisse liefert
&lt;/h3&gt;

&lt;p&gt;Spielen Sie die exakte Sequenz von &lt;code&gt;tools/call&lt;/code&gt;-Frames erneut ab, die Claude Code gesendet hat. Vergleichen Sie sie mit einem bekannten guten Lauf.&lt;/p&gt;

&lt;p&gt;Typische Ursachen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ein geändertes Tool-Argument,&lt;/li&gt;
&lt;li&gt;eine veränderte Prompt-Vorlage,&lt;/li&gt;
&lt;li&gt;ein Tool, das nicht mehr in &lt;code&gt;tools/list&lt;/code&gt; auftaucht,&lt;/li&gt;
&lt;li&gt;ein Speicherwert, der nicht wie erwartet gelesen wurde.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9xrsm8vssiti0hllc6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9xrsm8vssiti0hllc6a.png" alt="Apidog Debugging" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Wenn Sie Ruflo aktualisieren
&lt;/h3&gt;

&lt;p&gt;Neue Ruflo-Versionen können Tool-Oberflächen ändern. Führen Sie vor dem Upgrade die bestehende Testsuite aus, aktualisieren Sie Ruflo und führen Sie sie erneut aus.&lt;/p&gt;

&lt;p&gt;Achten Sie besonders auf:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;umbenannte Tools,&lt;/li&gt;
&lt;li&gt;entfernte Tools,&lt;/li&gt;
&lt;li&gt;geänderte &lt;code&gt;inputSchema&lt;/code&gt;-Definitionen,&lt;/li&gt;
&lt;li&gt;geänderte Antwortformen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Das ist derselbe Grundgedanke wie bei &lt;a href="http://apidog.com/blog/api-tool-contract-first-development?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Contract-First API Development&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wenn Föderation fehlschlägt
&lt;/h3&gt;

&lt;p&gt;Föderierte Agenten kommunizieren über einen verschlüsselten Kanal. Ohne Request-Protokoll ist der Handshake schwer zu debuggen.&lt;/p&gt;

&lt;p&gt;Richten Sie Apidog auf den lokalen Proxy-Port, zeichnen Sie den Verkehr auf und prüfen Sie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fehlende Authentifizierung,&lt;/li&gt;
&lt;li&gt;fehlerhafte Payload-Form,&lt;/li&gt;
&lt;li&gt;Timeouts,&lt;/li&gt;
&lt;li&gt;nicht kompatible Versionen,&lt;/li&gt;
&lt;li&gt;unerwartete Fehlerantworten.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Häufige Fallstricke
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Plugin-Pfad installiert, aber vollständige Orchestrierung erwartet
&lt;/h3&gt;

&lt;p&gt;Wenn Claude Code &lt;code&gt;swarm_init&lt;/code&gt; nicht aufrufen kann, haben Sie wahrscheinlich nur den Lite-Pfad installiert.&lt;/p&gt;

&lt;p&gt;Lösung:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx ruvflo init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Hooks entfernt oder überschrieben
&lt;/h3&gt;

&lt;p&gt;Pfad B installiert Hooks, die Aufgaben automatisch routen. Wenn Sie diese entfernen, wird der Router nicht ausgelöst.&lt;/p&gt;

&lt;p&gt;Empfehlung: Behalten Sie die Standard-Hooks, bis Sie konkret wissen, welche Anpassung nötig ist.&lt;/p&gt;

&lt;h3&gt;
  
  
  Speicher wächst unkontrolliert
&lt;/h3&gt;

&lt;p&gt;Persistenter Speicher ist nützlich, kann aber mit intensiver Nutzung groß werden. Konfigurieren Sie Aufbewahrung und Backend frühzeitig.&lt;/p&gt;

&lt;p&gt;Praktische Regel:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;kleine Projekte: SQLite reicht oft aus,&lt;/li&gt;
&lt;li&gt;viele Sitzungen oder Teamnutzung: Postgres oder RuVector prüfen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Ruflo nur als Claude-Tool betrachten
&lt;/h3&gt;

&lt;p&gt;Ruflo ist anbieterunabhängig. Claude ist der Standard, aber Sie können andere Provider konfigurieren. Für DeepSeek und lokale Modelle finden Sie weitere Hinweise im &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;DeepSeek V4 API-Leitfaden&lt;/a&gt; und im Beitrag &lt;a href="http://apidog.com/blog/best-local-llms-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Die besten lokalen LLMs von 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Föderation ohne Richtlinien aktivieren
&lt;/h3&gt;

&lt;p&gt;Föderation überschreitet Vertrauensgrenzen. Sie senden möglicherweise Code oder Projektdaten an andere Maschinen.&lt;/p&gt;

&lt;p&gt;Definieren Sie vorab:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;welche Projekte föderieren dürfen,&lt;/li&gt;
&lt;li&gt;welche Daten gesendet werden dürfen,&lt;/li&gt;
&lt;li&gt;wie Secrets entfernt werden,&lt;/li&gt;
&lt;li&gt;wer Audit-Logs prüft.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Vergleich mit anderen Agenten-Frameworks
&lt;/h2&gt;

&lt;h3&gt;
  
  
  LangGraph
&lt;/h3&gt;

&lt;p&gt;LangGraph ist generischer und niedriger angesetzt. Sie bauen die Orchestrierung selbst.&lt;/p&gt;

&lt;p&gt;Wählen Sie LangGraph, wenn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ihr Workflow nicht Claude-Code-zentriert ist,&lt;/li&gt;
&lt;li&gt;Sie volle Kontrolle über Graphen und Zustände brauchen,&lt;/li&gt;
&lt;li&gt;Sie bereit sind, mehr Infrastruktur selbst zu schreiben.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Siehe auch den &lt;a href="http://apidog.com/blog/tradingagents-multi-agent-llm-trading?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;TradingAgents-Beitrag&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  CrewAI
&lt;/h3&gt;

&lt;p&gt;CrewAI ist framework-agnostisch und stark konfigurationsgetrieben.&lt;/p&gt;

&lt;p&gt;Wählen Sie CrewAI, wenn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python Ihre Hauptumgebung ist,&lt;/li&gt;
&lt;li&gt;Sie Multi-Agenten-Workflows außerhalb von Claude Code bauen,&lt;/li&gt;
&lt;li&gt;Sie keine Claude-Code-Hooks benötigen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Manuell gestapelte MCP-Server
&lt;/h3&gt;

&lt;p&gt;Sie können eigene MCP-Server kombinieren. Das ist leichtgewichtig für zwei oder drei Server, wird aber schnell schwer zu koordinieren.&lt;/p&gt;

&lt;p&gt;Ruflo ist sinnvoll, wenn Sie Claude Code täglich verwenden und Schwarmkoordination ohne viel MCP-Boilerplate wollen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hinweise zu Performance und Skalierung
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Schwarmstart hat Overhead
&lt;/h3&gt;

&lt;p&gt;Ein Schwarmstart verursacht festen Overhead durch Routing und Tool-Registrierung. Für sehr kleine Aufgaben, z. B. eine Ein-Zeilen-Änderung, sollte Ruflo idealerweise den Einzelagentenpfad wählen.&lt;/p&gt;

&lt;p&gt;Wenn das nicht passiert, prüfen Sie die Hooks- und Routing-Konfiguration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Speicherabfragen werden mit wachsendem Speicher langsamer
&lt;/h3&gt;

&lt;p&gt;SQLite funktioniert für kleinere Setups gut. Bei vielen Sitzungen oder langfristiger Teamnutzung sollten Sie Postgres oder RuVector prüfen.&lt;/p&gt;

&lt;p&gt;Ein gemeldetes Setup mit sechs Entwicklern und 18 Monaten Historie erreichte auf Postgres deutlich niedrigere Speicherlatenzen als mit dem Standard-SQLite bei gleichem Volumen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Praxisbeispiele
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Plattformteam mit parallelen Schwärmen
&lt;/h3&gt;

&lt;p&gt;Ein Plattformteam nutzt Ruflos Föderation, um Sicherheitsprüfungen in einem Repository laufen zu lassen, während ein Refactoring-Schwarm in einem anderen Repository arbeitet. Beide Schwärme greifen auf gemeinsamen Speicher zurück. Konflikte werden an einen menschlichen Reviewer weitergeleitet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Solo-Entwickler mit Autopilot
&lt;/h3&gt;

&lt;p&gt;Ein Solo-Entwickler verbindet Ruflos Autopilot-Modus mit einer Linear-Ticketqueue:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Nimm ein P3-Ticket, check es aus, schlage eine Lösung vor, öffne einen PR, mach weiter.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Der Autopilot läuft über Nacht. Am Morgen prüft der Entwickler die Ergebnisse.&lt;/p&gt;

&lt;h3&gt;
  
  
  Forschungsgruppe mit Multi-Agent-Code-Review
&lt;/h3&gt;

&lt;p&gt;Eine Forschungsgruppe nutzt Ruflos Multi-Agent-Code-Review-Muster, um PR-Qualität über mehrere Repositories hinweg zu bewerten. Die LLM-Ausgaben bleiben laut Beispiel unter den Kosten eines einzelnen menschlichen Reviewers pro Stunde.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Ruflo beantwortet eine konkrete Frage: Wie skaliere ich Claude Code über einen einzelnen Agenten hinaus?&lt;/p&gt;

&lt;p&gt;Die vollständige CLI-Installation fügt Speicher, Schwärme, Föderation und einen MCP-Server mit vielen Tools in einem Setup-Schritt hinzu:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx ruvflo init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die wichtigsten Punkte:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ruflo macht Claude Code zu einem Schwarmkoordinator mit persistentem Speicher.&lt;/li&gt;
&lt;li&gt;Der Plugin-Pfad ist gut zum Ausprobieren; die CLI-Installation ist für den Alltag gedacht.&lt;/li&gt;
&lt;li&gt;Der MCP-Server ist die Vertragsschnittstelle und sollte wie jede JSON-RPC-API getestet werden.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; eignet sich zum Erfassen kanonischer MCP-Requests, für Assertions und für CI.&lt;/li&gt;
&lt;li&gt;Mocken Sie den LLM-Anbieter in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, damit Tests schnell und kosteneffizient bleiben.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nächster Schritt: Initialisieren Sie Ruflo in einem Scratch-Projekt, erfassen Sie die MCP-Frames im Claude-Code-Inspektor und legen Sie daraus ein &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;-Testprojekt an.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ist Ruflo dasselbe wie claude-flow?
&lt;/h3&gt;

&lt;p&gt;Ja. Ruflo ist das umbenannte claude-flow und wird von &lt;code&gt;rUv&lt;/code&gt; gepflegt. Das npm-Paket ist &lt;code&gt;ruvflo&lt;/code&gt;, das GitHub-Repo ist &lt;code&gt;ruvnet/ruflo&lt;/code&gt;. Bestehende claude-flow-Konfigurationen funktionieren weiterhin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benötige ich sowohl Plugin als auch CLI-Installation?
&lt;/h3&gt;

&lt;p&gt;Nein. Wählen Sie einen Pfad.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plugin: Slash-Befehle und leichte Evaluierung.&lt;/li&gt;
&lt;li&gt;CLI: vollständige Koordinationsschicht mit MCP, Hooks, Speicher und Schwärmen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die meisten Teams sollten die CLI-Installation verwenden.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kann ich Ruflo ohne Claude verwenden?
&lt;/h3&gt;

&lt;p&gt;Ja. Ruflo ist anbieterunabhängig. Sie können DeepSeek V4, GPT-5.5, Gemini oder ein lokales Modell in der Provider-Konfiguration eintragen. Claude ist der Standard, weil Ruflo aus claude-flow hervorgegangen ist.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wo liegt der Speicher?
&lt;/h3&gt;

&lt;p&gt;Je nach Konfiguration in einer lokalen SQLite- oder Postgres-Datenbank. Das optionale &lt;a href="https://github.com/ruvnet/ruvector" rel="noopener noreferrer"&gt;RuVector&lt;/a&gt;-Backend ergänzt Vektorsuche für semantische Abfragen. Der Speicher geht nicht an einen Drittanbieterdienst, außer Sie konfigurieren das explizit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie teste ich den MCP-Server in CI?
&lt;/h3&gt;

&lt;p&gt;Kurzform:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kanonische Requests mit dem MCP-Inspektor erfassen.&lt;/li&gt;
&lt;li&gt;Requests in &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; speichern.&lt;/li&gt;
&lt;li&gt;JSONPath-Assertions hinzufügen.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;apidog run&lt;/code&gt; in CI ausführen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Das vollständige Muster finden Sie im &lt;a href="http://apidog.com/blog/mcp-server-testing-apidog?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;MCP-Server-Test-Playbook&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ist Föderation über Organisationen hinweg sicher?
&lt;/h3&gt;

&lt;p&gt;Die Verschlüsselungsschicht ist dafür vorgesehen. Die Richtlinienebene bleibt Ihre Verantwortung: Definieren Sie erlaubte Projekte, entfernen Sie Secrets aus Payloads und prüfen Sie Audit-Logs regelmäßig.&lt;/p&gt;

&lt;h3&gt;
  
  
  Was kostet Ruflo?
&lt;/h3&gt;

&lt;p&gt;Das Framework ist MIT-lizenziert und kostenlos. Kosten entstehen durch LLM-Tokens und gegebenenfalls durch gehosteten Vektorspeicher. Ein intensiver Nutzer berichtet von unter 200 US-Dollar pro Monat für Claude Sonnet bei täglicher Ruflo-Nutzung.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
