记忆抽取 API 上线:MemReader——让你的 Agent 学会「想清楚再记」

37 阅读6分钟

用户跟你的 Agent 说了一句「老地方见」,系统反应特别迅速,唰地写了一条——「用户想在老地方见面」。

然后你盯着这条记录看了三秒钟。

老地方是哪?没人知道。

又或者,用户说了句「谢谢」,系统又快速地记了一笔——「用户表达了感谢」。

好家伙,这条信息的价值大概约等于零。

更典型的,用户上个月说「我住在北京」,这个月说「我搬到上海了」。

记忆里两条都在,Agent 下次要用的时候,该信哪个?

如果你做过 Agent 长期记忆的开发,应该非常熟悉这些场景,这不是个别 bug,背后是一整个系列的问题——

现有的记忆抽取方式,大部分是被动的。

拿到对话,系统直接压缩成结构化 JSON 存进去。

管你是寒暄、是关键信息、还是一句充满歧义的指代,一律照单全收。

结果就是,记忆库里什么都有,但该用的时候什么都不靠谱。

那为什么不能在存之前先想一想,这条信息值得记吗?记得下来吗?信息完整吗?

这就是我们今天发布的 MemReader 系列模型想解决的事。

图片

官方文档:

memos-docs.openmem.net/self_developed_model/extraction_usage_example/

HuggingFace 地址:

huggingface.co/IAAR-Shanghai/MemReader-4B-thinking

一、从「被动提取」到「主动管理」——MemReader 在做的事

现在大部分记忆系统的做法,有点像一个不加筛选的速记员——你说什么,它就原封不动地记下来。

信息有没有价值?不管。

有没有歧义?不管。

信息完不完整?也不管。

我们希望通过 MemReader 更好的解决这些问题。

让 AI 像一个有判断力的助理,每收到一条信息,先想三个问题,然后再决定怎么处理。

这三个问题是:

  1. 这条信息值得记吗? 是用户偏好、重要决定、关键约束,还是无意义的闲聊?

  2. 信息里有没有歧义? 有没有代词、模糊引用,需要翻一翻历史记忆才能搞清楚的?

  3. 信息足够完整吗? 能直接写入记忆,还是得先存着,等后续对话补充完整再说?

然后才做决定——是写入、检索、缓存、还是直接丢弃。

图片

我们把这套逻辑封装成了两个模型:

  • MemReader-4B,基于 Qwen3-4B,走 ReAct 范式。
    • 能推理、能调工具、能搜索历史记忆做消歧。
    • 适合对记忆质量要求高的场景。
  • MemReader-0.6B,基于 Qwen3-0.6B,轻量级结构化提取器。
    • 不做推理不调工具,专注于一件事——用最低成本把对话变成干净的结构化记忆。

    • 适合对延迟和成本敏感的部署场景。

二、MemReader-4B:四种记忆操作,先想再做

MemReader-4B 的核心能力,是在写入记忆之前加了一层「思考」。

举个栗子🌰 

用户说:「关于那个项目,我决定用方案 B。」

如果是传统的被动提取系统,它会直接写一条记忆——「用户决定使用方案 B」。

看起来没问题对吧,但「那个项目」是什么?「方案 B」具体是什么内容?全是未知的。

这条记忆存进去,下次用的时候大概率又给你埋了个坑。

MemReader-4B 的处理方式则不一样。

它会先思考:「那个项目」和「方案 B」都是模糊引用,得搜一下历史记忆。

于是调用 search_memory,找到用户之前提到过一个「新产品计划」,里面包含方案 A(激进扩张)、方案 B(稳步推进)和方案 C(观望)。

结合上下文之后,它写入的记忆变成了:「用户决定在新产品计划中采用方案 B(稳步推进路线)」。

一条被动提取的模糊记忆,变成了一条消歧之后的精准记忆。

整个流程遵循 ReAct 范式——输入 → 思考 → 行动 → 观察 → 最终决策。

