Dokumentacja

Ustawienia narzędzi agentowych

Narzędzia agentowe na każdym kroku wysyłają zawartość plików, wynik poleceń i całą historię rozmowy. Przy tak dużym prompcie na pierwszy token można czekać kilkadziesiąt sekund. Jeśli Twoja aplikacja podda się wcześniej, zapytanie i tak jest liczone, a Ty nic nie dostajesz. Ustaw timeout, streaming, ponowienia i rozmiar kontekstu tak, jak opisano poniżej.

Dlaczego to ważne

  • Zapytania przerwane przed nadejściem odpowiedzi i tak są liczone. Gdy tylko zapytanie dotrze, serwer AI zaczyna przetwarzać cały prompt. Jeśli Twoja aplikacja przerwie je wcześniej (timeout, przycisk stop, zerwane połączenie), koszt przetwarzania już powstał, a Ty nie dostajesz odpowiedzi.
  • Ogromne prompty potrzebują ponad 30 sekund do pierwszego tokena. Prompty agentowe o rozmiarze setek KB z tysiącami wiadomości mogą przekroczyć domyślny limit wielu aplikacji (30 lub 60 sekund), zanim pojawi się choćby jeden token.
  • Streaming utrzymuje połączenie przy życiu. Przy włączonym streamingu nasz serwer od razu wysyła nagłówki, a potem co 10 sekund sygnał keepalive, czekając na odpowiedź. Przerwać połączenie może wciąż całkowity limit czasu Twojej aplikacji, więc ustaw go na co najmniej 300 sekund.
  • Do dużego kontekstu wybierz szybki model. Przy długich sesjach lub dużych repozytoriach używaj szybszego modelu, a duże modele zostaw na kroki, które naprawdę ich wymagają. Porównaj je na stronie Cennik.

Wskazówki dla każdego narzędzia

Timeout
Co najmniej 300 sekund. Uważaj na jednostkę: część narzędzi używa sekund (300), inne milisekund (300000).
Streaming
Włącz go. Bez streamingu żadne dane nie płyną, dopóki odpowiedź nie będzie kompletna, więc proxy i aplikacje poddają się szybciej.
Ponowienia
Trzymaj je nisko (0–3). Ponowienie po timeoucie to nowe zapytanie, które też jest płatne. Zamiast zwiększać liczbę ponowień, najpierw popraw timeout.
Kontekst
Trzymaj go małym. Używaj automatycznego compact/podsumowania, zaczynaj nową sesję dla każdego zadania i wykluczaj duże foldery (node_modules, build, data).

Claude Code

