Binuksan ng OpenClaw ang 21.5M na mga token sa isang araw, ang mga estratehiya sa pag-optimize ay nagbawas sa gastos

iconOdaily
I-share
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconSummary

expand icon
Isang kahuling OpenClaw session ay nag-burn ng 21.5 milyong mga token sa isang araw, pangunahin dahil sa paulit-ulit na cache prefix replay kaysa sa user o model output. Higit sa 79% ng paggamit ng mga token ay mula sa cache reads, kung saan ang malalaking intermediate outputs tulad ng mga resulta ng tool at browser snapshots ay in-replay. Binibigyang-diin ng ulat ang mga estratehiya para sa gas optimization: iwasan ang malalaking tool outputs sa long-term context, i-configure ang mga compaction mechanisms, at mabawasan ang persistent reasoning text. Ang mga hakbang na ito ay naglalayong bawasan ang mga gastos sa tokens sa pamamagitan ng pagpapabuti ng context management sa agent systems.

Bakit Nabawasan ng 21.5M na Tokens ang Aking Mga Sesyon sa OpenClaw sa Isang Araw (At Ano Talaga ang Nag-fix Nito)

May-akda: MOSHIII

Isinalin ni Peggy, BlockBeats

Editor’s Note: Sa panahon ng mabilis na pagkalat ng mga aplikasyon ng Agent, maraming mga tim ay nakakakita ng isang nakakagulat na pangyayari: ang sistema ay gumagana nang maayos, ngunit ang gastos sa token ay patuloy na tumataas nang hindi napapansin. Sa pamamagitan ng pagsusuri sa isang totoong workload ng OpenClaw, natuklasan na ang sanhi ng pagtaas ng gastos ay karaniwang hindi galing sa input ng user o output ng modelo, kundi sa nakalimutang cached prefix replay. Ang modelo ay paulit-ulit na binabasa ang malaking kasaysayan ng konteksto sa bawat pagtawag, na nagdudulot ng malaking paggamit ng token.

Ang artikulo ay nagpapakita kung paano ang mga malalaking intermediate output tulad ng output ng tool, screenshot ng browser, at JSON log ay sinusulat nang patuloy sa historical context at binabasa muli sa loob ng agent cycle.

Sa pamamagitan ng kaso na ito, ipinresenta ng may-akda ang isang malinaw na estratehiya para sa pag-optimize: mula sa disenyo ng kontekstwal na istruktura, pamamahala sa output ng mga kasangkapan, hanggang sa konpigurasyon ng mekanismo ng compaction. Para sa mga developer na nagbuo ng Agent system, ito ay hindi lamang isang talaan ng teknikal na paglutas kundi isang tunay na paraan upang mag-save ng pera.

Narito ang orihinal na teksto:

Nilikha ko ang isang real-world OpenClaw workload at natuklasan ko ang isang pattern na alam kong makikilala ng maraming Agent user:

Ang paggamit ng token ay tila "aktibo"

Ang reply ay tila normal din

Ngunit ang paggamit ng token ay biglang umabot sa isang malaking pagtaas

Narito ang estruktural na pagkakabuo, pangunahing sanhi, at praktikal na landas para sa pagpapabuti sa pag-aaral na ito.

TL;DR

Ang pinakamalaking driver ng gastos ay hindi ang sobrang haba ng mensahe ng user. Kundi ang malaking dami ng cached prefix na paulit-ulit na inirereplay.

Batay sa session data:

Kabuuang tokens: 21,543,714

cacheRead: 17,105,970 (79.40%)

4,345,264 (20.17%)

output: 92,480 (0.43%)

Sa ibang salita: Ang karamihan sa gastos ng mga pagtawag ay hindi nagpapakita ng bagong user intent, kundi ang paulit-ulit na pagbabasa ng malaking kasaysayan ng konteksto.

Ang sandali ng “Hintayin muna, bakit ganito?”

Akala ko ang mataas na paggamit ng token ay galing sa: sobrang habang user prompt, malaking dami ng output na ginawa, o mahal na pagtawag sa mga tool.

Ngunit ang tunay na pangunahing modelo ay:

Mga sandaang hanggang libo-libong token

cacheRead: Bawat pagtawag ay 170,000 hanggang 180,000 na token

Ibig sabihin, ang modelo ay bumabasa muli at muli ang parehong malaking stable prefix sa bawat round.

Data range

Sinuri ko ang data sa dalawang antas:

1. Mga log sa pagpapatakbo (runtime logs)

2. Mga tala ng sesyon

Dapat ipaalala na:

