mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-10-06 02:48:22 +00:00
13 KiB
13 KiB
中文 | English
ReMe (formerly MemoryScope):为Agent设计的记忆管理框架
Remember Me, Refine Me.
ReMe为AI智能体提供了统一的记忆与经验系统——在跨用户、跨任务、跨智能体下抽取、复用和分享记忆的能力。
个性化记忆 (Personal Memory) + 任务经验 (Task Memory)= agent记忆
个性化记忆能够"理解用户偏好",任务记忆让agent"做得更好",
📰 最新动态
- [2025-09] 🎉 ReMe v0.1 正式发布,整合任务记忆与个人记忆。如果想使用原始的memoryscope项目,你可以在MemoryScope 中找到。
- [2025-09] 🧪 我们在appworld, bfcl(v3) 以及frozenlake环境验证了任务记忆抽取与复用在Agent中的效果,更多信息请查看 appworld exp, bfcl exp 和 frozenlake exp。
- [2025-08] 🚀 MCP协议支持已上线-> MCP指南。
- [2025-06] 🚀 多后端向量存储支持 (Elasticsearch & ChromaDB) -> 向量数据库指南。
- [2024-09] 🧠 MemoryScope v0.1 发布,个性化和时间感知的记忆存储与使用。
✨ 功能设计
ReMe整合两种互补的记忆能力:
🧠 任务经验 (Task Memory/Experience)
跨智能体复用的程序性知识
- 成功模式识别:识别有效策略并理解其根本原理
- 失败分析学习:从错误中学习,避免重复同样的问题
- 对比模式:不同采样轨迹通过对比得到更有价值的经验
- 验证模式:经过验证模块确认抽取记忆的有效性
你可以从task memory了解更多如何使用task memory的方法
👤 个人记忆 (Personal Memory)
特定用户的情境化记忆
- 个体偏好:用户的习惯、偏好和交互风格
- 情境适应:基于时间和上下文的智能记忆管理
- 渐进学习:通过长期交互逐步建立深度理解
- 时间感知:检索和整合时都具备时间敏感性
你可以从personal memory了解更多如何使用personal memory的方法
🛠️ 安装
从PyPI安装(推荐)
pip install reme-ai
从源码安装
git clone https://github.com/modelscope/ReMe.git
cd ReMe
pip install .
环境配置
复制 example.env 为 .env并修改其中对应参数:
FLOW_APP_NAME=ReMe
FLOW_LLM_API_KEY=sk-xxxx
FLOW_LLM_BASE_URL=https://xxxx/v1
FLOW_EMBEDDING_API_KEY=sk-xxxx
FLOW_EMBEDDING_BASE_URL=https://xxxx/v1
🚀 快速开始
HTTP服务启动
reme \
backend=http \
http.port=8002 \
llm.default.model_name=qwen3-30b-a3b-thinking-2507 \
embedding_model.default.model_name=text-embedding-v4 \
vector_store.default.backend=local
MCP服务器支持
reme \
backend=mcp \
mcp.transport=stdio \
llm.default.model_name=qwen3-30b-a3b-thinking-2507 \
embedding_model.default.model_name=text-embedding-v4 \
vector_store.default.backend=local
核心API使用
任务记忆管理
import requests
# 经验总结器:从执行轨迹学习
response = requests.post("http://localhost:8002/summary_task_memory", json={
"workspace_id": "task_workspace",
"trajectories": [
{"messages": [{"role": "user", "content": "帮我制定项目计划"}], "score": 1.0}
]
})
# 经验检索器:获取相关经验
response = requests.post("http://localhost:8002/retrieve_task_memory", json={
"workspace_id": "task_workspace",
"query": "如何高效管理项目进度?",
"top_k": 1
})
curl 版本
# 经验总结器:从执行轨迹学习
curl -X POST http://localhost:8002/summary_task_memory \
-H "Content-Type: application/json" \
-d '{
"workspace_id": "task_workspace",
"trajectories": [
{"messages": [{"role": "user", "content": "帮我制定项目计划"}], "score": 1.0}
]
}'
# 经验检索器:获取相关经验
curl -X POST http://localhost:8002/retrieve_task_memory \
-H "Content-Type: application/json" \
-d '{
"workspace_id": "task_workspace",
"query": "如何高效管理项目进度?",
"top_k": 1
}'
Node.js 版本
// 经验总结器:从执行轨迹学习
fetch("http://localhost:8002/summary_task_memory", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
workspace_id: "task_workspace",
trajectories: [
{messages: [{role: "user", content: "帮我制定项目计划"}], score: 1.0}
]
})
})
.then(response => response.json())
.then(data => console.log(data));
// 经验检索器:获取相关经验
fetch("http://localhost:8002/retrieve_task_memory", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
workspace_id: "task_workspace",
query: "如何高效管理项目进度?",
top_k: 1
})
})
.then(response => response.json())
.then(data => console.log(data));
个人记忆管理
# 记忆整合:从用户交互中学习
response = requests.post("http://localhost:8002/summary_personal_memory", json={
"workspace_id": "task_workspace",
"trajectories": [
{"messages":
[
{"role": "user", "content": "我喜欢早上喝咖啡工作"},
{"role": "assistant", "content": "了解,您习惯早上用咖啡提神来开始工作"}
]
}
]
})
# 记忆检索:获取个人记忆片段
response = requests.post("http://localhost:8002/retrieve_personal_memory", json={
"workspace_id": "task_workspace",
"query": "用户的工作习惯是什么?",
"top_k": 5
})
curl 版本
# 记忆整合:从用户交互中学习
curl -X POST http://localhost:8002/summary_personal_memory \
-H "Content-Type: application/json" \
-d '{
"workspace_id": "task_workspace",
"trajectories": [
{"messages": [
{"role": "user", "content": "我喜欢早上喝咖啡工作"},
{"role": "assistant", "content": "了解,您习惯早上用咖啡提神来开始工作"}
]}
]
}'
# 记忆检索:获取个人记忆片段
curl -X POST http://localhost:8002/retrieve_personal_memory \
-H "Content-Type: application/json" \
-d '{
"workspace_id": "task_workspace",
"query": "用户的工作习惯是什么?",
"top_k": 5
}'
Node.js 版本
// 记忆整合:从用户交互中学习
fetch("http://localhost:8002/summary_personal_memory", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
workspace_id: "task_workspace",
trajectories: [
{messages: [
{role: "user", content: "我喜欢早上喝咖啡工作"},
{role: "assistant", content: "了解,您习惯早上用咖啡提神来开始工作"}
]}
]
})
})
.then(response => response.json())
.then(data => console.log(data));
// 记忆检索:获取个人记忆片段
fetch("http://localhost:8002/retrieve_personal_memory", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
workspace_id: "task_workspace",
query: "用户的工作习惯是什么?",
top_k: 5
})
})
.then(response => response.json())
.then(data => console.log(data));
📦 即用型经验库
ReMe提供预构建的经验库,智能体可以立即使用经过验证的最佳实践:
可用经验库
appworld.jsonl:Appworld智能体交互的记忆库,涵盖复杂任务规划和执行模式bfcl_v3.jsonl:BFCL工具调用的工作记忆库
快速使用
# 加载预构建经验
response = requests.post("http://localhost:8002/vector_store", json={
"workspace_id": "appworld",
"action": "load",
"path": "./docs/library/"
})
# 查询相关经验
response = requests.post("http://localhost:8002/retrieve_task_memory", json={
"workspace_id": "appworld",
"query": "如何导航到设置并更新用户资料?",
"top_k": 1
})
🧪 实验
🌍 Appworld 实验
我们在 Appworld 上使用 qwen3-8b 测试 ReMe:
| 方法 | pass@1 | pass@2 | pass@4 |
|---|---|---|---|
| without ReMe | 0.083 | 0.140 | 0.228 |
| with ReMe | 0.109 (+2.6%) | 0.175 (+3.5%) | 0.281 (+5.3%) |
Pass@K 衡量的是在生成的 K 个样本中,至少有一个成功完成任务(score=1)的概率。
当前实验使用的是一个内部的 AppWorld 环境,可能存在轻微差异。
你可以在 quickstart.md 中找到复现实验的更多细节。
🧊 Frozenlake 实验
| 不使用ReMe | 使用ReMe |
|---|---|
|
|
我们在 100 个随机 frozenlake 地图上使用 qwen3-8b 进行测试:
| 方法 | pass rate |
|---|---|
| without ReMe | 0.66 |
| with ReMe | 0.72 (+6.0%) |
你可以在 quickstart.md 中找到复现实验的更多细节。
🔧 BFCL-V3 实验
我们在 BFCL-V3 multi-turn-base (随机划分50train/150val) 上使用 qwen3-8b 测试 ReMe:
| 方法 | pass@1 | pass@2 | pass@4 |
|---|---|---|---|
| without ReMe | 0.2472 | 0.2733 | 0.2922 |
| with ReMe | 0.3061 (+5.89%) | 0.3500 (+7.67%) | 0.3888 (+9.66%) |
📚 相关资源
- 快速开始:通过实际示例快速上手
- 向量存储设置:配置本地/向量数据库以及使用
- mcp指南:创建mcp服务
- 个性化记忆 与 任务记忆: 个性化记忆与任务记忆中分别使用的算子及其含义,你可以修改config以自定义链路
- 示例集合:实际用例和最佳实践
🤝 贡献
我们相信最好的记忆系统来自集体智慧。欢迎贡献👉指南:
代码贡献
- 新操作和工具开发
- 后端实现和优化
- API增强和新端点
文档改进
- 使用示例和教程
- 最佳实践指南
📄 引用
@software{ReMe2025,
title = {ReMe: Memory Management Framework for Agents},
author = {Li Yu, Jiaji Deng, Zouying Cao},
url = {https://github.com/modelscope/ReMe},
year = {2025}
}
⚖️ 许可证
本项目采用Apache License 2.0许可证 - 详情请参阅LICENSE文件。

