记忆调度
1. 什么是记忆调度
记忆调度是 MemOS 在运行时管理记忆可用性的能力。它不只是“搜到哪条记忆”,而是根据当前任务、用户状态、历史主题和记忆热度,决定哪些记忆应该更靠近模型上下文,哪些记忆可以留在低频存储中。
可以把记忆调度理解为记忆系统里的注意力管理:当用户进入某个任务场景时,系统优先准备最可能用到的记忆,减少无关历史对模型的干扰。
2. 为什么需要调度
如果每次请求都只做全量检索,系统会遇到三个问题:
- 响应变慢:等用户提问后再从全部历史里搜索,会增加首 Token 延迟。
- 上下文过载:召回太多历史内容,反而会淹没当前任务真正需要的信息。
- 主题切换不自然:用户近期关注点变化时,系统需要及时把新主题调到更高优先级,把旧主题降级。
调度的目标不是保存更多内容,而是在合适的时刻让合适的记忆处于可用状态。
3. 调度关注什么
| 判断维度 | 作用 |
|---|---|
| 当前任务 | 判断用户正在处理的问题属于哪个主题或场景 |
| 记忆相关性 | 识别哪些记忆与当前输入、会话和业务目标更接近 |
| 时效性 | 优先使用近期仍然有效的信息,降低过时内容的影响 |
| 使用频率 | 高频使用的记忆更容易被提前准备或保持活跃 |
| 权限范围 | 确保调度结果符合用户、Agent、租户和业务隔离规则 |
调度结果会影响后续召回和上下文注入:相关、活跃、可信的记忆更容易被优先使用;低频、过时或不适合当前场景的记忆会被延后处理。
4. 例子:从买房到装修
前一阶段:买房是核心主题
用户输入
“帮我查一下滨江那边的二手房均价。”
“提醒我周六去看房。”
“记录一下房贷利率的最新变化。”
调度结果
生成小区、看房安排、房贷利率的记忆。
判断“买房”是近期高频主题。
让买房相关记忆保持较高优先级。
最近:装修变成新的活跃主题
用户输入
“周末要去看瓷砖。”
“提醒我和装修公司确认水电改造。”
“记一下下周家具送货时间。”
调度结果
继续生成装修相关记忆。
判断“装修”已经成为新的高频主题。
将装修相关记忆调到更高优先级。
买房相关记忆仍然保留,但逐渐降级。
用户随口说:“我感觉好多事堆在一起,你帮我理一下。”
没有调度:全量临时检索
需要从全量记忆里临时检索。
可能混入查房价、看房、买菜、看电影等低相关内容。
回答更慢,也更容易偏离当前任务。
有调度:优先准备当前主题
优先准备看瓷砖、确认水电改造、家具送货等装修记忆。
不需要每次都从全部历史里重新判断。
响应更快,结果也更接近用户当前真正挂念的事。
5. 和召回的关系
调度和召回不是同一件事:
| 能力 | 关注点 |
|---|---|
| 记忆调度 | 哪些记忆应该在当前阶段更活跃、更靠近模型上下文 |
| 记忆召回 | 在一次具体请求中,检索哪些记忆作为回答依据 |
调度更像运行时的准备和优先级管理;召回更像一次请求里的检索和筛选。调度做得好,召回通常会更快、更准,也更不容易被无关历史干扰。