MIRIX 2
每次用户发消息,这个 Agent 都会自动根据关键词从上面 6 种记忆中检索相关内容,拼进 system prompt 里,让 LLM “记得过去”。用户发图片、PDF、Google Docs 链接都能处理。Mirix 的架构极其模块化,它允许你拥有几十种不同的 Agent。这些 Agent 行为千差万别,但它们必须满足一个共同点:收到消息 → 思考 → 可能调用工具 → 可能修改记忆 → 最终返
每次用户发消息,这个 Agent 都会自动根据关键词从上面 6 种记忆中检索相关内容,拼进 system prompt 里,让 LLM “记得过去”。
用户发图片、PDF、Google Docs 链接都能处理。
Mirix 的架构极其模块化,它允许你拥有几十种不同的 Agent。这些 Agent 行为千差万别,但它们必须满足一个共同点:收到消息 → 思考 → 可能调用工具 → 可能修改记忆 → 最终返回使用统计
MIRIX 由八个专业智能体组成= meta agent + chat Agent + 6个 Memory Managers
Meta Agent
分析传入的用户内容(文本、图像、语音)
确定哪些内存组件需要更新,也就是6大记忆模块
将输入内容发送至相关的内存管理器
Chat Agent
处理用户的询问和对话
使用 search_in_memory () 在所有内存组件中进行搜索
- 功能: 根据指定的记忆类型,在 MIRIX 的长期记忆系统中执行搜索操作。
- 灵活性: 支持对不同的记忆类型使用不同的搜索方法,以兼顾性能和准确性
将检索到的信息整合为贴合语境的回复
维持对话流程和上下文连贯性
Memory Managers
每个内存组件都有一个专门的智能体,负责管理特定类型的信息。
Core Memory Manager (personality)
管理内容:个人偏好、用户身份、关键事实
处理逻辑:
- 识别用户偏好和个性特征
- 更新人物角色和对用户的理解模块
- 在不同对话间保持一致性
- 当模块容量超过 90% 时处理内存重写
Episodic Memory Manager 情景记忆管理器(time)
管理基于时间的活动和事件
- 捕捉时间背景和用户活动
- 创建带有时间戳的事件摘要
- 跟踪用户已做和正在做的事情
Semantic Memory Manager 语义记忆管理器(物事人)
管理关于人物和世界的一般性知识和概念
- 提取不依赖于时间的事实性信息
- 存储概念、定义及相互关系
- 留存关于人物、地点和事物的知识
- 关联相关概念以便更好地检索
Procedural Memory Manager 程序性记忆管理器(流程)
管理工作流程和步骤
- 识别流程模式和工作流程
- 存储逐步的操作说明
- 识别反复出现的任务模式
Resource Memory Manager 资源内存管理器(附件)
管理文档、文件及各类内容
- 处理文档内容及上下文
- 根据需要存储全部或部分内容
Knowledge Vault Manager 知识库管理器(安全)
管理 结构化数据与凭证
- 识别敏感信息(密码、API 密钥)
- 按敏感程度对数据分类(敏感程度分为 [低、中、高])
- 维持安全的存储方式
- 防止高敏感数据意外暴露
Workflow

