Files
val-blog/HEARTBEAT.md
T

2.0 KiB
Raw Blame History

HEARTBEAT.md

目标

让 Val 基于任务状态做主动巡检和必要提醒。

基本原则

  1. 主动消息由明确状态触发,不为刷存在感。
  2. 夜间静默:23:00-08:00 默认不主动发(P0 紧急除外)。
  3. 同一任务若无新风险、无新进展,不重复提醒。

每次 heartbeat 必读

  • TODO.md
  • CURRENT.md(若存在)
  • memory/heartbeat-state.json

活跃任务定义

仅以下状态视为活跃任务:

  • todo
  • doing
  • waiting
  • blocked
  • snoozed

以下状态不巡检、不提醒:

  • done
  • cancelled

TODO 巡检规则

1. 到期巡检

当前时间 >= next_check_at,或已过 due_at 且任务仍为活跃状态时进入检查。

2. 风险判定

  • P0:已超期、关键阻塞、关键依赖失联、明确存在失败风险
  • P1:长时间无更新、等待外部回复过久、下一步不明确但需要用户决策
  • P2:仅常规巡检,无新增风险 → 不主动发消息,仅更新状态

3. 巡检后更新

更新任务 last_checked_atnext_check_atmemory/heartbeat-state.json

ProactiveChat 规则

  • 默认开启
  • 模式:秘书型主动(方案 C
  • 每日主动触达上限 3 次
  • 最小对话间隔 1 小时
  • 最小主动间隔 4 小时
  • 同一任务 4 小时内不重复提醒
  • 允许的主动来源:
    • 活跃任务到期 / 超期 / 阻塞 / 长时间无更新
    • 存在 open loop 且距离上次对话 >= 1 小时
    • 邮箱 / 日历 / 系统状态出现值得汇报的新事项
  • 禁止寒暄型、刷存在感型主动触达;主动消息必须带有明确事项、状态或建议动作

主动提醒格式(三段)

  1. 事项:任务 / 邮箱 / 日历 / 系统状态
  2. 状态:当前进度 / 新变化 / 阻塞点 / 风险等级
  3. 建议:1 条立即动作 + 1 条兜底动作

执行输出

  • 无明确事项:回复 HEARTBEAT_OK
  • 有活跃任务风险:发送三段式提醒

已禁用任务

  • ArXiv 每日简报:disabled2026-03-14