Dokumentation

Dokumentation

LibreChat

LibreChat konfiguriert ein Gateway als Block in librechat.yaml: vier erforderliche Felder, eine Umgebungsvariable für den Schlüssel und ein Neustart. Im Modellauswahlmenü stehen dann Claude- und GPT-IDs hinter einem einzigen Endpunktnamen zur Verfügung.

LibreChat nimmt ein Gateway als endpoints.custom-Block in librechat.yaml — vier Pflichtfelder, den Schlüssel aus .env und einen Neustart, bevor es in der Auswahl erscheint.

librechat.yaml
# librechat.yaml — project root, beside your .env
version: 1.3.5          # the value the documentation's own example carries

endpoints:
  custom:
    # Required: name, apiKey, baseURL, models. The name must be unique and
    # must not reuse a built-in endpoint name such as openAI or anthropic.
    - name: "Kunavo"
      apiKey: "${KUNAVO_API_KEY}"        # resolved from .env, not written here
      # Keep the /v1. LibreChat appends /chat/completions to this by default.
      baseURL: "https://api.kunavo.com/v1"
      models:
        default: ["claude-sonnet-5", "claude-haiku-4-5"]
        fetch: true                      # fills the picker from GET /v1/models
      titleConvo: true
      titleModel: "claude-haiku-4-5"         # titles are a separate call — pin a cheap id
      modelDisplayLabel: "Kunavo"

      # Optional but worth the four lines: without it LibreChat prices your
      # traffic from a table it ships. prompt/completion are USD per million
      # tokens; context is that model's own window. All three required.
      tokenConfig:
        claude-sonnet-5:
          prompt: 1.4
          completion: 7
          context: 1000000
        claude-haiku-4-5:
          prompt: 0.7
          completion: 3.5
          context: 200000
baseURL behält /v1 bei. Die Dokumentation klärt dies im Fließtext statt anhand eines Beispiels: Sie erklärt, dass directEndpoint für eine Basis-URL vorgesehen ist, die bereits dem vollständigen Completions-Endpunkt entspricht, und dass dies „erforderlich ist, weil die App standardmäßig ‚/chat/completions‘ oder ‚/completion‘ an baseURL anhängt“. Somit wird https://api.kunavo.com/v1 zu /v1/chat/completions aufgelöst, der aufzurufenden Route, und directEndpoint bleibt ungesetzt. Beide Beispiele auf der Website verwenden dieselbe Form: https://api.mistral.ai/v1 und https://openrouter.ai/api/v1. Ein bloßer Basis-Host führt hier zu einem 404 statt zu einem Authentifizierungsfehler.
Unter Docker reicht es nicht, die Datei zu bearbeiten. Laut Schnellstart muss librechat.yaml im Projektstamm vorhanden, in den API-Container eingebunden und LibreChat neu gestartet werden, bevor die Änderung in der Benutzeroberfläche erscheint. Wenn ein neuer Endpunkt nie im Auswahlmenü auftaucht, liegt es fast immer daran und nicht an den Zugangsdaten. Prüfen Sie die Zugangsdaten separat mit dem folgenden curl.
Die Nutzungsübersicht zeigt LibreChats Berechnung, nicht die abgebuchten Kosten. LibreChat berechnet die Kosten anhand einer mitgelieferten Tabelle und ordnet Anfragen anhand der Modell-ID zu. Eine Gateway-ID kann dadurch mit dem Preis eines anderen Modells belastet werden. Der oben gezeigte Block tokenConfig dient dazu, diese Zuordnung zu überschreiben. Definieren Sie ihn für jede angebotene ID oder betrachten Sie die Übersicht als Schätzung und Ihren Kontostand bei /app/billing als maßgeblichen Wert.
Diese Konfiguration wurde am unten angegebenen Datum aus der Dokumentation von LibreChat übernommen. Kunavo hat LibreChat nicht mit seinem Endpunkt ausgeführt – es gab weder ein Gespräch noch einen gestreamten Durchlauf, einen Tool-Aufruf-Rundlauf oder einen Agents-Lauf. Eine veröffentlichte Einrichtungsseite ist kein Test und sollte hier auch nicht als solcher verstanden werden. In zehn Sekunden können Sie Folgendes selbst prüfen: curl. Das Verhalten des Clients klären Sie mit LibreChat.
Kunavo bietet keine Modelle für Embeddings, Text-to-Speech oder Speech-to-Text an. Dieser Endpunkt beantwortet daher ausschließlich Chat-Completions-Anfragen. Das ist hier wichtig, weil LibreChat Zusatzfunktionen bietet, die andere Anbieterarten benötigen: Beim Datei-Chat läuft der Vektorindex über eine separate RAG-API mit eigenem Schlüssel und eigener Basis-URL, und für Sprachfunktionen sind wiederum eigene Zugangsdaten erforderlich. Diese Funktionen bleiben auf den bisher verwendeten Anbieter ausgerichtet. Der Schlüssel im obigen Block gilt nur für den benutzerdefinierten Endpunkt und sonst für nichts auf dieser Seite.
Noch kein Schlüssel? Erstelle ein Kunavo-Konto, erstelle einen Schlüssel (er beginnt mit sk-kn-) und füge ab $10 Guthaben hinzu – Aufrufe werden aus diesem Guthaben bezahlt, fehlgeschlagene Aufrufe werden nicht berechnet. Das Dashboard öffnet anschließend die LibreChat-Einrichtung.

