Agentic-Tool-Einstellungen
Agentic-Tools senden bei jedem Schritt Dateiinhalte, Befehlsausgaben und den gesamten Gesprächsverlauf. Ein so großer Prompt kann Dutzende Sekunden brauchen, bis das erste Token ankommt. Gibt deine App vorher auf, zählt der Request trotzdem, aber du bekommst nichts. Stelle Timeout, Streaming, Retries und Kontextgröße wie unten beschrieben ein.
Warum das wichtig ist
- Requests, die vor der Antwort abgebrochen werden, zählen trotzdem. Sobald ein Request eintrifft, beginnt der KI-Server, den gesamten Prompt zu verarbeiten. Bricht deine App ihn vorher ab (Timeout, Stopp-Button, Verbindungsabbruch), sind die Verarbeitungskosten bereits entstanden, aber du erhältst keine Antwort.
- Riesige Prompts brauchen mehr als 30 Sekunden bis zum ersten Token. Agentic-Prompts mit Hunderten KB und Tausenden Nachrichten können das Standardlimit vieler Apps (30 oder 60 Sekunden) überschreiten, bevor überhaupt ein Token herauskommt.
- Streaming hält die Verbindung am Leben. Mit aktivem Streaming sendet unser Server die Header sofort und danach alle 10 Sekunden ein Keepalive-Signal, während er auf die Antwort wartet. Abbrechen kann dann nur noch das Gesamt-Zeitlimit deiner App, also setze es auf mindestens 300 Sekunden.
- Wähle für große Kontexte ein schnelles Modell. Nutze für lange Sessions oder große Repos ein schnelleres Modell und hebe große Modelle für die Schritte auf, die sie wirklich brauchen. Vergleiche sie auf der Seite Preise.
Richtlinien für alle Tools
- Timeout
- Mindestens 300 Sekunden. Achte auf die Einheit: Manche Tools nutzen Sekunden (
300), andere Millisekunden (300000). - Streaming
- Schalte es ein. Ohne Streaming fließen keine Daten, bis die Antwort vollständig ist, deshalb geben Proxys und Apps früher auf.
- Retries
- Halte sie niedrig (0–3). Ein Retry nach einem Timeout ist ein neuer Request, der ebenfalls berechnet wird. Behebe zuerst den Timeout, statt die Retries zu erhöhen.
- Kontext
- Halte ihn klein. Nutze automatisches Compact/Zusammenfassen, starte pro Aufgabe eine neue Session und schließe große Ordner aus (node_modules, build, data).
Claude Code
- Base-URL & Key
- Folge der Claude-Code-Anleitung:
ANTHROPIC_BASE_URL=https://ai.geraikita.com(ohne /v1) undANTHROPIC_AUTH_TOKEN= dein gk--Key. Du kannst die Variablen in denenv-Block von~/.claude/settings.jsonschreiben. - Timeout
API_TIMEOUT_MS(Millisekunden): wie lange jeder Versuch auf die Antwort-Header wartet, Standard 600000 (10 Minuten). Nicht verringern; falls du ihn je gesenkt hast, setze ihn wieder auf mindestens300000.- Streaming
- Streamt immer. Es gibt keine Einstellung, um das abzuschalten.
- Retries
CLAUDE_CODE_MAX_RETRIES, Standard 10, auch bei Timeouts, bevor die Antwort zu streamen beginnt. Für große Prompts 2–3 setzen, damit ein Schritt nicht immer wieder berechnet wird.- Kontext
/compactfasst das Gespräch zusammen,/clearstartet ein neues. Auto-Compact ist standardmäßig an (autoCompactEnabled); ein niedrigererCLAUDE_AUTOCOMPACT_PCT_OVERRIDE(z. B. 60) komprimiert früher.
{
"env": {
"ANTHROPIC_BASE_URL": "https://ai.geraikita.com",
"ANTHROPIC_AUTH_TOKEN": "gk-xxxxxxxx",
"API_TIMEOUT_MS": "600000",
"CLAUDE_CODE_MAX_RETRIES": "3",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "60"
}
}Cline
- Base-URL & Key
- Folge der Cline-Anleitung: Provider OpenAI Compatible (Base URL
https://ai.geraikita.com/v1) oder Anthropic mit Use custom base URLhttps://ai.geraikita.com. - Timeout
- Die offizielle Doku von Cline bietet für die Provider OpenAI Compatible und Anthropic keine Timeout-Einstellung (Request Timeout gilt nur für Ollama). Damit das erste Token schnell kommt: Kontext verkleinern und für große Kontexte ein schnelleres Modell wählen.
- Streaming
- Keine Streaming-Einstellung in der offiziellen Doku; nichts zu ändern.
- Retries
- Keine Retry-Einstellung in der offiziellen Doku.
- Kontext
- Auto Compact fasst automatisch zusammen, wenn der Kontext fast voll ist.
/smol(Alias/compact) fasst manuell zusammen,/newtaskübernimmt eine Zusammenfassung in eine neue Aufgabe. Stelle Context Window size in Model Configuration passend zum Modell ein.
Roo Code
- Base-URL & Key
- Hinweis: Die Roo-Code-Erweiterung wurde am 15. Mai 2026 offiziell eingestellt. Falls du sie noch nutzt: Provider OpenAI Compatible, Base URL
https://ai.geraikita.com/v1, dein gk--Key (wie bei Cline). - Timeout
roo-cline.apiRequestTimeoutin der settings.json von VS Code, in Sekunden (Standard 600, Bereich 0–3600, 0 = kein Limit). Nicht unter300gehen.- Streaming
- Achte darauf, dass Enable streaming im OpenAI-Compatible-Profil aktiviert bleibt.
- Retries
- Mit aktivem Auto-Approve werden fehlgeschlagene Requests automatisch mit wachsenden Pausen wiederholt; einen eigenen Schalter gibt es nicht.
- Kontext
- Intelligent Context Condensing (Settings → Context): Senke den Schwellenwert vom Standard 100 %, damit das Verdichten früher beginnt, oder drücke Condense Context. Schließe große Ordner mit
.rooignoreaus.
Kilo Code
- Base-URL & Key
- Settings → Providers → Custom provider → OpenAI Compatible, Base URL
https://ai.geraikita.com/v1, dein gk--Key. Oder nutze die Datei~/.config/kilo/kilo.jsoncwie im Beispiel unten. - Timeout
options.timeoutbeim Provider (Millisekunden) deckt das Warten auf Header und das erste Byte ab. Der Standard ist 300000, genau an der Grenze; setze600000. SetzechunkTimeoutnicht zu niedrig.- Streaming
- Keine Streaming-Einstellung in der offiziellen Doku; nichts zu ändern.
- Retries
- Keine Retry-Einstellung in der offiziellen Doku.
- Kontext
compaction.auto(Standardtrue) und/compact. Du musstlimit.contextpro Modell setzen (eine kleinere Zahl komprimiert früher): Ohne diesen Wert läuft die automatische Komprimierung nicht. Schließe große Ordner mit.kilocodeignoreoder Berechtigungsregeln aus.
{
"provider": {
"geraikita": {
"npm": "@ai-sdk/openai-compatible",
"name": "Geraikita AI",
"options": {
"baseURL": "https://ai.geraikita.com/v1",
"apiKey": "gk-xxxxxxxx",
"timeout": 600000
},
"models": {
"claude-sonnet-5": {
"name": "Claude Sonnet 5",
"limit": { "context": 128000, "output": 16000 }
}
}
}
},
"compaction": { "auto": true }
}Cursor
- Base-URL & Key
- Cursor Settings → Models → OpenAI API Key. Die offizielle Doku von Cursor beschreibt keine eigene Base-URL; wenn deine Cursor-Version Override OpenAI Base URL anzeigt, trage
https://ai.geraikita.com/v1ein. Dein eigener API-Key funktioniert nur für Chat-Modelle (Tab nutzt weiter die eingebauten Modelle von Cursor), und Requests laufen über die Server von Cursor. - Timeout
- Keine einstellbare Timeout-Option in der offiziellen Doku. Stattdessen: Kontext verkleinern, pro Aufgabe einen neuen Chat starten und ein schnelles Modell wählen, damit das erste Token vor dem Limit der App ankommt.
- Streaming
- Wird von Cursor gesteuert; keine Einstellung.
- Retries
- Keine Retry-Einstellung in der offiziellen Doku.
- Kontext
- Cursor fasst ältere Teile des Gesprächs automatisch zusammen, wenn der Kontext fast voll ist. Starte bei jedem Aufgabenwechsel einen neuen Chat und schließe große Dateien mit
.cursorignoreaus.
OpenCode
- Base-URL & Key
- Folge der OpenCode-Anleitung: Provider
@ai-sdk/openai-compatiblemitbaseURLhttps://ai.geraikita.com/v1. - Timeout
- In
provider.geraikita.options(Millisekunden):headerTimeout(Warten auf Header, Standard 300000) undchunkTimeout(Abstand zwischen Stream-Chunks, Standard 300000).timeout(Gesamtlimit) ist standardmäßig aus; wenn du es setzt, nimm mindestens300000. - Streaming
- Streamt immer. Es gibt keine Einstellung, um das abzuschalten.
- Retries
- Keine Retry-Einstellung in der offiziellen Doku. Wenn Requests ständig abbrechen, behebe den Timeout und verkleinere den Kontext.
- Kontext
compaction.auto(Standardtrue) fasst die Session automatisch zusammen, wenn der Kontext voll ist./compactfasst manuell zusammen,/newstartet eine neue Session.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"geraikita": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://ai.geraikita.com/v1",
"apiKey": "{env:GERAIKITA_API_KEY}",
"headerTimeout": 300000,
"chunkTimeout": 300000
}
}
},
"compaction": { "auto": true }
}Continue
- Base-URL & Key
- In
config.yaml:provider: openai,apiBase: https://ai.geraikita.com/v1,apiKey= dein gk--Key. - Timeout
requestOptions.timeoutin Sekunden (Standard 7200). Nimm mindestens300, nicht 300000.- Streaming
- Der Provider
openaistreamt immer. - Retries
- Keine Retry-Einstellung in der offiziellen Doku.
- Kontext
defaultCompletionOptions.contextLengthundmaxTokensbegrenzen Kontext- und Antwortgröße. Starte pro Aufgabe einen neuen Chat; die Continue CLI hat/compactund/clear.
models:
- name: Claude Sonnet 5 (Geraikita)
provider: openai
model: claude-sonnet-5
apiBase: https://ai.geraikita.com/v1
apiKey: gk-xxxxxxxx
requestOptions:
timeout: 600 # Sekunden, nicht Millisekunden
defaultCompletionOptions:
contextLength: 64000 # kleiner = Verlauf wird gekürzt
maxTokens: 8192n8n
- Base-URL & Key
- OpenAI-Zugangsdaten: Setze Base URL auf
https://ai.geraikita.com/v1und deinen gk--API-Key. Anthropic-Zugangsdaten: Base URLhttps://ai.geraikita.com. - Timeout
- Node OpenAI Chat Model → Options → Timeout (Millisekunden). Der Standard ist 60000 (60 Sekunden), eine häufige Ursache für Abbrüche nach 60 Sekunden; setze mindestens
300000. Auch beim Node HTTP Request → Options → Timeout gilt Millisekunden. Self-hosted: SetzeEXECUTIONS_TIMEOUT(Sekunden) nicht niedriger. - Streaming
- AI Agent → Options → Enable Streaming (standardmäßig an; braucht einen Chat Trigger oder einen Webhook mit Response Mode Streaming). Anthropic Chat Model → Stream Responses. Das OpenAI Chat Model hat keine Streaming-Option, verlass dich also auf einen ausreichend langen Timeout.
- Retries
- OpenAI Chat Model → Options → Max Retries, Standard 2. Retries nach einem Timeout werden ebenfalls berechnet; behebe zuerst den Timeout.
- Kontext
- Sub-Node Simple Memory → Context Window Length = wie viele frühere Interaktionen mitgesendet werden. Halte den Wert klein, z. B. 5–10.
OpenAI SDK (Python & Node.js)
- Base-URL & Key
base_url/baseURL=https://ai.geraikita.com/v1,api_key/apiKey= dein gk--Key. Ein einfaches Beispiel findest du unter Erster Request.- Timeout
timeout: Sekunden in Python, Millisekunden in Node.js. Der SDK-Standard ist 10 Minuten, das passt, solange du ihn nicht unter 300 Sekunden senkst.- Streaming
stream=True(Python) /stream: true(Node.js).- Retries
max_retries/maxRetries, Standard 2, inklusive Wiederholung von Requests mit Timeout. Für große Prompts 0–1 setzen.- Kontext
- Sende nur den nötigen Verlauf: Kürze alte Nachrichten oder fasse sie vor dem Senden zusammen.
from openai import OpenAI
client = OpenAI(
base_url="https://ai.geraikita.com/v1",
api_key="gk-xxxxxxxx",
timeout=600.0, # Sekunden
max_retries=1, # Retries nach Timeout werden auch berechnet
)
stream = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Halo!"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Anthropic SDK (Python & Node.js)
- Base-URL & Key
base_url/baseURL=https://ai.geraikita.com(ohne /v1, das SDK hängt /v1/messages selbst an),api_key/apiKey= dein gk--Key.- Timeout
timeout: Sekunden in Python, Millisekunden in Node.js; Standard 10 Minuten. Das SDK lehnt Nicht-Streaming-Requests ab, die voraussichtlich länger als etwa 10 Minuten dauern, also nutze Streaming.- Streaming
client.messages.stream(...)oderstream=True/stream: truebeimessages.create.- Retries
max_retries/maxRetries, Standard 2. Für große Prompts 0–1 setzen.- Kontext
- Sende nur den nötigen Verlauf; begrenze
max_tokensauf das, was die Antwort braucht.
import anthropic
client = anthropic.Anthropic(
base_url="https://ai.geraikita.com", # ohne /v1
api_key="gk-xxxxxxxx",
timeout=600.0, # Sekunden
max_retries=1, # Retries nach Timeout werden auch berechnet
)
with client.messages.stream(
model="claude-sonnet-5",
max_tokens=4096,
messages=[{"role": "user", "content": "Halo!"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)curl
- Base-URL & Key
- Header
Authorization: Bearer gk-...anhttps://ai.geraikita.com/v1/chat/completions. Ein einfaches Beispiel findest du unter Erster Request. - Timeout
- Ohne
--max-timebegrenzt curl die Gesamtdauer nicht. Wenn du es nutzt, setze mindestens300(Sekunden). - Streaming
"stream": trueim Body, dazu-N(--no-buffer), damit Antwort-Chunks sofort erscheinen.- Retries
--retryist standardmäßig 0 und wiederholt auch bei Timeouts. Für große Prompts nicht hinzufügen.- Kontext
- Du baust den Body selbst: Sende nur die nötigen Nachrichten.
curl https://ai.geraikita.com/v1/chat/completions \
--max-time 600 -N \
-H "Authorization: Bearer gk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","stream":true,"messages":[{"role":"user","content":"Halo!"}]}'Abrechnungsbedingungen
Requests, die auf Käuferseite abgebrochen werden (App-Timeout, Stopp-Button, Verbindungsabbruch), bevor die Antwort ankommt, werden trotzdem berechnet. Leere Ausgaben werden nur bei Problemen auf unserer Seite erstattet (leere Antwort oder Fehler vom Server oder keine Ausgabe für ≥60 Sekunden). Gilt ab 1. November 2026.
Nutzungsbedingungen, Artikel 10FAQ
Meine App hatte einen Timeout und die Ausgabe war leer. Wird mir trotzdem etwas berechnet?
Ja, wenn deine App abgebrochen hat, bevor die Antwort ankam: Der KI-Server hatte deinen Prompt bereits verarbeitet. Das ist in den Allgemeinen Geschäftsbedingungen geregelt und gilt ab 1. November 2026.
Wann wird eine leere Ausgabe erstattet?
Wenn das Problem auf unserer Seite liegt: Der Server liefert eine leere Antwort oder einen Fehler, oder es gibt 60 Sekunden oder länger überhaupt keine Ausgabe.
Warum nicht einfach die Retries erhöhen?
Jeder Retry ist ein neuer Request. Ist ein zu kurzer Timeout die Ursache, wiederholen Retries nur die Kosten ohne Ergebnis. Erhöhe den Timeout auf mindestens 300 Sekunden und schalte Streaming ein.
Mein Prompt ist riesig. Was hilft am meisten?
Zusammenfassen oder eine neue Session starten, große Ordner ausschließen und für große Kontexte ein schnelleres Modell nutzen. Vergleiche die Modelle auf der Seite Preise.