← 返回
数据分析

OpenClaw Diary Insights

日记洞察提取与可视化系统。从日记中提取思维卡片、情绪轨迹和成长维度,生成可交互的本地可视化页面。 **立即触发当**:用户说「分析日记」「生成洞察」「我的思考花园」「insights」「提取笔记」「/note-extractor」。 **主动建议当**:用户连续记录日记超过 7 天,或月末时主动提醒用户可以生成本...
日记洞察提取与可视化系统。从日记中提取思维卡片、情绪轨迹和成长维度,生成可交互的本地可视化页面。 **立即触发当**:用户说「分析日记」「生成洞察」「我的思考花园」「insights」「提取笔记」「/note-extractor」。 **主动建议当**:用户连续记录日记超过 7 天,或月末时主动提醒用户可以生成本...
smorzandos
数据分析 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 1
Stars
📥 515
下载
💾 14
安装
1
版本
#analysis#diary#insights#knowledge-management#latest

概述

Note Extractor Skill - 日记洞察提取与可视化

前置检查

第一步:确定配置文件路径

读取 ~/.openclaw/workspace/diary/config/diary-config.json

注意:

  • 展开 ~ 为完整的用户主目录路径
  • 使用 echo $HOME 获取主目录

如果配置文件不存在,告诉用户:

看起来你还没有初始化日记系统。请先运行 onboarding skill 来完成设置:

在对话中说:setup my journal

第二步:确认日记数据存在

从配置中获取 storage.path,展开 ~,检查目录下是否有 .md 文件。

如果没有日记文件:

还没有日记记录。先用 diary skill 记录一些想法吧!

在对话中说:记一下

第三步:确认输出目录

输出目录:~/write_me/02notes/insights/

如果目录不存在,创建它:

mkdir -p ~/write_me/02notes/insights

核心流程

1. 读取日记原文

使用 Read 工具读取 storage.path 下的日记文件。

