Dokumentation

Dokumentation

Factory Droid

Die benutzerdefinierten Modelle von Droid werden als JSON-Array mit drei erforderlichen Feldern angegeben. Am häufigsten wird baseUrl falsch verstanden, denn der korrekte Wert hängt davon ab, welchen der drei Provider-Werte Sie gewählt haben.

Ein customModels-Eintrag in ~/.factory/settings.json — model, baseUrl und provider — bringt Droid zu jedem Endpunkt, der Anthropic Messages oder OpenAI Chat Completions unterstützt.

~/.factory/settings.json → customModels
// ~/.factory/settings.json  (Windows: %USERPROFILE%\.factory\settings.json)
{
  "customModels": [
    {
      "model": "claude-sonnet-5",
      "displayName": "Sonnet 5 [Kunavo]",
      "baseUrl": "https://api.kunavo.com",
      "apiKey": "${KUNAVO_API_KEY}",
      "provider": "anthropic"
    },
    {
      "model": "gpt-5-6-sol",
      "displayName": "GPT-5.6 Sol [Kunavo]",
      "baseUrl": "https://api.kunavo.com/v1",
      "apiKey": "${KUNAVO_API_KEY}",
      "provider": "generic-chat-completion-api"
    }
  ]
}

// Then, in the shell Droid starts from:
//   export KUNAVO_API_KEY=sk-kn-...
// ${VAR_NAME} expansion is a settings.json feature. It does NOT apply to the
// legacy ~/.factory/config.json, which Factory still loads and merges.
Der /v1 gehört zu einem Eintrag, nicht zum anderen. Factory klärt das in der Dokumentation mit einer Tabelle statt mit einem Satz: Die Provider-Referenz nennt für provider: "anthropic" https://api.anthropic.com – den Ursprung ohne Pfad –, während https://api.openai.com/v1, https://openrouter.ai/api/v1 und https://api.groq.com/openai/v1 alle den Stamm /v1 verwenden. Droid hängt die Route selbst an. Daher ist der Anthropic-Eintrag oben der reine Ursprung und der Chat-Completions-Eintrag /v1. Wenn du beim Anthropic-Eintrag /v1 einträgst, fordert das /v1/v1/messages an. Das ergibt einen 404 und keinen Authentifizierungsfehler – siehe die Referenz zur Basis-URL.
Diese Konfiguration wurde am unten angegebenen Datum aus der Dokumentation von Factory übernommen. Kunavo hat die Droid-CLI nicht mit seinem Endpunkt ausgeführt – weder eine Sitzung noch einen gestreamten Durchlauf oder einen Tool-Roundtrip; dasselbe gilt für alle Clients dieser Familie. Eine veröffentlichte Einrichtungsseite ist kein Test. Factory gibt von seiner Seite denselben Vorbehalt an: Nur Anthropic- und OpenAI-Modelle auf ihren offiziellen APIs sind laut Factory „vollständig getestet und bewertet“. Das curl unten kannst du in zehn Sekunden überprüfen; das Verhalten des Clients liegt zwischen dir und Factory.
authMode kann weggelassen werden. Factory dokumentiert provider-default als Standardwert und gibt an, dass die Zugangsdaten dabei in x-api-key übermittelt werden. Auch Kunavos Messages-Endpunkt akzeptiert diesen Header sowie Authorization: Bearer. Falls du ausdrücklich die Bearer-Form verwenden möchtest, dokumentiert Factory authMode: "bearer" für provider: "anthropic"; das funktioniert auch hier.
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 Factory Droid-Einrichtung.

