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

0 阅读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 全面重构模型记忆资源的生命周期管理,为智能系统提供高效且灵活的记忆管理能力。