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=600000Domyślnie 10 minut — nie zmniejszaj. Ustaw w env w ~/.claude/settings.json lub jako zmienną środowiskową.
OpenCode
opencode.json → provider.<id>.options.timeout: 600000W 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=Truetimeout 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.