Zurück zu den Leitfäden
Coding-Agenten·21. September 2026·Aktualisiert am 24. September 2026·9 Min. Lesezeit

nanobot OpenCode Go: fehlender Session-Header — Versions- und Routenprüfung

Prüfen Sie zuerst die nanobot-Version und lesen Sie anschließend die übrigen Client-Anforderungen von OpenCode Go — der Header ist nur eine von mehreren Bedingungen.

Zuletzt überprüft am .

nanobot begann mit v0.3.5, veröffentlicht am 15. September 2026, den x-opencode-session-Header zu senden; Releases bis einschließlich v0.3.0 sendeten nur eine generische x-session-affinity-ID, was die Versionslücke hinter dem Fehler wegen des fehlenden Sitzungs-Headers gegenüber OpenCode Go erklärt. Führen Sie nanobot --version aus, bevor Sie etwas anderes ändern: Wenn v0.3.0 oder älter gemeldet wird, ist das Upgrade die vollständige Behebung für genau diesen Header. Was das Upgrade nicht klärt, ist der restliche Client-Vertrag von OpenCode Go; genau diesen Teil sollten Sie lesen, bevor Sie zu dem Schluss kommen, dass die Route ordnungsgemäß funktioniert.

Zunächst eine Klarstellung, weil sich die Namen überschneiden. OpenCode Go bezeichnet hier das aktive Modellabonnement für 10 $ pro Monat, dokumentiert unter opencode.ai/docs/go — nicht den archivierten OpenCode-Terminalagenten in der Sprache Go, dessen eigene README besagt, dass das Projekt unter dem Namen Crush mit dem ursprünglichen Autor und dem Charm-Team fortgeführt wurde. Dies ist keine Migrationsnotiz zu einem eingestellten Produkt, sondern eine Fehlerbehebungsseite zu einem aktuell verkauften Dienst, der eine Client-Anforderung verschärft hat. Mit nanobot ist hier HKUDS/nanobot gemeint, das MIT-lizenzierte Python-Framework für persönliche Agenten — 48.459 Sterne, nicht archiviert, letzter Push am Tag dieser Prüfung (GitHub-API, 21. September 2026) — und nicht das gleichnamige Go-Projekt bei obot-platform.

Der Fehler und die nanobot-Versionen, die ihn enthalten

Die Mitteilung, mit der dies begann, erreichte Abonnenten als Anbieterbenachrichtigung, nicht als Dokumentation. Ein Nutzer zitierte sie in anomalyco/opencode#47438, eröffnet am 5. September 2026 gegen den eigenen Client von OpenCode, wörtlich und beschrieb sie als per E-Mail eingegangene Benachrichtigung des Modellanbieters: „Einige Ihrer Anfragen an OpenCode Go enthalten keinen x-opencode-session-Header. Ohne diesen Header können wir unseren Dienst nicht ordnungsgemäß optimieren. Ab dem 09/06 können Anfragen ohne diesen Header einen Fehler verursachen.“ Diese Formulierung erscheint in keiner von uns gefundenen OpenCode-Dokumentation. Der Changelog von OpenCode, gelesen am 21. September 2026, umfasst den Zeitraum vom 4. August bis zum 14. September 2026 bei v1.18.31 und enthält überhaupt keinen Eintrag zu x-opencode-session. Die Go-Dokumentation formuliert es als Bitte, nicht als Ablehnung: „Senden Sie für jede Konversation eine stabile Sitzungs-ID in x-opencode-session, damit wir Routing und Prompt-Caching optimieren können.“

Das Datum 09/06 hat tatsächlich eine offizielle öffentliche Quelle, nur keine dokumentarische: Sowohl nanobot-Issue #5661 als auch PR #5662 verweisen auf einen @opencode-Post auf X vom 3. September 2026 und zitieren ihn mit der Aussage, dass Tools ohne den Header die Prompt-Cache-Optimierung verlieren und dass „ab dem 09/06 Anfragen ohne diesen Header einen Fehler verursachen können“. Dieser Post ist die Ankündigung, auf deren Grundlage der nanobot-Fix geschrieben wurde; diese Seite hat ihn nicht unabhängig abgerufen.

