使用示例

基于自研 memos-extractor-0.6b 模型,从对话中抽取事实与偏好记忆。

MemOS 提供记忆抽取接口,基于自研 memos-extractor-0.6b 小模型,开发者可直接传入对话内容,一键提取事实记忆与偏好记忆。

接口字段与 OpenAPI 说明:Extract Memory
鉴权、Base URL 与调用方式与 MemOS Cloud 快速开始 一致。

何时使用记忆抽取模型

记忆抽取接口适用于以下场景:

  • 轻量级记忆提取:无需部署完整的 add/message 流程,直接从对话中提取结构化记忆。
  • 低延迟高频调用:基于 0.6B 自研小模型,适合对延迟敏感、调用频繁的业务场景。
  • 灵活的抽取控制:可按需选择抽取事实记忆、偏好记忆或全部,满足不同业务需求。

工作原理

抽取模型的完整调用流程可分为以下步骤:

  1. 数据输入(Data Input)
    开发者传入原始对话数据(messages),每条消息包含 rolecontent 字段。
  2. 格式化与清洗(Format & Clean Processing)
    对话内容经格式化处理,统一为标准格式;同时进行语言检测,识别对话所使用的语言。
  3. 任务与语言选择(Task & Language Selector)
    根据 extraction_types 与检测到的语言,进入对应的抽取分支:
    • Memory Reader:事实记忆抽取
    • Explicit Preference:显性偏好抽取
    • Implicit Preference:隐性偏好抽取
  4. Prompt 构建(Builder)
    将当前分支所需的 Prompt 模板组装为最终推理请求。
  5. API 调用(API Call)
    按约定格式请求 memos-extractor-0.6b 模型完成推理。
  6. 返回结果(Final Results)
    模型返回结构化结果,包含事实记忆列表和/或偏好记忆列表(随请求中的抽取类型而定)。

快速上手

import os, json, requests

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

data = {
    "messages": [
        {"role": "system", "content": "从对话中提取关键记忆。"},
        {"role": "user", "content": "我叫张三,28岁,杭州后端,喜欢羽毛球。"},
        {"role": "assistant", "content": "你好张三!"},
        {"role": "user", "content": "回复尽量简洁,别太啰嗦。"},
    ]
}
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, headers=headers, data=json.dumps(data))
print(res.json())

输出示意

{
  "code": 0,
  "message": "ok",
  "data": {
    "success": true,
    "memory_detail_list": [
      {
        "memory_key": "用户身份与职业",
        "memory_value": "用户张三,28岁,在杭州从事后端开发,喜欢打羽毛球。",
        "memory_type": "UserMemory",
        "tags": ["人物", "职业", "地点", "爱好"]
      }
    ],
    "preference_detail_list": [
      {
        "preference": "希望助理回复尽量简洁,不要过于啰嗦。",
        "reasoning": "用户在对话中明确要求「回复尽量简洁一些,不要太啰嗦」。",
        "preference_type": "explicit_preference"
      }
    ]
  }
}

使用限制

  • 接口输入上限:8,000 tokens
  • 当前仅支持同步模式,接口将在抽取完成后一次性返回结果。
  • 当前仅支持传入对话文本messages 中每条消息仅包含 rolecontent暂不支持多模态输入,也无法通过本接口抽取多模态记忆。

对比 add/message 接口

对比维度记忆抽取接口add/message 接口
核心能力从对话中提取记忆,仅返回结果写入对话并自动提取、存储记忆
记忆存储❌ 不写入 MemOS 记忆库✅ 自动写入 MemOS 记忆库
推理模型自研 0.6B 小模型,低延迟MemOS 内置模型
异步模式暂不支持✅ 支持
偏好记忆✅ 支持(显性 + 隐性)✅ 支持
工具记忆 / 技能❌ 不支持✅ 支持
典型使用场景独立的记忆分析 / 预处理 / 质量评估完整的对话记忆管理