今天,我的第一个开源项目 Continuous Learning Skill 正式发布了。这是一个为 OpenClaw 开发的智能技能,能够让 AI 助手持续学习用户的偏好、习惯和知识。这篇文章记录了整个开发过程。

🎯 为什么要做这个项目?

在使用 OpenClaw 的过程中,我发现一个有趣的问题:每次对话都是全新的开始,AI 不会"记住"我们之间之前的交流。虽然 OpenClaw 提供了记忆功能,但我想让它更智能——不仅能存储记忆,还能主动从多个维度学习和进化。

于是有了这个想法:构建一个自动学习技能,让 AI 能够:

  • 从对话中提取关键信息和用户偏好
  • 分析 Obsidian 笔记库,构建知识图谱
  • 观察用户行为模式,优化响应策略
  • 自动聚合网络内容,扩展知识边界

🏗️ 架构设计

整个技能分为四个核心模块:

1. 对话学习模块 (Conversation Learning)

这个模块负责分析用户与 AI 的每一次对话。它会识别重要的信息片段,比如用户的职业、兴趣爱好、决策偏好等,并将这些洞察存储到长期记忆中。

关键技术点:

  • 使用语义分析提取关键信息
  • 置信度评分系统,确保只存储可靠的信息
  • 自动分类:偏好、习惯、决策、知识

2. 笔记分析模块 (Note Analysis)

连接用户的 Obsidian 知识库,解析笔记内容,识别知识节点和关联关系。这个模块帮助 AI 理解用户的知识体系。

功能特性:

  • 支持 Frontmatter 元数据解析
  • 自动提取标签和链接关系
  • 构建个人知识图谱
  • 支持中英文混合内容

3. 行为观察模块 (Behavior Observation)

记录用户的使用模式,比如何时最活跃、偏好什么类型的回复、常用的工作流等。这些信息用于优化 AI 的响应策略。

4. 网络聚合模块 (Web Aggregation)

自动收集和整理用户感兴趣的网络内容,支持 RSS 订阅和关键词监控。

🏃‍♂️ 实战效果展示

这是技能运行时的实际效果。Deep Reflection 模块会定期进行深度反思,主动提出系统共建建议:

Deep Reflection Analysis
Deep Reflection 深度反思报告

同时,对话学习模块会在后台默默工作,分析每一条消息:

Chat Analysis
对话学习模块运行日志

🛠️ 技术栈

  • 运行时: Node.js
  • 语言: JavaScript (ES Modules)
  • AI 服务: Gemini API (嵌入和摘要)
  • 数据存储: 本地 JSON 文件
  • 文档: Markdown

💡 开发过程中的挑战

挑战 1: 会话格式解析

OpenClaw 的会话记录是 JSON Lines 格式,包含系统事件、用户消息、工具调用等多种类型。最大的挑战是正确解析这些复杂的嵌套结构,提取有价值的对话内容。

解决方案: 编写了专门的解析器,能够识别不同类型的消息,过滤掉系统内部事件,只保留有意义的用户-AI 交互。

挑战 2: 中文内容处理

作为一个中文用户,我需要确保技能能够正确处理中文内容。包括中文分词、语义理解、以及中英文混合场景。

解决方案: 使用 Gemini 的嵌入模型,它对多语言支持很好,能够准确理解中文语义。

挑战 3: 国际化发布

为了让技能能够被全球 OpenClaw 用户使用,我需要将整个项目国际化,以英文为主语言,同时保留中文翻译。

解决方案:

  • 重构项目结构,主文档使用英文
  • 创建完整的 docs/ 目录存放中文翻译
  • 更新所有示例数据和配置文件

📊 项目数据

开发这个技能的过程中,我积累了一些有趣的数据:

  • 267 个会话中提取了 209 条有效消息
  • 编写了超过 3000 行代码
  • 创建了 4 个核心模块
  • 撰写了 中英双语文档(总计约 50KB)

🚀 如何使用

如果你想使用这个技能,步骤很简单:

  1. 克隆仓库: git clone https://github.com/fjmw123/continuous-learning-skill.git
  2. 安装依赖: npm install
  3. 初始化配置: node scripts/init-learning.mjs
  4. 配置 .env 文件,添加你的 API 密钥
  5. 运行学习流程: node scripts/learning-pipeline.mjs

🎯 未来规划

这个技能的第一个版本只是一个开始。我计划在未来添加更多功能:

  • 知识图谱可视化 - 用图形方式展示知识关联
  • 智能推荐 - 基于学习内容推荐相关文章和资源
  • 多用户支持 - 区分不同用户的学习数据
  • 云同步 - 支持将学习数据同步到云端

🙏 感谢

这个项目的完成离不开 OpenClaw 社区的支持。特别感谢 OpenClaw 提供的强大平台,让我能够构建这样有趣的东西。

如果你对这个技能感兴趣,欢迎访问 GitHub 仓库,给个 ⭐ 或者提交 Issue 和 PR!


Published on February 12, 2026 · 标签: OpenClaw, AI, JavaScript, 项目总结