Użycie tokenów i koszty
OpenClaw śledzi tokeny, a nie znaki. Tokeny są zależne od modelu, ale większość modeli w stylu OpenAI ma średnio około 4 znaki na token dla tekstu angielskiego.Jak budowany jest prompt systemowy
OpenClaw składa własny prompt systemowy przy każdym uruchomieniu. Obejmuje on:- Listę narzędzi + krótkie opisy
- Listę Skills (tylko metadane; instrukcje są ładowane na żądanie przez
read). Zwięzły blok Skills jest ograniczony przezskills.limits.maxSkillsPromptChars, z opcjonalnym nadpisaniem per agent wagents.list[].skillsLimits.maxSkillsPromptChars. - Instrukcje samoaktualizacji
- Pliki workspace + bootstrap (
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md,HEARTBEAT.md,BOOTSTRAP.mdgdy są nowe, a takżeMEMORY.md, gdy występuje, lubmemory.mdjako wariant z małych liter). Duże pliki są przycinane przezagents.defaults.bootstrapMaxChars(domyślnie: 12000), a całkowity wstrzykiwany bootstrap jest ograniczony przezagents.defaults.bootstrapTotalMaxChars(domyślnie: 60000). Codzienne plikimemory/*.mdnie są częścią zwykłego promptu bootstrap; pozostają dostępne na żądanie przez narzędzia pamięci w zwykłych turach, ale czyste/newi/resetmogą dodać jednorazowy blok kontekstu startowego z ostatnią dzienną pamięcią dla tej pierwszej tury. To wprowadzenie startowe jest kontrolowane przezagents.defaults.startupContext. - Czas (UTC + strefa czasowa użytkownika)
- Tagi odpowiedzi + zachowanie Heartbeat
- Metadane runtime (host/OS/model/thinking)
Co liczy się do okna kontekstu
Wszystko, co model otrzymuje, liczy się do limitu kontekstu:- Prompt systemowy (wszystkie sekcje wymienione powyżej)
- Historia rozmowy (wiadomości użytkownika i asystenta)
- Wywołania narzędzi i wyniki narzędzi
- Załączniki/transkrypcje (obrazy, audio, pliki)
- Podsumowania Compaction i artefakty przycinania
- Opakowania dostawcy lub nagłówki bezpieczeństwa (niewidoczne, ale nadal liczone)
agents.defaults.contextLimits.memoryGetMaxCharsagents.defaults.contextLimits.memoryGetDefaultLinesagents.defaults.contextLimits.toolResultMaxCharsagents.defaults.contextLimits.postCompactionMaxChars
agents.list[].contextLimits. Te ustawienia
dotyczą ograniczonych fragmentów runtime i wstrzykiwanych bloków należących do runtime.
Są one oddzielone od limitów bootstrap, limitów kontekstu startowego i limitów
promptu Skills.
W przypadku obrazów OpenClaw skaluje w dół ładunki obrazów transkrypcji/narzędzi przed wywołaniami dostawcy.
Użyj agents.defaults.imageMaxDimensionPx (domyślnie: 1200), aby to dostroić:
- Niższe wartości zwykle zmniejszają użycie tokenów vision i rozmiar ładunku.
- Wyższe wartości zachowują więcej szczegółów wizualnych dla zrzutów ekranu z dużą ilością OCR/UI.
/context list lub /context detail. Zobacz Kontekst.
Jak zobaczyć bieżące użycie tokenów
Użyj tych poleceń na czacie:/status→ karta statusu bogata w emoji z modelem sesji, użyciem kontekstu, tokenami wejścia/wyjścia ostatniej odpowiedzi oraz szacowanym kosztem (tylko klucz API)./usage off|tokens|full→ dodaje stopkę użycia dla każdej odpowiedzi do każdej odpowiedzi.- Utrzymuje się per sesja (przechowywane jako
responseUsage). - Autoryzacja OAuth ukrywa koszt (tylko tokeny).
- Utrzymuje się per sesja (przechowywane jako
/usage cost→ pokazuje lokalne podsumowanie kosztów z logów sesji OpenClaw.
- TUI/Web TUI: obsługiwane są
/statusi/usage. - CLI:
openclaw status --usageiopenclaw channels listpokazują znormalizowane okna limitów dostawców (X% left, a nie koszty per odpowiedź). Obecni dostawcy z oknami użycia: Anthropic, GitHub Copilot, Gemini CLI, OpenAI Codex, MiniMax, Xiaomi i z.ai.
input_tokens /
output_tokens, jak i prompt_tokens / completion_tokens, więc nazwy pól
zależne od transportu nie zmieniają /status, /usage ani podsumowań sesji.
Użycie Gemini CLI JSON również jest normalizowane: tekst odpowiedzi pochodzi z response, a
stats.cached mapuje się na cacheRead, przy czym używane jest stats.input_tokens - stats.cached,
gdy CLI pomija jawne pole stats.input.
Dla natywnego ruchu OpenAI-family Responses aliasy użycia WebSocket/SSE są
normalizowane w ten sam sposób, a sumy całkowite wracają do znormalizowanego wejścia + wyjścia, gdy
total_tokens nie istnieje lub ma wartość 0.
Gdy bieżący snapshot sesji jest ubogi, /status i session_status mogą
również odzyskać liczniki tokenów/cache oraz etykietę aktywnego modelu runtime z
najnowszego logu użycia transkrypcji. Istniejące niezerowe wartości live nadal mają
pierwszeństwo przed wartościami awaryjnie pobranymi z transkrypcji, a większe sumy
zorientowane na prompt z transkrypcji mogą wygrać, gdy zapisane sumy nie istnieją
lub są mniejsze.
Autoryzacja użycia dla okien limitów dostawców pochodzi z hooków specyficznych dla dostawcy, gdy są dostępne;
w przeciwnym razie OpenClaw wraca do dopasowywania poświadczeń OAuth/klucza API z
profili auth, env lub config.
Szacowanie kosztów (gdy jest wyświetlane)
Koszty są szacowane na podstawie konfiguracji cen modelu:input, output, cacheRead oraz
cacheWrite. Jeśli brakuje cen, OpenClaw pokazuje tylko tokeny. Tokeny OAuth
nigdy nie pokazują kosztu w dolarach.
Wpływ TTL cache i przycinania
Cache promptów dostawcy działa tylko w obrębie okna TTL cache. OpenClaw może opcjonalnie uruchamiać przycinanie cache-ttl: przycina sesję po wygaśnięciu TTL cache, a następnie resetuje okno cache, aby kolejne żądania mogły ponownie użyć świeżo zcache’owanego kontekstu zamiast ponownie cache’ować pełną historię. Dzięki temu koszty zapisu cache pozostają niższe, gdy sesja pozostaje bezczynna dłużej niż TTL. Skonfiguruj to w Konfiguracja Gateway, a szczegóły zachowania znajdziesz w Przycinanie sesji. Heartbeat może utrzymywać cache warm w przerwach bezczynności. Jeśli TTL cache Twojego modelu wynosi1h, ustawienie interwału Heartbeat tuż poniżej tej wartości
(np. 55m) może zapobiec ponownemu cache’owaniu pełnego promptu, zmniejszając koszty
zapisu cache.
W konfiguracjach wieloagentowych możesz utrzymać jedną współdzieloną konfigurację modelu i dostrajać zachowanie cache
per agent za pomocą agents.list[].params.cacheRetention.
Pełny przewodnik po wszystkich ustawieniach znajdziesz w Prompt Caching.
W przypadku cen API Anthropic odczyty cache są znacznie tańsze niż tokeny
wejściowe, natomiast zapisy cache są rozliczane z wyższym mnożnikiem. Aktualne stawki i mnożniki TTL znajdziesz w cenniku prompt caching Anthropic:
https://docs.anthropic.com/docs/build-with-claude/prompt-caching
Przykład: utrzymywanie cache 1h w stanie warm za pomocą Heartbeat
Przykład: ruch mieszany ze strategią cache per agent
agents.list[].params scala się na wierzchu params wybranego modelu, więc możesz
nadpisać tylko cacheRetention i odziedziczyć pozostałe domyślne ustawienia modelu bez zmian.
Przykład: włączenie nagłówka beta Anthropic 1M context
Okno kontekstu 1M Anthropic jest obecnie objęte bramką beta. OpenClaw może wstrzyknąć wymaganą wartośćanthropic-beta, gdy włączysz context1m w obsługiwanych modelach Opus
lub Sonnet.
context-1m-2025-08-07.
Ma to zastosowanie tylko wtedy, gdy context1m: true jest ustawione w tym wpisie modelu.
Wymaganie: poświadczenie musi kwalifikować się do użycia długiego kontekstu. Jeśli nie,
Anthropic odpowie błędem limitu po stronie dostawcy dla tego żądania.
Jeśli uwierzytelniasz Anthropic za pomocą tokenów OAuth/subscription (sk-ant-oat-*),
OpenClaw pomija nagłówek beta context-1m-*, ponieważ Anthropic obecnie
odrzuca tę kombinację z HTTP 401.
Wskazówki, jak zmniejszyć presję tokenów
- Użyj
/compact, aby podsumować długie sesje. - Ograniczaj duże wyniki narzędzi w swoich workflow.
- Obniż
agents.defaults.imageMaxDimensionPxdla sesji z dużą liczbą zrzutów ekranu. - Utrzymuj krótkie opisy Skills (lista Skills jest wstrzykiwana do promptu).
- W przypadku rozwlekłej, eksploracyjnej pracy preferuj mniejsze modele.