Documentatie

Instellingen agentic tools

Agentic tools sturen bij elke stap bestandsinhoud, commando-output en de volledige gespreksgeschiedenis mee. Bij zo’n grote prompt kan het tientallen seconden duren voordat het eerste token binnenkomt. Geeft je app eerder op, dan telt de request toch mee maar ontvang je niets. Stel timeout, streaming, retries en contextgrootte in zoals hieronder.

Waarom dit belangrijk is

  • Requests die worden afgebroken voordat het antwoord binnen is, tellen toch mee. Zodra een request binnenkomt, begint de AI-server de hele prompt te verwerken. Breekt je app hem eerder af (timeout, stopknop, verbroken verbinding), dan zijn de verwerkingskosten al gemaakt, maar krijg je geen antwoord.
  • Enorme prompts hebben meer dan 30 seconden nodig tot het eerste token. Agentic prompts van honderden KB met duizenden berichten kunnen de standaardlimiet van veel apps (30 of 60 seconden) overschrijden voordat er ook maar één token uitkomt.
  • Streaming houdt de verbinding in leven. Met streaming aan stuurt onze server meteen de headers en daarna elke 10 seconden een keepalive-signaal terwijl hij op het antwoord wacht. Wat de verbinding nog kan afbreken, is de totale tijdslimiet van je app; zet die dus op minstens 300 seconden.
  • Kies een snel model voor grote contexten. Gebruik voor lange sessies of grote repo’s een sneller model en bewaar grote modellen voor de stappen die ze echt nodig hebben. Vergelijk ze op de pagina Prijzen.

Richtlijnen voor elke tool

Timeout
Minstens 300 seconden. Let op de eenheid: sommige tools gebruiken seconden (300), andere milliseconden (300000).
Streaming
Zet het aan. Zonder streaming stroomt er geen data tot het antwoord compleet is, waardoor proxy’s en apps sneller opgeven.
Retries
Houd ze laag (0–3). Een retry na een timeout is een nieuwe request die ook in rekening wordt gebracht. Los eerst de timeout op in plaats van meer retries in te stellen.
Context
Houd hem klein. Gebruik automatisch compacten/samenvatten, start per taak een nieuwe sessie en sluit grote mappen uit (node_modules, build, data).

Claude Code