Der harte Fehler ist nur durch Dritte belegt. vastsa/PI-Desktop#48, am 7. September 2026 eröffnet und geschlossen, verzeichnet HTTP 400 mit "type": "MissingSessionID" und einer Meldung, dass der Anfrage x-opencode-session fehlt und sie nicht effizient weitergeleitet werden kann, mit Verweis auf den Anker der Go-Dokumentation. Die Go-Dokumentation von OpenCode enthält keinen Fehlerverweis, der diesen Statuscode oder diese Typzeichenfolge aufführt; lesen Sie daher die dokumentierte Verpflichtung und die gemeldete Ablehnung als zwei unterschiedlich starke Aussagen desselben Anbieters.

nanobot-VersionSendet x-opencode-session?Nachweis
v0.3.0 (25. Juli 2026) und früherNein — nur eine generische, prozessbezogene x-session-affinity-IDIssue #5661, eröffnet am 4. September 2026, geschlossen am 9. September
main nach dem 9. September 2026JaCommit 20f115bf, aus PR #5662 zusammengeführt
v0.3.5 (15. September 2026)JaDie Release Notes von v0.3.5 führen diese PR auf

In der Tag-Historie gibt es kein v0.3.1 bis v0.3.4, daher ist „v0.3.0 und früher“ der gesamte betroffene Bereich. Zwei Prüfungen bestätigten am 21. September 2026 die Zuordnung zum Release, statt sie abzuleiten: Der Release-Text führt PR #5662 nach Nummer auf, und ein GitHub-Compare-Aufruf meldet, dass v0.3.5 84 Commits vor 20f115bf und keinen dahinter liegt, wodurch sich der Commit innerhalb des Tags befindet. Beachten Sie, dass die Dokumentation von nanobot v0.3.5 den Header nie erwähnt — die einzigen Aufzeichnungen der Änderung sind die Release Notes, die PR und das Issue.

Was der Fix tatsächlich tut und wodurch er ausgelöst wird

Die am Git-Tag v0.3.5 in nanobot/providers/openai_compat_provider.py nachgelesene Logik ist überschaubar und sollte genau verstanden werden. nanobot behandelt ein Ziel als OpenCode-Ziel, wenn die Provider-Spezifikation opencode, opencode_zen oder opencode_go heißt oder wenn der Hostname der Basis-URL opencode.ai oder eine Subdomain davon ist. Wenn ein Konversationskontext vorhanden ist, ist der Header-Wert der hexadezimale SHA-256-Digest der Sitzungs-ID, wodurch der Wert auch bei Nicht-ASCII-IDs undurchsichtig und ASCII-sicher bleibt. Wenn kein Konversationskontext vorhanden ist, verwendet die Provider-Instanz eine zufällige UUID, die für ihre eigene Lebensdauer festgelegt ist — stabil für diese Instanz, nicht pro Konversation. Ein von Ihnen konfigurierter Header hat Vorrang vor beiden Varianten; der Name wird ohne Berücksichtigung der Groß- und Kleinschreibung abgeglichen.

Die Hostname-Klausel ist der entscheidende Satz: Der Header wird angefügt, weil feststeht, wohin die Anfrage geht, nicht aufgrund des von Ihnen geschriebenen Provider-Blocks. Ein generischer Block providers.custom, der auf eine opencode.ai-Basis-URL zeigt, erhält ihn ebenfalls. Eine Anfrage an einen beliebigen anderen Host erhält ihn nicht — was dieser Host stattdessen verlangt, ist seine eigene Anbieterfrage, und diese Seite beantwortet sie nicht.

