Сессия OpenClaw сожгла 21,5 млн токенов за день, стратегии оптимизации снизили расходы

iconOdaily
Поделиться
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconСводка

expand icon
Недавняя сессия OpenClaw сожгла 21,5 миллиона токенов за один день, в основном из-за повторного воспроизведения префикса кэша, а не из-за действий пользователя или вывода модели. Более 79% использования токенов пришлось на чтения из кэша, при этом воспроизводились крупные промежуточные выводы, такие как результаты инструментов и снимки браузера. В отчете выделены стратегии оптимизации газа: избегайте больших выводов инструментов в долгосрочном контексте, настройте механизмы компактизации и сократите сохраняемый текст рассуждений. Эти меры направлены на снижение затрат на токены за счет улучшения управления контекстом в агентных системах.

Почему мои сессии OpenClaw сожгли 21,5 млн токенов за день (и что действительно помогло)

Автор оригинала: MOSHIII

Оригинал: Пегги, BlockBeats

Редакционная заметка: На фоне быстрого распространения приложений на основе агентов многие команды столкнулись с кажущимся парадоксом: система работает без сбоев, но стоимость токенов незаметно и постоянно растет. Анализ реальной рабочей нагрузки OpenClaw выявил, что причина взрывного роста затрат часто не связана с пользовательским вводом или выводом модели, а обусловлена игнорируемым повторным воспроизведением кэшированного контекста (cached prefix replay). Модель повторно считывает огромный объем исторического контекста при каждом вызове, что приводит к колоссальному потреблению токенов.

Статья на основе конкретных данных сессии демонстрирует, как крупные промежуточные результаты, такие как вывод инструмента, снимки экрана браузера и JSON-логи, постоянно записываются в исторический контекст и повторночитываются в цикле агента.

На основе этого случая автор предлагает четкую стратегию оптимизации: от проектирования структуры контекста и управления выводом инструментов до настройки механизма компактизации. Для разработчиков, создающих системы агентов, это не просто технический отчет об устранении неполадок, но и реальный способ сэкономить деньги.

Следует оригинальный текст:

Я проанализировал реальную рабочую нагрузку OpenClaw и обнаружил паттерн, который, как я считаю, узнают многие пользователи агентов:

Объем использования токена выглядит очень «активным»

Ответ тоже выглядит нормально

Но потребление токенов внезапно взорвалось

Ниже приведены структурный анализ, корневые причины и практические пути устранения для этого анализа.

Коротко

Самым большим драйвером затрат является не слишком длинное сообщение пользователя, а многократное воспроизведение огромного количества кэшированных префиксов.

Из данных сессии:

Общее количество токенов: 21 543 714

cacheRead: 17 105 970 (79,40%)

4 345 264 (20,17%)

92 480 (0,43%)

Другими словами: большинство вызовов стоят не обработки новых намерений пользователей, а повторного чтения огромного исторического контекста.

Момент «Подождите, как это могло произойти?»

Я первоначально думал, что высокий объем использования токенов обусловлен: очень длинными пользовательскими запросами, большим объемом генерируемого вывода или дорогими вызовами инструментов.

Но действительно доминирующей моделью является:

От нескольких сотен до нескольких тысяч токенов

cacheRead: при каждом вызове 170 000–180 000 токенов

То есть модель на каждом этапе повторно считывает один и тот же огромный стабильный префикс.

Диапазон данных

Я проанализировал данные на двух уровнях:

1. Журналы выполнения (runtime logs)

2. Журналы сессий

Следует отметить, что:

Журналы выполнения используются в основном для наблюдения за сигналами поведения (такими как перезагрузки, ошибки, проблемы с конфигурацией)

Точная статистика токенов взята из поля usage в файле JSONL сессии

Используемый скрипт:

scripts/session_token_breakdown.py

scripts/session_duplicate_waste_analysis.py

Сгенерированный аналитический файл:

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

Где фактически расходуется токен?

1) Концентрация сессии

Один сеанс потребляет значительно больше, чем другие:

570587c3-dc42-47e4-9dd4-985c2a50af86: 19 204 645 токенов

Затем следует очевидное резкое падение:

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

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

2) Концентрация поведения

Токены в основном поступают из:

toolUse:16,372,294

стоп: 5 171 420

Проблема заключается в циклическом вызове инструментов, а не в обычном чате.

3) Концентрация времени

Пики токенов не случайны, а сосредоточены в несколько временных интервалов:

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

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

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

Что именно находится в огромном префиксе кэша?

Не содержание диалога, а в основном крупные промежуточные продукты:

Огромный блок данных toolResult

Длинные цепочки рассуждений / мыслительные процессы

Большой JSON-снимок

Список файлов

Захват данных браузером

Диалоги подагента

В максимальной сессии количество символов составляет примерно:

366 469 символов

assistant:thinking:331,494 символов

53 039 символов

Как только эти данные сохранены в историческом контексте, последующие вызовы могут повторно считывать их через префикс cache.

Конкретные примеры (из файла сессии)

