Zerwane połączenia i timeouty narzędzi agentowych

Jeśli twoje narzędzie zamknie połączenie, zanim pojawi się odpowiedź, model i tak przetworzył już twój prompt. Takie żądania są oznaczone jako „Zerwane przez aplikację” w historii użycia.

Dlaczego to i tak jest naliczane?

  • Modele za żądanie: dostawca nalicza pełną kwotę, gdy prompt zostanie przetworzony → stały koszt.
  • Modele za token: tylko tyle, ile faktycznie nalicza dostawca; różnica jest zwracana automatycznie.
  • Zerwanie przez awarię po stronie Geraikita: pełny zwrot automatycznie.

Zalecane ustawienia

Claude Code

API_TIMEOUT_MS=600000

Domyślnie 10 minut — nie zmniejszaj. Ustaw w env w ~/.claude/settings.json lub jako zmienną środowiskową.

OpenCode

opencode.json → provider.<id>.options.timeout: 600000

W milisekundach. Jeśli ustawiasz też headerTimeout / chunkTimeout, użyj co najmniej 300000.

Kilo Code · Roo Code · Cline

Ustawienia dostawcy → timeout żądania API ≥ 300 s; wyłącz automatyczne ponawianie. Nazwa opcji może się różnić między wersjami.

SDK OpenAI / Anthropic

timeout=600, max_retries=1, stream=True

timeout w sekundach (Python) lub milisekundach (Node.js: 600 * 1000). Używaj streamingu, by szybko zobaczyć pierwszy token.

Python requests / httpx

requests: timeout=(10, 600)httpx: httpx.Timeout(600, connect=10)

Pierwsza liczba = timeout połączenia, druga = timeout odczytu. Odczyt co najmniej 300 sekund.

Własny skrypt / proxy

stream: trueUser-Agent: "nama-alatmu/1.0"

Timeout odczytu ≥ 300 s, włącz streaming i wpisz nazwę narzędzia w User-Agent, abyśmy mogli pomóc w sprawdzeniu.

Sprawdź własne liczby

Otwórz Dashboard → Ostatnie użycie → filtr „Zerwane przez aplikację”. Dotknij wiersza, aby zobaczyć przebieg i powód kosztu.

Pełny poradnik dla narzędzi (streaming, ponowienia, rozmiar kontekstu, przykłady kodu): Ustawienia narzędzi agentowych.