Das Upgrade ist unkompliziert: Das PyPI-Paket ist nanobot-ai und in der pyproject.toml dieses Tags mit 0.3.5 angegeben; die README von v0.3.5 dokumentiert uv tool install nanobot-ai und python -m pip install nanobot-ai. Bestätigen Sie dies mit nanobot --version oder mit python -m nanobot --version, wenn der Einstiegspunkt nicht auf PATH liegt, und führen Sie anschließend nanobot status aus. Laut CLI-Referenz prüft dieser Befehl die Bereitschaft von Providern und Modellen, ohne ein Modell aufzurufen.

Warum OpenCode Go kein gewöhnlicher OpenAI-kompatibler Endpunkt ist

Dies ist der Teil, durch den sich eine Header-Korrektur unvollständig anfühlt. OpenCode Go nennt mehrere clientseitige Bedingungen, die eine gewöhnliche OpenAI-kompatible Basis-URL nicht nennt, und der Sitzungs-Header ist nur eine davon. Alle folgenden Zeilen stammen aus der eigenen Dokumentation, geprüft am 21. September 2026.

AnforderungWas OpenCode Go verlangtDurch ein Upgrade auf v0.3.5 erledigt?
Abonnement„OpenCode Go ist ein kostengünstiges Abonnement für 10 $ pro Monat“; der Schlüssel wird durch das Abonnieren und anschließendes /connect in der TUI erhaltenNein — ein separater Kauf
Sitzungs-HeaderEine stabile Sitzungs-ID in x-opencode-session für jede KonversationJa
User-Agent„Sich mit dem eigenen User-Agent identifizieren, etwa my-coding-agent/1.0, statt mit dem Namen eines generischen SDKs oder einer HTTP-Bibliothek“Nicht nachgewiesen — siehe unten
NutzungsfensterEin monatliches Dollar-Limit pro Modell, mit einem 5-Stunden-Unterlimit von 20 % und einem wöchentlichen Unterlimit von 50 %Nein
Endpunkt pro ModellDrei Oberflächen — /zen/go/v1/responses, /chat/completions und /messages —, damit das Modell das Übertragungsformat bestimmtNein, und nanobot schränkt es weiter ein
Verkehrsprofil„für OpenCode und andere Coding-Agenten entwickelt, die ähnliche Anfragearten erzeugen“, wobei der Datenverkehr auf Missbrauch überwacht wirdNein

Für die User-Agent-Zeile ist Vorsicht geboten. PR #5662 änderte nur den Sitzungs-Header. Bei der Prüfung des Quellcodes von nanobot v0.3.5 zeigte sich, dass das OpenAI-kompatible Provider-Modul — dasjenige, das die Spezifikationen opencode, opencode_zen und opencode_go bedient — nirgendwo einen User-Agent setzt, während die Provider-Module für GitHub Copilot, xAI Grok und OpenAI Codex jeweils einen nanobot-gebrandeten setzen. Auf diesem Pfad trägt die Anfrage daher den Wert, den das zugrunde liegende SDK standardmäßig sendet. Hier wurde keine Anfrage über das Netzwerk gesendet, um den Wert zu beobachten, und OpenCode hat für diese Zeile keine Durchsetzung veröffentlicht; dies ist daher eine Auswertung des Quellcodes und kein reproduzierter Fehler. Die dokumentierte Abhilfe ist ein Header, den Sie selbst setzen — nanobots Referenz beschreibt providers.<name>.extraHeaders als Header, die mit Provider-Anfragen zusammengeführt werden:

~/.nanobot/config.json — benennen Sie Ihren eigenen Client ehrlich
{
  "providers": {
    "opencodeGo": {
      "apiKey": "${OPENCODE_API_KEY}",
      "extraHeaders": { "User-Agent": "nanobot/0.3.5" }
    }
  },
  "modelPresets": {
    "primary": {
      "provider": "opencode_go",
      "model": "opencode-go/<a model OpenCode lists under chat/completions>",
      "maxTokens": 8192,
      "contextWindowTokens": 65536
    }
  }
}