Ang mga log ng pagpapatakbo ay ginagamit pangunahin upang obserbahan ang mga signal ng pag-uugali (tulad ng restart, error, at mga problema sa konfigurasyon)

Maaaring makakuha ng eksaktong token statistics mula sa usage field ng session JSONL

Ginamit na script:

scripts/session_token_breakdown.py

scripts/session_duplicate_waste_analysis.py

Nabuo na ang analysis file:

tmp/session_token_stats_v2.txt

tmp/session_token_stats_v2.json

tmp/session_duplicate_waste.txt

tmp/session_duplicate_waste.json

tmp/session_duplicate_waste.png

Saan talaga ginagamit ang token?

1) Pagsasama ng Sesyon

May isang session na ang paggamit ay mas mataas kaysa sa iba:

570587c3-dc42-47e4-9dd4-985c2a50af86: 19,204,645 tokens

At ang malaking pagbaba:

ef42abbb-d8a1-48d8-9924-2f869dea6d4a: 1,505,038

ea880b13-f97f-4d45-ba8c-a236cf6f2bb5: 649,584

2) Paggalaw na nakatuon

Ang token ay pangunahing galing sa:

toolUse: 16,372,294

stop: 5,171,420

Ang problema ay pangunahing dulot ng siklo sa pagtawag ng kasangkapan, hindi sa karaniwang pag-uusap.

3) Panahon na nakapokus

Hindi random ang peak ng token, kundi nakatuon sa ilang mga oras:

2026-03-08 16:00: 4,105,105

2026-03-08 09:00: 4,036,070

2026-03-08 07:00: 2,793,648

Ano ang nasa loob ng malaking cache prefix?

Hindi ito ang nilalaman ng talakayan, kundi pangunahin ang malalaking intermediate product:

Malaking toolResult na bloke

Mga habang pagsusuri / mga trace ng pag-iisip

Malaking JSON snapshot

Listahan ng mga file

Nakuha ng browser ang data

Mga tala ng usapan ng Sub-Agent

Sa pinakamalaking session, ang bilang ng mga karakter ay halos:

366,469 na karakter

assistant:thinking:331,494 characters

53,039 na karakter

Kapag ang mga ito ay mananatili sa kasaysayang konteksto, bawat susunod na pagtawag ay maaaring muliing basahin ang mga ito sa pamamagitan ng cache prefix.

Mga tiyak na halimbawa (mula sa session file)

Maraming beses na lumabas ang malaking bloke ng konteksto sa sumusunod na lokasyon:

sessions/570587c3-dc42-47e4-9dd4-985c2a50af86.jsonl:70

Malaking gateway JSON log (tungkol sa 37,000 na karakter)

sessions/570587c3-dc42-47e4-9dd4-985c2a50af86.jsonl:134

Browser snapshot + secure encapsulation (approx. 29,000 characters)

sessions/570587c3-dc42-47e4-9dd4-985c2a50af86.jsonl:219

Malaking listahan ng mga file (tungkol sa 41,000 na karakter)

sessions/570587c3-dc42-47e4-9dd4-985c2a50af86.jsonl:311

session/status snapshot + malaking prompt structure (tungkol sa 30,000 na karakter)

"Repeated content waste" vs. "cache replay burden"

Kasama ko rin ang pagsukat ng proporsyon ng paulit-ulit na nilalaman sa loob ng isang tawag:

Approximate repetition rate: 1.72%

Totoo ito, ngunit hindi ito pangunahing problema.

Ang totoong problema ay ang sobrang laki ng absolute na dami ng cache prefix

Ang istruktura ay: malaking historical context, bawat pagtawag ay babasahin muli, at idinadagdag lamang kaunting bagong input sa itaas

Kaya ang pangunahing pagpapabuti ay hindi ang pagtanggal ng duplikado, kundi ang disenyo ng kontekstwal na istruktura.

Bakit lalong madaling makakasalba ang Agent loop sa problemang ito?

Tatlong mekanismo na nag-ooverlap:

1. Maraming mga tool output ay isinulat sa kasaysayan ng konteksto

2. Ang pag-loop ng mga kasangkapan ay magdudulot ng maraming maliliit na pagtawag sa magkakasunod na oras.

3. Maliit ang pagbabago sa prefix → ang cache ay babasahin muli bawat beses

Kung hindi nag-stabilize ang context compaction, agad na lalaki ang problema.

Mga pinakamahalagang pagsasailalim na pagpapabuti (ayon sa epekto)

P0—Huwag isaksak ang malalaking tool output sa matagalang konteksto

