Documentação

Configurações de ferramentas agênticas

Ferramentas agênticas enviam, a cada passo, o conteúdo dos arquivos, a saída dos comandos e todo o histórico da conversa. Um prompt desse tamanho pode levar dezenas de segundos até o primeiro token chegar. Se o seu app desistir antes, a requisição conta mesmo assim, mas você não recebe nada. Configure timeout, streaming, retries e tamanho do contexto como mostrado abaixo.

Por que isso importa

  • Requisições cortadas antes de a resposta chegar contam mesmo assim. Assim que uma requisição chega, o servidor de IA começa a processar o prompt inteiro. Se o seu app a abandonar antes (timeout, botão de parar, conexão perdida), o custo do processamento já foi gerado, mas você não recebe resposta.
  • Prompts enormes precisam de mais de 30 segundos até o primeiro token. Prompts agênticos de centenas de KB com milhares de mensagens podem ultrapassar o limite padrão de muitos apps (30 ou 60 segundos) antes de sair um único token.
  • O streaming mantém a conexão viva. Com o streaming ativado, nosso servidor envia os headers na hora e depois um sinal de keepalive a cada 10 segundos enquanto espera a resposta. O que ainda pode cortá-la é o limite de tempo total do seu app, então defina-o como pelo menos 300 segundos.
  • Escolha um modelo rápido para contextos grandes. Para sessões longas ou repositórios grandes, use um modelo mais rápido e deixe os modelos grandes para os passos que realmente precisam deles. Compare-os na página de Preços.

Diretrizes para todas as ferramentas

Timeout
Pelo menos 300 segundos. Atenção à unidade: algumas ferramentas usam segundos (300), outras milissegundos (300000).
Streaming
Ative-o. Sem streaming, nenhum dado trafega até a resposta estar completa, então proxies e apps desistem mais cedo.
Retries
Mantenha-os baixos (0–3). Um retry depois de um timeout é uma nova requisição, que também é cobrada. Corrija primeiro o timeout em vez de aumentar os retries.
Contexto
Mantenha-o pequeno. Use o compact/resumo automático, inicie uma nova sessão por tarefa e exclua pastas grandes (node_modules, build, data).

Claude Code