Base URL i klucz
Postępuj według przewodnika Claude Code: ANTHROPIC_BASE_URL = https://ai.geraikita.com (bez /v1) i ANTHROPIC_AUTH_TOKEN = Twój klucz gk-. Zmienne możesz umieścić w bloku env pliku ~/.claude/settings.json.
Timeout
API_TIMEOUT_MS (milisekundy): jak długo każda próba czeka na nagłówki odpowiedzi, domyślnie 600000 (10 minut). Nie obniżaj go; jeśli kiedyś go zmniejszyłeś, przywróć co najmniej 300000.
Streaming
Zawsze używa streamingu. Nie ma ustawienia, które by go wyłączało.
Ponowienia
CLAUDE_CODE_MAX_RETRIES, domyślnie 10, łącznie z timeoutami przed rozpoczęciem streamowania odpowiedzi. Przy dużych promptach ustaw 2–3, aby jeden krok nie był naliczany w kółko.
Kontekst
/compact podsumowuje rozmowę, /clear zaczyna nową. Auto-compact jest domyślnie włączony (autoCompactEnabled); niższa wartość CLAUDE_AUTOCOMPACT_PCT_OVERRIDE (np. 60) uruchamia compact wcześniej.
~/.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 i klucz
Postępuj według przewodnika Cline: provider OpenAI Compatible (Base URL https://ai.geraikita.com/v1) albo Anthropic z Use custom base URL https://ai.geraikita.com.
Timeout
Oficjalna dokumentacja Cline nie oferuje ustawienia timeoutu dla providerów OpenAI Compatible ani Anthropic (Request Timeout dotyczy tylko Ollamy). Żeby pierwszy token pojawił się szybko: zmniejsz kontekst i wybierz szybszy model przy dużym kontekście.
Streaming
Brak ustawienia streamingu w oficjalnej dokumentacji; nic nie trzeba zmieniać.
Ponowienia
Brak ustawienia ponowień w oficjalnej dokumentacji.
Kontekst
Auto Compact podsumowuje automatycznie, gdy kontekst jest prawie pełny. /smol (alias /compact) podsumowuje ręcznie, /newtask przenosi podsumowanie do nowego zadania. Ustaw Context Window size w Model Configuration zgodnie z modelem.

Roo Code

Base URL i klucz
Uwaga: rozszerzenie Roo Code zostało oficjalnie wycofane 15 maja 2026 r. Jeśli nadal go używasz: provider OpenAI Compatible, Base URL https://ai.geraikita.com/v1, Twój klucz gk- (tak samo jak w Cline).
Timeout
roo-cline.apiRequestTimeout w settings.json VS Code, w sekundach (domyślnie 600, zakres 0–3600, 0 = bez limitu). Nie schodź poniżej 300.
Streaming
Upewnij się, że w profilu OpenAI Compatible opcja Enable streaming pozostaje zaznaczona.
Ponowienia
Przy włączonym Auto-Approve nieudane zapytania są automatycznie ponawiane z rosnącym opóźnieniem; nie ma osobnego przełącznika.
Kontekst
Intelligent Context Condensing (Settings → Context): obniż próg z domyślnych 100%, aby kondensacja zaczynała się wcześniej, albo kliknij Condense Context. Wykluczaj duże foldery za pomocą .rooignore.

Kilo Code

Base URL i klucz
Settings → Providers → Custom provider → OpenAI Compatible, Base URL https://ai.geraikita.com/v1, Twój klucz gk-. Albo użyj pliku ~/.config/kilo/kilo.jsonc jak w przykładzie poniżej.
Timeout
options.timeout w providerze (milisekundy) obejmuje czekanie na nagłówki i pierwszy bajt. Domyślnie 300000, czyli na samej granicy; ustaw 600000. Nie ustawiaj zbyt niskiego chunkTimeout.
Streaming
Brak ustawienia streamingu w oficjalnej dokumentacji; nic nie trzeba zmieniać.
Ponowienia
Brak ustawienia ponowień w oficjalnej dokumentacji.
Kontekst
compaction.auto (domyślnie true) i /compact. Musisz ustawić limit.context dla każdego modelu (mniejsza liczba = wcześniejszy compact): bez tego auto-compaction nie działa. Wykluczaj duże foldery za pomocą .kilocodeignore lub reguł uprawnień.
~/.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 i klucz
Cursor Settings → Models → OpenAI API key. Oficjalna dokumentacja Cursora nie opisuje własnego base URL; jeśli Twoja wersja Cursora pokazuje Override OpenAI Base URL, wpisz https://ai.geraikita.com/v1. Własny klucz API działa tylko dla modeli czatu (Tab nadal używa wbudowanych modeli Cursora), a zapytania przechodzą przez serwery Cursora.
Timeout
Brak regulowanego timeoutu w oficjalnej dokumentacji. Zamiast tego: zmniejsz kontekst, zaczynaj nowy czat dla każdego zadania i wybierz szybki model, żeby pierwszy token dotarł przed limitem aplikacji.
Streaming
Obsługiwane przez Cursora; brak ustawienia.
Ponowienia
Brak ustawienia ponowień w oficjalnej dokumentacji.
Kontekst
Cursor automatycznie podsumowuje starsze części rozmowy, gdy kontekst jest prawie pełny. Zaczynaj nowy czat przy każdej zmianie zadania i wykluczaj duże pliki za pomocą .cursorignore.

OpenCode

Base URL i klucz
Postępuj według przewodnika OpenCode: provider @ai-sdk/openai-compatible z baseURL https://ai.geraikita.com/v1.
Timeout
W provider.geraikita.options (milisekundy): headerTimeout (czekanie na nagłówki, domyślnie 300000) i chunkTimeout (przerwa między fragmentami streamu, domyślnie 300000). timeout (limit całkowity) jest domyślnie wyłączony; jeśli go ustawiasz, użyj co najmniej 300000.
Streaming
Zawsze używa streamingu. Nie ma ustawienia, które by go wyłączało.
Ponowienia
Brak ustawienia ponowień w oficjalnej dokumentacji. Jeśli zapytania ciągle się zrywają, popraw timeout i zmniejsz kontekst.
Kontekst
compaction.auto (domyślnie true) automatycznie podsumowuje sesję, gdy kontekst jest pełny. /compact podsumowuje ręcznie, /new zaczyna nową sesję.
~/.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 i klucz
W config.yaml: provider: openai, apiBase: https://ai.geraikita.com/v1, apiKey = Twój klucz gk-.
Timeout
requestOptions.timeout w sekundach (domyślnie 7200). Użyj co najmniej 300, nie 300000.
Streaming
Provider openai zawsze używa streamingu.
Ponowienia
Brak ustawienia ponowień w oficjalnej dokumentacji.
Kontekst
defaultCompletionOptions.contextLength i maxTokens ograniczają rozmiar kontekstu i odpowiedzi. Zaczynaj nowy czat dla każdego zadania; Continue CLI ma /compact i /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        # sekundy, nie milisekundy
    defaultCompletionOptions:
      contextLength: 64000  # mniej = historia jest przycinana
      maxTokens: 8192

n8n

Base URL i klucz
Poświadczenia OpenAI: ustaw Base URL na https://ai.geraikita.com/v1 i podaj swój klucz API gk-. Poświadczenia Anthropic: Base URL https://ai.geraikita.com.
Timeout
Węzeł OpenAI Chat Model → Options → Timeout (milisekundy). Domyślnie 60000 (60 sekund), co jest częstą przyczyną przerwań po 60 sekundach; ustaw co najmniej 300000. Węzeł HTTP Request → Options → Timeout też jest w milisekundach. Self-hosted: nie ustawiaj EXECUTIONS_TIMEOUT (sekundy) niżej niż to.
Streaming
AI Agent → Options → Enable Streaming (domyślnie włączone; wymaga Chat Trigger lub Webhooka z Response Mode Streaming). Anthropic Chat Model → Stream Responses. OpenAI Chat Model nie ma opcji streamingu, więc polegaj na odpowiednio długim Timeout.
Ponowienia
OpenAI Chat Model → Options → Max Retries, domyślnie 2. Ponowienia po timeoucie też są płatne; najpierw popraw Timeout.
Kontekst
Węzeł podrzędny Simple Memory → Context Window Length = ile wcześniejszych interakcji jest wysyłanych. Trzymaj tę wartość nisko, np. 5–10.

OpenAI SDK (Python i Node.js)

Base URL i klucz
base_url / baseURL = https://ai.geraikita.com/v1, api_key / apiKey = Twój klucz gk-. Podstawowy przykład znajdziesz w sekcji Pierwsze zapytanie.
Timeout
timeout: sekundy w Pythonie, milisekundy w Node.js. Domyślna wartość SDK to 10 minut i jest w porządku, o ile nie obniżysz jej poniżej 300 sekund.
Streaming
stream=True (Python) / stream: true (Node.js).
Ponowienia
max_retries / maxRetries, domyślnie 2, łącznie z ponawianiem zapytań, które przekroczyły timeout. Przy dużych promptach ustaw 0–1.
Kontekst
Wysyłaj tylko potrzebną historię: przycinaj stare wiadomości lub podsumowuj je przed wysłaniem.
from openai import OpenAI

client = OpenAI(
    base_url="https://ai.geraikita.com/v1",
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # sekundy
    max_retries=1,   # ponowienia po timeoucie też są płatne
)
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 i Node.js)

