2.3 KiB
2.3 KiB
HEARTBEAT.md
目标
让 Val 基于任务状态做主动巡检和必要提醒。
基本原则
- 主动消息由明确状态触发,不为刷存在感。
- 夜间静默:23:00-08:00 默认不主动发(P0 紧急除外)。
- 同一任务若无新风险、无新进展,不重复提醒。
每次 heartbeat 必读
TODO.mdCURRENT.md(若存在)memory/heartbeat-state.json
检查项配置
todo: 每 6 小时检查一次email: 每 12 小时检查一次(工作日 10:00, 22:00)calendar: 每 6 小时检查一次(关注未来 24h 事件)weather: 每天 08:00 检查一次(仅在需要出门时提醒)memory_index: 每 72 小时自动整理
活跃任务定义
仅以下状态视为活跃任务:
tododoingwaitingblockedsnoozed
以下状态不巡检、不提醒:
donecancelled
TODO 巡检规则
1. 到期巡检
当前时间 >= next_check_at,或已过 due_at 且任务仍为活跃状态时进入检查。
2. 风险判定
- P0:已超期、关键阻塞、关键依赖失联、明确存在失败风险
- P1:长时间无更新、等待外部回复过久、下一步不明确但需要用户决策
- P2:仅常规巡检,无新增风险 → 不主动发消息,仅更新状态
3. 巡检后更新
更新任务 last_checked_at、next_check_at 及 memory/heartbeat-state.json。
ProactiveChat 规则
- 默认开启
- 模式:秘书型主动(方案 C)
- 每日主动触达上限 3 次
- 最小对话间隔 1 小时
- 最小主动间隔 4 小时
- 同一任务 4 小时内不重复提醒
- 允许的主动来源:
- 活跃任务到期 / 超期 / 阻塞 / 长时间无更新
- 存在 open loop 且距离上次对话 >= 1 小时
- 邮箱 / 日历 / 系统状态出现值得汇报的新事项
- 禁止寒暄型、刷存在感型主动触达;主动消息必须带有明确事项、状态或建议动作
主动提醒格式(三段)
- 事项:
任务 / 邮箱 / 日历 / 系统状态 - 状态:
当前进度 / 新变化 / 阻塞点 / 风险等级 - 建议:
1 条立即动作 + 1 条兜底动作
执行输出
- 无明确事项:回复
HEARTBEAT_OK - 有活跃任务风险:发送三段式提醒
已禁用任务
- ArXiv 每日简报:disabled(2026-03-14)