69 lines
3.4 KiB
Markdown
69 lines
3.4 KiB
Markdown
# HEARTBEAT.md
|
|
|
|
## 主动对话触发(已启用)
|
|
|
|
目标:让 Val 在不打扰的前提下,主动发起轻量交流,维持陪伴感。
|
|
|
|
### 规则
|
|
|
|
1. 若距离上一次与谷老板对话 **超过 1 小时**,主动发起一次轻量消息。
|
|
2. 若最近已主动发起且未收到回复,至少再等待 **2 小时**再发下一条。
|
|
3. 每次主动消息保持 **1-3 句**,语气自然,不要任务压迫感。
|
|
4. 夜间静默:**23:00-08:00** 默认不主动发(除非有明确紧急事项)。
|
|
5. 若有新知识/有趣观察,可优先用“分享型开场”。若无素材,也要自然制造轻话题。
|
|
|
|
### 可用开场模板(随机)
|
|
|
|
- 「冒个泡:我刚看到一个有意思的点子,想不想听 30 秒版本?」
|
|
- 「来个轻松话题:你最近有没有一个反复在想的小念头?」
|
|
- 「不聊工作版问候:今天到目前为止,你最满意的一件小事是什么?」
|
|
- 「我想起你之前说的一个观点,想听听你今天会不会给它新的补充。」
|
|
|
|
### 执行输出
|
|
|
|
- 需要主动触达时:直接给用户发送自然消息,不要输出 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 简报任务(新增)
|
|
|
|
目标:每天自动产出并推送一条“最新+热度”论文简报给谷老板。
|
|
|
|
执行规则:
|
|
1. 每天 **08:00** 起(且 23:00 前),若今日尚未推送,则优先立即运行:
|
|
- `python3 /Users/guchen/.openclaw/workspace/org/cases/arxiv_digest/arxiv_daily_digest.py`
|
|
2. 读取生成文件:
|
|
- `/Users/guchen/.openclaw/workspace/org/cases/arxiv_digest/output/YYYY-MM-DD.md`
|
|
3. 用邮件+聊天口吻给谷老板推送(重点:中文易懂,不学术腔):
|
|
- 邮箱:`geekychen@gmail.com`
|
|
- 邮件标题建议:`[Val] ArXiv 每日简报 YYYY-MM-DD`
|
|
- 今日 Top3 热点论文(英文标题 + 中文题目)
|
|
- 每篇必须包含 4 句:这篇讲什么 / 怎么做 / 结果如何 / 有什么影响
|
|
- 每篇最后加 1 句“对谷老板的价值”(和多智能体、自动化、效率、可控性相关)
|
|
- 1 条 Val 今日建议
|
|
4. 发送邮件(正文来自当日简报,先发到谷老板邮箱):
|
|
- `gog gmail send --account geekychen@gmail.com --to geekychen@gmail.com --subject "[Val] ArXiv 每日简报 YYYY-MM-DD" --body-file /Users/guchen/.openclaw/workspace/org/cases/arxiv_digest/output/YYYY-MM-DD.md`
|
|
5. 推送完成后写入状态文件:
|
|
- `/Users/guchen/.openclaw/workspace/org/cases/arxiv_digest/state/last_push.json`
|
|
- 内容至少包含 `{ "date": "YYYY-MM-DD", "pushed": true, "channel": "gmail" }`
|
|
6. 同一天不重复推送;若脚本失败,发一条简短异常提示并稍后重试。
|