token-optimizer by asif2bd/openclaw-token-optimizer
npx skills add https://github.com/asif2bd/openclaw-token-optimizer --skill token-optimizerOpenClaw 部署中用于减少令牌使用和 API 成本的综合工具包。结合智能模型路由、优化的心跳间隔、使用量跟踪和多提供商策略。
立即行动(无需更改配置):
生成优化的 AGENTS.md(最大收益!):
python3 scripts/context_optimizer.py generate-agents
# 创建 AGENTS.md.optimized — 检查并替换您当前的 AGENTS.md
检查您实际需要的上下文:
python3 scripts/context_optimizer.py recommend "hi, how are you?"
# 显示:仅需 2 个文件(而非 50+!)
安装优化后的心跳:
cp assets/HEARTBEAT.template.md ~/.openclaw/workspace/HEARTBEAT.md
强制在闲聊时使用更便宜的模型:
python3 scripts/model_router.py "thanks!"
# 单提供商 Anthropic 设置:使用 Sonnet,而非 Opus
# 多提供商设置(OpenRouter/Together):使用 Haiku 以最大化节省
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
检查当前令牌预算:
python3 scripts/token_tracker.py check
预期节省: 典型工作负载下令牌成本降低 50-80%(上下文优化是最大因素!)。
最大的令牌节省器 — 仅加载您实际需要的文件,而非预先加载所有内容。
问题: 默认的 OpenClaw 每个会话都会加载所有上下文文件:
解决方案: 基于提示复杂性的延迟加载。
用法:
python3 scripts/context_optimizer.py recommend "<用户提示>"
示例:
# 简单问候 → 最小上下文(仅 2 个文件!)
context_optimizer.py recommend "hi"
→ 加载:SOUL.md, IDENTITY.md
→ 跳过:其他所有内容
→ 节省:约 80% 的上下文
# 标准工作 → 选择性加载
context_optimizer.py recommend "write a function"
→ 加载:SOUL.md, IDENTITY.md, memory/TODAY.md
→ 跳过:文档、旧记忆、知识库
→ 节省:约 50% 的上下文
# 复杂任务 → 完整上下文
context_optimizer.py recommend "analyze our entire architecture"
→ 加载:SOUL.md, IDENTITY.md, MEMORY.md, memory/TODAY+YESTERDAY.md
→ 有条件地加载:仅相关文档
→ 节省:约 30% 的上下文
输出格式:
{
"complexity": "simple",
"context_level": "minimal",
"recommended_files": ["SOUL.md", "IDENTITY.md"],
"file_count": 2,
"savings_percent": 80,
"skip_patterns": ["docs/**/*.md", "memory/20*.md"]
}
集成模式: 在为新会话加载上下文之前:
from context_optimizer import recommend_context_bundle
user_prompt = "thanks for your help"
recommendation = recommend_context_bundle(user_prompt)
if recommendation["context_level"] == "minimal":
# 仅加载 SOUL.md + IDENTITY.md
# 跳过其他所有内容
# 节省约 80% 的令牌!
生成优化的 AGENTS.md:
context_optimizer.py generate-agents
# 创建带有延迟加载指令的 AGENTS.md.optimized
# 检查并替换您当前的 AGENTS.md
预期节省: 上下文令牌减少 50-80%。
自动分类任务并路由到适当的模型层级。
新功能:通信模式强制 — 绝不在 "hi" 或 "thanks" 上浪费 Opus 令牌!
用法:
python3 scripts/model_router.py "<用户提示>" [current_model] [force_tier]
示例:
# 通信(新功能!) → 始终使用 Haiku
python3 scripts/model_router.py "thanks!"
python3 scripts/model_router.py "hi"
python3 scripts/model_router.py "ok got it"
→ 强制:Haiku(闲聊绝不使用 Sonnet/Opus)
# 简单任务 → 建议 Haiku
python3 scripts/model_router.py "read the log file"
# 中等任务 → 建议 Sonnet
python3 scripts/model_router.py "write a function to parse JSON"
# 复杂任务 → 建议 Opus
python3 scripts/model_router.py "design a microservices architecture"
强制使用 Haiku 的模式(绝不使用 Sonnet/Opus):
通信:
后台任务:
集成模式:
from model_router import route_task
user_prompt = "show me the config"
routing = route_task(user_prompt)
if routing["should_switch"]:
# 使用 routing["recommended_model"]
# 节省 routing["cost_savings_percent"]
自定义: 编辑 scripts/model_router.py 中的 ROUTING_RULES 或 COMMUNICATION_PATTERNS 以调整模式和关键词。
通过智能间隔跟踪减少心跳轮询的 API 调用:
设置:
# 将模板复制到工作区
cp assets/HEARTBEAT.template.md ~/.openclaw/workspace/HEARTBEAT.md
# 计划应运行哪些检查
python3 scripts/heartbeat_optimizer.py plan
命令:
# 检查特定类型现在是否应运行
heartbeat_optimizer.py check email
heartbeat_optimizer.py check calendar
# 记录已执行检查
heartbeat_optimizer.py record email
# 更新检查间隔(秒)
heartbeat_optimizer.py interval email 7200 # 2 小时
# 重置状态
heartbeat_optimizer.py reset
工作原理:
HEARTBEAT_OK(节省令牌)默认间隔:
在 HEARTBEAT.md 中集成:
## 电子邮件检查
仅在以下情况运行:`heartbeat_optimizer.py check email` → `should_check: true`
检查后:`heartbeat_optimizer.py record email`
预期节省: 心跳 API 调用减少 50%。
模型强制: 心跳应始终使用 Haiku — 请参阅更新后的 HEARTBEAT.template.md 以获取模型覆盖指令。
问题: 定时任务通常默认使用昂贵的模型(Sonnet/Opus),即使是例行任务。
解决方案: 始终为 90% 的预定任务指定 Haiku。
参见: assets/cronjob-model-guide.md 获取包含示例的完整指南。
快速参考:
| 任务类型 | 模型 | 示例 |
|---|---|---|
| 监控/警报 | Haiku | 检查服务器健康状态、磁盘空间 |
| 数据解析 | Haiku | 提取 CSV/JSON/日志 |
| 提醒 | Haiku | 每日站会、备份提醒 |
| 简单报告 | Haiku | 状态摘要 |
| 内容生成 | Sonnet | 博客摘要(质量重要) |
| 深度分析 | Sonnet | 每周洞察 |
| 复杂推理 | 定时任务绝不使用 Opus |
示例(良好):
# 使用 Haiku 解析每日日志
cron add --schedule "0 2 * * *" \
--payload '{
"kind":"agentTurn",
"message":"Parse yesterday error logs and summarize",
"model":"anthropic/claude-haiku-4"
}' \
--sessionTarget isolated
示例(不良):
# ❌ 对简单检查使用 Opus(贵 60 倍!)
cron add --schedule "*/15 * * * *" \
--payload '{
"kind":"agentTurn",
"message":"Check email",
"model":"anthropic/claude-opus-4"
}' \
--sessionTarget isolated
节省: 为 10 个每日定时任务使用 Haiku 而非 Opus = 每个代理每月节省 $17.70。
与 model_router 集成:
# 测试您的定时任务是否应使用 Haiku
model_router.py "parse daily error logs"
# → 输出:Haiku(检测到后台任务模式)
监控使用量并在接近限制时发出警报:
设置:
# 检查当前每日使用量
python3 scripts/token_tracker.py check
# 获取模型建议
python3 scripts/token_tracker.py suggest general
# 重置每日跟踪
python3 scripts/token_tracker.py reset
输出格式:
{
"date": "2026-02-06",
"cost": 2.50,
"tokens": 50000,
"limit": 5.00,
"percent_used": 50,
"status": "ok",
"alert": null
}
状态级别:
ok:低于每日限制的 80%warning:每日限制的 80-99%exceeded:超过每日限制集成模式: 在开始昂贵操作之前,检查预算:
import json
import subprocess
result = subprocess.run(
["python3", "scripts/token_tracker.py", "check"],
capture_output=True, text=True
)
budget = json.loads(result.stdout)
if budget["status"] == "exceeded":
# 切换到更便宜的模型或推迟非紧急工作
use_model = "anthropic/claude-haiku-4"
elif budget["status"] == "warning":
# 使用平衡模型
use_model = "anthropic/claude-sonnet-4-5"
自定义: 编辑函数调用中的 daily_limit_usd 和 warn_threshold 参数。
请参阅 references/PROVIDERS.md 以获取关于以下内容的完整指南:
快速参考:
| 提供商 | 模型 | 成本/MTok | 使用场景 |
|---|---|---|---|
| Anthropic | Haiku 4 | $0.25 | 简单任务 |
| Anthropic | Sonnet 4.5 | $3.00 | 平衡默认 |
| Anthropic | Opus 4 | $15.00 | 复杂推理 |
| OpenRouter | Gemini 2.5 Flash | $0.075 | 批量操作 |
| Google AI | Gemini 2.0 Flash Exp | FREE | 开发/测试 |
| Together | Llama 3.3 70B | $0.18 | 开源替代方案 |
请参阅 assets/config-patches.json 以获取高级优化:
此技能已实现:
原生 OpenClaw 2026.2.15 — 直接应用:
contextPruning: cache-ttl)— 在 Anthropic 缓存 TTL 过期后自动修剪旧工具结果bootstrapMaxChars / bootstrapTotalMaxChars)— 限制工作区文件注入大小cacheRetention: "long")— 分摊缓存写入成本需要 OpenClaw 核心支持:
context_optimizer.py 脚本)应用配置补丁:
# 示例:启用多提供商回退
gateway config.patch --patch '{"providers": [...]}'
OpenClaw 2026.2.15 添加了内置命令,与此技能的 Python 脚本互补。在寻求脚本之前,首先使用这些命令进行快速诊断。
/context list → 每个注入文件的令牌计数(准确显示消耗提示的内容)
/context detail → 完整细分,包括工具、技能和系统提示部分
在应用 bootstrap_size_limits 之前使用 — 查看哪些文件过大,然后相应设置 bootstrapMaxChars。
/usage tokens → 在每个回复后附加令牌计数
/usage full → 在每个回复后附加令牌 + 成本估算
/usage cost → 显示会话日志中的累计成本摘要
/usage off → 禁用使用量页脚
与 token_tracker.py 结合使用 — /usage cost 提供会话总计;token_tracker.py 跟踪每日预算。
/status → 模型、上下文百分比、上次响应令牌数、估算成本
问题: Anthropic 对缓存 写入 的收费约为缓存 读取 的 3.75 倍。如果您的代理闲置且 1 小时缓存 TTL 过期,下一个请求将重新写入整个提示缓存 — 非常昂贵。
解决方案: 将心跳间隔设置为 55 分钟(略低于 1 小时 TTL)。心跳保持缓存温暖,因此每个后续请求都支付缓存读取速率而非写入速率。
# 为您的缓存 TTL 获取最佳间隔
python3 scripts/heartbeat_optimizer.py cache-ttl
# → recommended_interval: 55min (3300s)
# → explanation: 保持 1 小时 Anthropic 缓存温暖
# 自定义 TTL(例如,如果您配置了 2 小时缓存)
python3 scripts/heartbeat_optimizer.py cache-ttl 7200
# → recommended_interval: 115min
应用到您的 OpenClaw 配置:
{
"agents": {
"defaults": {
"heartbeat": {
"every": "55m"
}
}
}
}
受益者: 仅限 Anthropic API 密钥用户。OAuth 配置文件已默认 1 小时心跳(OpenClaw 智能默认)。API 密钥配置文件默认 30 分钟 — 增加到 55 分钟既更便宜(调用更少)又能保持缓存温暖。
HEARTBEAT.md预期节省: 20-30%
预期节省: 40-60%
预期节省: 70-90%
# 1. 用户发送消息
user_msg="debug this error in the logs"
# 2. 路由到适当的模型
routing=$(python3 scripts/model_router.py "$user_msg")
model=$(echo $routing | jq -r .recommended_model)
# 3. 在继续之前检查预算
budget=$(python3 scripts/token_tracker.py check)
status=$(echo $budget | jq -r .status)
if [ "$status" = "exceeded" ]; then
# 无论路由如何,都使用最便宜的模型
model="anthropic/claude-haiku-4"
fi
# 4. 使用选定的模型处理
# (OpenClaw 通过配置或覆盖处理此步骤)
## HEARTBEAT.md
# 计划检查内容
result=$(python3 scripts/heartbeat_optimizer.py plan)
should_run=$(echo $result | jq -r .should_run)
if [ "$should_run" = "false" ]; then
echo "HEARTBEAT_OK"
exit 0
fi
# 仅运行计划的检查
planned=$(echo $result | jq -r '.planned[].type')
for check in $planned; do
case $check in
email) check_email ;;
calendar) check_calendar ;;
esac
python3 scripts/heartbeat_optimizer.py record $check
done
问题: 脚本失败,提示 "module not found"
问题: 状态文件未持久化
~/.openclaw/workspace/memory/ 目录是否存在且可写。问题: 预算跟踪显示 $0.00
token_tracker.py 需要与 OpenClaw 的 session_status 工具集成。目前跟踪手动记录的使用量。问题: 路由建议错误的模型层级
model_router.py 中的 ROUTING_RULES。每日:
token_tracker.py check每周:
每月:
PROVIDERS.md 中的新选项示例:每日 100K 令牌工作负载
未使用此技能:
| 策略 | 上下文 | 模型 | 每日成本 | 每月 | 节省 |
|---|---|---|---|---|---|
| 基线(无优化) | 50K | Sonnet | $0.30 | $9.00 | 0% |
| 仅上下文优化 | 10K (-80%) | Sonnet | $0.18 | $5.40 | 40% |
| 仅模型路由 | 50K | 混合 | $0.18 | $5.40 | 40% |
| 两者(此技能) | 10K | 混合 | $0.09 | $2.70 | 70% |
| 激进 + Gemini | 10K | Gemini | $0.03 | $0.90 | 90% |
关键洞察: 上下文优化(50K → 10K 令牌)比模型路由节省更多!
xCloud 托管场景(100 个客户,每个客户每日 50K 令牌):
context_optimizer.py — 上下文加载优化和延迟加载(新功能!)model_router.py — 任务分类、模型建议和通信强制(增强版!)heartbeat_optimizer.py — 间隔管理和检查调度token_tracker.py — 预算监控和警报PROVIDERS.md — 替代 AI 提供商、定价和路由策略HEARTBEAT.template.md — 即插即用的优化心跳模板,包含 Haiku 强制(增强版!)cronjob-model-guide.md — 在定时任务中选择模型的完整指南(新功能!)config-patches.json — 高级配置示例扩展此技能的想法:
每周安装次数
63
代码仓库
GitHub 星标数
4
首次出现
2026 年 2 月 18 日
安全审计
安装于
opencode62
gemini-cli62
github-copilot61
amp61
codex61
openclaw61
Comprehensive toolkit for reducing token usage and API costs in OpenClaw deployments. Combines smart model routing, optimized heartbeat intervals, usage tracking, and multi-provider strategies.
Immediate actions (no config changes needed):
Generate optimized AGENTS.md (BIGGEST WIN!):
python3 scripts/context_optimizer.py generate-agents
# Creates AGENTS.md.optimized — review and replace your current AGENTS.md
Check what context you ACTUALLY need:
python3 scripts/context_optimizer.py recommend "hi, how are you?"
# Shows: Only 2 files needed (not 50+!)
Install optimized heartbeat:
cp assets/HEARTBEAT.template.md ~/.openclaw/workspace/HEARTBEAT.md
Enforce cheaper models for casual chat:
python3 scripts/model_router.py "thanks!"
# Single-provider Anthropic setup: Use Sonnet, not Opus
# Multi-provider setup (OpenRouter/Together): Use Haiku for max savings
Check current token budget:
python3 scripts/token_tracker.py check
Expected savings: 50-80% reduction in token costs for typical workloads (context optimization is the biggest factor!).
Biggest token saver — Only load files you actually need, not everything upfront.
Problem: Default OpenClaw loads ALL context files every session:
Solution: Lazy loading based on prompt complexity.
Usage:
python3 scripts/context_optimizer.py recommend "<user prompt>"
Examples:
# Simple greeting → minimal context (2 files only!)
context_optimizer.py recommend "hi"
→ Load: SOUL.md, IDENTITY.md
→ Skip: Everything else
→ Savings: ~80% of context
# Standard work → selective loading
context_optimizer.py recommend "write a function"
→ Load: SOUL.md, IDENTITY.md, memory/TODAY.md
→ Skip: docs, old memory, knowledge base
→ Savings: ~50% of context
# Complex task → full context
context_optimizer.py recommend "analyze our entire architecture"
→ Load: SOUL.md, IDENTITY.md, MEMORY.md, memory/TODAY+YESTERDAY.md
→ Conditionally load: Relevant docs only
→ Savings: ~30% of context
Output format:
{
"complexity": "simple",
"context_level": "minimal",
"recommended_files": ["SOUL.md", "IDENTITY.md"],
"file_count": 2,
"savings_percent": 80,
"skip_patterns": ["docs/**/*.md", "memory/20*.md"]
}
Integration pattern: Before loading context for a new session:
from context_optimizer import recommend_context_bundle
user_prompt = "thanks for your help"
recommendation = recommend_context_bundle(user_prompt)
if recommendation["context_level"] == "minimal":
# Load only SOUL.md + IDENTITY.md
# Skip everything else
# Save ~80% tokens!
Generate optimized AGENTS.md:
context_optimizer.py generate-agents
# Creates AGENTS.md.optimized with lazy loading instructions
# Review and replace your current AGENTS.md
Expected savings: 50-80% reduction in context tokens.
Automatically classify tasks and route to appropriate model tiers.
NEW: Communication pattern enforcement — Never waste Opus tokens on "hi" or "thanks"!
Usage:
python3 scripts/model_router.py "<user prompt>" [current_model] [force_tier]
Examples:
# Communication (NEW!) → ALWAYS Haiku
python3 scripts/model_router.py "thanks!"
python3 scripts/model_router.py "hi"
python3 scripts/model_router.py "ok got it"
→ Enforced: Haiku (NEVER Sonnet/Opus for casual chat)
# Simple task → suggests Haiku
python3 scripts/model_router.py "read the log file"
# Medium task → suggests Sonnet
python3 scripts/model_router.py "write a function to parse JSON"
# Complex task → suggests Opus
python3 scripts/model_router.py "design a microservices architecture"
Patterns enforced to Haiku (NEVER Sonnet/Opus):
Communication:
Background tasks:
Integration pattern:
from model_router import route_task
user_prompt = "show me the config"
routing = route_task(user_prompt)
if routing["should_switch"]:
# Use routing["recommended_model"]
# Save routing["cost_savings_percent"]
Customization: Edit ROUTING_RULES or COMMUNICATION_PATTERNS in scripts/model_router.py to adjust patterns and keywords.
Reduce API calls from heartbeat polling with smart interval tracking:
Setup:
# Copy template to workspace
cp assets/HEARTBEAT.template.md ~/.openclaw/workspace/HEARTBEAT.md
# Plan which checks should run
python3 scripts/heartbeat_optimizer.py plan
Commands:
# Check if specific type should run now
heartbeat_optimizer.py check email
heartbeat_optimizer.py check calendar
# Record that a check was performed
heartbeat_optimizer.py record email
# Update check interval (seconds)
heartbeat_optimizer.py interval email 7200 # 2 hours
# Reset state
heartbeat_optimizer.py reset
How it works:
HEARTBEAT_OK when nothing needs attention (saves tokens)Default intervals:
Integration in HEARTBEAT.md:
## Email Check
Run only if: `heartbeat_optimizer.py check email` → `should_check: true`
After checking: `heartbeat_optimizer.py record email`
Expected savings: 50% reduction in heartbeat API calls.
Model enforcement: Heartbeat should ALWAYS use Haiku — see updated HEARTBEAT.template.md for model override instructions.
Problem: Cronjobs often default to expensive models (Sonnet/Opus) even for routine tasks.
Solution: Always specify Haiku for 90% of scheduled tasks.
See: assets/cronjob-model-guide.md for comprehensive guide with examples.
Quick reference:
| Task Type | Model | Example |
|---|---|---|
| Monitoring/alerts | Haiku | Check server health, disk space |
| Data parsing | Haiku | Extract CSV/JSON/logs |
| Reminders | Haiku | Daily standup, backup reminders |
| Simple reports | Haiku | Status summaries |
| Content generation | Sonnet | Blog summaries (quality matters) |
| Deep analysis | Sonnet | Weekly insights |
| Complex reasoning | Never use Opus for cronjobs |
Example (good):
# Parse daily logs with Haiku
cron add --schedule "0 2 * * *" \
--payload '{
"kind":"agentTurn",
"message":"Parse yesterday error logs and summarize",
"model":"anthropic/claude-haiku-4"
}' \
--sessionTarget isolated
Example (bad):
# ❌ Using Opus for simple check (60x more expensive!)
cron add --schedule "*/15 * * * *" \
--payload '{
"kind":"agentTurn",
"message":"Check email",
"model":"anthropic/claude-opus-4"
}' \
--sessionTarget isolated
Savings: Using Haiku instead of Opus for 10 daily cronjobs = $17.70/month saved per agent.
Integration with model_router:
# Test if your cronjob should use Haiku
model_router.py "parse daily error logs"
# → Output: Haiku (background task pattern detected)
Monitor usage and alert when approaching limits:
Setup:
# Check current daily usage
python3 scripts/token_tracker.py check
# Get model suggestions
python3 scripts/token_tracker.py suggest general
# Reset daily tracking
python3 scripts/token_tracker.py reset
Output format:
{
"date": "2026-02-06",
"cost": 2.50,
"tokens": 50000,
"limit": 5.00,
"percent_used": 50,
"status": "ok",
"alert": null
}
Status levels:
ok: Below 80% of daily limitwarning: 80-99% of daily limitexceeded: Over daily limitIntegration pattern: Before starting expensive operations, check budget:
import json
import subprocess
result = subprocess.run(
["python3", "scripts/token_tracker.py", "check"],
capture_output=True, text=True
)
budget = json.loads(result.stdout)
if budget["status"] == "exceeded":
# Switch to cheaper model or defer non-urgent work
use_model = "anthropic/claude-haiku-4"
elif budget["status"] == "warning":
# Use balanced model
use_model = "anthropic/claude-sonnet-4-5"
Customization: Edit daily_limit_usd and warn_threshold parameters in function calls.
See references/PROVIDERS.md for comprehensive guide on:
Quick reference:
| Provider | Model | Cost/MTok | Use Case |
|---|---|---|---|
| Anthropic | Haiku 4 | $0.25 | Simple tasks |
| Anthropic | Sonnet 4.5 | $3.00 | Balanced default |
| Anthropic | Opus 4 | $15.00 | Complex reasoning |
| OpenRouter | Gemini 2.5 Flash | $0.075 | Bulk operations |
| Google AI | Gemini 2.0 Flash Exp | FREE | Dev/testing |
| Together | Llama 3.3 70B | $0.18 | Open alternative |
See assets/config-patches.json for advanced optimizations:
Implemented by this skill:
Native OpenClaw 2026.2.15 — apply directly:
contextPruning: cache-ttl) — auto-trims old tool results after Anthropic cache TTL expiresbootstrapMaxChars / bootstrapTotalMaxChars) — caps workspace file injection sizecacheRetention: "long" for Opus) — amortizes cache write costsRequires OpenClaw core support:
context_optimizer.py script today)Apply config patches:
# Example: Enable multi-provider fallback
gateway config.patch --patch '{"providers": [...]}'
OpenClaw 2026.2.15 added built-in commands that complement this skill's Python scripts. Use these first for quick diagnostics before reaching for the scripts.
/context list → token count per injected file (shows exactly what's eating your prompt)
/context detail → full breakdown including tools, skills, and system prompt sections
Use before applyingbootstrap_size_limits — see which files are oversized, then set bootstrapMaxChars accordingly.
/usage tokens → append token count to every reply
/usage full → append tokens + cost estimate to every reply
/usage cost → show cumulative cost summary from session logs
/usage off → disable usage footer
Combine withtoken_tracker.py — /usage cost gives session totals; token_tracker.py tracks daily budget.
/status → model, context %, last response tokens, estimated cost
The problem: Anthropic charges ~3.75x more for cache writes than cache reads. If your agent goes idle and the 1h cache TTL expires, the next request re-writes the entire prompt cache — expensive.
The fix: Set heartbeat interval to 55min (just under the 1h TTL). The heartbeat keeps the cache warm, so every subsequent request pays cache-read rates instead.
# Get optimal interval for your cache TTL
python3 scripts/heartbeat_optimizer.py cache-ttl
# → recommended_interval: 55min (3300s)
# → explanation: keeps 1h Anthropic cache warm
# Custom TTL (e.g., if you've configured 2h cache)
python3 scripts/heartbeat_optimizer.py cache-ttl 7200
# → recommended_interval: 115min
Apply to your OpenClaw config:
{
"agents": {
"defaults": {
"heartbeat": {
"every": "55m"
}
}
}
}
Who benefits: Anthropic API key users only. OAuth profiles already default to 1h heartbeat (OpenClaw smart default). API key profiles default to 30min — bumping to 55min is both cheaper (fewer calls) and cache-warm.
HEARTBEAT.mdExpected savings: 20-30%
Expected savings: 40-60%
Expected savings: 70-90%
# 1. User sends message
user_msg="debug this error in the logs"
# 2. Route to appropriate model
routing=$(python3 scripts/model_router.py "$user_msg")
model=$(echo $routing | jq -r .recommended_model)
# 3. Check budget before proceeding
budget=$(python3 scripts/token_tracker.py check)
status=$(echo $budget | jq -r .status)
if [ "$status" = "exceeded" ]; then
# Use cheapest model regardless of routing
model="anthropic/claude-haiku-4"
fi
# 4. Process with selected model
# (OpenClaw handles this via config or override)
## HEARTBEAT.md
# Plan what to check
result=$(python3 scripts/heartbeat_optimizer.py plan)
should_run=$(echo $result | jq -r .should_run)
if [ "$should_run" = "false" ]; then
echo "HEARTBEAT_OK"
exit 0
fi
# Run only planned checks
planned=$(echo $result | jq -r '.planned[].type')
for check in $planned; do
case $check in
email) check_email ;;
calendar) check_calendar ;;
esac
python3 scripts/heartbeat_optimizer.py record $check
done
Issue: Scripts fail with "module not found"
Issue: State files not persisting
~/.openclaw/workspace/memory/ directory exists and is writable.Issue: Budget tracking shows $0.00
token_tracker.py needs integration with OpenClaw's session_status tool. Currently tracks manually recorded usage.Issue: Routing suggests wrong model tier
ROUTING_RULES in model_router.py for your specific patterns.Daily:
token_tracker.py checkWeekly:
Monthly:
PROVIDERS.md with new optionsExample: 100K tokens/day workload
Without skill:
| Strategy | Context | Model | Daily Cost | Monthly | Savings |
|---|---|---|---|---|---|
| Baseline (no optimization) | 50K | Sonnet | $0.30 | $9.00 | 0% |
| Context opt only | 10K (-80%) | Sonnet | $0.18 | $5.40 | 40% |
| Model routing only | 50K | Mixed | $0.18 | $5.40 | 40% |
| Both (this skill) | 10K | Mixed | $0.09 | $2.70 |
Key insight: Context optimization (50K → 10K tokens) saves MORE than model routing!
xCloud hosting scenario (100 customers, 50K tokens/customer/day):
context_optimizer.py — Context loading optimization and lazy loading (NEW!)model_router.py — Task classification, model suggestions, and communication enforcement (ENHANCED!)heartbeat_optimizer.py — Interval management and check schedulingtoken_tracker.py — Budget monitoring and alertsPROVIDERS.md — Alternative AI providers, pricing, and routing strategiesHEARTBEAT.template.md — Drop-in optimized heartbeat template with Haiku enforcement (ENHANCED!)cronjob-model-guide.md — Complete guide for choosing models in cronjobs (NEW!)config-patches.json — Advanced configuration examplesIdeas for extending this skill:
Weekly Installs
63
Repository
GitHub Stars
4
First Seen
Feb 18, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode62
gemini-cli62
github-copilot61
amp61
codex61
openclaw61
AI Elements:基于shadcn/ui的AI原生应用组件库,快速构建对话界面
63,800 周安装
| Aggressive + Gemini | 10K | Gemini | $0.03 | $0.90 | 90% |