
memU 是一个为 24/7 主动式代理 构建的内存框架。 它专为长期使用设计,极大 降低了代理始终在线的 LLM 令牌成本,使始终在线、不断进化的代理在生产系统中成为现实。 memU 持续捕获和理解用户意图。即使没有指令,代理也能知道你接下来要做什么,并自行采取行动。
🤖 OpenClaw (Moltbot, Clawdbot) 替代方案
memU Bot — 现在已开源。企业级 OpenClaw。你的主动式 AI 助手,能记住一切。
- 下载使用简单,快速上手(一键安装,< 3 分钟)。
- 构建长期记忆,理解用户意图并主动行动(24/7)。
- 降低 LLM 令牌成本,使用更小的上下文(约可比用量的 1/10)。
立即体验:memu.bot · 源代码:GitHub 上的 memUBot
🗃️ 文件系统般的记忆,记忆般的文件系统
memU 将 记忆视为文件系统—结构化、分层、即时可访问。
| 文件系统 | memU 记忆 |
|---|---|
| 📁 文件夹 | 🏷️ 分类(自动组织的主题) |
| 📄 文件 | 🧠 记忆项(提取的事实、偏好、技能) |
| 🔗 符号链接 | 🔄 跨引用(相关记忆的链接) |
| 📂 挂载点 | 📥 资源(对话、文档、图像) |
为什么这很重要:
- 像浏览目录一样导航记忆—从广泛分类深入到具体事实
- 即时挂载新知识—对话和文档成为可查询的记忆
- 跨链接所有内容—记忆相互引用,构建连接的知识图谱
- 持久且可移植—像文件一样导出、备份和转移记忆
memory/
├── preferences/
│ ├── communication_style.md
│ └── topic_interests.md
├── relationships/
│ ├── contacts/
│ └── interaction_history/
├── knowledge/
│ ├── domain_expertise/
│ └── learned_skills/
└── context/
├── recent_conversations/
└── pending_tasks/
就像文件系统将原始字节转换为组织好的数据一样,memU 将原始交互转换为 结构化、可搜索、主动的智能。
⭐️ 星标仓库
如果你觉得 memU 有用或有趣,一个 GitHub 星标 ⭐️ 将不胜感激。
✨ 核心功能
| 功能 | 描述 |
|---|---|
| 🤖 24/7 主动式代理 | 始终在线的记忆代理,在后台持续工作—从不休息,从不遗忘 |
| 🎯 用户意图捕获 | 自动理解和记住跨会话的用户目标、偏好和上下文 |
| 💰 成本高效 | 通过缓存洞察和避免冗余 LLM 调用,降低长期运行令牌成本 |
🔄 主动式记忆如何工作
cd examples/proactive
python proactive.py
主动式记忆生命周期
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│ 用户查询 │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌────────────────────────────────────────┐ ┌────────────────────────────────────────────────┐
│ 🤖 主代理 │ │ 🧠 memU Bot │
│ │ │ │
│ 处理用户查询 & 执行任务 │ ◄───► │ │ 监控、记忆 & 主动智能 │
├────────────────────────────────────────┤ ├────────────────────────────────────────────────┤
│ │ │ │
│ ┌──────────────────────────────────┐ │ │ ┌──────────────────────────────────────────┐ │
│ │ 1. 接收用户输入 │ │ │ │ 1. 监控输入/输出 │ │
│ │ 解析查询,理解 │ │ ───► │ │ 观察 agent 交互 │ │
│ │ 上下文和意图 │ │ │ │ 跟踪对话流程 │ │
│ └──────────────────────────────────┘ │ │ └──────────────────────────────────────────┘ │
│ │ │ │ │ │
│ ▼ │ │ ▼ │
│ ┌──────────────────────────────────┐ │ │ ┌──────────────────────────────────────────┐ │
│ │ 2. 规划 & 执行 │ │ │ │ 2. 记忆 & 提取 │ │
│ │ 拆分任务 │ │ ◄─── │ │ 存储洞察、事实、偏好 │ │
│ │ 调用工具,检索数据 │ │ 注入 │ │ 提取技能 & 知识 │ │
│ │ 生成响应 │ │ 记忆 │ │ 更新用户配置文件 │ │
│ └──────────────────────────────────┘ │ │ └──────────────────────────────────────────┘ │
│ │ │ │ │ │
│ ▼ │ │ ▼ │
│ ┌──────────────────────────────────┐ │ │ ┌──────────────────────────────────────────┐ │
│ │ 3. 响应用户 │ │ │ │ 3. 预测用户意图 │ │
│ │ 提供答案/结果 │ │ ───► │ │ 预期下一步 │ │
│ │ 继续对话 │ │ │ │ 识别即将到来的需求 │ │
│ └──────────────────────────────────┘ │ │ └──────────────────────────────────────────┘ │
│ │ │ │ │ │
│ ▼ │ │ ▼ │
│ ┌──────────────────────────────────┐ │ │ ┌──────────────────────────────────────────┐ │
│ │ 4. 循环 │ │ │ │ │ 运行主动式任务 │ │
│ │ 等待下一个用户输入 │ │ ◄─── │ │ │ 预取相关上下文 │ │
│ │ 或主动建议 │ │ │ │ │ │ 准备推荐建议 │ │
│ └──────────────────────────────────┘ │ │ │ │ 自主更新待办事项 │ │
│ │ │ └──────────────────────────────────────────┘ │
└────────────────────────────────────────┘ └────────────────────────────────────────────────┘
│ │
└───────────────────────────┬───────────────────────────────┘
▼
┌──────────────────────────────┐
│ 持续同步循环 │
│ Agent ◄──► MemU Bot ◄──► DB │
└──────────────────────────────┘
🎯 主动式用例
1. 信息推荐
代理监控兴趣并主动展示相关内容
# 用户一直在研究 AI 主题
MemU 追踪:阅读历史、保存的文章、搜索查询
# 当新内容到达时:
Agent: "我发现了 3 篇关于 RAG 优化的新论文,与您最近关于检索系统的研究一致。一位作者(陈博士)您之前引用过,他昨天发表了。"
# 主动行为:
- 从浏览模式中学习主题偏好
- 跟踪作者/来源信誉偏好
- 基于参与历史过滤噪音
- 在最佳注意力时间进行推荐
2. 邮件管理
代理学习沟通模式并处理常规邮件往来
# MemU 观察邮件模式:
- 常见场景的响应模板
- 优先联系人及紧急关键词
- 调度偏好和可用性
- 写作风格和语气变化
# 主动邮件协助:
Agent: "您有 12 封新邮件。我已草拟了 3 封常规请求的回复,并标记了 2 封来自您优先联系人的紧急事项。我应该根据约翰提到的冲突重新安排明天的会议吗?"
# 自主行动:
✓ 草拟上下文感知回复
✓ 分类和优先处理收件箱
✓ 检测调度冲突
✓ 总结长邮件中的关键决策
3. 交易与金融监控
代理跟踪市场上下文和用户投资行为
# MemU 学习交易偏好:
- 从历史决策中了解风险承受能力
- 偏好的行业和资产类别
- 对市场事件的响应模式
- 资产组合再平衡触发器
# 主动警报:
Agent: "NVDA 在盘后交易中下跌了 5%。根据您过去的行为,您通常在技术股下跌超过 3% 时买入。您当前的配置允许额外 2,000 美元的敞口,同时保持您 70/30 股票-债券目标。"
# 持续监控:
- 跟踪与用户定义阈值绑定的价格警报
- 将新闻事件与投资组合影响相关联
- 从执行与忽略的建议中学习
- 预期税收亏损套利机会
...
🗂️ 分层记忆架构
MemU 的三层系统支持 反应式查询 和 主动式上下文加载:
| 层级 | 反应式用途 | 主动式用途 |
|---|---|---|
| 资源 | 直接访问原始数据 | 背景监控新模式 |
| 项 | 针对性事实检索 | 从正在进行的交互中实时提取 |
| 分类 | 摘要级概览 | 自动组装预期上下文 |
主动式优势:
- 自动分类:新记忆自动组织到主题中
- 模式检测:系统识别重复出现的主题
- 上下文预测:预期下一步需要的信息
🚀 快速入门
选项 1:云版本
立即体验主动式记忆:
👉 memu.so - 7×24 持续学习的托管服务
对于需要自定义主动式工作流的云部署,请联系 info@nevamind.ai
云 API (v3)
| 基础 URL | https://api.memu.so |
|---|---|
| 认证 | Authorization: Bearer YOUR_API_KEY |
| 方法 | 端点 | 描述 |
|---|---|---|
POST | /api/v3/memory/memorize | 注册持续学习任务 |
GET | /api/v3/memory/memorize/status/{task_id} | 检查实时处理状态 |
POST | /api/v3/memory/categories | 列出自动生成的分类 |
POST | /api/v3/memory/retrieve | 查询记忆(支持主动式上下文加载) |
选项 2:自托管
安装
pip install -e .
基本示例
要求:Python 3.13+ 和一个 OpenAI API 密钥
测试持续学习(内存中):
export OPENAI_API_KEY=your_api_key
cd tests
python test_inmemory.py
使用持久化存储测试(PostgreSQL):
# 使用 pgvector 启动 PostgreSQL
docker run -d \
--name memu-postgres \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=memu \
-p 5432:5432 \
pgvector/pgvector:pg16
# 运行持续学习测试
export OPENAI_API_KEY=your_api_key
cd tests
python test_postgres.py
两个示例都展示了 主动式记忆工作流:
- 持续摄取:顺序处理多个文件
- 自动提取:立即创建记忆
- 主动检索:上下文感知的记忆展示
有关实现细节,请参阅 tests/test_inmemory.py 和 tests/test_postgres.py
自定义 LLM 和嵌入提供程序
MemU 支持除 OpenAI 之外的自定义 LLM 和嵌入提供程序。通过 llm_profiles 进行配置:
from memu import MemUService
service = MemUService(
llm_profiles={
# 默认 LLM 操作配置文件
"default": {
"base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"api_key": "your_api_key",
"chat_model": "qwen3-max",
"client_backend": "sdk" # "sdk" 或 "http"
},
# 嵌入的单独配置文件
"embedding": {
"base_url": "https://api.voyageai.com/v1",
"api_key": "your_voyage_api_key",
"embed_model": "voyage-3.5-lite"
}
},
# ... 其他配置
)
OpenRouter 集成
MemU 支持 OpenRouter 作为模型提供程序,让您可以通过单个 API 访问多个 LLM 提供程序。
配置
from memu import MemoryService
service = MemoryService(
llm_profiles={
"default": {
"provider": "openrouter",
"client_backend": "httpx",
"base_url": "https://openrouter.ai",
"api_key": "your_openrouter_api_key",
"chat_model": "anthropic/claude-3.5-sonnet", # 任何 OpenRouter 模型
"embed_model": "openai/text-embedding-3-small", # 嵌入模型
},
},
database_config={
"metadata_store": {"provider": "inmemory"},
},
)
环境变量
| 变量 | 描述 |
|---|---|
OPENROUTER_API_KEY | 您从 openrouter.ai/keys 获取的 OpenRouter API 密钥 |
支持的功能
| 功能 | 状态 | 备注 |
|---|---|---|
| Chat Completions | 支持 | 适用于任何 OpenRouter 聊天模型 |
| Embeddings | 支持 | 使用 OpenRouter 的嵌入模型 |
| Vision | 支持 | 使用支持视觉功能的模型(例如,openai/gpt-4o) |
运行 OpenRouter 测试
export OPENROUTER_API_KEY=your_api_key
# 完整工作流测试(记忆 + 检索)
python tests/test_openrouter.py
# 嵌入特定测试
python tests/test_openrouter_embedding.py
# 视觉特定测试
python tests/test_openrouter_vision.py
完整的示例代码:examples/example_4_openrouter_memory.py
📖 核心 API
memorize() - 持续学习管道
实时处理输入并立即更新记忆:
result = await service.memorize(
resource_url="path/to/file.json", # 文件路径或 URL
modality="conversation", # conversation | document | image | video | audio
user={"user_id": "123"} # 可选:范围到特定用户
)
# 立即返回提取的记忆:
{
"resource": {...}, # 存储的资源元数据
"items": [...], # 提取的记忆项(立即可用)
"categories": [...] # 自动更新的分类结构
}
主动式功能:
- 零延迟处理—记忆立即可用
- 无需手动标记的自动分类
- 与现有记忆跨链接以检测模式
retrieve() - 双模式智能
MemU 支持主动式上下文加载和反应式查询:
基于检索的获取 (method="rag")
使用嵌入快速 主动式上下文组装:
- ✅ 即时上下文:亚秒级记忆展示
- ✅ 背景监控:可无 LLM 成本持续运行
- ✅ 相似度评分:自动识别最相关的记忆
基于 LLM 的获取 (method="llm")
深度 预期推理,适用于复杂上下文:
- ✅ 意图预测:LLM 在用户提问前推断他们需要什么
- ✅ 查询演化:随着上下文发展自动优化搜索
- ✅ 早期终止:当收集到足够上下文时停止
对比
| 方面 | RAG (快速上下文) | LLM (深度推理) |
|---|---|---|
| 速度 | ⚡ 毫秒级 | 🐢 秒级 |
| 成本 | 💰 嵌入仅 | 💰💰 LLM 推理 |
| 主动式用途 | 持续监控 | 触发式上下文加载 |
| 最适合 | 实时建议 | 复杂预期 |
用法
# 主动式检索上下文历史
result = await service.retrieve(
queries=[
{"role": "user", "content": {"text": "他们的偏好是什么?"}},
{"role": "user", "content": {"text": "告诉我工作习惯"}}
],
where={"user_id": "123"}, # 可选:范围过滤
method="rag" # 或 "llm" 进行深度推理
)
# 返回上下文感知结果:
{
"categories": [...], # 相关主题区域(自动优先级)
"items": [...], # 具体记忆事实
"resources": [...], # 原始来源,用于可追溯性
"next_step_query": "..." # 预测后续上下文
}
主动式过滤:使用 where 范围持续监控:
where={"user_id": "123"}- 用户特定上下文where={"agent_id__in": ["1", "2"]}- 多代理协调- 不使用
where全局上下文感知
💡 主动式场景
示例 1:始终学习的助手
从每个交互中持续学习,无需显式记忆命令:
export OPENAI_API_KEY=your_api_key
python examples/example_1_conversation_memory.py
主动行为:
- 自动从非正式提及中提取偏好
- 从交互模式中构建关系模型
- 在未来对话中展示相关上下文
- 根据学习到的偏好调整沟通风格
最适合: 个人 AI 助手、记住内容的客户支持、社交聊天机器人
示例 2:自我改进的代理
从执行日志中学习并主动建议优化:
export OPENAI_API_KEY=your_api_key
python examples/example_2_skill_extraction.py
主动行为:
- 持续监控代理操作和结果
- 识别成功和失败中的模式
- 从经验中自动生成技能指南
- 主动建议类似未来任务的策略
最适合: DevOps 自动化、代理自我改进、知识捕获
示例 3:多模态上下文构建器
跨不同输入类型统一记忆,实现全面上下文:
export OPENAI_API_KEY=your_api_key
python examples/example_3_multimodal_memory.py
主动行为:
- 自动交叉引用文本、图像和文档
- 构建跨模态的统一理解
- 在讨论相关主题时展示视觉上下文
- 通过组合多个来源预期信息需求
最适合: 文档系统、学习平台、研究助手
📊 性能
MemU 在 Locomo 基准测试中所有推理任务 平均准确率 92.09%,展示了可靠的主动式记忆操作。
详细实验数据:memU-experiment
🧩 生态系统
| 仓库 | 描述 | 主动式功能 |
|---|---|---|
| memU | 核心 主动式记忆引擎 | 7×24 学习管道、自动分类 |
| memU-server | 具有持续同步的后端 | 实时记忆更新、webhook 触发 |
| memU-ui | 可视化记忆仪表板 | 实时记忆演变监控 |
快速链接:
- 🚀 体验 MemU Cloud
- 📚 API 文档
- 💬 Discord 社区
🤝 如何贡献
我们欢迎社区的贡献!无论是修复错误、添加功能还是改进文档,您的帮助都受到欢迎。
贡献入门
要开始为 MemU 贡献,您需要设置开发环境:
前提条件
- Python 3.13+
- uv (Python 包管理器)
- Git
设置开发环境
# 1. 分叉并克隆仓库
git clone https://github.com/YOUR_USERNAME/memU.git
cd memU
# 2. 安装开发依赖
make install
make install 命令将:
- 使用
uv创建虚拟环境 - 安装所有项目依赖
- 设置预提交钩子以进行代码质量检查
运行质量检查
在提交您的贡献之前,确保您的代码通过所有质量检查:
make check
make check 命令运行:
- 锁文件验证:确保
pyproject.toml一致性 - 预提交钩子:使用 Ruff 进行代码检查,使用 Black 进行格式化
- 类型检查:运行
mypy进行静态类型分析 - 依赖分析:使用
deptry查找过时的依赖
贡献指南
有关详细的贡献指南、代码标准和开发实践,请参阅 CONTRIBUTING.md
快速提示:
- 为每个功能或错误修复创建新分支
- 写清晰的提交信息
- 为新功能添加测试
- 根据需要更新文档
- 在推送前运行
make check
📄 许可证
🌍 社区
- GitHub 问题:报告错误 & 请求功能
- Discord:加入社区
- X (Twitter):关注 @memU_ai
- 联系:info@nevamind.ai
⭐ 在 GitHub 星标我们,以获取新发布的通知!