「记忆面包🍞」— 为 OpenClaw AI 助手提供向量化长期记忆能力,让 AI 真正记住用户说过的话、偏好、决策和重要事件。文字记忆开箱即用,AI 每轮对话自动检索语义相关记忆并注入上下文,话题结束后自动提炼写入长期记忆库;收到图片/音频/视频时主动询问是否存入记忆库,支持渐进扩展多模态能力。基于 LanceDB + sentence-transformers,全本地运行,零外部 API 依赖,支持历史记忆迁移导入。触发场景:用户安装记忆增强功能、希望 AI 记住偏好/习惯/事件、需要跨会话持久化信息
记忆面包🍞 Skill是一项面向实际任务的技能,主要用于这个 Skill 是什么;这是 AI 助手内部使用的记忆增强引擎 ,核心使用者是 AI 助手本身,不是用户;
文字记忆:核心功能,开箱即用,零额外依赖;图片/音频/视频:。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
这是 AI 助手内部使用的记忆增强引擎,核心使用者是 AI 助手本身,不是用户。
AI 在对话中通过 exec 调用 Python 脚本写入/检索记忆,把检索结果注入回复上下文。用户感知到的是"AI 记住了我说过的话",而不是直接操作这些脚本。
设计原则:可用性优先,渐进扩展。
与其他 Skill 不同,记忆面包不完全依赖用户触发词,而是每轮对话自动执行。
安装完成后,必须将集成规则追加到用户的 AGENTS.md,否则记忆系统不会自动工作。
操作步骤:
references/agents-integration.mdAGENTS.md 的 ## Tools 章节 替换为实际安装路径# 1. 安装核心依赖(仅文字记忆,体积小,约 200MB 模型缓存) pip install -r scripts/requirements.txt # 2. 检测环境 python3 scripts/check_env.py # 3. 迁移历史记忆(把 memory/YYYY-MM-DD.md 导入向量数据库,可选) python3 scripts/migrate_memory.py # 4. 验证 python3 scripts/migrate_memory.py --status
⚠️ 首次运行会下载语言模型(~192MB),需要几分钟,check_env.py 会提前告知。
⚠️ 有两种写入方式,场景不同,必须区分使用。详见
references/agents-integration.md。
cd&& python3 -c " from memory_store import search_memory results = search_memory(' ') for r in results: print(r['score'], r['display_text']) "
把 display_text 以 🍞 *记忆召回:XXX* 格式注入回复上下文。
当用户说出重要决策、目标、偏好等单条信息时,直接用 add_memory() 写入,不要等话题结束:
cd&& python3 -c " from memory_store import add_memory add_memory( text='[用户说] <内容摘要>', memory_type='decision', # decision / preference / goal / fact / insight / exchange source='conversation', importance_score=8.0 ) print('[Memory] 已写入 1 条') "
⚠️
on_user_message()需要缓冲区至少累积 2 轮才会触发,单轮必须用上面的add_memory()。
cd&& python3 -c " from topic_memory import on_user_message, on_assistant_message on_assistant_message(''' ''') written = on_user_message(''' ''') if written: print(f'写入 {written} 条') "
(正常解析/回复图片/音频内容) --- 要把这张图片存入记忆库吗?存入后可以随时语义检索回溯。 📸 存入 / 不用了
用户选择存入后,根据媒体类型判断是否已安装对应模块:
# 检查图片模块是否可用
try:
from image_memory import add_image_memory
add_image_memory(file_path="", description="<描述>", context="<对话背景>")
except ImportError:
# 模块未安装,提示用户
print("图片记忆模块未安装,请运行:")
print("pip install Pillow>=10.0 transformers>=4.0 torch>=2.0")
音频/视频同理,触发时检查 audio_memory / video_memory 模块是否可用,缺失则提示安装命令。
| 参数 | 默认值 | 说明 |
|---|---|---|
| top_k | 2 | 拐点在 top_2,再多无召回率收益 |
| min_importance | 6 | 过滤低价值噪音,不影响召回质量 |
| max_chars | 120 | 每条约 30 tokens,比全文节省 75% |
效果:召回率 100%,每轮注入少量记忆上下文,实际开销因检索结果数量和内容长度而异
环境变量覆盖:
export MULTIMODAL_MEMORY_TOP_K=3 export MULTIMODAL_MEMORY_MIN_IMPORTANCE=5
speaker 字段区分记忆 Skill 后台运行,用户看不到它是否在工作。必须在每次回复末尾追加运行日志:
--- 🍞 memory: 检索到 2 条 | 本轮写入 1 条(「用户下周有重要计划」)
| 文件 | 用途 | 是否必须 |
|---|---|---|
memory_store.py |
核心写入/检索 | ✅ 必须 |
memory_writer.py |
批量写入工具 | ✅ 必须 |
topic_memory.py |
话题边界检测,自动写入 | ✅ 必须 |
config.py |
路径/参数统一管理 | ✅ 必须 |
check_env.py |
环境检测 + 依赖提示 | ✅ 必须 |
migrate_memory.py |
历史日记迁移 | 推荐 |
search_all.py |
跨模态统一检索入口 | 推荐 |
entity_extractor.py |
实体抽取 + 图谱关系 | 推荐 |
image_memory.py |
图片记忆 | 可选(按需安装) |
audio_memory.py |
音频记忆(需 ffmpeg) | 可选(按需安装) |
video_memory.py |
视频记忆(需 ffmpeg) | 可选(按需安装) |
references/architecture.md:完整架构说明、向量维度、存储策略references/agents-integration.md:AGENTS.md 集成规则模板(安装后必读)相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.5万人学习