April 20, 2026 • Version: v2026.4.19-beta.2

[Immer Stream-Nutzungsdaten senden] - Agents/openai-completions: always send `stream_options.include_usage` on streaming requests, so local and custom OpenAI-compatible backends report real context usage instead of showing 0%.

Fehlerbehebungsanleitung für Korrekturen, eingeführt in OpenClaw v2026.4.19-beta.2.

Fehlerbehebung: Nachverfolgung der Kontext-Token-Nutzung funktioniert nicht bei benutzerdefinierten OpenAI-kompatiblen Backends

Symptome

Wenn Sie ein benutzerdefiniertes oder nicht standardmäßiges OpenAI-kompatibles Backend verwenden (wie llama-cpp, LM Studio oder andere lokale Inferenz-Server), können nach dem Upgrade auf bestimmte Versionen folgende Symptome auftreten:

  • Token-Nutzung wird in Streaming-Antworten immer als 0% oder 0 Token angezeigt
  • Die Nachverfolgung des Kontextfensters funktioniert nicht, obwohl das Modell offensichtlich Tokens verbraucht
  • Inkonsistentes Verhalten zwischen Streaming- und Non-Streaming-Anfragen (Non-Streaming-Anfragen zeigen die genaue Nutzung, während Streaming 0% anzeigt)

Dieses Problem betrifft spezifisch Streaming-Antworten von alternativen Backends, während standardmäßige OpenAI API-Endpunkte die Nutzung weiterhin korrekt melden.

Ursache

Die Funktion buildOpenAICompletionsParams() in der OpenAI-Transportebene fügte das Feld stream_options: { include_usage: true } nur dann in die Anfrage-Nutzdaten ein, wenn compat.supportsUsageInStreaming als true ausgewertet wurde.

Bei standardmäßigen OpenAI-Endpunkten wurde dieses Kompatibilitäts-Flag korrekt aufgelöst, sodass die Funktion resolveIncludeUsageForStreaming() des Gateways die Nutzung ordnungsgemäß nachverfolgen konnte. Bei benutzerdefinierten Backends wie llama-cpp und LM Studio wurde dieses Flag jedoch als false aufgelöst, was dazu führte, dass das Feld vollständig weggelassen wurde. Ohne dieses Feld in der Anfrage hatte das Gateway keine Daten zur Verarbeitung, was dazu führte, dass die Kontext-Token-Nutzung immer als Null angezeigt wurde.

Schritt-für-Schritt-Lösung

Ein Upgrade auf Version v2026.4.19-beta.2 löst dieses Problem automatisch. Es sind keine Konfigurationsänderungen erforderlich.

  1. Aktualisieren Sie das OpenClaw-Paket auf v2026.4.19-beta.2 oder höher
  2. Starten Sie Ihren Gateway-Dienst neu, um die aktualisierte Transportebene zu laden
  3. Verifizieren Sie die Lösung, indem Sie eine Streaming-Anfrage an Ihr benutzerdefiniertes Backend senden

Verifizierung

Um zu bestätigen, dass die Lösung funktioniert:

  1. Senden Sie eine Streaming-Completion-Anfrage an Ihr benutzerdefiniertes Backend (llama-cpp, LM Studio usw.)
  2. Überwachen Sie die Antwort-Nutzdaten auf das usage-Feld, das in Streaming-Chunks erscheint
  3. Verifizieren Sie, dass die Token-Nachverfolgung nun die tatsächliche Token-Anzahl anstelle von 0% anzeigt
// Beispiel-Verifizierung: Überprüfen Sie, dass die Nutzung in der Streaming-Antwort erscheint
const response = await openai.chat.completions.create({
  model: 'your-model',
  messages: [{ role: 'user', content: 'Hello' }],
  stream: true,
  stream_options: { include_usage: true }  // Wird jetzt immer eingeschlossen
});

for await (const chunk of response) {
  if (chunk.usage) {
    console.log('Nutzung erfasst:', chunk.usage);
  }
}

Häufige Fehler

  • Proxy-Interferenz: Einige API-Proxys oder Middleware können unbekannte Felder aus Anfrage-Nutzdaten entfernen. Wenn Sie eine benutzerdefinierte Proxy-Schicht verwenden, verifizieren Sie, dass stream_options unverändert an das Backend weitergeleitet wird.

  • Backend-spezifische Konfiguration: Während das Feld jetzt immer eingeschlossen wird und Backends, die es nicht unterstützen, es sicher ignorieren, können einige ältere benutzerdefinierte Backends unerwartetes Verhalten zeigen, wenn sie auf unbekannte Felder stoßen. Testen Sie zuerst in einer Staging-Umgebung.

  • Gemischte Umgebungen: Wenn Sie mehrere Gateway-Instanzen mit unterschiedlichen Versionen betreiben, wird die Token-Nachverfolgung zwischen Anfragen inkonsistent sein. Stellen Sie sicher, dass alle Instanzen auf v2026.4.19-beta.2 aktualisiert werden, um ein einheitliches Verhalten zu gewährleisten.

Zugehörige Fehler

  • Kontextfenster-Erschöpfung wird nicht erkannt: Da die Nutzung immer 0% betrug, konnte das System Benutzer nicht genau warnen, wenn sie sich den Kontextlimits während Streaming-Anfragen näherten.
  • Inkonsistenz bei der Nutzungsberichterstattung: Ein Vergleich der Nutzungsmetriken zwischen Streaming- und Non-Streaming-Anfragen war unmöglich, da Streaming immer eine Nutzung von Null meldete.

Betroffene Version: v2026.4.19-beta.2 Problem-Referenz: #68707 Geänderte Dateien: src/agents/openai-transport-stream.ts, src/agents/openai-transport-stream.test.ts

Belege & Quellen

Diese Troubleshooting-Anleitung wurde automatisch von der FixClaw Intelligence Pipeline aus Community-Diskussionen synthetisiert.