Documentation

Réglages des outils agentiques

Les outils agentiques envoient à chaque étape le contenu des fichiers, la sortie des commandes et tout l’historique de la conversation. Un prompt aussi volumineux peut mettre des dizaines de secondes avant que le premier token arrive. Si votre application abandonne avant, la requête est quand même comptée, mais vous ne recevez rien. Réglez le timeout, le streaming, les retries et la taille du contexte comme indiqué ci-dessous.

Pourquoi c’est important

  • Les requêtes coupées avant l’arrivée de la réponse sont quand même comptées. Dès qu’une requête arrive, le serveur IA commence à traiter tout le prompt. Si votre application l’abandonne avant (timeout, bouton stop, connexion perdue), le coût du traitement est déjà engagé, mais vous n’obtenez aucune réponse.
  • Les prompts énormes demandent plus de 30 secondes avant le premier token. Des prompts agentiques de plusieurs centaines de Ko avec des milliers de messages peuvent dépasser la limite par défaut de nombreuses applications (30 ou 60 secondes) avant qu’un seul token ne sorte.
  • Le streaming maintient la connexion en vie. Avec le streaming activé, notre serveur envoie immédiatement les en-têtes, puis un signal keepalive toutes les 10 secondes en attendant la réponse. Ce qui peut encore couper, c’est la limite de temps totale de votre application : réglez-la sur au moins 300 secondes.
  • Choisissez un modèle rapide pour les grands contextes. Pour les longues sessions ou les gros dépôts, utilisez un modèle plus rapide et gardez les grands modèles pour les étapes qui en ont vraiment besoin. Comparez-les sur la page Tarifs.

Consignes pour tous les outils

Timeout
Au moins 300 secondes. Attention à l’unité : certains outils utilisent des secondes (300), d’autres des millisecondes (300000).
Streaming
Activez-le. Sans streaming, aucune donnée ne circule tant que la réponse n’est pas complète, donc les proxys et les applications abandonnent plus tôt.
Retries
Gardez-les bas (0–3). Un retry après un timeout est une nouvelle requête, elle aussi facturée. Corrigez d’abord le timeout au lieu d’augmenter les retries.
Contexte
Gardez-le petit. Utilisez le compact/résumé automatique, démarrez une nouvelle session par tâche et excluez les gros dossiers (node_modules, build, data).

Claude Code

URL de base et clé
Suivez le guide Claude Code : ANTHROPIC_BASE_URL = https://ai.geraikita.com (sans /v1) et ANTHROPIC_AUTH_TOKEN = votre clé gk-. Vous pouvez placer les variables dans le bloc env de ~/.claude/settings.json.
Timeout
API_TIMEOUT_MS (millisecondes) : durée pendant laquelle chaque tentative attend les en-têtes de réponse, 600000 par défaut (10 minutes). Ne le baissez pas ; si vous l’avez déjà réduit, remettez-le à au moins 300000.
Streaming
Toujours en streaming. Aucun réglage ne permet de le désactiver.
Retries
CLAUDE_CODE_MAX_RETRIES, 10 par défaut, y compris les timeouts avant le début du streaming de la réponse. Pour les gros prompts, réglez 2–3 afin qu’une même étape ne soit pas facturée encore et encore.
Contexte
/compact résume la conversation, /clear en démarre une nouvelle. L’auto-compact est activé par défaut (autoCompactEnabled) ; un CLAUDE_AUTOCOMPACT_PCT_OVERRIDE plus bas (p. ex. 60) compacte plus tôt.
~/.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