Benennen Sie dort Ihren eigenen Client wahrheitsgemäß. Einen der validierten Client-Namen von OpenCode in dieses Feld einzutragen, wäre eine Identitätsvortäuschung und keine Identifizierung; das verlangt die Dokumentation nicht.

Die Endpunktzeile hat eine nanobot-spezifische Konsequenz, die kein Header behebt. Die Provider-Referenz von v0.3.5 besagt, dass Modell-IDs verwendet werden sollen, die OpenCode unter dem Endpunkt chat/completions auflistet, da Modelle, die ausschließlich unter responses, messages oder anbieterspezifischen Endpunkten aufgeführt sind, von diesem OpenAI-kompatiblen Pfad nicht verarbeitet werden. In der Konfiguration ist OpenCode Go providers.opencodeGo mit einem Preset, dessen provider opencode_go ist; Modell-IDs tragen das Präfix opencode-go/, das nanobot vor dem Senden entfernt. Schließlich veröffentlicht die Go-Seite von OpenCode eine Liste validierter Clients (Hermes, Claude Code, Codex, ZCode, Pi, jcode und Kilo Code CLI) sowie eine Liste mit fehlender oder unvollständiger Sitzungsunterstützung (DeepSeek Harness, GitHub Copilot Chat, Kimi Code und MiMo Code). nanobot steht am 21. September 2026 auf keiner der beiden Listen — das Fehlen eines veröffentlichten Urteils, weder eine Empfehlung noch eine Sperre. Auf dieser Seite werden außerdem versionsabhängige Anforderungen pro Client erwähnt, die hier nicht erfasst wurden; leiten Sie daher für keinen dieser Clients aus dieser Seite eine Mindestversion ab.

Mit einer redigierten Anfrage überprüfen

Die Dokumentation von nanobot v0.3.5 beschreibt keine Möglichkeit, seine ausgehenden Header auszugeben. Bestätigen Sie den Vertrag daher direkt anhand Ihres eigenen Abonnements, bevor Sie Schlussfolgerungen über den Client ziehen. Lesen Sie nur die Statuszeile.

Eine redigierte Prüfung, ausgeführt mit Ihrem eigenen Abonnement
# Read the status line only. Key redacted; session id is your own, stable per conversation.
curl -sS -o /dev/null -D - https://opencode.ai/zen/go/v1/chat/completions \
  -H "authorization: Bearer $OPENCODE_API_KEY" \
  -H "x-opencode-session: $(printf 'my-conversation-1' | shasum -a 256 | cut -d' ' -f1)" \
  -H "user-agent: nanobot/0.3.5" \
  -H "content-type: application/json" \
  -d '{"model":"<model-id>","messages":[{"role":"user","content":"ping"}],"max_tokens":8}'

Damit lassen sich zwei Fehler sauber trennen: Ein 400-Fehler, der MissingSessionID nennt, betrifft den Header; alles andere betrifft nicht den Header. Wechseln Sie nicht bei jeder Anfrage zu einer neuen zufälligen ID, nur damit der Fehler verschwindet, und übernehmen Sie nicht den Namen eines anderen Clients. Die Dokumentation verlangt genau deshalb eine stabile ID pro Konversation, weil Routing und Prompt-Caching darauf basieren. Eine ID pro Anfrage verhindert das Caching, für das Sie bezahlen, und sieht dabei nur wie eine Lösung aus. Die beiden legitimen Antworten sind ein Upgrade oder die Verlagerung dieser Arbeitslast auf eine Route, die diese Anforderung nicht enthält.

Was es kostet und welche Route gewinnt

Halten Sie die Software von den Tokens getrennt. nanobot selbst kostet 0 $ — laut dem am 21. September 2026 gelesenen Repository-Eintrag MIT-lizenziert und selbst gehostet —; alles Folgende betrifft die Modellrechnung und den Rechner, auf dem es ausgeführt wird.

