Chrome Prompt API: Browser KI für API-Entwickler

Ashley Innocent

Ashley Innocent

29 April 2026

Chrome Prompt API: Browser KI für API-Entwickler

Chrome hat ein KI-Modell direkt in den Browser integriert. Die Prompt API ist die JavaScript-Oberfläche, die Sie aufrufen, um sie zu nutzen. Kein API-Schlüssel, keine Netzwerk-Roundtrip, keine pro-Token-Abrechnung. Das Modell ist Gemini Nano, es läuft auf dem Gerät des Benutzers und ist ab Chrome 138 allgemein für Erweiterungen und hinter einem Flag für Webseiten verfügbar. Für API-Entwickler ändert dies, was auf dem Client sinnvoll ist.

Dieser Leitfaden behandelt, was die Chrome Prompt API ist, wie sie sich von der Cloud Gemini API unterscheidet, wann sie tatsächlich in einen API-Workflow passt, praktischen Code sowohl für Erweiterungen als auch für Webseiten und die Grenzen, auf die Sie schneller stoßen werden, als die Dokumentation zugibt. Wir koppeln sie am Ende mit Apidog, damit dieselben Aufgaben einen Fallback-Pfad haben, wenn das Modell nicht verfügbar ist.

Schaltfläche

TL;DR

Was die Prompt API tatsächlich bietet

Die Prompt API ist eine von einer kleinen Gruppe von „Integrierte KI“-APIs, die Chrome letztes Jahr zu liefern begann. Die anderen sind enger gefasst: Summarizer, Writer, Rewriter, Translator und Language Detector. Die Prompt API ist die allgemeine Oberfläche; die anderen umhüllen sie mit aufgabenspezifischen Standardeinstellungen.

Drei grundlegende Elemente sind wichtig:

Die Form ist bewusst nahe am Gemini Cloud SDK, aber gekürzt. Es gibt noch kein Tool-Calling, keine Bildeingabe auf dem stabilen Kanal (es befindet sich im Origin Trial), und das Kontextfenster ist klein (4K Token Eingabe, 1K Ausgabe, mit einer weichen Erweiterung auf insgesamt 8K).

Ein erster Aufruf von einer Webseite sieht so aus:

if (!('LanguageModel' in window)) {
  console.warn('Prompt API not available. Falling back to cloud.');
} else {
  const status = await LanguageModel.availability();
  if (status === 'unavailable') {
    console.warn('Device does not support Gemini Nano.');
  } else {
    if (status !== 'available') {
      // Triggers a background download. Show a UI.
      await LanguageModel.create({ monitor(m) {
        m.addEventListener('downloadprogress', e => {
          console.log(`downloaded ${(e.loaded * 100).toFixed(0)}%`);
        });
      }});
    }
    const session = await LanguageModel.create({
      systemPrompt: 'You answer in three concise bullets. JSON only.',
    });
    const reply = await session.prompt(
      'Summarize this changelog in three bullets.\n\n' + changelog
    );
    console.log(reply);
  }
}

Jeder wichtige Teil ist im Snippet ersichtlich: Feature-Erkennung, Verfügbarkeitsprüfung, optionaler Download, Sitzungserstellung, System-Prompt, Prompt-Aufruf.

Wie es sich von der Cloud Gemini API unterscheidet

Gleiche Familie, unterschiedliche Bereitstellung. Die Unterschiede prägen, was Sie darauf aufbauen können und was nicht.

Eigenschaft Chrome Prompt API Gemini API (Cloud)
Modell Gemini Nano (auf dem Gerät) gemini-3-flash, gemini-3-flash-preview, gemini-3-pro
Kosten pro Aufruf Null Pro-Token-Abrechnung
Latenz 50 bis 300 ms typisch für den ersten Token 200 bis 800 ms für den ersten Token
Netzwerk Nach dem Modell-Download nicht erforderlich Bei jedem Aufruf erforderlich
Datenschutz Eingabe verlässt das Gerät nie Wird an Google-Server gesendet
Kontextfenster 4K Eingabe / 1K Ausgabe (8K kombiniert) Bis zu 1M Token
Tool-Calling Nein (geplant) Ja
Multimodal Bildeingabe im Origin Trial Ja
JSON-Modus Best-Effort über System-Prompt Erstklassig mit Schema
Verfügbarkeit Nur Chrome, nur fähige Hardware Jeder Client mit Netzwerk

Das On-Device-Modell ist etwa zwei Größenordnungen kleiner als gemini-3-flash. Verwenden Sie es für kurze Aufgaben, bei denen Sie sonst einen Regex oder einen handoptimierten Prompt-Klassifizierer verwendet hätten. Verwenden Sie es nicht als direkten Ersatz für Cloud Gemini.

Wo es tatsächlich in den Workflow eines API-Entwicklers passt

