Основные правила для минимизации сжирания токенов на 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" # цель после чистки
Когда подключаете саб-агентов — убедитесь что они работают через модель которую вы хотели.
Если модель саб-агента не в agents.defaults.models (allowlist) — OpenClaw будет отвергать неразрешённую модель и делать тихий fallback на родительскую модель. Ты думаешь что экономишь на бесплатной модели, а платишь за флагманскую.
Ставьте ВСЕ модели, которые могут понадобиться саб-агентам, в этот список.
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+ символов.
Аккуратно с размером 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 токенов на каждого саба.