WegWie abgerechnet wirdWorauf Sie verzichten
OpenCode-Go-Abonnement10 $/Monat, anschließend ein monatliches Dollar-Limit pro Modell mit 5-Stunden- und wöchentlichen Unterlimits von 20 % bzw. 50 % davonZwei Client-Verpflichtungen, drei Endpunkte pro Modell und eine erklärte Grenze für den vorgesehenen Datenverkehr, außerhalb derer ein allgemeines Framework für persönliche Agenten liegen kann
OpenCode ZenAbrechnung nach Verbrauch pro 1 Mio. Tokens; Kartengebühren werden zum Selbstkostenpreis weitergegeben (4,4 % + 0,30 $ pro Transaktion); ein Guthaben unter 5 $ lädt automatisch 20 $ nachEin separates Produkt von Go mit eigener Preisliste; für kostenlose Modelle gilt ein ausdrücklich genannter Vorbehalt zur Datennutzung
Direkte Anbieter-APIDer eigene Tokenpreis des AnbietersEin zweiter Anbieter bedeutet einen zweiten Schlüssel und ein zweites Preset
Ein OpenAI-kompatibles GatewayAbrechnung nach verbrauchten Tokens, ein Schlüssel und ein Guthaben, kein AbonnementSie wählen aus dem Katalog dieses Gateways statt aus der Go-Liste; die Sitzungs-Header-Anforderung von OpenCode ist auf opencode.ai beschränkt, und nanobot fügt den Header an keiner anderen Stelle hinzu
Lokales ModellKeine Gebühr pro Anfrage; Ollama, vLLM und LM Studio sind integrierte nanobot-ProviderHardware und eine Fähigkeitslücke gegenüber gehosteten Frontier-Modellen

Die Zen-Zeile stammt aus der eigenen Dokumentation, gelesen am 21. September 2026; Zen und Go sind separat abgerechnete Produkte, daher ist ein Zen-Preis nicht der Preis, den ein Go-Abonnent zahlt, und die eigene Liste von Zen kennzeichnet mehrere Modelle vorübergehend als kostenlos, während die Anbieter Feedback sammeln. OpenCode-Preise behandelt die Kostenseite des Clients selbst.

Das Abonnement lässt sich nicht in die folgende Tabelle umrechnen, und das Gegenteil vorzugeben wäre hier der Fehler, den man am leichtesten macht. Das Go-Kontingent wird in Dollar zu den eigenen Preisen pro Modell von Go angegeben, und jedes Modell hat sein eigenes Limit: Das ausgearbeitete Beispiel in der Dokumentation ist ein Modell mit einem monatlichen Limit von 60 $, das eine Nutzung von 12 $ pro 5 Stunden und 30 $ pro Woche erlaubt, während die am 21. September 2026 gelesenen Modellzeilen GLM-5.3-Flash mit 0,15 $ für Eingabe- und 0,50 $ für Ausgabetokens pro 1 Mio. Tokens, einem monatlichen Limit von 60 $ und geschätzten 31.580 Anfragen pro Monat ausweisen. Dies sind Schätzungen von OpenCode für den eigenen Katalog, keine Garantien; außerdem enthielt eine Zeile eine datierte Aktion, die kurz nach der Erstellung dieses Textes ausläuft. Für eine Arbeitslast, die in Gos Modellliste und seine Zeitfenster passt, kauft man für 10 $ viel Nutzung nach Verbrauch; im Kern geht es darum, ob Ihre Modelle und Lastspitzen hineinpassen.

Ein Gateway mit verbrauchsabhängiger Abrechnung bepreist dieselbe Arbeitslast anders. Das ist eine beispielhafte Token-Berechnung, keine Messung der Aufgabenkosten und keine Obergrenze für die Rechnung: Nehmen wir einen nanobot-Assistenten an, der in einem Monat 3.000.000 nicht aus dem Cache stammende Eingabe- und 300.000 Ausgabetokens verbraucht, zu den aktuellen Preisen im Kunavo-Katalog pro Million Tokens.