URL de base et clé
Suivez le guide Cline : provider OpenAI Compatible (Base URL https://ai.geraikita.com/v1) ou Anthropic avec Use custom base URL https://ai.geraikita.com.
Timeout
La documentation officielle de Cline ne propose aucun réglage de timeout pour les providers OpenAI Compatible ou Anthropic (Request Timeout concerne uniquement Ollama). Pour obtenir rapidement le premier token : réduisez le contexte et choisissez un modèle plus rapide pour les grands contextes.
Streaming
Aucun réglage de streaming dans la documentation officielle ; rien à modifier.
Retries
Aucun réglage de retry dans la documentation officielle.
Contexte
Auto Compact résume automatiquement quand le contexte est presque plein. /smol (alias /compact) résume manuellement, /newtask reporte un résumé dans une nouvelle tâche. Réglez Context Window size dans Model Configuration selon le modèle.

Roo Code

URL de base et clé
Remarque : l’extension Roo Code a été officiellement arrêtée le 15 mai 2026. Si vous l’utilisez encore : provider OpenAI Compatible, Base URL https://ai.geraikita.com/v1, votre clé gk- (comme pour Cline).
Timeout
roo-cline.apiRequestTimeout dans le settings.json de VS Code, en secondes (600 par défaut, plage 0–3600, 0 = sans limite). Ne descendez pas sous 300.
Streaming
Vérifiez que Enable streaming reste coché dans le profil OpenAI Compatible.
Retries
Avec Auto-Approve activé, les requêtes échouées sont relancées automatiquement avec des délais croissants ; il n’y a pas d’option distincte.
Contexte
Intelligent Context Condensing (Settings → Context) : baissez le seuil par rapport aux 100 % par défaut pour que la condensation démarre plus tôt, ou cliquez sur Condense Context. Excluez les gros dossiers avec .rooignore.

Kilo Code

URL de base et clé
Settings → Providers → Custom provider → OpenAI Compatible, Base URL https://ai.geraikita.com/v1, votre clé gk-. Ou utilisez le fichier ~/.config/kilo/kilo.jsonc comme dans l’exemple ci-dessous.
Timeout
options.timeout sur le provider (millisecondes) couvre l’attente des en-têtes et du premier octet. La valeur par défaut est 300000, pile à la limite ; réglez 600000. Ne réglez pas chunkTimeout trop bas.
Streaming
Aucun réglage de streaming dans la documentation officielle ; rien à modifier.
Retries
Aucun réglage de retry dans la documentation officielle.
Contexte
compaction.auto (true par défaut) et /compact. Vous devez définir limit.context pour chaque modèle (un nombre plus petit compacte plus tôt) : sans lui, la compaction automatique ne s’exécute pas. Excluez les gros dossiers avec .kilocodeignore ou des règles de permission.
~/.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

URL de base et clé
Cursor Settings → Models → OpenAI API key. La documentation officielle de Cursor ne décrit pas d’URL de base personnalisée ; si votre version de Cursor affiche Override OpenAI Base URL, saisissez https://ai.geraikita.com/v1. Votre propre clé API ne fonctionne que pour les modèles de chat (Tab conserve les modèles intégrés de Cursor), et les requêtes passent par les serveurs de Cursor.
Timeout
Aucun réglage de timeout modifiable dans la documentation officielle. À la place : réduisez le contexte, démarrez un nouveau chat par tâche et choisissez un modèle rapide pour que le premier token arrive avant la limite de l’application.
Streaming
Géré par Cursor ; aucun réglage.
Retries
Aucun réglage de retry dans la documentation officielle.
Contexte
Cursor résume automatiquement les parties anciennes de la conversation quand le contexte est presque plein. Démarrez un nouveau chat à chaque changement de tâche et excluez les gros fichiers avec .cursorignore.

OpenCode

URL de base et clé
Suivez le guide OpenCode : provider @ai-sdk/openai-compatible avec baseURL https://ai.geraikita.com/v1.
Timeout
Dans provider.geraikita.options (millisecondes) : headerTimeout (attente des en-têtes, 300000 par défaut) et chunkTimeout (écart entre les chunks du stream, 300000 par défaut). timeout (limite globale) est désactivé par défaut ; si vous le définissez, utilisez au moins 300000.
Streaming
Toujours en streaming. Aucun réglage ne permet de le désactiver.
Retries
Aucun réglage de retry dans la documentation officielle. Si les requêtes continuent de tomber, corrigez le timeout et réduisez le contexte.
Contexte
compaction.auto (true par défaut) résume automatiquement la session quand le contexte est plein. /compact résume manuellement, /new démarre une nouvelle session.
~/.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

URL de base et clé
Dans config.yaml : provider: openai, apiBase: https://ai.geraikita.com/v1, apiKey = votre clé gk-.
Timeout
requestOptions.timeout en secondes (7200 par défaut). Utilisez au moins 300, pas 300000.
Streaming
Le provider openai est toujours en streaming.
Retries
Aucun réglage de retry dans la documentation officielle.
Contexte
defaultCompletionOptions.contextLength et maxTokens plafonnent la taille du contexte et de la réponse. Démarrez un nouveau chat par tâche ; la CLI Continue dispose de /compact et /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        # secondes, pas millisecondes
    defaultCompletionOptions:
      contextLength: 64000  # plus petit = historique tronqué
      maxTokens: 8192

n8n

URL de base et clé
Identifiants OpenAI : réglez Base URL sur https://ai.geraikita.com/v1 et votre clé API gk-. Identifiants Anthropic : Base URL https://ai.geraikita.com.
Timeout
Nœud OpenAI Chat Model → Options → Timeout (millisecondes). La valeur par défaut est 60000 (60 secondes), cause fréquente de coupures à 60 secondes ; réglez au moins 300000. Le nœud HTTP Request → Options → Timeout est lui aussi en millisecondes. En auto-hébergement : ne réglez pas EXECUTIONS_TIMEOUT (secondes) plus bas que cela.
Streaming
AI Agent → Options → Enable Streaming (activé par défaut ; nécessite un Chat Trigger ou un Webhook avec Response Mode Streaming). Anthropic Chat Model → Stream Responses. L’OpenAI Chat Model n’a pas d’option de streaming : comptez donc sur un Timeout suffisamment long.
Retries
OpenAI Chat Model → Options → Max Retries, 2 par défaut. Les retries après un timeout sont facturés aussi ; corrigez d’abord le Timeout.
Contexte
Sous-nœud Simple Memory → Context Window Length = nombre d’interactions passées envoyées. Gardez-le petit, p. ex. 5–10.

SDK OpenAI (Python et Node.js)

URL de base et clé
base_url / baseURL = https://ai.geraikita.com/v1, api_key / apiKey = votre clé gk-. Un exemple de base se trouve dans Première requête.
Timeout
timeout : secondes en Python, millisecondes en Node.js. La valeur par défaut du SDK est de 10 minutes, ce qui convient tant que vous ne la baissez pas sous 300 secondes.
Streaming
stream=True (Python) / stream: true (Node.js).
Retries
max_retries / maxRetries, 2 par défaut, y compris la relance des requêtes en timeout. Pour les gros prompts, réglez 0–1.
Contexte
N’envoyez que l’historique nécessaire : supprimez les anciens messages ou résumez-les avant l’envoi.
from openai import OpenAI

client = OpenAI(
    base_url="https://ai.geraikita.com/v1",
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # secondes
    max_retries=1,   # les retries après timeout sont aussi facturés
)
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)