На следующих позициях многократно появляются огромные блоки контекста:

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

Крупный JSON-журнал шлюза (около 37 000 символов)

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

Снимок браузера + безопасная упаковка (около 29 000 символов)

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

Огромный список файлов (около 41 000 символов)

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

session/status снимок состояния + крупная структура prompt (около 30 000 символов)

«Потери из-за дублирования контента» против «Нагрузки от повторного воспроизведения кэша»

Я также измерил долю повторяющегося содержимого внутри одного вызова:

Повторный коэффициент примерно: 1,72%

Действительно существует, но не является основной проблемой.

Настоящая проблема заключается в том, что абсолютный объем префикса кэша слишком велик.

Структура: огромный исторический контекст, повторное чтение при каждом вызове, сверху добавляется лишь небольшой объем новых данных

Таким образом, основное внимание при оптимизации следует уделять не дедупликации, а проектированию структуры контекста.

Почему цикл Agent особенно подвержен этой проблеме?

Три механизма взаимно дополняют друг друга:

1. Большое количество инструментов было записано в исторический контекст

2. Цикл инструментов создает большое количество коротких вызовов

3. Префикс меняется незначительно → кэш каждый раз читается заново

Если компактизация контекста не стабильно активируется, проблема быстро усугубится.

Наиболее важные стратегии устранения ошибок (по уровню влияния)

P0 — Не заполняйте долгосрочный контекст огромными выходными данными инструментов

Для вывода супербольшого инструмента:

  • Сохранить краткое содержание + путь / ID цитирования
  • Исходный payload записан в файл artifact
  • Не сохраняйте полный исходный текст в истории чата

Ограничьте в приоритетном порядке эти категории:

  • Большой JSON
  • Длинный список каталогов
  • Полный снимок браузера
  • Полная расшифровка суб-агента

P1 — Убедитесь, что механизм компактификации действительно работает

В этих данных неоднократно возникают проблемы совместимости конфигурации: недопустимый ключ компактизации

Это тихо отключит механизм оптимизации.

Правильный подход: используйте только совместимые версии конфигурации

Затем проверьте:

openclaw doctor --fix

Проверьте журнал запуска, чтобы убедиться, что компактизация принята.

P1 — Уменьшить постоянное хранение текста рассуждений

Избегайте повторного воспроизведения длинных текстов рассуждений

В производственной среде: сохраняйте краткое резюме, а не полное обоснование

P3 — Улучшение дизайна кэширования запросов

Цель — не максимизировать cacheRead. Цель — использовать кэш на компактных, стабильных и высокоценных префиксах.

Рекомендация:

  • Включите стабильные правила в системный промпт
  • Не добавляйте нестабильные данные в стабильный префикс
  • Избегайте внесения большого объема отладочных данных за один цикл

Практический план стоп-лосса (если бы мне нужно было обработать это завтра)

1. Найдите сессию с наибольшим процентом cacheRead

2. Выполните /compact для runaway session

3. Добавить усечение + артефактизацию к выводу инструмента

4. После каждого изменения повторно запустите статистику токенов

Основные показатели для отслеживания: четыре KPI:

cacheRead / totalTokens

toolUse avgTotal/call

Количество вызовов >=100k токенов

Максимальный процент сессии

Успешный сигнал

Если оптимизация вступит в силу, вы должны увидеть:

Значительно сократилось количество вызовов токенов более 100 тыс.

Доля cacheRead снизилась

Вес вызова toolUse снижен

Снижение доминирования отдельного сеанса

Если эти показатели не изменились, значит, ваша контекстная стратегия все еще слишком мягкая.

Команды для воспроизведения эксперимента

python3 scripts/session_token_breakdown.py 'sessions' \

--include-deleted \

-- топ-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 \

-- топ-20 \

--png-out tmp/session_duplicate_waste.png \

--json-out tmp/session_duplicate_waste.json \

> tmp/session_duplicate_waste.txt

Заключение

Если ваша система Agent выглядит нормально, но расходы продолжают расти, сначала проверьте один вопрос: вы платите за новые вычисления или за массовое воспроизведение старых контекстов?

В моем случае большая часть затрат действительно приходится на воспроизведение контекста.

Как только вы осознаете это, решение становится очевидным: строго контролировать данные, поступающие в долгосрочный контекст.

Исходная ссылка

Отказ от ответственности: Информация на этой странице может быть получена от третьих лиц и не обязательно отражает взгляды или мнения KuCoin. Данный контент предоставляется исключительно в общих информационных целях, без каких-либо заверений или гарантий, а также не может быть истолкован как финансовый или инвестиционный совет. KuCoin не несет ответственности за ошибки или упущения, а также за любые результаты, полученные в результате использования этой информации. Инвестиции в цифровые активы могут быть рискованными. Пожалуйста, тщательно оценивайте риски, связанные с продуктом, и свою устойчивость к риску, исходя из собственных финансовых обстоятельств. Для получения более подробной информации, пожалуйста, ознакомьтесь с нашими Условиями использования и Уведомлением о риске.