ModellEingabe / Ausgabe pro 1 Mio.Schätzung für den angenommenen Monat
Claude Haiku 4.5$0.70 / $3.50$3.15
Claude Sonnet 5$1.40 / $7.00$6.30
Claude Opus 5$3.50 / $17.50$15.75

Skalieren Sie diese Werte anhand Ihres eigenen Datenverkehrs, bevor Sie sie als Budget betrachten, und beachten Sie, dass ein Hintergrundzeitplan die Eingabespalte weitaus stärker verändern kann als die Wahl des Modells — nanobot-API-Kosten und Einrichtung behandelt die standardmäßig von nanobot ermöglichte Taktung. Der Katalogbetrag von Kunavo ist ein Abrechnungsuntergrenze und keine Obergrenze: Wenn der Upstream seine Kosten meldet, entspricht die Rechnung dem höheren Wert aus den Katalogkosten und den Upstream-Kosten multipliziert mit dem anwendbaren Aufschlag. Cache-Gebühren, Tools und Hosting liegen außerhalb dieses Beispiels, und die Mindestaufladung beträgt $10 an Prepaid-Guthaben — eine Mindestfinanzierung, keine Aufgabengebühr und kein Abonnement. Siehe Abrechnungsdetails.

Wo Kunavo hilft und wo nicht

Offen darüber zu sprechen, ist wichtiger als eine Conversion. Kunavo verkauft OpenCode Go oder Zen nicht weiter, und wenn nanobot auf https://api.kunavo.com/v1 zeigt, wird dadurch kein OpenCode-Go-Abonnement repariert. Stattdessen umgeht es die Voraussetzung, weil x-opencode-session zu opencode.ai-Hosts gehört – und aufgrund der Hostnamenregel im Quellcode von v0.3.5 setzt nanobot diesen Header auch an keiner anderen Basis-URL. Was der Kunavo-Endpunkt mit einem solchen Header tun würde, wurde hier nicht getestet, ebenso wenig nanobot mit Kunavo: Es gibt keine nanobot-Integrationsseite, und jede obige Konfigurationsaussage ist eine Auslegung der Anbieterdokumentation und des ausgelieferten Quellcodes und kein Kompatibilitätsergebnis.

Betrachten Sie die Routen daher als Alternativen mit unterschiedlichen Kompromissen, nicht als Fehlerbehebung und Umgehungslösung. Wenn eine nutzungsabhängige OpenAI-kompatible Route für die Arbeitslast geeignet ist, erläutert der Schnellstart die Konvention für den Endpunkt, und das Erstellen eines Kunavo-Kontos ist der Schritt vor dem Aufladen eines Schlüssels – halten Sie beim Ausprobieren eine funktionierende Route verfügbar, führen Sie eine begrenzte Aufgabe aus und lesen Sie anschließend nach, was Ihr Konto dafür aufgezeichnet hat. Wenn Sie nach dem archivierten Go-Terminal-Agenten statt nach dem Abonnement gesucht haben, behandelt die Crush-Integrationsdokumentation dessen Nachfolger, und die OpenCode-Integrationsdokumentation den aktuellen TypeScript-Client. Für einen umfassenderen Vergleich siehe OpenAI-kompatible API und Verzeichnis der Agenten-APIs; bei einem anderen OpenCode-Fehler ist Provider oder Modell nicht gefunden die Diagnose.

Häufig gestellte Fragen

Welche nanobot-Version sendet den x-opencode-session-Header?

