这是 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 <skill_scripts_dir> && python3 -c "
from memory_store import search_memory
results = search_memory('<query>')
for r in results:
print(r['score'], r['display_text'])
"
把 display_text 以 🍞 记忆召回:XXX 格式注入回复上下文。
当用户说出重要决策、目标、偏好等单条信息时,直接用 add_memory() 写入,不要等话题结束:
cd <skill_scripts_dir> && 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 <skill_scripts_dir> && python3 -c "
from topic_memory import on_user_message, on_assistant_message
on_assistant_message('''<assistant_reply>''')
written = on_user_message('''<user_message>''')
if written:
print(f'写入 {written} 条')
"
(正常解析/回复图片/音频内容)
---
要把这张图片存入记忆库吗?存入后可以随时语义检索回溯。
📸 存入 / 不用了
用户选择存入后,根据媒体类型判断是否已安装对应模块:
# 检查图片模块是否可用
try:
from image_memory import add_image_memory
add_image_memory(file_path="<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 集成规则模板(安装后必读)共 2 个版本