MemoBrain:为大模型推理打造的“执行记忆大脑”
在工具增强型智能体的复杂推理场景中,长程推理轨迹和临时工具交互结果的不断累积,正在持续挤占大语言模型(LLM)有限的工作上下文空间。没有专门的记忆机制支撑,这种无差别的信息堆积会破坏推理的逻辑连续性,让智能体偏离任务目标——这也让记忆管理从单纯的效率优化问题,变成了支撑长程、目标导向推理的核心环节。
MemoBrain正是为解决这一问题而生的执行记忆模型,它为工具增强型智能体构建了具备依赖感知能力的推理记忆体系,既能捕捉关键的推理中间状态,又能理清其逻辑关联,像“认知副驾驶”一样主动管理工作上下文,让大模型的长程推理更连贯、更高效。
一、为什么大模型需要“执行记忆”?
对于接触过AI智能体开发的人来说,可能都遇到过这样的问题:当智能体处理需要多步骤、多工具调用的复杂任务(比如完成一项深度研究、解答一个多维度的事实性问题)时,随着推理步骤增加,所有的思考过程、工具调用记录、工具返回结果都会一股脑塞进大模型的上下文窗口。
大模型的上下文窗口是有限的,比如常见的模型上下文上限可能是8K、32K甚至128K tokens,但即便窗口足够大,无组织的信息堆积也会带来两个核心问题:
-
逻辑断裂:无关或冗余的信息会稀释关键推理线索,让智能体忘记之前的推理结论,甚至出现前后矛盾的判断; -
效率低下:重复的信息占用大量上下文空间,不仅增加推理成本,还会降低每一轮思考的有效性。
传统的上下文管理方式只是被动地“堆信息”,而MemoBrain的核心思路是主动“管理信息”——它不只是存储推理轨迹,还能识别哪些步骤有效、哪些已完成、哪些可以压缩,始终为大模型保留一个紧凑、高价值的推理核心。
二、MemoBrain的核心工作原理
MemoBrain本质是一套为推理智能体设计的执行记忆系统,它不像传统记忆模块那样被动存储,而是通过四个核心环节主动管理推理轨迹:
1. 记忆构建:给推理步骤画一张“逻辑关系图”
MemoBrain会把每一步推理、每一次工具调用和反馈,都转化为记忆图中的节点,同时记录节点之间的依赖关系。比如“搜索巴黎人口数据”这个步骤,会和“回答巴黎人口相关问题”这个目标节点建立关联,“获取到人口数据”又会和“搜索巴黎人口数据”建立关联——这张图能清晰反映推理的逻辑脉络,而不是简单的线性记录。
2. 清理(Flush):剔除无效推理节点
在推理过程中,智能体可能会尝试错误的路径(比如搜索无关的信息)、重复执行相同的工具调用,这些无效或冗余的节点会被MemoBrain识别并移除,减少上下文的“噪音”。
3. 折叠(Fold):压缩已完成的子推理轨迹
当一个子任务完成后(比如已经获取到巴黎的人口数据),MemoBrain会把这个子任务对应的所有推理步骤、工具交互记录,压缩成一个简洁的摘要节点。比如原本需要1000 tokens记录的“搜索→获取结果→验证结果”过程,可能被压缩成“已确认巴黎常住人口约220万”这一句话,既保留关键信息,又大幅节省上下文空间。
4. 上下文管理:维持固定大小的高价值推理核心
MemoBrain会设定一个固定的上下文预算(比如32K tokens),始终确保内存中只保留当前推理最需要的核心信息——无效的清理掉,完成的折叠起来,让大模型的工作上下文始终聚焦在未完成的核心任务上。
图1:MemoBrain的整体架构与工作流程
三、快速上手MemoBrain
“
⚠️ 注意:该项目目前处于密集开发阶段,后续会持续更新功能和优化体验!
3.1 安装步骤(简单3步完成)
MemoBrain的安装过程非常简洁,只需通过git克隆仓库,再进入目录完成本地安装即可:
git clone https://github.com/qhjqhj00/MemoBrain.git
cd MemoBrain
pip install -e .
3.2 模型选择:选对基础模型,效果翻倍
MemoBrain可以兼容任何支持OpenAI兼容API的大模型作为基础模型,但我们推荐两种选择,大家可以根据自身资源和需求挑选:
-
商用高性能模型:比如DeepSeek V3.2、GPT-5,这类模型能提供最佳的推理性能; -
官方微调的MemoBrain专用模型:针对记忆操作做了专项优化,性价比更高,包括: -
MemoBrain-4B(基于Qwen3-4B-Instruct-2507):资源占用低,适合低配环境; -
MemoBrain-8B(基于Qwen3-8B):兼顾效率和性能,是多数场景的首选; -
MemoBrain-14B(基于Qwen3-14B):性能最优,适合对推理效果要求高的场景。
-
3.3 用vLLM部署MemoBrain模型
如果选择官方微调的MemoBrain模型,推荐用vLLM部署,效率更高。先安装vLLM,再根据需求选择模型部署:
# 第一步:安装vLLM
pip install vllm
# 部署MemoBrain-8B(平衡效率和性能)
vllm serve TommyChien/MemoBrain-8B --port 8002
# 或部署MemoBrain-4B(低资源占用)
vllm serve TommyChien/MemoBrain-4B --port 8002
# 或部署MemoBrain-14B(最佳性能)
vllm serve TommyChien/MemoBrain-14B --port 8002
3.4 基础Python使用示例
下面是一个完整的MemoBrain基础使用流程,涵盖初始化、记忆记录、内存优化全环节:
import asyncio
from memobrain import MemoBrain
async def main():
# 步骤1:初始化MemoBrain实例
# 方案A:使用官方微调模型(推荐)
memory = MemoBrain(
api_key="EMPTY", # vLLM部署的模型无需API key
base_url="http://localhost:8002/v1",
model_name="TommyChien/MemoBrain-8B"
)
# 方案B:使用商用模型(需替换为自己的API信息)
# memory = MemoBrain(
# api_key="your-api-key",
# base_url="https://api.deepseek.com/v1",
# model_name="deepseek-chat"
# )
# 步骤2:用任务描述初始化记忆图
memory.init_memory("Solve a complex research problem")
# 步骤3:记录对话交互(推理轨迹)
await memory.memorize([
{"role": "assistant", "content": "I need to search for information about Paris..."},
{"role": "user", "content": "Search results: Paris is the capital of France..."}
])
await memory.memorize([
{"role": "assistant", "content": "Let me get the population data..."},
{"role": "user", "content": "Paris has approximately 2.2 million inhabitants."}
])
# 步骤4:优化内存(清理无效步骤+折叠已完成子轨迹)
optimized_messages = await memory.recall()
print(f"Memory optimized: {len(optimized_messages)} messages")
asyncio.run(main())
3.5 关键使用技巧:选对“记忆单元”
很多人第一次用MemoBrain时,会困惑“该以多大粒度记录推理轨迹”,这里给出明确的建议:
memorize()方法的最佳调用单元是一个“推理episode(情节)”——也就是一次完整的推理循环,通常包含:
-
思考:智能体的推理过程(比如“我需要搜索巴黎的人口数据”); -
工具调用:智能体执行的操作(比如搜索、浏览网页、运行代码); -
工具反馈:工具返回的结果(比如搜索结果、网页内容)。
举个例子,在工具增强型智能体的工作流中,正确的调用方式是这样的:
# 第一个episode:思考→工具调用→工具反馈
await memory.memorize([
{"role": "assistant", "content": "I need to search for information about Paris..."},
{"role": "user", "content": "Search results: Paris is the capital of France..."}
])
# 第二个episode:思考→工具调用→工具反馈
await memory.memorize([
{"role": "assistant", "content": "Let me visit the Wikipedia page for more details..."},
{"role": "user", "content": "Page content: Paris has a population of 2.2 million..."}
])
这种“情节级”的粒度,能让MemoBrain更好地识别推理轨迹的逻辑结构和依赖关系,优化效果会远优于零散的记录方式。
3.6 MemoBrain核心API速查
为了方便大家快速查阅,我们整理了核心API的功能和用法:
| 方法 | 详细描述 |
|---|---|
MemoBrain(api_key, base_url, model_name) |
创建MemoBrain实例,api_key为模型API密钥(vLLM部署时填EMPTY),base_url为模型API地址,model_name为模型名称 |
init_memory(task: str) |
用任务描述初始化记忆图,让MemoBrain明确推理目标 |
memorize(messages: List[Dict]) |
异步记录新的对话轮次(推理轨迹),messages为包含role和content的字典列表 |
recall() |
异步执行内存优化(清理+折叠),返回优化后的上下文消息 |
消息格式规范:
[
{"role": "user", "content": "Your question"},
{"role": "assistant", "content": "Assistant's response"}
]
四、MemoBrain进阶使用示例
除了基础用法,MemoBrain还支持内存快照加载、基于token预算的自动管理等进阶功能,下面结合实例详细说明。
4.1 加载内存快照并可视化记忆结构
如果需要复用之前的推理记忆,或者想查看记忆图的结构,可以通过以下方式实现:
import json
from memobrain import MemoBrain
# 初始化MemoBrain
memory = MemoBrain(
api_key="EMPTY",
base_url="http://localhost:8002/v1",
model_name="TommyChien/MemoBrain-14B"
)
# 加载已保存的内存快照
data = json.load(open("memory_snapshot.json"))
memory.load_dict_memory(data["memory"])
# 可视化记忆图结构
print(memory.graph.pretty_print())
完整示例可参考项目中的 examples/example_usage.py。
4.2 基于Token预算的自动内存管理
在长程推理任务中,手动监控上下文大小很麻烦,MemoBrain支持基于token预算的自动管理——当上下文超过设定的token上限时,自动触发内存优化:
import asyncio
from memobrain import MemoBrain
from utils import num_tokens_from_messages
async def token_budget_example(conversations):
memory = MemoBrain(
api_key="EMPTY",
base_url="http://localhost:8002/v1",
model_name="TommyChien/MemoBrain-14B"
)
memory.init_memory("Long-running research task")
# 设置token预算上限(比如32K tokens)
max_memory_size = 32 * 1024
current_messages = []
for conv in conversations:
await memory.memorize(conv)
current_messages.extend(conv)
# 计算当前token数量
token_count = num_tokens_from_messages(current_messages)
# 超过预算时自动优化
if token_count > max_memory_size:
optimized = await memory.recall()
current_messages = optimized
print(f"Memory optimized: {token_count} → {num_tokens_from_messages(optimized)} tokens")
asyncio.run(token_budget_example(your_conversations))
这种方式的核心优势在于:
-
无需手动跟踪上下文大小,自动完成内存管理; -
预算可根据模型的上下文窗口灵活调整(比如适配8K/32K/128K模型); -
按需优化内存,既保证推理连续性,又最大化上下文使用效率; -
无缝适配长程推理轨迹,避免因上下文溢出导致推理中断。
五、将MemoBrain集成到ReAct智能体中
ReAct是目前主流的工具增强型推理框架,MemoBrain提供了完整的集成示例,能让ReAct智能体具备高效的长程记忆管理能力。
5.1 集成后的核心功能
-
工具增强推理:支持网页搜索、页面浏览、代码执行等常见工具; -
自动内存管理:MemoBrain透明处理上下文优化,无需修改智能体核心逻辑; -
Token预算控制:可配置内存大小上限(默认32K tokens); -
灵活对比:支持开启/关闭MemoBrain,方便对比效果差异。
5.2 快速运行示例
首先进入示例目录,部署MemoBrain模型,然后运行评估任务:
cd examples
# 部署MemoBrain-14B模型(端口8002)
vllm serve TommyChien/MemoBrain-14B --port 8002
# 运行GAIA任务(开启MemoBrain)
python run_task.py --eval_task gaia
# 运行GAIA任务(关闭MemoBrain,用于对比)
python run_task.py --eval_task gaia --no_memory
“
⚠️ 注意:完整运行该示例需要完成额外配置,具体可参考 examples/README.md,包括:部署3个模型(推理模型、辅助模型、记忆模型)、配置API密钥(Google Search、Jina)、安装依赖包。
5.3 程序化集成示例
如果需要在自己的代码中集成MemoBrain+ReAct,可参考以下示例:
import asyncio
from memobrain import MemoBrain
from react_with_memory import run_react_agent
from config import Configuration
async def main():
# 配置模型和API密钥
config = Configuration(
# 推理模型
reasoning_model="Alibaba-NLP/Tongyi-DeepResearch-30B-A3B",
reasoning_model_base_url="http://localhost:8000/v1",
reasoning_model_api_key="empty",
# 辅助模型(用于网页内容摘要)
auxiliary_model="Qwen/Qwen3-30B-A3B-Instruct-2507",
auxiliary_model_base_url="http://localhost:8001/v1",
auxiliary_model_api_key="empty",
# 记忆模型(MemoBrain)
memory_model="TommyChien/MemoBrain-14B",
memory_model_base_url="http://localhost:8002/v1",
memory_model_api_key="empty",
# 工具API密钥
google_api_key="YOUR_GOOGLE_API_KEY",
google_cx="YOUR_GOOGLE_CX",
jina_api_key="YOUR_JINA_API_KEY",
# 内存配置
max_memory_size=32*1024, # 32K tokens
max_llm_call_per_run=200,
use_memory=True
)
# 运行带MemoBrain的ReAct智能体
result = await run_react_agent(
question="What is the population of Paris?",
config=config,
use_memory=True # 开启MemoBrain
)
print(f"Prediction: {result['prediction']}")
print(f"Token Count: {result['token_count']}")
print(f"Memorize Time: {result['total_memorize_time']:.2f}s")
print(f"Recall Time: {result['total_recall_time']:.2f}s")
asyncio.run(main())
5.4 集成后的工作流程
-
智能体推理:ReAct智能体执行多步骤推理,并调用工具完成任务; -
记忆记录:每一次工具执行完成后,MemoBrain记录该次推理episode; -
上下文监控:持续跟踪当前上下文的token数量,对比设定的预算上限; -
自动优化:当上下文超过预算时,MemoBrain自动执行: -
清理(Flush):移除无效/冗余的推理步骤; -
折叠(Fold):将已完成的子轨迹压缩为摘要; -
返回优化后的上下文,供智能体继续推理。
-
完整的文档可参考 examples/README.md,包括详细的部署指南、配置选项、评估任务(GAIA、WebWalker、BrowseComp)、性能指标和调试技巧。
六、MemoBrain的实验效果:用数据说话
我们在高难度的长程推理基准测试中验证了MemoBrain的效果,结果显示:将MemoBrain-8B与不同基础智能体集成后,均能实现性能的持续提升。
6.1 核心实验结果
下表汇总了MemoBrain在GAIA(通用AI助手基准)和WebWalkerQA(网页推理基准)上的表现(最佳成绩标粗,次佳成绩下划线):
| 方法 | General AI Assistant (GAIA) | WebWalkerQA | ||||||
|---|---|---|---|---|---|---|---|---|
| L1 | L2 | L3 | Avg. | Easy | Med. | Hard | Avg. | |
| Direct Reasoning (w/o Retrieval) | ||||||||
| QwQ-32B | 25.6 | 9.6 | 16.7 | 16.5 | 7.5 | 2.1 | 3.8 | 4.0 |
| GPT-4o | 23.1 | 15.4 | 8.3 | 17.5 | 6.7 | 6.0 | 4.2 | 5.5 |
| DeepSeek-R1-671B | 43.6 | 26.9 | 8.3 | 31.1 | 5.0 | 11.8 | 11.3 | 10.0 |
| Retrieval-Augmented Generation | ||||||||
| Vanilla RAG (QwQ-32B) | 33.3 | 36.5 | 8.3 | 32.0 | 36.9 | 26.1 | 33.5 | 31.2 |
| Query Planning (QwQ-32B) | 48.7 | 25.0 | 8.3 | 32.0 | 28.8 | 35.7 | 30.8 | 32.5 |
| Iterative RAG (QwQ-32B) | 51.3 | 28.8 | 8.3 | 35.0 | 29.4 | 32.9 | 31.3 | 31.5 |
| Tool-Integrated Reasoning | ||||||||
| ReAct (QwQ-32B) | 48.7 | 34.6 | 16.7 | 37.8 | 35.6 | 29.1 | 13.2 | 24.1 |
| ReAct (GPT-4o) | 51.2 | 34.6 | 8.3 | 34.6 | 34.6 | 42.0 | 23.9 | 33.8 |
| ReAct (Qwen3-30B-A3B) | 48.7 | 26.9 | 8.3 | 33.0 | 26.3 | 27.5 | 21.7 | 25.2 |
| WebThinker-32B† | 56.4 | 50.0 | 16.7 | 48.5 | 58.8 | 44.6 | 40.4 | 46.5 |
| WebDancer (QwQ-32B)† | 56.4 | 48.1 | 25.0 | 46.6 | 49.4 | 55.0 | 29.6 | 43.2 |
| ReSum-GRPO† | — | — | — | 48.5 | — | — | — | — |
| DeepAgent-RL† | 66.7 | 59.6 | 25.0 | 58.3 | — | — | — | — |
| AgentFold-30B-A3B† | — | — | — | 67.0 | — | — | — | — |
| GLM-4.6 | 76.9 | 59.6 | 33.3 | 63.1 | 64.4 | 62.9 | 48.8 | 58.2 |
| DeepResearch-30B-A3B | 79.5 | 67.3 | 41.7 | 68.9 | 72.5 | 71.8 | 61.3 | 68.2 |
| MemoBrain-8B | ||||||||
| w/ GLM-4.6 | 79.5 | 71.2 | 50.0 | 71.8 | 68.8 | 69.6 | 61.3 | 66.5 |
| w/ DeepResearch-30B-A3B | 82.1 | 69.2 | 58.3 | 74.5 | 73.1 | 72.1 | 64.2 | 69.6 |
6.2 关键发现
-
跨难度提升:MemoBrain-8B在GAIA的所有难度层级(L1/L2/L3)都实现了提升,尤其是最难的L3层级,相比基础模型提升了16.6个百分点; -
硬任务突破:在WebWalkerQA的Hard难度任务中,MemoBrain-8B + DeepResearch-30B-A3B组合相比基础模型提升了2.9个百分点,体现了记忆管理对长程硬推理的价值; -
普适性强:无论集成到GLM-4.6还是DeepResearch-30B-A3B,MemoBrain都能稳定提升性能,证明其不是依赖特定基础模型,而是记忆管理机制本身的价值; -
最优性能:MemoBrain-8B + DeepResearch-30B-A3B组合在两个基准上均取得了最优成绩,GAIA平均得分74.5,WebWalkerQA平均得分69.6,验证了执行记忆对长程推理的核心作用。
七、常见问题解答(FAQ)
为了解答大家使用过程中可能遇到的问题,我们整理了高频疑问和对应的解答:
Q1:MemoBrain和传统的上下文压缩有什么区别?
A:传统的上下文压缩通常是无差别的文本摘要,只关注“减少字符数”,不考虑推理步骤之间的逻辑依赖;而MemoBrain是“语义级”的记忆管理,它先构建推理步骤的依赖图,再基于图结构清理无效节点、折叠已完成子轨迹,既减少上下文体积,又保留推理的逻辑核心,避免压缩后丢失关键依赖关系。
Q2:MemoBrain支持哪些大模型?
A:理论上支持所有兼容OpenAI API的大模型,包括商用模型(DeepSeek V3.2、GPT-5等)和开源模型(Qwen系列、Llama系列等)。官方推荐使用微调后的MemoBrain-4B/8B/14B,因为这些模型针对记忆操作做了优化,效果更优。
Q3:使用MemoBrain会增加多少推理成本?
A:MemoBrain的内存优化操作(recall方法)会额外调用一次模型,但由于它能大幅减少后续推理的上下文长度,整体来看反而会降低总推理成本——尤其是长程任务中,节省的token消耗远超过优化操作的成本。
Q4:MemoBrain的token预算该怎么设置?
A:建议根据基础模型的上下文窗口来设定,比如基础模型的上下文是32K tokens,那么MemoBrain的max_memory_size可以设为28K~30K(预留部分空间给智能体的即时思考);如果是8K上下文的模型,可设为6K~7K。核心原则是“预留足够的即时推理空间,同时最大化记忆利用率”。
Q5:MemoBrain适合哪些场景?
A:最适合需要多步骤、多工具调用的长程推理场景,比如:深度学术研究、复杂事实性问答、多步骤代码生成与调试、跨网页的信息整合、企业级智能助手等;短程单步任务(比如简单问答)中,MemoBrain的优势不明显。
Q6:如何保存和复用MemoBrain的记忆数据?
A:可以通过memory.to_dict()将记忆图转为字典格式,保存为JSON文件;后续通过memory.load_dict_memory()加载,即可复用之前的记忆数据,无需重新记录推理轨迹。
Q7:MemoBrain的部署需要什么硬件配置?
A:不同模型的要求不同:
-
MemoBrain-4B:单张16GB显存的GPU即可部署; -
MemoBrain-8B:推荐单张24GB显存的GPU; -
MemoBrain-14B:推荐单张32GB显存的GPU,或双卡16GB显存的GPU。
如果使用vLLM部署,显存利用率会更高,可适当降低硬件要求。
八、总结与后续规划
MemoBrain的核心价值在于:将“被动的上下文堆积”转变为“主动的执行记忆管理”,通过构建依赖感知的记忆图、清理无效信息、折叠完成子轨迹,让大模型在长程推理中始终保持逻辑连贯,同时最大化上下文的使用效率。
目前MemoBrain已经完成了核心功能的开源,包括论文发布、专用模型(4B/8B/14B)开源、代码实现、ReAct智能体集成示例;后续还会持续迭代优化,进一步提升记忆管理的效率和适配性。
如果你的工作涉及工具增强型智能体、长程推理、大模型上下文管理,MemoBrain会是一个值得尝试的工具——它不需要你重构现有智能体框架,只需简单集成,就能显著提升长程推理的稳定性和效果。
引用说明
如果你的研究或项目中使用了MemoBrain,欢迎引用相关论文:
@article{memobrain2026,
title={MemoBrain: Executive Memory as an Agentic Brain for Reasoning},
author={Hongjin Qian, Zhao Cao, Zheng Liu},
journal={arXiv preprint arXiv:2601.08079},
year={2026}
}
贡献与开源说明
MemoBrain采用MIT许可证开源,欢迎大家参与贡献:
-
提交bug报告和功能建议; -
优化文档和使用示例; -
提交代码PR,完善核心功能。
希望MemoBrain能为大模型长程推理的研究和应用提供有价值的参考,让智能体的推理更连贯、更高效。