v0.3.5, veröffentlicht am 15. September 2026, ist das erste Release, das ihn enthält. Die Änderung ist PR #5662 in HKUDS/nanobot, am 9. September 2026 zusammengeführt unter Commit 20f115bf4699bffcc786263cb999e7701986e179, und in den Release Notes von v0.3.5 aufgeführt. Die Tag-Historie von GitHub zeigt kein v0.3.1 bis v0.3.4 — der vorherige Tag ist v0.3.0 vom 25. Juli 2026 — daher umfasst der betroffene Bereich v0.3.0 und frühere Versionen. Ein Git-Checkout von main, der nach dem 9. September 2026 erstellt wurde, enthält die Änderung ebenfalls, ohne sich auf einem getaggten Release zu befinden. Abgeglichen mit der GitHub-API am 21. September 2026, einschließlich eines Compare-Aufrufs, der zeigt, dass v0.3.5 84 Commits vor diesem Commit und keinen dahinter liegt.

Warum erhält nanobot von OpenCode Go einen Fehler 400 MissingSessionID?

Weil Releases bis einschließlich v0.3.0 nur eine generische, prozessbezogene x-session-affinity-ID sendeten und nie den konversationsbezogenen x-opencode-session-Header, den OpenCode Go anfordert. So beschreibt es das ursprüngliche nanobot-Issue #5661, und der generische Header ist neben dem neuen weiterhin im Provider-Quellcode von v0.3.5 sichtbar. Der Statuscode und der Fehler-Typ-String stammen aus einem Fehlerbericht eines Drittanbieters, vastsa/PI-Desktop#48 vom 7. September 2026, der HTTP 400 mit dem Typ MissingSessionID und der Meldung zeigt, dass die Anfrage nicht effizient weitergeleitet werden kann. Die Go-Dokumentation von OpenCode enthält keinen Fehlerverweis, der diesen Code oder diesen Typ aufführt; behandeln Sie den exakten Vertrag daher als von Nutzern berichtet und nicht als dokumentiert.

Kann ich den x-opencode-session-Header manuell setzen, statt nanobot zu aktualisieren?

Ja, und der Quellcode von v0.3.5 berücksichtigt ihn — ein von Ihnen konfigurierter Header hat Vorrang, wobei der Name ohne Berücksichtigung der Groß- und Kleinschreibung abgeglichen wird —, aber dies ist die falsche Art der Fehlerbehebung. nanobots providers.<name>.extraHeaders ist als eine Gruppe von Headern dokumentiert, die mit Provider-Anfragen zusammengeführt werden; ein statischer Wert würde daher bei jeder Anfrage aus diesem Provider-Block und für jede Konversation gesendet. Die Dokumentation von OpenCode Go verlangt für jede Konversation eine stabile Sitzungs-ID, damit Routing und Prompt-Caching optimiert werden können. Ein einziger gemeinsam verwendeter Wert oder ein bei jeder Anfrage neu erzeugter Zufallswert wirkt daher dem Caching entgegen, für das Sie bezahlen. Aktualisieren Sie auf v0.3.5 oder verlagern Sie diese Arbeitslast auf eine Route, die diese Anforderung nicht enthält.

Macht ein Upgrade auf nanobot v0.3.5 nanobot vollständig mit OpenCode Go kompatibel?

Es behebt den Sitzungs-Header und nichts weiter, und OpenCode Go nennt mehr als eine Verpflichtung für Clients. In der Dokumentation wird außerdem verlangt, dass sich ein Client mit seinem eigenen User-Agent identifiziert, etwa my-coding-agent/1.0, statt mit dem generischen Namen eines SDKs oder einer HTTP-Bibliothek. Bei der Prüfung des Quellcodes von nanobot v0.3.5 zeigte sich, dass das OpenAI-kompatible Provider-Modul, das die OpenCode-Provider bedient, überhaupt keinen User-Agent setzt, während die Provider-Module für GitHub Copilot, xAI Grok und OpenAI Codex jeweils einen nanobot-gebrandeten User-Agent setzen — auf diesem Pfad trägt die Anfrage daher den Wert, den das zugrunde liegende SDK standardmäßig sendet. Hier wurde keine Anfrage über das Netzwerk gesendet, um diesen Wert zu bestätigen. Die eigene Provider-Referenz von nanobot für v0.3.5 fügt eine zweite Einschränkung hinzu: Verwenden Sie Modell-IDs, die OpenCode unter dem Chat-/Completions-Endpunkt auflistet, da Modelle, die ausschließlich unter responses, messages oder anbieterspezifischen Endpunkten aufgeführt sind, von diesem Pfad nicht verarbeitet werden. Die Go-Dokumentation von OpenCode listet sieben validierte Clients und vier mit fehlender oder unvollständiger Sitzungsunterstützung auf; nanobot steht am 21. September 2026 auf keiner dieser Listen — das Fehlen eines veröffentlichten Urteils, weder eine Empfehlung noch eine Sperre.