Para sa malalaking output ng tool:

  • Panatilihin ang buod + path / ID ng sanggunian
  • Isulat ang orihinal na payload sa file artifact
  • Huwag panatilihin ang buong orihinal na teksto sa chat history

Prioritize limiting these categories:

  • Malaking JSON
  • Mahabang lista ng mga kategorya
  • Complete browser snapshot
  • Kabuuang transcript ng Sub Agent

P1—Siguraduhin na aktibo ang mekanismo ng compaction

Sa data na ito, maraming beses na lumabas ang problema sa compatibility ng configuration: ang compaction key ay hindi wasto

Ito ay papaalis nang tahimik ang mekanismo ng pag-optimize.

Tama para gawin: Gamitin lamang ang kompatibleng konfigurasyon ng bersyon

Sundin ang pag-verify:

openclaw doctor --fix

Suriin ang log ng pagpapagana upang masiguro na tinanggap ang compaction.

P1—Bawasan ang pagpapalabas ng teksto ng reasoning

Iwasan ang paulit-ulit na pag-replay ng mahabang teksto sa pag-iisip

Sa production environment: i-save ang maikling buod, hindi ang buong reasoning

P3—Pagpapabuti ng disenyo ng prompt caching

Ang layunin ay hindi ang pag-maximize ng cacheRead. Ang layunin ay gamitin ang cache sa mga kompakto, matatag, at mataas na halaga na prefix.

Mungkahi:

  • Ilagay ang mga patakaran sa pagpapanatili sa system prompt
  • Huwag isama ang hindi matatag na data sa matatag na prefix
  • Iwasan ang pagpapalabas ng malaking dami ng debug data sa bawat round

Praktikal na plano para sa stop-loss (kung ako ang mag-aayos bukas)

1. Hanapin ang session na may pinakamataas na porsyento ng cacheRead

2. I-executed ang /compact sa runaway session

3. Magdagdag ng truncation + artifactization sa output ng tool

4. Iulit ang pagkalkula ng token pagkatapos ng bawat pagbabago

Mahalagang suriin ang apat na KPI:

cacheRead / totalTokens

toolUse avgTotal/call

Kahit 100k na bilang ng pagtawag

Pinakamalaking porsyento ng session

Successful signal

Kung aktibo ang pag-optimize, dapat mong makita:

Nabawasan nang malaki ang pagtawag sa 100k+ token

Bumaba ang porsyento ng cacheRead

Bumaba ang weight ng toolUse

Nabawasan ang pagiging pangunahin ng isang session

Kung hindi nagbago ang mga indikator na ito, ibig sabihin ay ang iyong kontekstwal na estratehiya ay patuloy na sobrang maluwag.

I-repeat ang command ng eksperimento

python3 scripts/session_token_breakdown.py 'sessions' \

--include-deleted \

--top 20 \

--outlier-threshold 120000 \

--json-out tmp/session_token_stats_v2.json \

> tmp/session_token_stats_v2.txt

python3 scripts/session_duplicate_waste_analysis.py 'sessions' \

--include-deleted \

--top 20 \

--png-out tmp/session_duplicate_waste.png \

--json-out tmp/session_duplicate_waste.json \

> tmp/session_duplicate_waste.txt

Wakas

Kung ang iyong Agent system ay tila normal lamang ngunit patuloy na tumataas ang gastos, unang i-check ang sumusunod: binabayaran mo ba ang bagong inference, o nagpapalit ka ng malaking saklaw ng mga lumang konteksto?

Sa aking kaso, ang karamihan sa gastos ay galing sa context replay.

Agad na malinaw ang solusyon kapag naiintindihan mo ito: magkaroon ng mahigpit na kontrol sa mga data na papasok sa mahabang konteksto.

Original link

Disclaimer: Ang information sa page na ito ay maaaring nakuha mula sa mga third party at hindi necessary na nagre-reflect sa mga pananaw o opinyon ng KuCoin. Ibinigay ang content na ito para sa mga pangkalahatang informational purpose lang, nang walang anumang representation o warranty ng anumang uri, at hindi rin ito dapat ipakahulugan bilang financial o investment advice. Hindi mananagot ang KuCoin para sa anumang error o omission, o para sa anumang outcome na magreresulta mula sa paggamit ng information na ito. Maaaring maging risky ang mga investment sa mga digital asset. Pakisuri nang maigi ang mga risk ng isang produkto at ang risk tolerance mo batay sa iyong sariling kalagayang pinansyal. Para sa higit pang information, mag-refer sa aming Terms ng Paggamit at Disclosure ng Risk.