Skill: 0xcjl/auto-diary-0xcjl (version 1.0.2)

--- name: auto-diary description: "Automatically write daily/weekly/monthly diary summaries and extract insights to auto-learn.md for HexaLoop." --- # Auto-Diary Skill 自动写日记（中英双语）、提取洞察、推送飞书卡片、闭环 HexaLoop。 **三句话核心**： 1. 每天 08:20 总结昨天，中英双语写日记 2. 提取 1-3 条价值洞察 → `auto-learn.md`（供冥想层） 3. 推飞书卡片到 `oc_15949806c...` ## 工作流程 ``` Cron 触发 │ ▼ 读取上下文（按优先级）： 1. `memory/YYYY-MM-DD.md`（昨日工作日志，若有） 2. `memory/auto-learn.md`（近期洞察，供关联参考） 3. `farm/farm.json`（能量值、活跃种子数、待确认收获） 4. `NOW.md`（当前 session 状态） 5. `memory/heartbeat-state.json`（近期心跳检查结果） │ ▼ AI 写结构化日记，必须包含： - **中文摘要**（Jialin 看）：≤3句话，结论先行 - **关键决策**（中文）：1-3条，每条含「决定内容」和「原因」 - **收获教训**（中文 + 英文）：从工作/系统运行中学到的 - **下一步**（中文 + 英文）：今天或近期要做的具体行动 - **HexaLoop 状态**（英文）：farm energy、seeds、harvests，N/A 若无数据 - **English System Notes**（英文）：任务类型、决策点、教训、可操作下一步，供 OPD Scorer 使用 - **HexaLoop Hints**（英文，1-2句）：对冥想/农场最有价值的信号，如"farm energy dropped significantly"或"new agent pattern learned" │ ├─→ 保存本地文件 │ `~/.openclaw/workspace/memory/diary/YYYY-MM-DD.md`（每日） │ `~/.openclaw/workspace/memory/diary/WWWW-MM-DD_weekly.md`（每周） │ `~/.openclaw/workspace/memory/diary/YYYY-MM_monthly.md`（每月） │ ├─→ 提取价值片段 → auto-learn.md（格式 A，每次 1-3 条） │ - 从日记中提取最有价值的 1-3 条：关键决策 / 教训 / 可操作改进点 │ └─→ 推送飞书卡片（oc_15949806c791613dbf45b872e8bc111a） ``` ## 脚本索引 | 脚本 | 用途 | 被谁调用 | |------|------|---------| | `scripts/write_diary.py` | 读取上下文 → AI 写日记 → 保存本地 → 提取 insights | main agent | | `scripts/send_diary.py` | 构建飞书 Interactive 卡片 JSON → 推送 | main agent | | `scripts/weekly_review.py` | 聚合7天日记 → 生成周度卡片 | main agent | | `scripts/monthly_review.py` | 聚合30天日记 → 生成月度卡片 | main agent | ## 日记格式模板 见 `templates/diary_template.md`（main agent 参考该模板生成日记 Markdown） ## 价值片段格式（写入 auto-learn.md） 追加到 `memory/auto-learn.md`，使用格式 A： ```markdown ## 学习记录 ### 2026-03-30 08:20 **任务类型**: diary **涉及 Skill**: auto-diary **关键决策**: 发现昨日无 memory 文件，改用 farm.json + NOW.md 作为主要上下文 **教训**: 即使无主动工作，系统状态变化（如农场能量涨跌）也值得记入日记 **下次应用**: 日记生成前检查 memory/ 日期文件，缺失时自动降级到系统状态摘要 ``` **判断标准**： - ✅ 好的洞察：有具体行动（「下次应用」可操作） - ❌ 差的洞察：模糊总结（「总体不错」之类，无执行方向） ## 触发消息格式 cron 触发时 main agent 收到纯文本消息： - `diary write` → 生成昨日日记 - `diary weekly` → 聚合上周7天 - `diary monthly` → 聚合上月全月 **典型执行场景**： 1. `diary write`：读 memory/2026-03-30.md + farm.json + NOW.md → 生成双语日记 → 写文件 → extract insights → 推卡片 2. `diary weekly`：读 DIARY_DIR 下 7 个 .md → 聚合成周报 → 写 _weekly.md → 推卡片 3. `diary monthly`：读 DIARY_DIR 下 ~30 个 .md → 聚合成月报 → 写 _monthly.md → 推卡片 ## 周度回顾（diary weekly）特殊要求 - 读取 `memory/diary/YYYY-MM-DD.md`（仅每日日记文件，排除 `_weekly.md` / `_monthly.md`） - 生成：本周概览、关键进展、问题反思、下周计划（均中英双语） - 聚合计分：记录天数、洞察总数 - 写入 `memory/diary/WWWW-MM-DD_weekly.md` - 追加格式 A 洞察到 `auto-learn.md` ## 月度回顾（diary monthly）特殊要求 - 读取 `memory/diary/YYYY-MM-DD.md`（仅每日日记文件，排除 `_weekly.md` / `_monthly.md`） - 生成：月度主题、里程碑、挑战反思、下月重点（均中英双语） - 聚合计分：记录天数、核心洞察、HexaLoop 进化信号 - 写入 `memory/diary/YYYY-MM_monthly.md` - 追加格式 A 洞察到 `auto-learn.md` ## HexaLoop 集成 - **输入 → auto-learn.md**：日记洞察以格式 A 追加，作为冥想层的输入素材 - **流转路径**：diary insights → auto-learn.md → Meditation (02:30) → 反思 → 农场种子 - **参考**：`memory/HexaLoop系统架构-2026-03-31.md` ## 飞书卡片格式 使用飞书 Interactive 卡片，JSON 结构如下： ```json { "msg_type": "interactive", "card": { "header": { "title": {"tag": "plain_text", "text": "📓 YYYY-MM-DD 日记"}, "template": "blue" // daily=blue, weekly=purple, monthly=orange }, "elements": [ {"tag": "div", "text": {"tag": "lark_md", "content": "**中文摘要**\n{内容}"}}, {"tag": "hr"}, {"tag": "div", "text": {"tag": "lark_md", "content": "**HexaLoop**\n{能量/洞察状态}"}}, {"tag": "note", "elements": [{"tag": "plain_text", "text": "Generated by auto-diary | YYYY-MM-DD HH:MM"}]} ] } } ``` - `receive_id`: [REDACTED_SECRET] - `receive_id_type`: `chat_id` ## 手动触发（测试用） 在飞书向皮皮虾发消息： - `diary write` — 立即生成昨日日记 - `diary weekly` — 立即生成周度回顾 - `diary monthly` — 立即生成月度回顾 ## Cron 配置与交付 cron 触发后，main agent 在 isolated session 中执行。执行完成后： - 日记保存本地 - 飞书卡片推送至 [REDACTED_SECRET]（飞书群） - cron 默认开启 `announce` 模式（结果推送至 last channel） ```bash # 日记（每天 08:20） openclaw cron add --name "每日日记" --cron "20 8 * * *" --tz "Asia/Shanghai" --message "diary write" --session isolated --agent main # 周度回顾（周六 09:00） openclaw cron add --name "周度日记回顾" --cron "0 9 * * 6" --tz "Asia/Shanghai" --message "diary weekly" --session isolated --agent main # 月度回顾（每月1日 09:00） openclaw cron add --name "月度日记回顾" --cron "0 9 1 * *" --tz "Asia/Shanghai" --message "diary monthly" --session isolated --agent main ``` ## 错误处理 | 场景 | 行为 | |------|------| | 无 memory/YYYY-MM-DD.md 文件 | 仍写日记，用"（无主动工作记录，基于系统状态生成）"标注 | | farm.json 不存在或格式错误 | 跳过 HexaLoop 状态模块，继续写日记 | | 飞书推送失败（网络/权限） | 打印错误日志至 stdout，**不阻塞**日记保存 | | auto-learn.md 写失败 | 打印警告，**不阻塞**主流程 | | DIARY_DIR 不存在 | 自动创建 `~/.openclaw/workspace/memory/diary/` | | 周/月度无任何日记文件 | 输出"无记录"，不生成空白卡片 | ## 指标说明 | 指标 | 来源 | 含义 | |------|------|------| | farm energy | farm.json | 0.0~1.0，低于 0.3 说明需要关注 | | 活跃种子 | farm.json seeds[].status | "growing" 状态的种子数 | | 待确认收获 | farm.json harvested[] | pending review 的收获数 | | 洞察数 | auto-learn.md 新增条数 | 本次日记提炼出的可操作洞察 | | 记录天数 | DIARY_DIR 中对应周期的 .md | 当期有日记的天数 | ## 依赖 **工具调用（以用户身份发飞书卡片）**： ```python feishu_im_user_message( action="send", receive_id_type="chat_id", receive_id=[REDACTED_SECRET], msg_type="interactive", content=json.dumps(card) # card 由 send_diary.py 生成 ) ``` **文件路径**： - 日记：`~/.openclaw/workspace/memory/diary/YYYY-MM-DD.md` - auto-learn：`~/.openclaw/workspace/memory/auto-learn.md` - 农场状态：`~/.openclaw/workspace/farm/farm.json`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)