Ist OpenCode Go dasselbe wie die alte OpenCode-Go-CLI?

Nein, und eine Vermischung führt Sie zur falschen Dokumentation. OpenCode Go ist ein aktives Modellabonnement für 10 $ pro Monat, das unter opencode.ai verkauft wird, Modelle über https://opencode.ai/zen/go/v1/-Endpunkte bereitstellt und einen Client-Vertrag veröffentlicht, dessen Anforderungen laut Dokumentation von Aufrufern erfüllt werden sollen. Der archivierte OpenCode-Terminalagent in der Sprache Go ist ein separates Projekt; in dessen eigener README steht, dass das Projekt unter dem Namen Crush fortgeführt wird, entwickelt vom ursprünglichen Autor und dem Charm-Team. Dabei handelt es sich um Client-Software, nicht um einen Modelldienst, und sie hat nichts mit dem x-opencode-session-Header zu tun. Wenn Sie hier nach dem Terminalagenten gesucht haben, behandelt Kunavos Crush-Integrationsdokumentation dieses Projekt.

Behebt das Weiterleiten von nanobot an ein anderes Gateway den Fehler?

Es vermeidet den Fehler, statt ihn zu beheben, und dieser Unterschied ist wichtig. Die Anforderung an x-opencode-session gilt speziell für opencode.ai-Hosts. In nanobot v0.3.5 wird der Header abhängig vom Ziel der Anfrage angefügt: Die Provider-Spezifikation heißt opencode, opencode_zen oder opencode_go, oder der Hostname der Basis-URL ist opencode.ai oder eine Subdomain davon. Verweisen Sie einen Provider-Block auf einen anderen Host, sendet nanobot keinen solchen Header; was dieser Host stattdessen verlangt, ist der Vertrag seines eigenen Anbieters und wird auf dieser Seite nicht behandelt. Das ist eine andere Route mit anderen Modellen und anderer Abrechnung, keine Reparatur eines OpenCode-Go-Abonnements, für das Sie bereits bezahlt haben.

Geprüft am 21. September 2026: die Go- und Zen-Dokumentation von opencode.ai und deren Changelog; die GitHub-API für Releases, Tags, PR #5662, Issue #5661 und einen Compare-Aufruf, der belegt, dass der Commit im v0.3.5-Tag enthalten ist; anomalyco/opencode#47438 und vastsa/PI-Desktop#48 für den zitierten Hinweis und den gemeldeten 400-Fehler; sowie das v0.3.5-Quellarchiv für alle Aussagen darüber, was nanobot sendet. Das Datum 09/06 geht auf einen @opencode-Post auf X vom 3. September 2026 zurück, den Issue und PR von nanobot zitieren, den diese Seite jedoch nicht abgerufen hat; der zitierte Abonnentenhinweis und der 400-Fehlervertrag stammen aus Nutzerberichten und erscheinen weder in der OpenCode-Dokumentation noch im Changelog. Niemand hier hat nanobot mit OpenCode Go oder Kunavo ausgeführt oder den Fehler reproduziert; die Kunavo-Tokenpreise stammen aus dem aktuellen Katalog, und jeder Dollarbetrag ist eine illustrative Rechnung unter den angegebenen Annahmen.