这张名为 “Workflow Coordination” 下的 “Input Processing Pipeline”(输入处理流程)图,是 MIRIX 多智能体系统中记忆更新的核心时序图。它展示了用户输入如何被 Meta Agent 接收、分析,然后路由给 Memory Managers 进行长期记忆更新的完整流程。
🖼️ 输入处理流程图详解
该图描述了用户输入事件发生后,信息如何流经四个主要参与者:User Input(用户输入)、Meta Agent(元智能体)、Memory Managers(记忆管理器)和 Memory Base(记忆库)。
1. 启动与分析(Meta Agent 的职责)
- 发送内容 (
Send content): 用户通过 User Input 触发一个事件(例如发送一条消息),内容被发送给 Meta Agent。 - 分析内容类型 (
Analyze content type): Meta Agent 接收内容后,执行其核心职责——对内容进行分析,判断信息类型、意图和重要性。 - 路由给相关管理器 (
Route to relevant managers): 基于分析结果,Meta Agent 决定哪些记忆组件需要更新,并将任务路由给相应的 Memory Managers(例如,如果发现用户在谈论日程,则路由给 Episodic Memory Manager)。
2. 记忆处理(Memory Managers 的职责)
- 处理信息 (
Process information): Memory Managers 接收到 Meta Agent 路由的任务后,开始执行其专业功能(例如,将信息摘要、提取语义关系或识别程序步骤)。 - 更新记忆组件 (
Update memory components): 处理完成后,Memory Managers 将处理后的信息发送给Memory Base(底层持久化存储),以更新相应的记忆组件(如情景记忆、语义记忆等)。 - 确认更新 (
Confirm updates): Memory Base 完成存储操作后,返回确认信息给 Memory Managers。
3. 完成与确认(流程收尾)
- 处理完成 (
Processing complete): Memory Managers 在所有必要的更新操作完成后,向 Meta Agent 发送处理完成的信号。 - 确认 (
Acknowledgment): Meta Agent 接收到完成信号后,向最初的 User Input 发送确认信息,标志着整个记忆更新流程结束。
简单来说,这是一个关于 “攒够了一起干,干活一次到位,不干多余的活” 的机制。
💾 记忆巩固流程(Memory Consolidation Process)
1. 批处理 (Batch Processing) 🚀
这部分关注的是提高效率和减少数据库操作次数。
-
Agents accumulate information until reaching threshold (智能体积累信息直到达到阈值):
- 直白点说: 智能体不会收到一条信息就马上去更新记忆。它们会先“攒”着,直到积累到一定数量或达到某个时间点(这个“阈值”)。
- 作用: 避免了每次接收信息都去操作数据库,减少了系统开销。
-
Trigger parallel processing for efficiency (触发并行处理以提高效率):
- 直白点说: 一旦信息攒够了,系统会同时启动多个记忆管理器(Memory Managers)来一起处理和写入数据。
- 作用: 大大加快了记忆更新的速度。
-
Single function call per agent for comprehensive updates (每个智能体使用单函数调用进行全面更新):
- 直白点说: 每个记忆管理器在工作时,会尝试用一次操作(一个函数调用)就把所有需要更新的数据写入记忆库。
- 作用: 保证了数据更新的原子性(要么全部成功,要么全部失败),并且进一步减少了与底层记忆库的通信次数,提升性能。
2. 智能路由 (Smart Routing) 🗺️
这部分关注的是精准工作和节约资源。
-
Meta Agent analyze the content to determine distribution, preventing unnecessary processing and maintaining efficiency (元智能体分析内容以确定分配,防止不必要的处理并保持效率):
- 直白点说: Meta Agent 就像一个中央分拣员。它先看用户发了什么,然后只把相关的信息派发给真正需要的记忆管理器。
- 作用: 避免了所有记忆管理器(如 Episodic、Semantic 等)都要浪费时间去检查这条信息是否与自己相关。
-
(Double Check) The specific memory manager can skip updates if no relevant information detected ((再次检查) 如果未检测到相关信息,特定的记忆管理器可以跳过更新):
- 直白点说: 即使 Meta Agent 路由了任务,如果一个记忆管理器自己检查后发现这条信息对它管理的记忆组件毫无意义,它就有权跳过更新。
- 作用: 这是一个双重保障,确保内存管理器绝不进行多余的写入操作。

