AstrBot 的 MemOS 集成插件
这是一个为AstrBot开发的MemOS集成插件,允许Bot记忆用户对话内容,并在后续对话中提供个性化响应。
📋 快速指令
| 指令 | 功能说明 |
|---|---|
/查记忆 <查询内容> |
搜索与指定内容相关的记忆 |
/用户画像 |
生成用户的人物关键词画像报告 |
🔍 核心特性说明
重要强调:本插件的记忆注入模板与记忆安全协议等核心逻辑,完全复用了 MemOS 官方浏览器扩展 MemOS-MindDock 个人记忆助手 的源码逻辑。这样确保了记忆注入能够达到与官方工具完全一致的最佳效果,提供最可靠的用户体验。
📖 MemOS 介绍
MemOS 是一个先进的记忆操作系统,为 AI 提供强大的记忆能力。通过 MemOS,AI 可以:
- 长期记忆:持久化存储用户对话和交互历史
- 智能检索:根据用户当前查询快速找到相关记忆
- 上下文理解:理解记忆之间的关联和上下文关系
- 个性化响应:基于用户历史行为提供个性化服务
更多关于 MemOS 的信息,请访问 MemOS 官方介绍
🎯 插件作用与原理
本插件将 AstrBot 与 MemOS 深度集成,实现以下核心功能:
自动记忆管理
- 对话保存:自动将用户与Bot的对话内容保存到MemOS
- 智能检索:根据当前对话上下文检索最相关的历史记忆
- 上下文注入:将相关记忆无缝注入到LLM提示词中,提供完整上下文
工作原理
- 对话捕获:监听用户与Bot的所有对话
- 记忆存储:将对话内容发送到MemOS进行持久化存储,异步执行,避免阻塞
- 智能检索:当用户发起新查询时,基于语义相似度检索相关记忆
- 上下文增强:将检索到的记忆格式化为提示词,增强LLM的理解和响应能力
- 持续学习:随着对话的进行,不断更新和完善用户的记忆库
功能特点
- 记忆管理: 自动保存和管理用户对话内容
- 智能检索: 根据当前对话检索相关记忆
- 记忆注入: 在LLM请求前注入相关记忆,提供上下文
- 用户指令: 支持手动查询记忆和生成用户画像
- 多语言支持: 支持中文和英文记忆注入
- 安全协议: 使用"四步判决"确保记忆使用的安全性
查记忆、用户画像指令返回预览
(图片中使用了额外的文转图功能,以支持markdown的渲染)
安装
- 将插件文件夹复制到AstrBot的plugins目录
- 安装依赖:
pip install -r requirements.txt - 在AstrBot的配置界面中配置插件
配置
插件使用AstrBot的配置系统。配置项如下:
{
"api_key": "your_memos_api_key",
"base_url": "https://memos.memtensor.cn/api/openmem/v1",
"max_memory_length": 1000,
"memory_limit": 5,
"prompt_language": "auto",
"upload_interval": 1
}
配置项说明
api_key(必填): MemOS API密钥,请前往 MemOS API密钥页面 获取base_url(可选): MemOS API基础URL,默认为官方地址
使用方法
自动记忆
插件会自动执行以下操作:
- LLM请求前: 检索相关记忆并注入到提示词
- LLM响应后: 保存对话内容到记忆
无需手动干预,插件会在后台自动工作。
手动指令
详细使用方法请参考快速指令部分。
记忆注入逻辑
插件使用以下逻辑进行记忆注入:
- 语言检测: 自动检测用户消息的语言(中文/英文)
- 模型检测: 识别LLM模型类型(通义千问/Gemini/其他)
- 记忆检索: 根据用户查询检索相关记忆
- 记忆格式化: 将记忆格式化为适合的模板
- 提示词注入: 将格式化的记忆注入到提示词中
记忆安全协议
插件使用"四步判决"确保记忆使用的安全性:
- 来源真值检查: 区分用户原话与AI推测
- 主语归因检查: 确认记忆中的行为主体是用户本人
- 强相关性检查: 确认记忆与当前查询相关
- 时效性检查: 确认记忆内容与用户最新意图不冲突
文件结构
astrbot_plugin_memos_integrator/
├── __init__.py # 包标识文件(空文件,通过@register自动发现)
├── main.py # 主插件类
├── memory_manager.py # 记忆管理器(HTTP API)
├── memory_templates.py # 记忆注入模板(工具类)
├── metadata.yaml # 插件元数据
├── _conf_schema.json # 配置项定义
├── requirements.txt # 依赖列表
└── README.md # 本文件
技术细节
类结构
main.py → MemoryManager (直接HTTP API)
→ MemoryTemplates (纯工具类,无依赖)
MemoryManager 直接使用 HTTP API 与 MemOS 交互,无需额外的 SDK 依赖,结构简洁高效。
初始化流程
- 插件加载时,
on_load()方法被调用 - 读取配置文件中的
api_key和base_url - 创建单一的
MemoryManager实例 MemoryManager持有 API 密钥和基础 URL- 后续请求直接通过
aiohttp发送 HTTP 请求
HTTP API 端点
POST /add/message- 添加对话消息POST /search/memory- 搜索相关记忆
记忆管理器 API
MemoryManager 类提供以下方法:
add_message(): 添加对话消息到 MemOSsearch_memory(): 搜索相关记忆save_conversation(): 保存对话到 MemOSretrieve_relevant_memories(): 检索相关记忆update_memory(): 更新记忆内容inject_memory_to_prompt(): 将记忆注入到提示词
记忆模板
MemoryTemplates 类提供不同语言和模型的记忆注入模板:
get_injection_template(): 获取注入模板format_memory_content(): 格式化记忆内容
作者
zz6zz666
许可证
本插件基于 GPLv3 许可证发布。