Vier Anwendungsfälle rechtfertigen die Integrationskosten. Außerhalb dieser ist die Cloud API immer noch die richtige Wahl.

  1. Parsen und Umformen von Benutzereingaben clientseitig. Nehmen Sie eine Freiformabfrage und verwandeln Sie sie in einen strukturierten Filter für Ihre API. Der Benutzer tippt „Stripe-Gebühren über 100 $ letzte Woche“; die Prompt API wandelt dies in { "amount_gt": 100, "since": "2026-04-22", "provider": "stripe" } um, bevor Sie Ihren Such-Endpunkt aufrufen. Spart einen Roundtrip und schützt die Privatsphäre der Benutzer.
  2. Zusammenfassen von API-Antworten für die Benutzeroberfläche. Sie rufen Ihre eigene API auf, erhalten 40 Datensätze zurück und benötigen eine einzeilige Zusammenfassung, um sie in einer Karte anzuzeigen. Das Senden der Datensätze an ein Cloud-Modell erhöht die Latenz und die Kosten. Die Prompt API läuft lokal und liefert Ergebnisse in weniger als 200 ms.
  3. Reparatur von JSON-Strukturen. LLM-Antworten kommen oft genug fehlerhaft an, um relevant zu sein. Führen Sie einen einmaligen Reparaturdurchlauf durch Gemini Nano durch: „Hier ist ungültiges JSON. Geben Sie nur gültiges JSON mit denselben Feldern zurück.“ Günstig, schnell, kostenlos.
  4. Lokales Stubbing während der Entwicklung. Während Sie einen neuen Endpunkt verdrahten und das Backend halb fertig ist, generieren Sie plausible Antworttexte im Handumdrehen. Die Strukturen werden nicht produktionsgerecht sein, aber sie entsperren die Frontend-Arbeit. Kombinieren Sie dies mit dem Mock-Server von Apidog für eine hybride Einrichtung, bei der kritische Endpunkte von gespeicherten Beispielen stammen und explorative von der Prompt API.

Integration in eine Erweiterung

Erweiterungen erhalten die Prompt API ab Chrome 138 auf dem stabilen Kanal. Sie deklarieren die Berechtigung und rufen chrome.languageModel auf.

manifest.json:

{
  "manifest_version": 3,
  "name": "Endpoint Summarizer",
  "version": "1.0.0",
  "permissions": ["languageModel"],
  "action": { "default_popup": "popup.html" }
}

popup.js:

const status = await chrome.languageModel.availability();
if (status === 'unavailable') {
  document.getElementById('out').textContent =
    'Device does not support on-device AI.';
  return;
}

const session = await chrome.languageModel.create({
  systemPrompt: [
    'You summarize HTTP responses in three short bullets.',
    'Mention status, the most-changed field, and any error keys.',
  ].join(' '),
  temperature: 0.3,
  topK: 3,
});

document.getElementById('go').addEventListener('click', async () => {
  const tab = await chrome.tabs.query({ active: true, currentWindow: true });
  const [{ result }] = await chrome.scripting.executeScript({
    target: { tabId: tab[0].id },
    func: () => document.body.innerText.slice(0, 4000),
  });
  const stream = session.promptStreaming(result);
  const out = document.getElementById('out');
  out.textContent = '';
  for await (const chunk of stream) {
    out.textContent += chunk;
  }
});

Zwei Dinge sind erwähnenswert. temperature und topK sind die einzigen Sampling-Parameter, die die API freilegt; topP wird auf dem stabilen Kanal nicht unterstützt. Streaming ist ein asynchroner Iterator, keine Server-Sent Events, daher ist das Konsummuster for await anstelle des SSE-Readers, den Sie für Cloud Gemini schreiben würden.

Integration in eine Webseite

Webseiten benötigen, dass der Benutzer ein Flag umlegt oder Ihr Origin für den Origin Trial registriert ist. Der Trial-Token kommt in ein Meta-Tag.

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="origin-trial" content="YOUR_TRIAL_TOKEN_HERE" />
</head>
<body>
  <textarea id="in" placeholder="Eine API-Antwort hier einfügen..."></textarea>
  <button id="go">Zusammenfassen</button>
  <pre id="out"></pre>
  <script type="module">
    if (!('LanguageModel' in window)) {
      document.getElementById('out').textContent =
        'Prompt API in diesem Browser nicht verfügbar.';
    } else {
      const session = await LanguageModel.create({
        systemPrompt: 'Reply in JSON: { "summary": "...", "tags": [...] }',
        temperature: 0.2,
      });
      document.getElementById('go').onclick = async () => {
        const text = document.getElementById('in').value;
        const reply = await session.prompt(text);
        try {
          document.getElementById('out').textContent =
            JSON.stringify(JSON.parse(reply), null, 2);
        } catch {
          document.getElementById('out').textContent = reply;
        }
      };
    }
  </script>
</body>
</html>

Wenn Sie die Seite ohne Origin Trial Token testen möchten, öffnen Sie chrome://flags/#prompt-api-for-gemini-nano, setzen Sie es auf „Aktiviert“ und starten Sie Chrome neu. Das Flag war über die letzten sechs Versionen stabil, aber es wird nicht versprochen, dass es für immer bleibt; verwenden Sie den Origin Trial-Pfad, wenn Sie ein vorhersagbares Verhalten wünschen.