Schritt für Schritt

  1. Erstellen Sie unter /app/keys einen Schlüssel und kopieren Sie ihn — er wird nur einmal angezeigt.
  2. Binden Sie unter Docker zuerst die Konfiguration ein: Laut Schnellstart müssen Sie docker-compose.override.yml.example nach docker-compose.override.yml kopieren und das Volume librechat.yaml einkommentieren. Bei einer Bare-Metal-Installation entfällt dieser Schritt.
  3. Erstellen oder bearbeiten Sie librechat.yaml im Projektstamm, also im selben Verzeichnis wie .env, und fügen Sie den obigen Eintrag endpoints.custom hinzu.
  4. Legen Sie den Schlüssel unter .env als KUNAVO_API_KEY=sk-kn-... ab. Der Platzhalter ${KUNAVO_API_KEY} in der YAML-Datei wird von dort aus aufgelöst. So bleibt das Geheimnis aus der Konfigurationsdatei heraus, die Sie einchecken.
  5. Starten Sie LibreChat neu und öffnen Sie dann die Endpunktauswahl: Kunavo erscheint neben den integrierten Anbietern als eigener Eintrag. Die Modellliste wird entweder von GET /v1/models abgerufen oder – falls der Abruf fehlschlägt – Ihrem Array models.default entnommen.
  6. Senden Sie eine Nachricht und prüfen Sie anschließend, ob der Modellwähler tatsächlich zwischen Modellen wechselt. Da die IDs am Endpunkt aufgelöst werden, sind Claude- und GPT-IDs unter demselben Eintrag hier normal und kein Konfigurationsfehler.

Abgeglichen mit Referenz zu LibreChats benutzerdefiniertem Endpunktobjekt am 21. September 2026. Einstellungen von Drittanbietern können sich ändern; wenn ein Feldname hier nicht mehr mit deiner Ansicht übereinstimmt, ist diese Seite maßgeblich, nicht diese hier.

Dies ist die Kurzfassung. Die vollständige Anleitung – Modellauswahl, Kosten einer tatsächlichen Sitzung und Fehlerszenarien – findest du in die tatsächlichen Betriebskosten von LibreChat.

Vor dem Debugging des Clients prüfen

Eine Anfrage klärt, ob der Fehler am Endpunkt, am Schlüssel oder an der Konfigurationsdatei liegt. Wenn diese Anfrage JSON zurückgibt, funktionieren dieselbe Basis-URL und derselbe Schlüssel in LibreChat.

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

