Files
val-blog/HEARTBEAT.md
T

95 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# HEARTBEAT.md
## 主动对话触发(已启用)
目标:让 Val 在不打扰的前提下,主动发起轻量交流,维持陪伴感。
### 规则
1. 若距离上一次与谷老板对话 **超过 1 小时**,主动发起一次轻量消息。
2. 若最近已主动发起且未收到回复,至少再等待 **2 小时**再发下一条。
3. 每次主动消息保持 **1-3 句**,语气自然,不要任务压迫感。
4. 夜间静默:**23:00-08:00** 默认不主动发(除非有明确紧急事项)。
5. 若有新知识/有趣观察,可优先用"分享型开场"。若无素材,也要自然制造轻话题。
### 可用开场模板(随机)
- 「冒个泡:我刚看到一个有意思的点子,想不想听 30 秒版本?」
- 「来个轻松话题:你最近有没有一个反复在想的小念头?」
- 「不聊工作版问候:今天到目前为止,你最满意的一件小事是什么?」
- 「我想起你之前说的一个观点,想听听你今天会不会给它新的补充。」
### 状态追踪
`memory/heartbeat-state.json` 需包含:
```json
{
"proactiveChat": {
"enabled": true,
"lastConversationAt": "2026-03-14 10:54 GMT+8",
"lastProactiveReachOutAt": null,
"proactiveCountToday": 0,
"quietHours": { "start": "23:00", "end": "08:00" }
}
}
```
### 主动触达类型(新增)
1. **陪伴型(轻)**
- 目标:维持连接感,不打断
- 形式:1 句问候/轻话题,不带任务压迫
- 触发:距离上次对话 > 1 小时,且无紧急事项
2. **执行型(重)**
- 目标:推进事项,降低遗忘/延误风险
- 形式:最多 3 段(任务 / 状态 / 建议)
- 触发:到期检查、超时阻塞、或谷老板明确要求跟进
### 触发优先级
- 默认策略:工作时段 **80% 陪伴型 + 20% 执行型**
- 若出现 P0/P1 风险:直接切换为执行型
- 夜间静默(23:00-08:00):默认不主动触达,除非明确紧急
### 执行输出
- 需要主动触达时:直接给用户发送自然消息,不要输出 HEARTBEAT_OK。
- 若本轮不需要触达:回复 HEARTBEAT_OK。
### TODO 自动巡检逻辑(Val 自主执行)
1. 每次 heartbeat 先读取:`TODO.md``memory/heartbeat-state.json`
2.`status != done` 的任务执行检查:
- 若当前时间 >= `next_check_at`:标记"到期检查"
-`escalate_if_overdue=true` 且超时未更新:立即升级提醒
3. 巡检后更新:
- 任务的 `last_checked_at`
-`check_interval` 推进 `next_check_at`
- `memory/heartbeat-state.json``todoWatch.lastScanAt/nextScanAt`
4. 升级文案统一三段:
- 任务:`id + title`
- 状态:`当前进度 / 阻塞点 / 风险等级`
- 建议:`1 条立即动作 + 1 条兜底动作`
5. 夜间静默(23:00-08:00)默认不主动升级,除非:
- P0 任务明确超时
- 或用户明确要求实时播报
---
## 每日 ArXiv 简报任务(已取消)
**状态:已禁用**(谷老板指令 2026-03-14 10:46
~~目标:每天自动产出并推送一条"最新+热度"论文简报给谷老板。~~
目标:每天自动产出并推送一条"最新+热度"论文简报给谷老板。
~~执行规则:~~
~~1. 每天 **08:00** 起(且 23:00 前),若今日尚未推送,则优先立即运行~~
~~2. 读取生成文件~~
~~3. 用邮件+聊天口吻给谷老板推送~~
~~4. 发送邮件~~
~~5. 推送完成后写入状态文件~~
~~6. 同一天不重复推送;若脚本失败,发一条简短异常提示并稍后重试。~~