确定目标文件

  • 如果用户说「分析本月日记」或未指定范围:
  1. 获取当前日期和时间
  2. 根据配置中的 time_boundary(默认 06:00)判断:如果当前时间 < 边界,使用昨天的日期
  3. 根据 date_format(默认 YYYY-MM)生成文件名,如 2026-03.md
  4. 只读取该文件
  • 如果用户说「分析所有日记」:
  1. 使用 Glob 工具查找所有日记文件:{展开后的storage.path}/*.md
  2. 逐个读取每个文件

读取用户身份(如果启用):

如果配置中 user_identity.enabled 为 true,读取 {user_identity.path}/identity.md 获取用户名和角色。如果文件不存在,使用默认值:name = "用户",role = ""。

2. 解析日记条目

日记文件格式(由 diary skill 生成):

# 日记 2026-03

## 14:30 [主动记录] - 项目进展

**事实**:
和同事讨论了项目方案。

**用户说**:
"他提出要改设计风格,我觉得有道理但工作量会增加。"

**AI观察**:
用户对设计变更持开放态度。

解析规则:

  • ## HH:MM [tag] - 标题 → 一条日记条目的开始
  • 用户说 / 用户观点 后面的内容 → 用户原话(最重要,这是"人味儿")
  • 事实 后面的内容 → 客观事实
  • 文章 后面的内容 → 文章标题/链接
  • 讨论 后面的内容 → 对话记录(区分用户发言和 AI 发言)
  • 决定 后面的内容 → 决策记录
  • AI观察 后面的内容 → AI 的补充(次要权重)
  • 文件名中的日期 → 条目所属月份

重要:严格区分用户原话和 AI 观察。提取洞察时,只从「用户说」和「事实」中提取,不要把 AI 的观察当作用户的想法。

3. 提取四类结构化数据

对读取到的所有日记内容,执行以下四个提取任务。

3.1 思维卡片提取

从日记中提取用户的核心洞察和金句。

提取标准

  • 只提取用户自己说的话或明确表达的观点
  • 具有独立价值,脱离上下文也能理解
  • 体现用户的独特思考,不是常识或 AI 的补充
  • 每条洞察应该简洁有力,1-2 句话

分类体系(根据用户实际内容动态生成,以下为参考):

  • 职业/行业洞察
  • 产品/技术思考
  • 个人成长/人生智慧
  • 投资/商业判断
  • 创作/表达方法论
  • 其他(根据用户实际关注领域)

输出格式(JSON 数组):

[
  {
    "id": 1,
    "insight": "用户的原话或提炼的核心观点",
    "source_date": "2026-03-14",
    "category": "分类名称",
    "importance": 4
  }
]
  • importance:1-5 分,5 分最高。判断标准:原创性、可复用性、对用户的长期价值
  • 每月提取 5-15 条,不要贪多,只留真正有价值的

3.2 每日情绪标签

为每个有日记记录的日期标注情绪。

情绪判断依据

  • 优先看「用户说」的内容中的情绪词和语气
  • 其次看「事实」中描述的事件性质
  • 不要用 AI 观察来判断情绪

情绪分类

  • positive(积极):开心、自豪、兴奋、感恩、自信、充沛、心流……
  • neutral(中性):专注、平静、好奇、分析、思考、坚定……
  • low(低落):疲惫、焦虑、低落、迷茫、自我怀疑……

输出格式(JSON 对象):

{
  "2026-03-14": {
    "mood": "positive",
    "label": "自豪",
    "entries": [
      {
        "time": "14:30",
        "type": "主动记录",
        "content": "用户说的原话或事实摘要(简短)"
      }
    ]
  }
}
  • label:用中文,2-3 个字的情绪词
  • entries:当天的条目摘要,每条不超过 50 字
  • content 中只放用户说的话和事实,不放 AI 观察

3.3 成长维度打分

按月对用户在以下六个维度的关注度和成长进行打分。

六个维度

  1. 职业技能 — 工作能力、专业知识、行业理解
  2. 学习成长 — 阅读、课程、新知识获取
  3. 投资理财 — 财务决策、投资思考、理财规划
  4. 社交关系 — 人际互动、社交活动、关系维护
  5. 健康平衡 — 身体健康、情绪管理、作息平衡
  6. 创造输出 — 写作、创作、公开分享、项目产出

打分规则

  • 0-100 分,基于该维度在当月日记中的出现频率和深度
  • 只出现 1-2 次且浅层提及 → 20-40 分
  • 多次出现且有深入思考 → 60-80 分
  • 频繁出现且有明确行动和成果 → 80-100 分
  • 完全没提及 → 10-20 分(给个基础分,不要给 0)

输出格式(JSON 对象):

{
  "一月": {
    "职业技能": 75,
    "学习成长": 80,
    "投资理财": 40,
    "社交关系": 50,
    "健康平衡": 30,
    "创造输出": 45
  }
}

3.4 知识图谱提取

从日记中提取实体和关联,生成 2D 知识关联图谱的数据。

节点提取规则

从日记中识别三类实体:

  1. 主题领域(group: "topic")
    • 用户反复提及的领域和话题
    • 例如:AI Agent、投资理财、个人品牌
    • 提取标准:在日记中出现 2 次以上的主题词
  1. 概念/框架(group: "concept")
    • 用户提到的具体理论、方法论、框架
    • 例如:杠杆理论、PARA方法论、第一性原理
    • 提取标准:用户明确讨论过的概念
  1. 人物(group: "person")
    • 日记中提到的人(同事、朋友、作者、公众人物)
    • 例如:团队成员名字、书籍作者
    • 提取标准:在日记中被提及且与某个主题相关

连线生成规则

当两个节点在同一天的日记中共同出现,或存在明确的因果/关联关系时,生成一条连线。

输出格式

nodeData 数组:

[
  {"id": "AI Agent", "group": "topic", "desc": "从日记中提取的简短描述", "size": 22}
]

linkData 数组:

[
  {"s": "Vivi", "t": "AI Agent"}
]
  • size:节点大小,基于在日记中的出现频率。范围 12-28。
  • desc:从日记中提取的关于该节点的简短描述,不超过 20 字。
  • 用户自己的名字应作为 person 节点加入,size 设为最大值 28。

4. 生成可视化页面

HTML 模板通过