SDK Anthropic (Python et Node.js)

URL de base et clé
base_url / baseURL = https://ai.geraikita.com (sans /v1, le SDK ajoute lui-même /v1/messages), api_key / apiKey = votre clé gk-.
Timeout
timeout : secondes en Python, millisecondes en Node.js ; 10 minutes par défaut. Le SDK refuse les requêtes sans streaming censées durer plus d’environ 10 minutes, utilisez donc le streaming.
Streaming
client.messages.stream(...), ou stream=True / stream: true sur messages.create.
Retries
max_retries / maxRetries, 2 par défaut. Pour les gros prompts, réglez 0–1.
Contexte
N’envoyez que l’historique nécessaire ; limitez max_tokens à ce dont la réponse a besoin.
import anthropic

client = anthropic.Anthropic(
    base_url="https://ai.geraikita.com",   # sans /v1
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # secondes
    max_retries=1,   # les retries après timeout sont aussi facturés
)
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

URL de base et clé
En-tête Authorization: Bearer gk-... vers https://ai.geraikita.com/v1/chat/completions. Un exemple de base se trouve dans Première requête.
Timeout
Sans --max-time, curl ne limite pas la durée totale. Si vous l’utilisez, réglez au moins 300 (secondes).
Streaming
"stream": true dans le body, plus -N (--no-buffer) pour que les chunks de réponse s’affichent immédiatement.
Retries
--retry vaut 0 par défaut et relance aussi en cas de timeout. Ne l’ajoutez pas pour les gros prompts.
Contexte
Vous construisez le body vous-même : n’envoyez que les messages nécessaires.
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!"}]}'

Conditions de facturation

Les requêtes annulées côté acheteur (timeout de l’application, bouton stop, connexion interrompue) avant l’arrivée de la réponse restent facturées. Une sortie vide n’est compensée qu’en cas de problème de notre côté (réponse vide ou erreur du serveur, ou aucune sortie pendant ≥60 secondes). Applicable à partir du 1er novembre 2026.

Conditions Générales, Article 10

FAQ

Mon application a expiré (timeout) et la sortie était vide. Suis-je quand même facturé ?

Oui, si votre application a coupé avant l’arrivée de la réponse : le serveur IA avait déjà traité votre prompt. C’est prévu dans les Conditions générales et s’applique à partir du 1er novembre 2026.

Quand une sortie vide est-elle compensée ?

Quand le problème vient de notre côté : le serveur renvoie une réponse vide ou une erreur, ou il n’y a aucune sortie pendant 60 secondes ou plus.

Pourquoi ne pas simplement augmenter les retries ?

Chaque retry est une nouvelle requête. Si la cause est un timeout trop court, les retries ne font que répéter la facturation sans résultat. Augmentez le timeout à au moins 300 secondes et activez le streaming.

Mon prompt est énorme. Qu’est-ce qui aide le plus ?

Résumer ou démarrer une nouvelle session, exclure les gros dossiers et utiliser un modèle plus rapide pour les grands contextes. Comparez les modèles sur la page Tarifs.