Schritt für Schritt

  1. Erstelle unter /app/keys einen Schlüssel und kopiere ihn – er wird nur einmal angezeigt. Setze ihn in der Shell, aus der du Droid startest, als KUNAVO_API_KEY, damit der Schlüssel selbst nicht in einer Einstellungsdatei landet.
  2. Öffne ~/.factory/settings.json (erstelle die Datei, falls sie nicht vorhanden ist) und füge das Array customModels von oben hinzu. Factory kennzeichnet genau drei Felder als erforderlich: model, baseUrl und provider. displayName ist die Bezeichnung, die im Auswahlmenü angezeigt wird.
  3. Überprüfe die Schreibweise von provider. Sie muss exakt einem dieser Werte entsprechen: anthropic, openai oder generic-chat-completion-api. Im Fehlerbehebungsabschnitt von Factory wird ein Tippfehler an dieser Stelle als Ursache für den Fehler "Invalid provider" aufgeführt.
  4. Führe in der CLI /model aus. Deine Einträge erscheinen unterhalb der Factory-eigenen Modelle in einem separaten Abschnitt Benutzerdefinierte Modelle, gekennzeichnet mit dem von dir festgelegten displayName. Factory überwacht die Einstellungsdatei, daher genügt es, sie zu speichern – ein Neustart ist nicht erforderlich.
  5. Gib dem Modell eine Aufgabe, bei der es eine Datei liest und bearbeitet, statt es nur zu begrüßen. Droid setzt bei fast allem, was es tut, auf Tool-Aufrufe; mit einem einfachen Chat-Durchlauf lässt sich genau dieser Teil nicht überprüfen. Führe anschließend /cost aus. Dort gibt Factory die Cache-Trefferraten an. Kunavo stellt die cache_control-Marker von Anthropic nativ bereit. Factory weist selbst darauf hin, dass das Caching beim generischen Chat-Completions-Provider „je nach Provider unterschiedlich ist und nicht garantiert werden kann“.

Abgeglichen mit Die Seite „Benutzerdefinierte Modelle (BYOK)“ von Factory 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 der Kostenleitfaden von Factory Droid.

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 Factory Droid.

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/messages \
  -H "Authorization: Bearer sk-kn-..." \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'

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 Factory Droid hineinpasst
claude-sonnet-5$1.40 / $7.00das Standard-Arbeitsmodell – gehört in den Eintrag provider: "anthropic"
claude-opus-5$3.50 / $17.50eine Änderung planen, bei der ein Fehler teuer wäre; derselbe Anthropic-Eintrag
claude-haiku-4-5$0.70 / $3.50günstige Turns und Dateisichtung, bei denen das Volumen dominiert; derselbe Anthropic-Eintrag
gpt-5-6-sol$2.00 / $12.00eine zweite Einschätzung aus einer anderen Modellfamilie – dafür ist der Eintrag generic-chat-completion-api erforderlich
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.

Was ein benutzerdefiniertes Modell in Droid nicht erreicht

Drei Einschränkungen gehen aus den eigenen Seiten von Factory hervor. Jede davon verändert, was du von der obigen Konfiguration erwarten solltest, nicht aber, ob sie funktioniert.

  • Nur lokal verfügbare Oberflächen. Auf der BYOK-Seite erklärt Factory, dass benutzerdefinierte Modelle in der Droid-CLI und der Desktop-App verfügbar sind, die deine lokale settings.json lesen, und dass sie „nicht auf den gehosteten Web- oder Mobilplattformen von Factory erscheinen“. Delegierte Arbeit, die über das gehostete Produkt läuft, verwendet weiterhin Inferenz, die Factory in Rechnung stellt – unabhängig davon, welchen Schlüssel du hier konfiguriert hast.
  • Ein Administrator kann die Funktion deaktivieren. In der Dokumentation zu den Enterprise-Steuerungen führt Factory modelPolicy.allowCustomModels und allowedBaseUrls auf. Damit lässt sich BYOK für Benutzer vollständig deaktivieren oder jedes benutzerdefinierte Modell auf einen einzigen genehmigten Host festlegen. Prüfe das auf einem verwalteten Rechner, bevor du die Datei untersuchst.
  • Die Gebühr für den Tarif bleibt bestehen. Ein Schlüssel hier kommt zusätzlich hinzu und ersetzt den Tarif nicht. Was Factory über das BYOK-Kontingent hinaus berechnet und wie hoch dieses Kontingent ist, wird im Kostenleitfaden behandelt und auf dieser Seite nicht erneut hergeleitet.

