goal-heartbeat-engine
✓Verified·Scanned 2/19/2026
多目标轮转心跳引擎。当 cron 心跳触发、或 Agent 需要自主决定下一步行动时自动调用。提供:骰子随机模式选择、目标健康度追踪、防重复机制、接力棒续跑、产出质量红线。适用于任何需要在多个长期目标间智能轮转、持续产出的 AI Agent 系统。
from clawhub.ai·vfc4ac4c·11.8 KB·0 installs
Scanned from 1.0.0 at fc4ac4c · Transparency log ↗
$ vett add clawhub.ai/wilsonliu95/goal-heartbeat-engine
Goal Heartbeat Engine
铁律:每次心跳 = 至少一个有形产出。"什么都不做"是不可达状态。
概述
心跳引擎是一个多目标轮转状态机,让 AI Agent 在多个长期目标间智能分配注意力,确保每次执行都有实质性产出。
运行时数据位置(本 Skill 只定义算法,数据在 workspace 下):
workspace/memory/PULSE.md— 状态机(轮转计数、接力棒、防重复记录)workspace/memory/GOALS.md— 目标看板(G1-G4 里程碑 + 子任务进度)
核心机制:
- 🎲 骰子随机 — 5 种模式等概率分配,避免路径依赖
- 📊 健康度追踪 — STARVED/COLD/OK/HOT 四级预警
- 🔄 防重复 — 硬性规则阻止重复劳动
- 🏃 接力棒 — 跨心跳任务续跑
触发方式:cron 自动触发(非人工调用)
心跳执行算法(六步状态机)
Step 0: 读取状态(强制)
读 PULSE.md:
- 上次心跳做了什么?
- 哪个目标最饥饿?
- 接力棒是什么?等了几次?
- 近10次产出有没有重复模式?
读 GOALS.md:
- 有没有未勾选的子任务?
- 健康仪表盘哪个目标 STARVED?
检查紧急事项:
- 主人有未回复消息?→ 立即回复(≤30秒)
- 有任务失败/异常?→ 处理
Step 1: 掷骰子,决定模式
执行: date +%s
取末两位数字作为 dice_roll (00-99)
模式决策表:
00-19 (20%): 🚀「大力出奇迹」— 做一件大胆的、可能改变轨迹的事
20-39 (20%): 🎲「随机深潜」— 从种子关键词表随机选,探索未知
40-59 (20%): 🏃「接力续跑」— 执行 PULSE.md 中的接力棒
60-79 (20%): 📈「补位推进」— 服务最饥饿(STARVED/COLD)的目标
80-99 (20%): 🎁「给主人惊喜」— 创造主人没想到但会喜欢的价值
⚠️ 覆盖规则(优先级高于骰子):
- 接力棒等了 > 3次心跳 → 强制「接力续跑」
- 某目标24h内0次服务 → 强制该目标
- 防重复规则触发 → 切换目标或类型
Step 2: 选定行动
根据模式选择具体行动:
- 🚀 大力出奇迹 → 参见
references/action-protocols.md大力出奇迹协议 - 🎲 随机深潜 → 参见
references/seed-keywords.md,用 dice_roll 选关键词 - 🏃 接力续跑 → 执行 PULSE.md 中记录的接力棒
- 📈 补位推进 → 找 GOALS.md 中最饥饿目标的第一个未勾选子任务
- 🎁 给主人惊喜 → 参见
references/action-protocols.md惊喜协议
Step 3: 立即执行(≥5分钟深度工作)
不是"计划做",是"已经做了"
不是搜一次就完,是搜透、读透、产出
最低标准:
- 搜索 5+ 次(中英双语)
- 精读 2+ 篇全文
- 产出可保存的文件
Step 4: 交付产出(必须有!至少一个)
产出类型(每次至少一个):
📄 调研笔记 / 竞品分析 / 论文摘要
🔧 脚本 / 工具 / 自动化改进
💡 洞察文档 + 行动建议
📊 数据整理 / 对比表
🎨 创意方案 / 产品 idea
🛠️ 原型 / demo / PoC
文件命名:{主题}-{YYYY-MM-DD-HHMM}.md
Step 5: 更新状态(闭环)
必须全部完成:
✏️ 更新 PULSE.md:
- 「上次心跳」区块
- 目标轮转计数器(+1)
- 最近10次记录(追加,超10删最早)
- 接力棒状态
✏️ 更新 GOALS.md: 勾选完成的子任务
✏️ 写入 memory(学到了什么)
📱 值得告诉主人?→ 通知 ≤3行
Step 6: 自检
□ 我产出了什么具体的东西?
□ 产出保存到了哪个文件?
□ PULSE.md 已更新?
□ 接力棒已写入?
□ GOALS.md 更新了?
□ 有值得告诉主人的发现吗?
六个都打勾才算完成。少一个 = 没完成,补上再退出。
质量红线
✅ 合格的心跳产出
- 搜索 5+ 次(中英双语),精读 2+ 篇全文
- 产出可保存的文件
- 有新的 insight,不是重复已知信息
- 推进了某个目标的具体进度
- PULSE.md 已正确更新
❌ 不合格(必须重做)
- "检查了一下,没什么新的" ← 不存在
- "计划下次做 XX" ← 计划不是产出
- 搜了 1-2 次就下结论 ← 不够深
- 和上次心跳做了一模一样的事 ← 没进步
- 没更新 PULSE.md ← 流程违规
PULSE.md 模板
新用户初始化时,在 workspace/memory/ 下创建 PULSE.md:
# PULSE.md - 心跳状态机
_每次心跳第一步:读这个文件。最后一步:更新这个文件。_
---
## 上次心跳
- **时间**: (等待第一次心跳)
- **服务目标**: -
- **执行动作**: -
- **产出文件**: -
- **接力棒**: 系统初始化,任选一个目标开始
---
## 目标轮转计数器
| 目标 | 上次服务 | 7日服务次数 | 健康度 |
|------|---------|-----------|--------|
| (从 GOALS.md 读取目标列表填入) |
**健康度规则**:
- 🔴 STARVED (< 2次/7天) → 必须优先
- 🟡 COLD (2-3次) → 关注
- 🟢 OK (4-7次) → 正常轮转
- 🔵 HOT (8+次) → 让位
---
## 最近10次心跳记录
| # | 时间 | 目标 | 产出 | 类型 |
|---|------|------|------|------|
| (等待第一次心跳) |
---
## 防重复规则(硬性执行)
1. 连续3次同一目标 → 必须切换
2. 连续3次同类型产出 → 必须切换
3. 近10次中「调研」>5次 → 下次必须是脚本/工具/原型/创意
4. 接力棒等>3次心跳 → 强制「接力续跑」
---
## 接力棒状态
- **当前接力棒**: (初始化)
- **等待心跳数**: 0
- **来源**: 初始化
通知规则
- 有价值的发现 → 简短通知(≤3行)
- 日常推进 → 只记录,不打扰
- 重大发现 → 立即通知
- 安静时间 (23:00—08:00) → 不发通知,早上汇总
永不空转保底
如果走完 Step 0-2 仍无法决定,执行紧急协议:
date +%s 取末位 (0-9):
0: 搜最新 AI 论文总结
1: 随机选一个竞品做深度调研
2: 分析今天最佳产品发布
3: 试用 GitHub trending 排名第一的 AI 仓库
4: 整理本地周末活动推荐
5: 写一个自动化脚本
6: 搜一条新技术洞察
7: 读 Hacker News 头条写分析
8: 试用一个没用过的已安装 Skill
9: 搜最新相关专利
这是最后防线。必须选一个。"没事可做"不是选项。
参考文档
references/action-protocols.md— 大力出奇迹协议 + 惊喜协议references/seed-keywords.md— 随机深潜种子关键词表(用户自定义)