Welche Modell-ID in das Feld gehört

Jedes Textmodell ist über eine Modell-ID erreichbar – die aktuelle Liste findest du unter GET /v1/models, den Katalog mit Preisen auf der Modellseite. Die Tarife sind USD pro 1 Mio. Token, Eingabe / Ausgabe.

Modell-IDKunavo: Ein- und AusgabeWo es in LibreChat hineinpasst
claude-sonnet-5$1.40 / $7.00der Standardeintrag unter models.default – das Modell für alltägliche Gespräche
claude-opus-5$3.50 / $17.50die ID, zu der Sie für eine lange Analyse wechseln, wenn sich eine bessere Antwort lohnt
claude-haiku-4-5$0.70 / $3.50der Datenverkehr eines gemeinsam genutzten Systems sowie titleModel – LibreChat erstellt den Titel jedes Gesprächs in einem separaten Aufruf
gpt-5-6-terra$0.70 / $4.20lange eingefügte Dokumente, bei denen das Kontextfenster ausschlaggebend ist
Die Abrechnung erfolgt pro Token aus einem vorausbezahlten Guthaben ohne Monatsgebühr – siehe Abrechnung. Bei wiederholtem Kontext – dem Großteil dessen, was ein Editor oder Chat-Client sendet – verändert Prompt-Caching die Rechnung stärker als die Modellwahl.

Drei optionale Felder mit unterschiedlichem Verhalten hinter einem Gateway

Alle Angaben in dieser Tabelle stammen aus derselben Feldreferenz, die am oben genannten Datum eingesehen wurde. Sie beschreibt die eigene Konfiguration von LibreChat – kein Testergebnis von Kunavo und keine Aussage darüber, wie sich eine bestimmte Modell-ID verhält, sobald die Anfrage den Client verlässt.

FeldWas die Referenz angibtBedeutung für ein Gateway
providerLeitet einen benutzerdefinierten Endpunkt über einen nativen Anbieter-Client. Anthropic ist derzeit der unterstützte Wert.Damit wird das Übertragungsprotokoll gewechselt, nicht der Anbieter: Derselbe Block kann statt Chat-Completions das Anthropic-Messages-Protokoll verwenden. Auf diesem Pfad wird der OpenAI-artige Modellabruf nicht verwendet. Tragen Sie die IDs daher ausdrücklich unter models.default ein.
models.fetchWenn der Wert true ist, wird versucht, eine Modellliste von der API abzurufen. Bei verzögerter Antwort kann es dadurch bei der ersten Verwendung zu Verlangsamungen kommen.Kunavo beantwortet GET /v1/models, sodass die Auswahlliste automatisch befüllt wird. models.default dient als Ausweichoption, falls dieser Aufruf fehlschlägt. Deshalb sollten Sie den Wert auch bei aktiviertem Abruf angeben.
tokenConfigDefiniert modellspezifische Kontextfenster und Preise pro Million Token für die Kostenverfolgung und Nutzungsberechnung.Ohne diese Angabe berechnet die Übersicht die Kosten Ihres Datenverkehrs anhand der mitgelieferten Tabelle von LibreChat, abgeglichen mit einer ID, für die diese Tabelle nie vorgesehen war. Mit der Angabe entsprechen die Zahlen in der Benutzeroberfläche den von Ihnen festgelegten Werten.

Die Anleitung in vier Schritten – einbinden, konfigurieren, Umgebungsvariable setzen, neu starten – finden Sie auf LibreChats Schnellstartseite für benutzerdefinierte Endpunkte. Dort dient ein Gateway als Beispiel.

Häufig gestellte Fragen

Wie füge ich LibreChat einen benutzerdefinierten Endpunkt hinzu?