Base URL i klucz
base_url / baseURL = https://ai.geraikita.com (bez /v1, SDK samo dokleja /v1/messages), api_key / apiKey = Twój klucz gk-.
Timeout
timeout: sekundy w Pythonie, milisekundy w Node.js; domyślnie 10 minut. SDK odrzuca zapytania bez streamingu, które mogą trwać dłużej niż około 10 minut, więc używaj streamingu.
Streaming
client.messages.stream(...) albo stream=True / stream: true w messages.create.
Ponowienia
max_retries / maxRetries, domyślnie 2. Przy dużych promptach ustaw 0–1.
Kontekst
Wysyłaj tylko potrzebną historię; ogranicz max_tokens do tego, czego wymaga odpowiedź.
import anthropic

client = anthropic.Anthropic(
    base_url="https://ai.geraikita.com",   # bez /v1
    api_key="gk-xxxxxxxx",
    timeout=600.0,   # sekundy
    max_retries=1,   # ponowienia po timeoucie też są płatne
)
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 i klucz
Nagłówek Authorization: Bearer gk-... do https://ai.geraikita.com/v1/chat/completions. Podstawowy przykład znajdziesz w sekcji Pierwsze zapytanie.
Timeout
Bez --max-time curl nie ogranicza całkowitego czasu. Jeśli go używasz, ustaw co najmniej 300 (sekundy).
Streaming
"stream": true w body oraz -N (--no-buffer), aby fragmenty odpowiedzi pojawiały się od razu.
Ponowienia
--retry domyślnie wynosi 0 i ponawia też po timeoutach. Nie dodawaj go przy dużych promptach.
Kontekst
Body budujesz sam: wysyłaj tylko potrzebne wiadomości.
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!"}]}'

Zasady rozliczeń

Zapytania anulowane po stronie kupującego (timeout aplikacji, przycisk stop, zerwane połączenie) przed nadejściem odpowiedzi i tak są płatne. Pusty wynik jest rekompensowany tylko przy problemach po naszej stronie (pusta odpowiedź lub błąd serwera albo brak wyniku przez ≥60 sekund). Obowiązuje od 1 listopada 2026 r.

Regulamin, Artykuł 10

FAQ

Moja aplikacja przekroczyła timeout i wynik był pusty. Czy i tak płacę?

Tak, jeśli Twoja aplikacja przerwała zapytanie przed nadejściem odpowiedzi: serwer AI już przetworzył Twój prompt. Wynika to z Regulaminu i obowiązuje od 1 listopada 2026 r.

Kiedy pusty wynik jest rekompensowany?

Gdy problem leży po naszej stronie: serwer zwraca pustą odpowiedź lub błąd albo przez 60 sekund lub dłużej nie ma żadnego wyniku.

Czemu po prostu nie zwiększyć liczby ponowień?

Każde ponowienie to nowe zapytanie. Jeśli przyczyną jest zbyt krótki timeout, ponowienia tylko powtarzają opłatę bez rezultatu. Zwiększ timeout do co najmniej 300 sekund i włącz streaming.

Mój prompt jest ogromny. Co pomoże najbardziej?

Podsumuj lub zacznij nową sesję, wyklucz duże foldery i używaj szybszego modelu przy dużym kontekście. Porównaj modele na stronie Cennik.