Grenzen und Fallstricke, die in der Dokumentation nicht ausreichend betont werden

Sechs Dinge, die Sie stolpern lassen werden.

  1. Der Kontext ist klein. 4K Eingabe, 1K Ausgabe. Aggressiv kürzen. Fügen Sie kein 50K-Token-JSON-Dokument ein und erwarten Sie eine nützliche Antwort.
  2. Die Hardware-Unterstützung ist ungleichmäßig. Das Modell benötigt etwa 4 GB VRAM oder vereinheitlichten Speicher und läuft nur auf Chrome 138+ unter Windows, macOS, Linux und neueren ChromeOS-Versionen. Mobile Chrome wird zum Zeitpunkt dieses Schreibens nicht unterstützt.
  3. Der erste Ladevorgang ist langsam. Der 2 GB große Download erfolgt im Hintergrund, blockiert aber die erste Sitzung. Zeigen Sie immer eine Benutzeroberfläche für den Download-Fortschritt an.
  4. Kein Tool-Calling. Wenn Ihre Aufgabe erfordert, dass das Modell Ihre API aufruft, tun Sie dies selbst auf dem Client; das Modell entscheidet nur, was aufgerufen werden soll.
  5. System-Prompt-Drift. Das On-Device-Modell folgt System-Prompts weniger starr als die Cloud-Varianten. Fixieren Sie das Format mit One-Shot-Beispielen im System-Prompt.
  6. Berechtigungen sind wichtig. Erweiterungen benötigen "languageModel" in permissions. Wenn Sie es vergessen, gibt die API stillschweigend unavailable zurück.

Implementieren Sie einen Cloud-Fallback, bevor Sie veröffentlichen

Ihre App wird an Benutzer ausgeliefert, die das Modell nicht haben. Implementieren Sie immer einen Fallback. Das Muster ist kurz:

async function summarize(text) {
  if ('LanguageModel' in window) {
    const status = await LanguageModel.availability();
    if (status === 'available') {
      const session = await LanguageModel.create({
        systemPrompt: 'Reply with one bullet summary, max 12 words.',
      });
      return session.prompt(text);
    }
  }
  // Fallback: call your server, which calls cloud Gemini or your own model.
  const r = await fetch('/api/summarize', {
    method: 'POST', body: JSON.stringify({ text }),
  });
  return (await r.json()).summary;
}

Datenschutz und was den Benutzern mitzuteilen ist

Das Verkaufsargument der Prompt API ist, dass Eingaben das Gerät nie verlassen. Das ist heute wahr und ist die explizite Designabsicht der Built-in AI-Initiative. Zwei wichtige Einschränkungen:

Für die meisten Consumer-Apps ist dies eine starke Datenschutzgeschichte, die Sie ohne rechtliche Prüfung in Ihre Benutzeroberfläche integrieren können. Für regulierte Workloads (HIPAA, PCI) sollten Sie sich vor der Verwendung rechtlich beraten lassen.

Wann die Prompt API zu überspringen ist

Wählen Sie stattdessen die Cloud Gemini API, wenn:

Für den Open-Weight-Aspekt behandelt How to run DeepSeek V4 locally, wie man ein deutlich größeres Modell auf einem Entwicklerrechner ausführt, ohne das lokale Netzwerk zu verlassen.

FAQ

Ist die Prompt API im offiziellen Webstandardisierungsprozess? Sie befindet sich als Vorschlag in der W3C WebML Community Group. Betrachten Sie sie als Chrome-spezifisch, bis andere Engines sie implementieren.

Kann ich sie von einem Service Worker aus verwenden? In Chrome 138+ ja für Erweiterungen. Webseiten beschränken sie derzeit auf den Dokumentkontext. Überprüfen Sie die Dokumentation, bevor Sie sie in einem Service Worker bereitstellen.

Welche Modellgröße erhalte ich tatsächlich? Gemini Nano liegt im Bereich von 2-4 Mrd. Parametern, quantisiert, um zu passen. Google hat sich nicht auf eine bestimmte Größe festgelegt; erwarten Sie, dass es wachsen wird.

Unterstützt es Funktion-Calling? Auf dem stabilen Kanal nein. Der Origin Trial-Zweig hat experimentelle Tool-Unterstützung; verlassen Sie sich nicht darauf für die Produktion.

Wie teste ich es in einer automatisierten CI? Sie können das On-Device-Modell noch nicht in headless Chromium ausführen. Mocken Sie das globale LanguageModel in Tests und führen Sie den Cloud-Fallback-Pfad in CI aus.

Ist es kostenlos für die kommerzielle Nutzung? Ja. Es gibt keine Pro-Aufruf-Abrechnung. Sie tragen die Speicherkosten auf dem Gerät des Benutzers (ca. 2 GB) und Chrome kümmert sich um Updates.

Für Teams, die bereits Cloud-seitige LLM-Workflows parallel dazu ausführen, behandelt der Beitrag What is GPT-5.5 die Cloud-seitigen Kompromisse ausführlicher, und Apidog übernimmt die Mock- und Fallback-Verdrahtung ohne ein separates Testtool.

Schaltfläche

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen