关于 heartbeat-governor
Heartbeat Governor 用于监控定时运行技能的累计费用、运行时长和每日运行次数,适合管理自动执行任务的预算。超出限制时,它会暂停或中止任务、记录事件并发出提醒。
主要功能
- 01跟踪滚动 30 天运行费用
- 02监控单次运行时长与每日次数
- 03按技能配置预算上限
- 04超限时暂停或中止运行
- 05查看状态并生成费用报告
适用场景
- 01限制定时技能的月度支出
- 02排查异常费用或长时间运行
- 03检查暂停原因后恢复技能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ archieindian/ openclaw-superpowers --skill heartbeat-governor安装后在 Claude Code 中输入/heartbeat-governor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
example-state.yamlgovernor.pySTATE_SCHEMA.yaml详细介绍
心跳预算守护器
功能
Cron 技能会自主运行。存在缺陷的技能——例如无限重试、上下文意外过大,或在循环中调用模型——可能会悄无声息地消耗数百美元,等你发现时为时已晚。
心跳预算守护器会按滚动 30 天周期跟踪每个定时技能的累计执行费用和运行时长。当技能超出预算时,守护器会暂停该技能并发送警报。在你明确审核并恢复之前,该技能不会再次触发。
守护器每小时运行一次,以便在一个 Cron 周期内发现预算超支。
何时调用
- 每小时自动调用(cron)
- 发现 API 账单意外飙升后手动调用
- Cron 技能运行时间异常过长时调用
预算类型
| 预算类型 | 默认值 | 可配置 |
|---|---|---|
max_usd_monthly | $5.00 | 是,按技能配置 |
max_usd_per_run | $0.50 | 是,按技能配置 |
max_wall_minutes | 30 | 是,按技能配置 |
max_runs_daily | 48 | 是,按技能配置 |
超出预算时的操作
| 超支类型 | 操作 |
|---|---|
超出 monthly_usd | 暂停技能、记录超支、发送警报 |
超出 per_run_usd | 中止当前运行、记录超支 |
超出 wall_clock | 中止当前运行、记录超支 |
超出 daily_runs | 跳过当天剩余的运行、记录 |
使用方法
python3 governor.py --status # Show all skills and budget utilisation
python3 governor.py --record <skill> --usd 0.12 --minutes 4 # Record a run
python3 governor.py --pause <skill> # Manually pause a skill
python3 governor.py --resume <skill> # Resume a paused skill after review
python3 governor.py --set-budget <skill> --monthly 10.00 # Override budget
python3 governor.py --check # Run hourly check (called by cron)
python3 governor.py --report # Full monthly spend report
python3 governor.py --format json
Cron 唤醒行为
守护器每小时运行一次 --check:
- 从状态中加载所有技能账本
- 对每个
paused: false的技能:- 如果 30 天滚动支出超出
max_usd_monthly→ 设置paused: true,并记录 - 如果当天运行次数超出
max_runs_daily→ 跳过并记录
- 如果 30 天滚动支出超出
- 输出已暂停技能和预算使用情况的摘要
- 保存更新后的状态
操作步骤
步骤 1 — 设置合理的预算
安装任何新的 Cron 技能后,请设置其月度预算:
python3 governor.py --set-budget daily-review --monthly 2.00
python3 governor.py --set-budget morning-briefing --monthly 3.00
默认预算较为保守(每月 $5),但明确设置会更好。
步骤 2 — 监控使用情况
python3 governor.py --status
查看使用率列。任何月度预算使用率超过 80% 的技能都值得调查。
步骤 3 — 处理暂停警报
守护器暂停技能时,请调查其超出预算的原因:
- 是否有一次性高成本运行(上下文较大)?
- 是否存在导致重复高成本调用的缺陷?
- 是否只需提高预算?
调查后恢复:
python3 governor.py --resume <skill>
状态
每个技能的账本和暂停标记都存储在 ~/.openclaw/skill-state/heartbeat-governor/state.yaml 中。
字段:skill_ledgers 映射、paused_skills 列表、breach_log、monthly_summary。
评论
支持 Markdown