AutoGen_EnhancedAgents
为微软 AutoGen 框架赋予三层记忆系统的增强型 Agent,支持工作/短期/长期记忆自动管理。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为微软 AutoGen 框架赋予三层记忆系统的增强型 Agent,支持工作/短期/长期记忆自动管理。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有这样的经历:和 AI 助手聊了半小时,产品需求越聊越深,结果第二天 AI 完全不记得你们讨论过什么?每次对话都是从零开始。这种"金鱼记忆"是当前大语言模型应用最核心的痛点之一——模型有上下文窗口限制,对话一长,早期信息就会被"挤出"。
MemoryEnabledAgent(MEA) 正是为了解决这个痛点而生。这是一个基于微软 AutoGen 框架开发的增强型智能体,核心创新在于为 AI Agent 赋予了一套类人脑的记忆系统:工作记忆、短期记忆和长期记忆,从而实现跨会话的持久化对话能力。
MEA 的设计灵感来源于人类记忆系统的经典三分法:
工作记忆(Chat Context,CC):相当于人类的注意力焦点,存储当前对话窗口内的所有消息。当对话消息数超过设定上限(默认 10 条),最老的消息会被"挤出"并进行压缩摘要,存入短期记忆。
短期记忆(Short-Term Memory,STM):存储经过摘要处理的重要对话片段。MEA 默认可容纳 10 条短期记忆,当 STM 超出容量时,同样通过压缩比(默认 0.8)将最老的记忆整合进长期记忆。
长期记忆(Long-Term Memory,LTM):经过二次压缩提炼的核心知识存储,通过向量检索实现语义搜索。当 Agent 被问到某个历史话题时,可以随时从 LTM 中"调取记忆"。
这套系统的运转完全由内置的 Memory Manager Agent(MMA) 自动驱动,无需人工干预。当对话积累到一定程度时,MMA 会自动触发压缩→摘要→迁移的流水线,确保 Agent 始终在有限 Token 内保持最优性能。

如架构图所示,用户输入(User Message)首先进入 CC,CC 溢出时触发压缩摘要进入 STM,STM 溢出时再次压缩摘要进入 LTM,形成了一个从热到冷的记忆分层存储体系。
MEA 对 AutoGen 用户极度友好,只需替换 Agent 类型即可获得记忆增强能力:
from EnhancedAgents import MemoryEnabledAgent
import autogen
config_list = [{'model': 'gpt-3.5-turbo', 'api_key': 'YOUR_API_KEY_HERE'}]
gpt_config = {"config_list": config_list, "seed": 42, "temperature": 0}
# 替换原有 AssistantAgent,零改造接入
mem_agent = MemoryEnabledAgent("Cortana", gpt_config)
user_proxy = autogen.UserProxyAgent(
name="Andy",
human_input_mode="ALWAYS",
function_map=mem_agent.get_function_map(),
)
user_proxy.initiate_chat(mem_agent, message="你好!")
整个项目仅有 3 个核心文件(EnhancedAgents.py、main.py、MemoryFlow.PNG),代码量克制、功能聚焦,无过多外部依赖。Agent 注册了两个关键函数:
lookup_from_long_term_memory(hint):从长期记忆中检索相关内容save_to_long_term_memory(content):主动存储重要信息到长期记忆MEA 的核心价值并非简单的对话历史存储,而是一套可控的记忆管理策略:
Token 控制:通过 compression_ratio(压缩比)参数,开发者可以精确控制每次压缩丢弃多少历史消息。默认 0.8 意味着超出上限时保留 80% 较新的消息,压缩 20% 最老的消息摘要存入下层记忆。这一设计有效防止了 Token 浪费,同时最大化保留了关键上下文。
即插即用:MEA 继承自 AutoGen 的 AssistantAgent,天然支持 AutoGen 的所有生态特性——多 Agent 协作、代码执行、人机交互模式等。无需修改现有 AutoGen 应用架构,直接替换 Agent 类型即可。
任何技术都有其边界,MEA 也不例外:
1. 记忆依赖 LLM 摘要能力:CC→STM、STM→LTM 的两次压缩摘要均由同一个 LLM 执行,摘要质量直接影响后续检索效果。若 LLM 本身对中文语义理解欠佳,摘要可能丢失关键细节。
2. 无 Web UI,纯代码调用:项目不提供任何图形界面,所有操作通过 Python 代码完成。虽然代码简洁,但对于非程序员用户仍存在一定门槛。
3. 无持久化存储层:记忆当前存储在进程内存中(Managed_Memories/ 目录),重启后需要重新积累。目前尚不支持 Redis 等外部 KV 存储的集成。
4. 仅支持 OpenAI 兼容端点:从 main.py 可以看到,配置仅支持 OpenAI API 格式,对本地部署的 Llama/OFFICIAL7B 等开源模型无原生支持(需自行改造 config_list)。
AutoGen(微软出品)是当前最受关注的开源多 Agent 协作框架之一,其核心设计围绕多 Agent 间的消息传递与任务分解。然而原生 AutoGen Agent 本质上是无状态的——每次对话都是独立上下文。MEA 的出现恰好填补了这一空白,它不替代 AutoGen,而是作为高阶组件嵌入到 AutoGen 应用中。
从项目数据来看(117 ⭐,MIT 许可证,活跃维护),MEA 虽非头部项目,但其解决的真问题——AI 的长期记忆缺失——是所有生产级 AI 应用必须面对的核心挑战。随着 Agent 应用从 demo 走向生产,这类记忆管理组件的价值会越来越凸显。