Base URL e chave
Siga o guia do Claude Code: ANTHROPIC_BASE_URL = https://ai.geraikita.com (sem /v1) e ANTHROPIC_AUTH_TOKEN = sua chave gk-. Você pode colocar as variáveis no bloco env do ~/.claude/settings.json.
Timeout
API_TIMEOUT_MS (milissegundos): quanto tempo cada tentativa espera pelos headers da resposta, padrão 600000 (10 minutos). Não diminua; se você já o reduziu, volte para pelo menos 300000.
Streaming
Sempre usa streaming. Não há configuração para desativá-lo.
Retries
CLAUDE_CODE_MAX_RETRIES, padrão 10, incluindo timeouts antes de a resposta começar o streaming. Para prompts grandes, defina 2–3 para que um mesmo passo não seja cobrado várias vezes.
Contexto
/compact resume a conversa, /clear inicia uma nova. O auto-compact vem ativado por padrão (autoCompactEnabled); um CLAUDE_AUTOCOMPACT_PCT_OVERRIDE mais baixo (ex.: 60) compacta mais cedo.
~/.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 e chave
Siga o guia do Cline: provider OpenAI Compatible (Base URL https://ai.geraikita.com/v1) ou Anthropic com Use custom base URL https://ai.geraikita.com.
Timeout
A documentação oficial do Cline não oferece configuração de timeout para os providers OpenAI Compatible ou Anthropic (Request Timeout é só para o Ollama). Para o primeiro token sair rápido: reduza o contexto e escolha um modelo mais rápido para contextos grandes.
Streaming
Nenhuma configuração de streaming na documentação oficial; nada a alterar.
Retries
Nenhuma configuração de retry na documentação oficial.
Contexto
Auto Compact resume automaticamente quando o contexto está quase cheio. /smol (alias /compact) resume manualmente, /newtask leva um resumo para uma nova tarefa. Ajuste Context Window size em Model Configuration de acordo com o modelo.

Roo Code

Base URL e chave
Observação: a extensão Roo Code foi oficialmente encerrada em 15 de maio de 2026. Se você ainda a usa: provider OpenAI Compatible, Base URL https://ai.geraikita.com/v1, sua chave gk- (igual ao Cline).
Timeout
roo-cline.apiRequestTimeout no settings.json do VS Code, em segundos (padrão 600, intervalo 0–3600, 0 = sem limite). Não use menos que 300.
Streaming
Garanta que Enable streaming continue marcado no perfil OpenAI Compatible.
Retries
Com o Auto-Approve ativado, requisições com falha são repetidas automaticamente com intervalos crescentes; não há um botão separado.
Contexto
Intelligent Context Condensing (Settings → Context): reduza o limite a partir dos 100% padrão para a condensação começar mais cedo, ou clique em Condense Context. Exclua pastas grandes com .rooignore.

Kilo Code

Base URL e chave
Settings → Providers → Custom provider → OpenAI Compatible, Base URL https://ai.geraikita.com/v1, sua chave gk-. Ou use o arquivo ~/.config/kilo/kilo.jsonc como no exemplo abaixo.
Timeout
options.timeout no provider (milissegundos) cobre a espera pelos headers e pelo primeiro byte. O padrão é 300000, bem no limite; defina 600000. Não defina chunkTimeout baixo demais.
Streaming
Nenhuma configuração de streaming na documentação oficial; nada a alterar.
Retries
Nenhuma configuração de retry na documentação oficial.
Contexto
compaction.auto (padrão true) e /compact. Você precisa definir limit.context por modelo (um número menor compacta mais cedo): sem ele, a compactação automática não roda. Exclua pastas grandes com .kilocodeignore ou regras de permissão.
~/.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 e chave
Cursor Settings → Models → OpenAI API key. A documentação oficial do Cursor não descreve uma base URL personalizada; se a sua versão do Cursor mostrar Override OpenAI Base URL, informe https://ai.geraikita.com/v1. Sua própria chave de API só funciona com modelos de chat (o Tab continua com os modelos nativos do Cursor), e as requisições passam pelos servidores do Cursor.
Timeout
Nenhuma configuração de timeout ajustável na documentação oficial. Em vez disso: reduza o contexto, inicie um novo chat por tarefa e escolha um modelo rápido para o primeiro token chegar antes do limite do app.
Streaming
Gerenciado pelo Cursor; sem configuração.
Retries
Nenhuma configuração de retry na documentação oficial.
Contexto
O Cursor resume automaticamente as partes antigas da conversa quando o contexto está quase cheio. Inicie um novo chat sempre que trocar de tarefa e exclua arquivos grandes com .cursorignore.

OpenCode

Base URL e chave
Siga o guia do OpenCode: provider @ai-sdk/openai-compatible com baseURL https://ai.geraikita.com/v1.
Timeout
Em provider.geraikita.options (milissegundos): headerTimeout (espera pelos headers, padrão 300000) e chunkTimeout (intervalo entre chunks do stream, padrão 300000). timeout (limite geral) vem desativado por padrão; se você defini-lo, use pelo menos 300000.
Streaming
Sempre usa streaming. Não há configuração para desativá-lo.
Retries
Nenhuma configuração de retry na documentação oficial. Se as requisições continuarem caindo, corrija o timeout e reduza o contexto.
Contexto
compaction.auto (padrão true) resume a sessão automaticamente quando o contexto enche. /compact resume manualmente, /new inicia uma nova sessão.
~/.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 e chave
No config.yaml: provider: openai, apiBase: https://ai.geraikita.com/v1, apiKey = sua chave gk-.
Timeout
requestOptions.timeout em segundos (padrão 7200). Use pelo menos 300, não 300000.
Streaming
O provider openai sempre usa streaming.
Retries
Nenhuma configuração de retry na documentação oficial.
Contexto
defaultCompletionOptions.contextLength e maxTokens limitam o tamanho do contexto e da resposta. Inicie um novo chat por tarefa; a CLI do Continue tem /compact e /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        # segundos, não milissegundos
    defaultCompletionOptions:
      contextLength: 64000  # menor = histórico é cortado
      maxTokens: 8192

n8n

Base URL e chave
Credenciais OpenAI: defina Base URL como https://ai.geraikita.com/v1 e sua chave de API gk-. Credenciais Anthropic: Base URL https://ai.geraikita.com.
Timeout
Nó OpenAI Chat Model → Options → Timeout (milissegundos). O padrão é 60000 (60 segundos), causa comum de cortes aos 60 segundos; defina pelo menos 300000. O nó HTTP Request → Options → Timeout também é em milissegundos. Self-hosted: não defina EXECUTIONS_TIMEOUT (segundos) abaixo disso.
Streaming
AI Agent → Options → Enable Streaming (ativado por padrão; precisa de um Chat Trigger ou de um Webhook com Response Mode Streaming). Anthropic Chat Model → Stream Responses. O OpenAI Chat Model não tem opção de streaming, então conte com um Timeout longo o suficiente.
Retries
OpenAI Chat Model → Options → Max Retries, padrão 2. Retries depois de um timeout também são cobrados; corrija primeiro o Timeout.
Contexto
Sub-nó Simple Memory → Context Window Length = quantas interações anteriores são enviadas. Mantenha baixo, ex.: 5–10.

SDK da OpenAI (Python e Node.js)

Base URL e chave
base_url / baseURL = https://ai.geraikita.com/v1, api_key / apiKey = sua chave gk-. Há um exemplo básico em Primeira requisição.
Timeout
timeout: segundos no Python, milissegundos no Node.js. O padrão do SDK é 10 minutos, o que está ótimo desde que você não o reduza para menos de 300 segundos.
Streaming
stream=True (Python) / stream: true (Node.js).
Retries
max_retries / maxRetries, padrão 2, incluindo repetir requisições que deram timeout. Para prompts grandes, defina 0–1.
Contexto
Envie só o histórico necessário: corte mensagens antigas ou resuma-as antes de enviar.
from openai import OpenAI

client = OpenAI(
    base_url="https://ai.geraikita.com/v1",
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # segundos
    max_retries=1,   # retries após timeout também são cobrados
)
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 da Anthropic (Python e Node.js)

Base URL e chave
base_url / baseURL = https://ai.geraikita.com (sem /v1, o SDK acrescenta /v1/messages por conta própria), api_key / apiKey = sua chave gk-.
Timeout
timeout: segundos no Python, milissegundos no Node.js; padrão 10 minutos. O SDK recusa requisições sem streaming que devem levar mais de cerca de 10 minutos, então use streaming.
Streaming
client.messages.stream(...), ou stream=True / stream: true em messages.create.
Retries
max_retries / maxRetries, padrão 2. Para prompts grandes, defina 0–1.
Contexto
Envie só o histórico necessário; limite max_tokens ao que a resposta precisa.
import anthropic

client = anthropic.Anthropic(
    base_url="https://ai.geraikita.com",   # sem /v1
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # segundos
    max_retries=1,   # retries após timeout também são cobrados
)
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 e chave
Header Authorization: Bearer gk-... para https://ai.geraikita.com/v1/chat/completions. Há um exemplo básico em Primeira requisição.
Timeout
Sem --max-time, o curl não limita a duração total. Se usar, defina pelo menos 300 (segundos).
Streaming
"stream": true no body, mais -N (--no-buffer) para os chunks da resposta aparecerem na hora.
Retries
--retry tem padrão 0 e também repete em caso de timeout. Não o adicione para prompts grandes.
Contexto
Você mesmo monta o body: envie só as mensagens necessárias.
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!"}]}'

Termos de cobrança

Requisições canceladas do lado do comprador (timeout do app, botão de parar, conexão caída) antes de a resposta chegar continuam sendo cobradas. Saída vazia só é compensada em problemas do nosso lado (resposta vazia ou erro do servidor, ou nenhuma saída por ≥60 segundos). Vale a partir de 1º de novembro de 2026.

Termos e Condições, Artigo 10

Perguntas frequentes

Meu app deu timeout e a saída veio vazia. Ainda sou cobrado?

Sim, se o seu app cortou antes de a resposta chegar: o servidor de IA já tinha processado o seu prompt. Isso está previsto nos Termos e Condições e vale a partir de 1º de novembro de 2026.

Quando uma saída vazia é compensada?

Quando o problema é do nosso lado: o servidor retorna uma resposta vazia ou um erro, ou não há nenhuma saída por 60 segundos ou mais.

Por que não simplesmente aumentar os retries?

Cada retry é uma nova requisição. Se a causa é um timeout curto demais, os retries só repetem a cobrança sem resultado. Aumente o timeout para pelo menos 300 segundos e ative o streaming.

Meu prompt é enorme. O que mais ajuda?

Resumir ou iniciar uma nova sessão, excluir pastas grandes e usar um modelo mais rápido para contextos grandes. Compare os modelos na página de Preços.