对应四种记忆操作:

  1. add_memory——信息有价值且完整,直接写入长期记忆。

  2. search_memory——信息中存在歧义或指代,先检索历史记忆进行消歧。

  3. buffer_memory——信息有价值但不完整,先临时缓存,等后续对话补充。

  4. ignore_memory——低价值或重复的信息,直接丢弃,不占用记忆空间。

三、MemReader-0.6B:0.6B 参数,干翻 GPT-4o-mini

MemReader-0.6B 做的事情就更加纯粹了——不推理、不调工具,就是把对话变成干净的结构化记忆。

但 0.6B 这个参数量做到的效果,说实话我们自己看到 benchmark 数据的时候也有点意外。

直接看数据⬇️

LOCOMO 综合得分:

图片

LongMemEval 综合得分:

图片

0.6B 的小模型,在 LOCOMO 上综合得分超过了 GPT-4o-mini 的基线!

再看 HaluMem 的提取与更新结果,差距就更明显了:

图片

有两个数据希望跟大家特别提一下:

MemReader-4B 在 LongMemEval 的知识更新维度上达到了 91.03%,时序推理达到 84.21%,远超 4o-mini 的 74.26% 和 77.44%。

这恰恰是现实场景中最难的两个维度——用户信息变了你能不能跟上,时间线上的信息你能不能理清楚。

四、怎么用

MemReader-4B 已经完全开源,提供多种部署方式。

HuggingFace 地址:

huggingface.co/IAAR-Shanghai/MemReader-4B-thinking

本地加载:

from transformers import AutoModelForCausalLM, AutoTokenizer
model_name"IAAR-Shanghai/MemReader-4B-thinking"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
# 定义四个记忆操作工具(add/search/buffer/ignore_memory)
# 通过 apply_chat_template 组装输入并生成

也支持 vLLM 服务化部署:

python -m vllm.entrypoints.openai.api_server \
  --model IAAR-Shanghai/MemReader-4B-thinking \
  --port 8000 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

详细用法可以查看 HuggingFace 模型页。

MemReader-0.6B 通过 MemOS Cloud API 调用(加入社群,限时免费订阅中!):

import os, requests, json

os.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"
os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"

data = {
    "messages": [
        {"role""user""content""我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?"},
        {"role""assistant""content""您可以考虑七天、全季、希尔顿等等"},
        {"role""user""content""我选七天"},
        {"role""assistant""content""好的,有其他问题再问我。"}
    ],
    "extraction_types": ["memory""preference"]
}

headers = {
    "Content-Type""application/json",
    "Authorization"f"Token {os.environ['MEMOS_API_KEY']}"
}
url = f"{os.environ['MEMOS_BASE_URL']}/extract/memory"
res = requests.post(url=url, headers=headers, data=json.dumps(data))
print(f"result: {res.json()}")

API 文档:

docs.openmem.net/cn/api_docs…

更多开放模型列表:

memos-dashboard.openmem.net/cn/models/

写在最后

回到最初的问题——你的 Agent 记了一堆东西,但为什么越记越乱?

因为现在的问题已经不在是「记不记得住」,而在于「该不该记」和「怎么记才对」。

我们希望通过 MemReader 做到的,说到底就是让记忆写入这个动作,从一个无脑的信息搬运,变成一个有判断的认知过程。

先想清楚,再做决定。

如果你对 MemReader 感兴趣,欢迎通过以下方式了解更多:

官方文档:

memos-docs.openmem.net/self_developed_model/extraction_usage_example/

技术报告:

arxiv.org/abs/2604.07877

开放模型列表:

memos-dashboard.openmem.net/cn/models/


关于 MemOS

MemOS 为 AI 应用构建统一的记忆管理平台,让智能系统如大脑般拥有灵活、可迁移、可共享的长期记忆和即时记忆。

作为记忆张量首次提出“记忆调度”架构的 AI 记忆操作系统,我们希望通过 MemOS 全面重构模型记忆资源的生命周期管理,为智能系统提供高效且灵活的记忆管理能力。