MIRIX 的整个工作流程可以分为两大核心阶段:输入处理(记忆写入) 和 对话检索(信息读取)。
1. 📝 输入处理流程 (Input Processing Pipeline) - 记忆写入
这个流程发生在用户输入新信息时,目标是让 Meta Agent 智能地决定如何将这些信息转化为长期记忆,并存储到 Memory Base 中。
场景示例:用户提到一个新计划
用户输入: “我下周要开始学习西班牙语。”
| 步骤 | 参与者 | 动作与细节 | 示例细节 |
|---|---|---|---|
| 发送内容 | User Input → Meta Agent | 用户发送新信息给 Meta Agent。 | 发送:“我下周要开始学习西班牙语。” |
| 分析内容类型 | Meta Agent | Meta Agent 分析信息类型和意图。 | 分析:这是一个未来的“计划”和“技能”信息。 |
| 路由给相关管理器 | Meta Agent → Memory Managers | Meta Agent 将任务路由给一个或多个相关 Memory Managers。 | 路由:发送给 Episodic Memory Manager(情景记忆,记录计划)和 Procedural Memory Manager(程序记忆,记录新技能)。 |
| 处理信息 | Memory Managers | 记忆管理器执行专业处理逻辑。 | Episodic MM:创建一条情景记录:“计划:下周开始学习西班牙语。” Procedural MM:可能初始化一个“西班牙语学习技能”的结构。 |
| 更新记忆组件 | Memory Managers → Memory Base | 记忆管理器将处理后的信息写入 Memory Base。 | 写入相应的情景和程序记忆组件。 |
| 确认更新 | Memory Base → Memory Managers | Memory Base 返回存储成功的确认信号。 | 确认数据已持久化。 |
| 处理完成 | Memory Managers → Meta Agent | 记忆管理器通知 Meta Agent 任务完成。 | 完成:两个管理器都报告任务完成。 |
| 确认 | Meta Agent → User Input | Meta Agent 向用户返回确认信息。 | 返回:系统确认收到了信息(通常在后台完成,用户无感)。 |
2. 🧠 对话检索系统 (Conversational Retrieval System) - 信息读取
这个流程发生在用户提问时,目标是让 Chat Agent 高效地从长期记忆中提取信息,并合成一个智能的答案。
场景示例:用户查询历史信息
用户查询: “我最近提到了什么学习计划?”
| 步骤 | 参与者 | 动作与细节 | 示例细节 |
|---|---|---|---|
| 提问 (Ask question) | User Query → Chat Agent | 用户向 Chat Agent 提出查询。 | 提问:“我最近提到了什么学习计划?” |
| 调用搜索功能 (Call search function) | Chat Agent → search_in_memory() | Chat Agent 识别查询意图,调用记忆搜索功能。 | 调用 search_in_memory(memory_type='episodic, procedural', query='学习计划', ...)。 |
| 查询所有记忆类型 (Query all memory types) | search_in_memory() → Memory Base | 搜索功能访问 Memory Base,在指定记忆类型中执行检索。 | 在情景和程序记忆中查找包含“学习计划”的记录。 |
| 返回相关结果 (Return relevant results) | Memory Base → search_in_memory() | Memory Base 返回所有匹配的原始数据。 | 返回原始记录:“计划:下周开始学习西班牙语。” |
| 合并结果 (Consolidated results) | search_in_memory() → Chat Agent | 搜索功能将原始结果整合后返回给 Chat Agent。 | 整合为易于 LLM 理解的上下文信息。 |
| 合成响应 (Synthesize response) | Chat Agent | Chat Agent 使用 LLM 能力,基于检索到的上下文推理并组织答案。 | 将原始记录转化为流畅的自然语言回答。 |
| 生成答案 (Generate answer) | Chat Agent → Response | Chat Agent 完成答案生成。 | 生成答案。 |
| 智能响应 (Intelligent response) | Response → User Query | 最终答案返回给用户。 | 返回:“你最近提到,你计划从下周开始学习西班牙语。” |
整合:MIRIX 的核心机制
MIRIX 通过这些流程体现了以下两大效率机制:
- 批处理 (Batch Processing): 智能体积累信息达到阈值后,会并行触发处理,并且每个 Agent 尝试用单函数调用完成复杂的更新,以提高效率。
- 智能路由 (Smart Routing): Meta Agent 提前分析内容,只将任务分配给相关的记忆管理器,防止不必要的处理,从而保持系统的高效性。
您提出了关于 MIRIX 系统中 Meta Agent 和 Chat Agent 工作流程的几个关键问题。下面将逐一详细解答。
1. Meta Agent 如何分辨类型和意图?
Meta Agent 能够分辨用户输入信息的类型和意图,主要是因为它**调用了底层的大型语言模型(LLM)**来执行分析和路由决策。
🧠 意图分析机制
- LLM 作为核心分析器: Meta Agent 在接收到用户输入后,它会将输入内容传递给一个或多个 LLM。
- 结构化输出: LLM 的任务是生成一个结构化输出(通常是 JSON 格式),该输出明确指出以下内容:
- 内容类型: 用户输入是关于事实知识、个人计划、新技能、还是敏感资源?
- 路由目标 (
memory_types): 哪些记忆管理器需要被触发?(例如,['episodic', 'procedural']) - 提取内容: 针对每个目标管理器,提取出需要存储的关键信息摘要。
- 智能路由: Meta Agent 根据 LLM 返回的结构化结果,执行 智能路由 (Smart Routing),将任务精确地分配给相应的 Memory Managers。
因此,Meta Agent 本身不进行复杂的语言理解,它只是利用 LLM 的强大分析能力,实现了高效的决策制定和任务分发。
2. Episodic MM 和 Procedural MM 中的“MM”是什么意思?
这里的 MM 是 Memory Manager(记忆管理器)的缩写。
在 MIRIX 的多智能体架构中,每个专业的记忆组件(如情景记忆、程序记忆)都由一个专门的智能体来管理和更新,这个智能体就被称为 Memory Manager。
- Episodic MM = Episodic Memory Manager (情景记忆管理器)
- 职责: 记录带有时间戳的用户活动和事件,关注用户“已做”或“正在做”的事情(如“下周开始学习西班牙语”这个计划)。
- Procedural MM = Procedural Memory Manager (程序记忆管理器)
- 职责: 管理智能体执行任务所需的操作步骤和技能(如“学习西班牙语”这一新技能或操作流程)。
3. Meta Agent 返回确认信息中的“用户”是谁?
这里的用户指的是最初向系统提供输入或启动流程的实体。
- 在您举的例子中,如果“提问的我”是直接与系统交互的人,那么这里的“用户”就是您本人。
- 在流程图中,“用户”被标记为 User Input,这代表了发起流程的来源。
Meta Agent 返回的这个 Acknowledgment (确认) 信号,通常是系统在后台对输入事件完成处理的确认,并不是一个直接回复给用户看的消息,而是流程终结的标记。
4. MIRIX 的完整工作流程序列和 Chat Agent 的角色
您提到流程顺序的疑问:“难道 MIRIX 流程不是先 Meta Agent 那一套完事后,紧接着 Chat Agent 这一套嘛?”
这个理解是正确的,但关键在于这两个流程是针对不同目的的独立事件:
🔄 完整工作序列
| 流程阶段 | 触发目的 | 主导 Agent |
|---|---|---|
| 输入处理 (记忆写入) | 用户输入新信息,需要被存储为长期记忆。 | Meta Agent |
| 对话检索 (信息读取) | 用户提问/查询,需要利用长期记忆来回答。 | Chat Agent |
🔍 Chat Agent 的角色和 LLM 调用
- Chat Agent 负责对话: Chat Agent 是直接与用户进行交互和问答的智能体。它接收 User Query (用户查询),并通过调用检索功能 (
search_in_memory()) 来获取长期记忆。 - Chat Agent 调用 LLM: 是的,Chat Agent 在接收到 Consolidated results (合并后的检索结果) 后,会再次调用 LLM(或本身就是一个 LLM 接口)。这个 LLM 的任务是利用检索到的信息作为上下文,执行 Synthesize response (合成响应),将原始数据转化为流畅、智能的自然语言回答。
- LLM 在此阶段的作用: 不仅要判断意图(如 Meta Agent 所做),更重要的是进行推理、组织和润色,最终生成一个完整、准确的 Intelligent response。
这段文字描述了 MIRIX 多智能体系统中用于确保高性能、稳定性和数据可靠性的关键优化机制。
简单来说,这是关于系统如何跑得快、不宕机、数据不出错的设计原则。
🚀 性能优化 (Performance Optimizations)
这部分旨在最大化处理速度和效率。
1. 并发处理 (Concurrent Processing)
- Memory Managers work independently but share the same memory base (记忆管理器独立工作但共享相同的记忆库):
- 含义: 所有的专业记忆管理器(如情景 MM、语义 MM 等)是彼此独立的程序或线程,可以同时运行。然而,它们都读写同一个底层的数据存储(Memory Base)。
- 目的: 提高系统的并行性。
- Parallel processing of different memory types (不同记忆类型的并行处理):
- 含义: 当用户输入需要同时更新多种记忆时(例如,既要更新情景记忆,又要更新语义记忆),系统会同时启动相应的 Memory Managers 去处理。
- 目的: 大幅减少记忆更新所需的总时间。
2. 单函数调用架构 (Single Function Call Architecture)
- Each agent makes comprehensive updates in a single function call (每个智能体在一次函数调用中完成全面更新):
- 含义: 智能体不会进行多次小规模的数据库操作。它会打包所有需要做的修改,通过一次请求(函数调用)提交给 Memory Base。
- 目的: Reduces database round trips (减少数据库往返次数),这是提高性能的关键。
- Reduces database round trips and improves performance (减少数据库往返次数并提高性能):
- 含义: 每次与数据库通信都需要时间。减少通信次数直接等同于提高整体处理速度。
- Maintains consistency across memory components (保持记忆组件间的一致性):
- 含义: 在一次操作中完成所有更新,有助于确保数据在时间点上是同步和一致的。
🛡️ 错误处理与弹性 (Error Handling and Resilience)
这部分关注系统在遇到错误时如何保持运行和稳定。
- Graceful Degradation (优雅降级):
- Agents can skip updates if processing fails (如果处理失败,智能体可以跳过更新):
- 含义: 如果一个 Memory Manager 在处理特定输入时遇到问题(例如,格式错误),它可以选择跳过这次更新,而不是导致整个系统崩溃或停顿。
- System continues operating even if individual agents encounter errors (即使单个智能体遇到错误,系统仍能继续运行):
- 含义: 由于各 Agent 是独立的,一个 Agent 的失败不会连锁反应影响到其他 Agent 或核心系统功能。
- Agents can skip updates if processing fails (如果处理失败,智能体可以跳过更新):
- Automatic retry mechanisms for transient failures (针对瞬时故障的自动重试机制):
- 含义: 对于临时性的小错误(如网络波动或数据库锁定),系统会自动尝试重新执行操作,而不是立即报错。
🔒 数据一致性 (Data Consistency)
这部分确保存储在记忆库中的信息是准确、可靠和无损坏的。
- Shared memory base ensures consistency across agents (共享记忆库确保了跨智能体的一致性):
- 含义: 所有智能体都访问同一个中央数据源,避免了数据冗余或版本冲突。
- Transaction-based updates prevent data corruption (基于事务的更新防止数据损坏):
- 含义: 所有的更新操作都封装在数据库事务中。这意味着,一个更新要么全部成功并写入,要么全部失败并取消,不会出现只写入一半数据的情况。
- Automatic rollback on processing failures (处理失败时自动回滚):
- 含义: 如果事务在执行过程中失败,数据库会自动将所有更改撤销到操作开始前的状态。
- 目的: 确保系统绝不会存储不完整或损坏的数据。
更多推荐

所有评论(0)