Ваш openclaw начал жрать токены и ваши деньги как не в себя?
Значит этот пост вам пригодится.
Ваши агенты могут самостоятельно это настроить.
Ваши агенты могут самостоятельно это настроить.
Чтобы не было такого сообщения как у меня — 340 МИЛЛИОНОВ токенов сожрано на DeepSeek. ~$40-45 за 3 дня, а это повторилось дважды, попадалово почти на 100 бакинских рублей и это на дешевой( по сравнению с другими) модели deepseek-v4-pro
1. Отключать глобально thinking
Либо для конкретной сессии через /thinking off.
Thinking максимально жрёт токены — тот же DeepSeek с включённым мышлением может жрать в 3-5 раз больше токенов на ответ. Оставлять только когда задача реально требует глубокого анализа, иначе — выключено.
agents:
defaults:
thinking: false
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" # цель после чистки
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
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"
...
Ставьте ВСЕ модели, которые могут понадобиться саб-агентам, в этот список.
Если модель саб-агента не в 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
Каждый тул с описанием весит ~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 # авто-сохранение памяти перед компактом
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
agents:
defaults:
contextLimits:
toolResultMaxChars: 12000
9. BootstrapMaxChars / BootstrapTotalMaxChars
Аккуратно с размером MEMORY.md, SOUL.md, TOOLS.md — каждый лишний килобайт это +токены в каждом ответе.
agents:
defaults:
bootstrapMaxChars: 8000 # по дефолту 20000 — режь
bootstrapTotalMaxChars: 25000 # по дефолту 60000
agents:
defaults:
bootstrapMaxChars: 8000 # по дефолту 20000 — режь
bootstrapTotalMaxChars: 25000 # по дефолту 60000
10. StartupContext — если не нужно, выруби
agents:
defaults:
startupContext: false
defaults:
startupContext: false
11. ImageMaxDimensionPx
Каждая картинка в контексте — 500-2000 токенов вижена. Если картинки используешь редко — снизь.
agents:
defaults:
imageMaxDimensionPx: 800 # по дефолту 1200
Не юзаешь картинки вообще → 300.
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
)
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"
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
cron:
sessionRetention: 6h
15. Включи /usage, чтобы понимать расход токенов
Отображение расхода токенов в каждом ответе. Видеть проблему — половина решения.
/usage tokens # токены только
/usage full # токены + стоимость
/usage tokens # токены только
/usage full # токены + стоимость
16. Prompt caching (опционально)
Если модель поддерживает (Anthropic, частично DeepSeek через OpenRouter):
agents:
defaults:
params:
cacheRetention: "short"
heartbeat:
every: "4m" # держать кэш тёплым
На 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)
2. /new на каждый новый запрос (п. 2)
3. Compaction mode: safeguard (п. 7)
4. Allowlist моделей для саб-агентов (п. 4)
Остальное — шлифовка, но тоже решает.
После этого расход токенов устаканится и все будет тип-топ.
После этого расход токенов устаканится и все будет тип-топ.