Erstellen Sie librechat.yaml im Projektstamm neben Ihrer .env-Datei und fügen Sie unter endpoints.custom einen Eintrag mit den vier erforderlichen Feldern hinzu: name, apiKey, baseURL und models. Der Name muss eindeutig sein und darf nicht dem Namen eines integrierten Endpunkts wie openAI oder anthropic entsprechen. Legen Sie die Zugangsdaten in .env ab und verweisen Sie in der YAML-Datei mit ${YOUR_ENV_VAR} darauf. Starten Sie LibreChat anschließend neu. Unter Docker muss die Datei außerdem über docker-compose.override.yml in den API-Container eingebunden werden. Der neue Eintrag erscheint erst nach diesem Neustart in der Endpunktauswahl.

Muss LibreChats baseURL mit /v1 enden?

Ja, bei einem OpenAI-kompatiblen Gateway. Laut LibreChats eigener Feldreferenz ist die Option directEndpoint für eine Basis-URL vorgesehen, die bereits dem vollständigen Completions-Endpunkt entspricht. Sie ist erforderlich, weil die App standardmäßig /chat/completions oder /completion an baseURL anhängt. Die Basis-URL ist daher die API-Stamm-URL mit dem Suffix /v1 – https://api.kunavo.com/v1 –, und directEndpoint bleibt ungesetzt. Beide Beispiele auf der LibreChat-Website sind entsprechend aufgebaut. Ein Fehler hierbei führt zu einem 404 statt zu einem Authentifizierungsfehler, woran Sie den Unterschied zu einem falschen Schlüssel erkennen.

Warum stimmen die von LibreChat gemeldeten Kosten nicht mit der Abrechnung des Anbieters überein?

LibreChat berechnet die Kosten anhand einer mitgelieferten Preistabelle und nicht anhand der Abrechnung Ihres Anbieters. Dabei gleicht es die Tabelle mit Ihrer Modell-ID ab. Eine Gateway-ID, die einem Tabelleneintrag ähnelt, wird mit dessen Preis berechnet; für eine ID ohne passenden Eintrag gilt ein Festpreis. Fügen Sie zur Korrektur unter Ihrem benutzerdefinierten Endpunkt einen tokenConfig-Block ein, der prompt, completion und context für jede angebotene ID in USD pro Million Token angibt. LibreChat prüft diese Überschreibung, bevor es die eigene Tabelle heranzieht. Betrachten Sie die anwendungsinterne Nutzungsübersicht als Schätzung und den Kontostand Ihres Anbieters als maßgeblichen Wert.

Kann LibreChat Claude-Modelle über einen benutzerdefinierten Endpunkt verwenden?

Ja, in zwei Varianten. Ein gewöhnlicher OpenAI-kompatibler benutzerdefinierter Endpunkt leitet die Modell-ID direkt an Ihre baseURL weiter. Eine Claude-ID wird daher an diesem Endpunkt aufgelöst, nicht innerhalb von LibreChat, und ein Anthropic-Konto ist nicht erforderlich. Alternativ leitet das Feld provider denselben Block über den nativen Anthropic-Messages-Client von LibreChat. Derzeit wird der Wert anthropic unterstützt. Auf diesem Pfad wird der OpenAI-artige Modellabruf nicht verwendet. Tragen Sie die gewünschten IDs daher unter models.default ein, statt sich auf den Abruf zu verlassen.

Hat Kunavo LibreChat getestet?

Nein. Die Konfiguration auf dieser Seite wurde am angegebenen Datum aus der Dokumentation von LibreChat zu benutzerdefinierten Endpunkten übernommen, und nichts darin stammt aus einem Laufzeittest – es gab weder ein Gespräch noch einen gestreamten Durchlauf, einen Tool-Aufruf-Rundlauf oder einen Agents-Lauf. Das gilt für jeden hier dokumentierten Client: Eine veröffentlichte Einrichtungsseite ist kein Test. In zehn Sekunden können Sie selbst prüfen, ob Basis-URL und Schlüssel grundsätzlich funktionieren. Dafür ist der curl-Aufruf auf dieser Seite vorgesehen. Alles Weitere hängt vom Verhalten von LibreChat mit der von Ihnen gewählten Modell-ID ab.