今天,我的第一个开源项目 Continuous Learning Skill 正式发布了。
这是一个为 OpenClaw 开发的智能技能,能够让 AI 助手持续学习用户的偏好、习惯和知识。
这篇文章记录了整个开发过程。如果你也在折腾 AI Agent,希望这篇分享能给你一些灵感。
在使用 OpenClaw 的过程中,我发现一个有趣的问题:每次对话都是全新的开始,AI 不会"记住"我们之间之前的交流。
虽然 OpenClaw 提供了记忆功能,但我想让它更智能——不仅能存储记忆,还能主动从多个维度学习和进化。
于是有了这个想法:构建一个自动学习技能,让 AI 能够:
整个技能分为四个核心模块,它们协同工作,共同构建 AI 的"大脑"。
这个模块负责分析用户与 AI 的每一次对话。它会识别重要的信息片段,比如用户的职业、兴趣爱好、决策偏好等,并将这些洞察存储到长期记忆中。
关键技术点:
连接用户的 Obsidian 知识库,解析笔记内容,识别知识节点和关联关系。这个模块帮助 AI 理解用户的知识体系。
功能特性:
记录用户的使用模式,比如何时最活跃、偏好什么类型的回复、常用的工作流等。这些信息用于优化 AI 的响应策略。
自动收集和整理用户感兴趣的网络内容,支持 RSS 订阅和关键词监控。
这是技能运行时的实际效果。Deep Reflection 模块会定期进行深度反思,主动提出系统共建建议:
同时,对话学习模块会在后台默默工作,分析每一条消息:
OpenClaw 的会话记录是 JSON Lines 格式,包含系统事件、用户消息、工具调用等多种类型。最大的挑战是正确解析这些复杂的嵌套结构,提取有价值的对话内容。
✅ 解决方案: 编写了专门的解析器,能够识别不同类型的消息,过滤掉系统内部事件,只保留有意义的用户-AI 交互。
作为一个中文用户,我需要确保技能能够正确处理中文内容。包括中文分词、语义理解、以及中英文混合场景。
✅ 解决方案: 使用 Gemini 的嵌入模型,它对多语言支持很好,能够准确理解中文语义。
为了让技能能够被全球 OpenClaw 用户使用,我需要将整个项目国际化,以英文为主语言,同时保留中文翻译。
✅ 解决方案:
docs/ 目录存放中文翻译开发这个技能的过程中,我积累了一些有趣的数据:
如果你想使用这个技能,步骤很简单:
# 1. 克隆仓库
git clone https://github.com/fjmw123/continuous-learning-skill.git
# 2. 安装依赖
npm install
# 3. 初始化配置
node scripts/init-learning.mjs
# 4. 运行学习流程
node scripts/learning-pipeline.mjs
记得在 .env 文件中配置好你的 API 密钥哦。
这个技能的第一个版本只是一个开始。我计划在未来添加更多功能:
这个项目的完成离不开 OpenClaw 社区的支持。特别感谢 OpenClaw 提供的强大平台,让我能够构建这样有趣的东西。
如果你对这个技能感兴趣,欢迎访问 GitHub 仓库,给个 ⭐ 或者提交 Issue 和 PR!
GitHub: fjmw123/continuous-learning-skill