Телефонизация
Интеграция с современными решениями.
Телефонизация бизнеса.
Заказать звонок с сайта
Мы будем перезванивать вам с номера
+74991137011
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности.
Телефонизация. Технический блог.

Основные правила для минимизации сжирания токенов на Openclaw

Ваш openclaw начал жрать токены и ваши деньги как не в себя?

Значит этот пост вам пригодится.
Ваши агенты могут самостоятельно это настроить.
Чтобы не было такого сообщения как у меня — 340 МИЛЛИОНОВ токенов сожрано на DeepSeek. ~$40-45 за 3 дня, а это повторилось дважды, попадалово почти на 100 бакинских рублей и это на дешевой( по сравнению с другими) модели deepseek-v4-pro

1. Отключать глобально thinking

Либо для конкретной сессии через /thinking off.
Thinking максимально жрёт токены — тот же DeepSeek с включённым мышлением может жрать в 3-5 раз больше токенов на ответ. Оставлять только когда задача реально требует глубокого анализа, иначе — выключено.

agents:
defaults:
thinking: false

2. Каждый новый запрос, не связанный с предыдущим — /new

Это ротирует сессию и сбрасывает накопленный контекст. /new не удаляет старую сессию, а создаёт новую в том же sessionKey.

3. Чистка старых сессий — через автомат, не руками

Без настройки старые сессии скапливаются и sessions.json раздувается. Нужен auto-maintenance.

session:
maintenance:
mode: enforce # enforce — реально чистит
pruneAfter: 7d # сессии старше 7 дней — в утиль
maxEntries: 100 # максимум записей в sessions.json
maxDiskBytes: "500mb" # бюджет на все сессии
highWaterBytes: "400mb" # цель после чистки

Разово подчистить старые хвосты:

openclaw sessions cleanup --dry-run
openclaw sessions cleanup --enforce

4. Allowlist моделей для саб-агентов

Когда подключаете саб-агентов — убедитесь что они работают через модель которую вы хотели.

Если модель саб-агента не в agents.defaults.models (allowlist) — OpenClaw будет отвергать неразрешённую модель и делать тихий fallback на родительскую модель. Ты думаешь что экономишь на бесплатной модели, а платишь за флагманскую.

agents:
defaults:
models:
- "google/gemini-2.5-flash-lite:*"
- "openrouter/deepseek/deepseek-chat:free"
- "deepseek/deepseek-v4-flash"
...

Ставьте ВСЕ модели, которые могут понадобиться саб-агентам, в этот список.

5. Не борщите со скиллами

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

Каждый тул с описанием весит ~2-5K токенов в системном промпте. 21 тул × ~3K = ~60K токенов экономии на каждой загрузке контекста — если тулов меньше.

Сами SKILL.md загружаются через read по требованию, в контексте висит только список с описаниями, но и он может быть большим.

Дополнительно — настрой лимит:

skills:
limits:
maxSkillsPromptChars: 6000

6. Compaction mode: safeguard (обязательно)

Дефолтный default компактит только по контекст-оверфлоу модели. Не жди ошибки — ставь safeguard. Он держит контекст в узде на каждом ходу, до того как модель начнёт задыхаться.

agents:
defaults:
compaction:
enabled: true
mode: safeguard # компактит постоянно, а не по ошибке
reserveTokens: 20000 # запас на ответ
keepRecentTokens: 8000 # сколько последних токенов не трогать при компакте
memoryFlush:
enabled: true # авто-сохранение памяти перед компактом

7. QMD — гибридная память

@tobilu/qmd — BM25 (точные слова) + векторный поиск + LLM реранкинг. Точность: 45% → 92%. Локально, бесплатно, авто-fallback на SQLite. Экономит не токены модельки напрямую, но сокращает количество лишних обращений к памяти.

8. ToolResultMaxChars — режь жирные ответы тулов

Если тул возвращает простыню (например read большого файла) — контекст улетает. Без лимита может отдать 50k+ символов.

agents:
defaults:
contextLimits:
toolResultMaxChars: 12000

9. BootstrapMaxChars / BootstrapTotalMaxChars

Аккуратно с размером MEMORY.md, SOUL.md, TOOLS.md — каждый лишний килобайт это +токены в каждом ответе.

agents:
defaults:
bootstrapMaxChars: 8000 # по дефолту 20000 — режь
bootstrapTotalMaxChars: 25000 # по дефолту 60000

10. StartupContext — если не нужно, выруби

agents:
defaults:
startupContext: false

11. ImageMaxDimensionPx

Каждая картинка в контексте — 500-2000 токенов вижена. Если картинки используешь редко — снизь.

agents:
defaults:
imageMaxDimensionPx: 800 # по дефолту 1200

Не юзаешь картинки вообще → 300.

12. Light context для саб-агентов

При запуске саб-агента через sessions_spawn добавляй флаг lightContext: true. Саб-агент не тянет все файлы рабочей области, только ядро инструкций. Гарантированная экономия ~10-20k токенов на каждого саба.

sessions_spawn(
task: "...",
model: "google/gemini-2.5-flash-lite",
lightContext: true
)

13. Heartbeat и cron — на дешёвую модель

Не долбить флагман (DeepSeek, Claude, GPT) для heartbeat и мелких cron-задач.

agents:
defaults:
heartbeat:
model: "google/gemini-2.5-flash-lite"
every: "30m"

В payload cron:

payload:
kind: "agentTurn"
message: "..."
model: "google/gemini-2.5-flash-lite"

14. Cron.sessionRetention — чистить мусор от крон-задач

Каждый isolated cron создаёт entry в sessions.json. Без авточистки за неделю накопится мусор.

cron:
sessionRetention: 6h

15. Включи /usage, чтобы понимать расход токенов

Отображение расхода токенов в каждом ответе. Видеть проблему — половина решения.

/usage tokens # токены только
/usage full # токены + стоимость

16. Prompt caching (опционально)

Если модель поддерживает (Anthropic, частично DeepSeek через OpenRouter):

agents:
defaults:
params:
cacheRetention: "short"
heartbeat:
every: "4m" # держать кэш тёплым

На DeepSeek через OpenRouter — с осторожностью, кэш работает нестабильно.

Самое важное: эти 4 пункта дают 80% экономии

1. Thinking off (п. 1)
2. /new на каждый новый запрос (п. 2)
3. Compaction mode: safeguard (п. 7)
4. Allowlist моделей для саб-агентов (п. 4)
Остальное — шлифовка, но тоже решает.
После этого расход токенов устаканится и все будет тип-топ.
Обо всем