ReMe/README_ZH.md
2025-09-16 16:51:12 +08:00

13 KiB
Raw Permalink Blame History

中文 | English

ReMe Logo

Python Version PyPI Version License GitHub Stars

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 Logo

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

GIF 1

GIF 2

我们在 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%)

📚 相关资源


🤝 贡献

我们相信最好的记忆系统来自集体智慧。欢迎贡献👉指南:

代码贡献

  • 新操作和工具开发
  • 后端实现和优化
  • 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文件。


Star 历史

Star History Chart