Eine Falle, die du kennen solltest, bevor du eine Konfiguration von anderer Stelle kopierst: Factory lädt weiterhin die alte ~/.factory/config.json mit den snake_case-Feldern custom_models und base_url und führt sie mit settings.json zusammen. Laut Dokumentation gilt die Expansion von ${VAR_NAME} dort nicht. Ein als Platzhalter in diese Datei geschriebener Schlüssel wird wörtlich übermittelt. Verwende settings.json.

Häufig gestellte Fragen

Wie füge ich der Factory Droid eine benutzerdefinierte API-Adresse hinzu?

Bearbeite ~/.factory/settings.json (unter Windows %USERPROFILE%\.factory\settings.json) und füge ein Array customModels hinzu. Jeder Eintrag benötigt drei Pflichtfelder – model, baseUrl und provider – sowie optionale Felder, darunter displayName, apiKey, authMode, maxOutputTokens und extraHeaders. Dafür gibt es kein Einstellungsformular; die JSON-Datei ist die Schnittstelle. Factory überwacht die Datei. Nach dem Speichern führst du in der CLI /model aus; der Eintrag erscheint unter einer separaten Überschrift „Benutzerdefinierte Modelle“.

Muss die baseUrl von Factory Droid auf /v1 enden?

Das hängt vom Wert von provider ab. Factory klärt es in der Dokumentation mit der Provider-Referenztabelle statt mit einem Satz. In der Anthropic-Zeile steht https://api.anthropic.com ohne Pfad. Für provider "anthropic" wird also der reine Ursprung verwendet – bei Kunavo https://api.kunavo.com. Jeder Chat-Completions-Eintrag in der Tabelle hat einen Stamm mit /v1 (https://api.openai.com/v1, https://openrouter.ai/api/v1). Für provider "generic-chat-completion-api" wird daher https://api.kunavo.com/v1 verwendet. Droid hängt die Route selbst an. Ein /v1 im Anthropic-Eintrag ergibt deshalb /v1/v1/messages und führt zu einem 404 statt zu einem Authentifizierungsfehler.

Welchen provider-Wert sollte ich für Claude-Modelle an einem Drittanbieter-Endpunkt verwenden?

Verwende "anthropic". Factory dokumentiert drei provider-Werte, die jeweils ein Wire-Protokoll auswählen: "anthropic" für die Anthropic Messages API unter /v1/messages, "openai" für die OpenAI Responses API und "generic-chat-completion-api" für OpenAI Chat Completions. Der Wert bezeichnet das Protokoll, das der Endpunkt unterstützt, nicht den Anbieter, der dir die Nutzung in Rechnung stellt. Daher wird für ein Gateway, das auf /v1/messages antwortet, unabhängig davon, zu welchem Konto der Schlüssel gehört, "anthropic" verwendet. Factory empfiehlt, "generic-chat-completion-api" zu verwenden, sofern du nicht die offizielle API von OpenAI oder Anthropic aufrufst. Das bezieht sich jedoch auf das angebotene Protokoll. Wenn ein Endpunkt beide unterstützt, kannst du auswählen.

Warum meldet Factory Droid einen ungültigen Provider oder überspringt mein benutzerdefiniertes Modell?

Im Fehlerbehebungsabschnitt von Factory werden drei Ursachen genannt. Ein Modell, das im Auswahlmenü fehlt, weist meist auf einen JSON-Syntaxfehler in settings.json oder ein fehlendes Pflichtfeld hin – model, baseUrl oder provider. Ein Fehler „Invalid provider“ beruht auf einer falschen Schreibweise: Der Wert muss exakt anthropic, openai oder generic-chat-completion-api lauten. Ein Authentifizierungsfehler betrifft den Schlüssel oder die Basis-URL. Factory empfiehlt, zu überprüfen, ob die Basis-URL der Dokumentation des Providers entspricht. Ermittle zuerst außerhalb des Clients mit dem obigen curl-Befehl, welcher Fall vorliegt: Wenn JSON zurückkommt, sind Endpunkt und Schlüssel in Ordnung, und der Fehler steckt in der Einstellungsdatei.