Base URL & key
Volg de Claude Code-handleiding: ANTHROPIC_BASE_URL = https://ai.geraikita.com (zonder /v1) en ANTHROPIC_AUTH_TOKEN = je gk-key. Je kunt de variabelen in het env-blok van ~/.claude/settings.json zetten.
Timeout
API_TIMEOUT_MS (milliseconden): hoe lang elke poging op de response-headers wacht, standaard 600000 (10 minuten). Verlaag hem niet; heb je hem ooit verlaagd, zet hem dan terug op minstens 300000.
Streaming
Streamt altijd. Er is geen instelling om het uit te zetten.
Retries
CLAUDE_CODE_MAX_RETRIES, standaard 10, inclusief timeouts voordat het antwoord begint te streamen. Zet hem bij grote prompts op 2–3, zodat één stap niet steeds opnieuw in rekening wordt gebracht.
Context
/compact vat het gesprek samen, /clear begint een nieuw gesprek. Auto-compact staat standaard aan (autoCompactEnabled); een lagere CLAUDE_AUTOCOMPACT_PCT_OVERRIDE (bijv. 60) compact eerder.
~/.claude/settings.json
{
  "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
Volg de Cline-handleiding: provider OpenAI Compatible (Base URL https://ai.geraikita.com/v1) of Anthropic met Use custom base URL https://ai.geraikita.com.
Timeout
De officiële documentatie van Cline biedt geen timeout-instelling voor de providers OpenAI Compatible of Anthropic (Request Timeout geldt alleen voor Ollama). Om het eerste token snel binnen te krijgen: verklein de context en kies een sneller model voor grote contexten.
Streaming
Geen streaming-instelling in de officiële documentatie; niets te wijzigen.
Retries
Geen retry-instelling in de officiële documentatie.
Context
Auto Compact vat automatisch samen wanneer de context bijna vol is. /smol (alias /compact) vat handmatig samen, /newtask neemt een samenvatting mee naar een nieuwe taak. Stel Context Window size in bij Model Configuration, passend bij het model.

Roo Code

Base URL & key
Let op: de Roo Code-extensie is op 15 mei 2026 officieel stopgezet. Gebruik je hem nog: provider OpenAI Compatible, Base URL https://ai.geraikita.com/v1, je gk-key (hetzelfde als bij Cline).
Timeout
roo-cline.apiRequestTimeout in settings.json van VS Code, in seconden (standaard 600, bereik 0–3600, 0 = geen limiet). Ga niet onder 300.
Streaming
Zorg dat Enable streaming aangevinkt blijft in het OpenAI Compatible-profiel.
Retries
Met Auto-Approve aan worden mislukte requests automatisch opnieuw geprobeerd met oplopende vertraging; er is geen aparte schakelaar.
Context
Intelligent Context Condensing (Settings → Context): verlaag de drempel van de standaard 100% zodat condenseren eerder begint, of klik op Condense Context. Sluit grote mappen uit met .rooignore.

Kilo Code

Base URL & key
Settings → Providers → Custom provider → OpenAI Compatible, Base URL https://ai.geraikita.com/v1, je gk-key. Of gebruik het bestand ~/.config/kilo/kilo.jsonc zoals in het voorbeeld hieronder.
Timeout
options.timeout op de provider (milliseconden) dekt het wachten op headers en de eerste byte. De standaard is 300000, precies op de grens; zet hem op 600000. Zet chunkTimeout niet te laag.
Streaming
Geen streaming-instelling in de officiële documentatie; niets te wijzigen.
Retries
Geen retry-instelling in de officiële documentatie.
Context
compaction.auto (standaard true) en /compact. Je moet per model limit.context instellen (een kleiner getal compact eerder): zonder die waarde draait auto-compaction niet. Sluit grote mappen uit met .kilocodeignore of permissieregels.
~/.config/kilo/kilo.jsonc
{
  "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. De officiële documentatie van Cursor beschrijft geen eigen base URL; toont jouw Cursor-versie Override OpenAI Base URL, vul dan https://ai.geraikita.com/v1 in. Je eigen API-key werkt alleen voor chatmodellen (Tab blijft de ingebouwde modellen van Cursor gebruiken) en requests lopen via de servers van Cursor.
Timeout
Geen instelbare timeout in de officiële documentatie. In plaats daarvan: verklein de context, start per taak een nieuwe chat en kies een snel model, zodat het eerste token binnen is vóór de limiet van de app.
Streaming
Wordt door Cursor geregeld; geen instelling.
Retries
Geen retry-instelling in de officiële documentatie.
Context
Cursor vat oudere delen van het gesprek automatisch samen wanneer de context bijna vol is. Start een nieuwe chat telkens als je van taak wisselt en sluit grote bestanden uit met .cursorignore.

OpenCode

Base URL & key
Volg de OpenCode-handleiding: provider @ai-sdk/openai-compatible met baseURL https://ai.geraikita.com/v1.
Timeout
In provider.geraikita.options (milliseconden): headerTimeout (wachten op headers, standaard 300000) en chunkTimeout (tijd tussen streamchunks, standaard 300000). timeout (totale limiet) staat standaard uit; stel je hem in, gebruik dan minstens 300000.
Streaming
Streamt altijd. Er is geen instelling om het uit te zetten.
Retries
Geen retry-instelling in de officiële documentatie. Vallen requests steeds weg, los dan de timeout op en verklein de context.
Context
compaction.auto (standaard true) vat de sessie automatisch samen wanneer de context vol is. /compact vat handmatig samen, /new start een nieuwe sessie.
~/.config/opencode/opencode.json
{
  "$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 = je gk-key.
Timeout
requestOptions.timeout in seconden (standaard 7200). Gebruik minstens 300, niet 300000.
Streaming
De provider openai streamt altijd.
Retries
Geen retry-instelling in de officiële documentatie.
Context
defaultCompletionOptions.contextLength en maxTokens begrenzen de grootte van context en antwoord. Start per taak een nieuwe chat; de Continue CLI heeft /compact en /clear.
~/.continue/config.yaml
models:
  - name: Claude Sonnet 5 (Geraikita)
    provider: openai
    model: claude-sonnet-5
    apiBase: https://ai.geraikita.com/v1
    apiKey: gk-xxxxxxxx
    requestOptions:
      timeout: 600        # seconden, geen milliseconden
    defaultCompletionOptions:
      contextLength: 64000  # kleiner = geschiedenis wordt ingekort
      maxTokens: 8192

n8n

Base URL & key
OpenAI-credentials: zet Base URL op https://ai.geraikita.com/v1 en vul je gk-API-key in. Anthropic-credentials: Base URL https://ai.geraikita.com.
Timeout
Node OpenAI Chat Model → Options → Timeout (milliseconden). De standaard is 60000 (60 seconden), een veelvoorkomende oorzaak van afbreken na 60 seconden; zet minstens 300000. Ook node HTTP Request → Options → Timeout is in milliseconden. Self-hosted: zet EXECUTIONS_TIMEOUT (seconden) niet lager dan dat.
Streaming
AI Agent → Options → Enable Streaming (standaard aan; vereist een Chat Trigger of een Webhook met Response Mode Streaming). Anthropic Chat Model → Stream Responses. Het OpenAI Chat Model heeft geen streaming-optie, dus vertrouw op een voldoende lange Timeout.
Retries
OpenAI Chat Model → Options → Max Retries, standaard 2. Retries na een timeout worden ook in rekening gebracht; los eerst de Timeout op.
Context
Subnode Simple Memory → Context Window Length = hoeveel eerdere interacties worden meegestuurd. Houd het klein, bijv. 5–10.

OpenAI SDK (Python & Node.js)

Base URL & key
base_url / baseURL = https://ai.geraikita.com/v1, api_key / apiKey = je gk-key. Een basisvoorbeeld staat bij Eerste request.
Timeout
timeout: seconden in Python, milliseconden in Node.js. De SDK-standaard is 10 minuten; prima, zolang je hem niet onder 300 seconden zet.
Streaming
stream=True (Python) / stream: true (Node.js).
Retries
max_retries / maxRetries, standaard 2, inclusief het opnieuw proberen van requests met een timeout. Zet bij grote prompts 0–1.
Context
Stuur alleen de geschiedenis mee die je nodig hebt: kort oude berichten in of vat ze samen voordat je verstuurt.
from openai import OpenAI

client = OpenAI(
    base_url="https://ai.geraikita.com/v1",
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # seconden
    max_retries=1,   # retries na een timeout worden ook in rekening gebracht
)
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 (zonder /v1, de SDK voegt zelf /v1/messages toe), api_key / apiKey = je gk-key.
Timeout
timeout: seconden in Python, milliseconden in Node.js; standaard 10 minuten. De SDK weigert niet-streaming requests die naar verwachting langer dan ongeveer 10 minuten duren, dus gebruik streaming.
Streaming
client.messages.stream(...), of stream=True / stream: true bij messages.create.
Retries
max_retries / maxRetries, standaard 2. Zet bij grote prompts 0–1.
Context
Stuur alleen de geschiedenis mee die je nodig hebt; begrens max_tokens tot wat het antwoord nodig heeft.
import anthropic

client = anthropic.Anthropic(
    base_url="https://ai.geraikita.com",   # zonder /v1
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # seconden
    max_retries=1,   # retries na een timeout worden ook in rekening gebracht
)
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-... naar https://ai.geraikita.com/v1/chat/completions. Een basisvoorbeeld staat bij Eerste request.
Timeout
Zonder --max-time begrenst curl de totale duur niet. Gebruik je het wel, zet dan minstens 300 (seconden).
Streaming
"stream": true in de body, plus -N (--no-buffer) zodat antwoordchunks direct verschijnen.
Retries
--retry staat standaard op 0 en probeert ook opnieuw bij timeouts. Voeg het niet toe bij grote prompts.
Context
Je bouwt de body zelf: stuur alleen de berichten mee die je nodig hebt.
bash
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!"}]}'

Factuurvoorwaarden

Requests die aan de kant van de koper worden geannuleerd (app-timeout, stopknop, verbroken verbinding) voordat het antwoord binnen is, worden toch in rekening gebracht. Lege output wordt alleen vergoed bij problemen aan onze kant (een leeg antwoord of fout van de server, of ≥60 seconden geen output). Geldt vanaf 1 november 2026.

Algemene Voorwaarden, Artikel 10

Veelgestelde vragen

Mijn app kreeg een timeout en de output was leeg. Betaal ik toch?

Ja, als je app de request afbrak voordat het antwoord binnen was: de AI-server had je prompt al verwerkt. Dit staat in de Algemene voorwaarden en geldt vanaf 1 november 2026.

Wanneer wordt lege output vergoed?

Als het probleem aan onze kant ligt: de server geeft een leeg antwoord of een fout terug, of er komt 60 seconden of langer helemaal geen output.

Waarom niet gewoon meer retries instellen?

Elke retry is een nieuwe request. Is een te korte timeout de oorzaak, dan herhalen retries alleen de kosten zonder resultaat. Verhoog de timeout naar minstens 300 seconden en zet streaming aan.

Mijn prompt is enorm. Wat helpt het meest?

Vat samen of start een nieuwe sessie, sluit grote mappen uit en gebruik een sneller model voor grote contexten. Vergelijk modellen op de pagina Prijzen.