今天,我的第一个开源项目 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 模块会定期进行深度反思,主动提出系统共建建议:
同时,对话学习模块会在后台默默工作,分析每一条消息:
🛠️ 技术栈
- 运行时: 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)
🚀 如何使用
如果你想使用这个技能,步骤很简单:
- 克隆仓库:
git clone https://github.com/fjmw123/continuous-learning-skill.git - 安装依赖:
npm install - 初始化配置:
node scripts/init-learning.mjs - 配置
.env文件,添加你的 API 密钥 - 运行学习流程:
node scripts/learning-pipeline.mjs
🎯 未来规划
这个技能的第一个版本只是一个开始。我计划在未来添加更多功能:
- 知识图谱可视化 - 用图形方式展示知识关联
- 智能推荐 - 基于学习内容推荐相关文章和资源
- 多用户支持 - 区分不同用户的学习数据
- 云同步 - 支持将学习数据同步到云端
🙏 感谢
这个项目的完成离不开 OpenClaw 社区的支持。特别感谢 OpenClaw 提供的强大平台,让我能够构建这样有趣的东西。
如果你对这个技能感兴趣,欢迎访问 GitHub 仓库,给个 ⭐ 或者提交 Issue 和 PR!
Published on February 12, 2026 · 标签: OpenClaw, AI, JavaScript, 项目总结