概述
Zeus 的记忆系统为 Agent 提供跨会话的用户认知能力。通过从对话中提取、存储并检索关键信息,Agent 能够持续积累对用户和项目的理解,从而提供个性化、有上下文连贯性的交互体验。 记忆系统解决三个核心问题:- 个性化:记住用户偏好(编程风格、语言、工具链),无需每次重复说明
- 上下文连续性:跨会话保持对项目背景、技术决策的认知
- 智能推理:基于历史记忆做出更准确的判断和建议
架构
四层记忆模型
Zeus 的记忆系统由四个生命周期不同的层级组成,从短暂的运行时状态到永久的用户画像,形成一个完整的认知体系。三层数据架构 (memU)
Long-term Memory 采用 memU 启发的三层结构,将原始资源逐步抽象为结构化画像:
数据自下而上流动:Layer 1 原始资源被提取为 Layer 2 记忆条目,再聚合为 Layer 3 画像。
数据模型
Memory Item
记忆条目是系统的核心数据单元,每条记忆包含内容、分类、作用域和元数据。主要字段包括:- content:记忆内容文本
- memory_type:记忆类型分类
- scope / scope_id:作用域(user / project / session)及对应 ID
- source / source_id:来源(user / ai / knowledge_base / project_resource)及关联 ID
- confidence:置信度(0.0 ~ 1.0)
- visibility:可见范围(public / members / owner_only),仅 project scope 生效
- status:状态(active / archived / superseded)
- last_used_at:最后被检索的时间
Memory Type
每种类型对应不同性质的信息,Agent 在提取记忆时需选择正确的类型:Memory Scope
作用域决定记忆的可见范围和生命周期:User Profile
用户画像聚合了用户的全局特征,在每次对话时注入到系统提示词。主要字段包括:- username:用户名
- background:用户背景描述
- profession:职业
- communication_style:沟通风格(concise / detailed / technical)
- response_format:响应格式偏好(markdown / plain / code)
- language_preference:语言偏好(zh-CN / en / ja 等)
- characteristics:个性特征
- content:自定义指令(Custom Instructions)
- expertise_areas:专业领域
- programming_languages:编程语言
- frequently_used_tools:常用工具
Project Profile
项目画像记录团队共享的项目上下文。主要字段包括:- project_goal:项目目标
- tech_stack:技术栈
- constraints:约束条件
- key_decisions:关键决策(含决策内容、原因和时间)
- team_conventions:团队规范
- current_phase:当前阶段
核心组件
MemoryService
MemoryService 是记忆系统的核心服务,统一管理记忆的读写和检索。它同时与 PostgreSQL(元数据)和 pgvector(向量索引)交互。
关键方法
Memory Gate(门控)
门控层在记忆写入前执行多维验证,防止低质量、敏感或重复的信息进入记忆库: 门控配置支持环境变量覆盖:Memory Tools
Agent 通过两个内置工具自主管理记忆:
工具通过
RunnableConfig 接收 user_id、project_id、session_id,在 Agent 模式下默认启用 (enable_memory=True)。
上下文集成
记忆通过两种机制参与 Agent 的上下文(Context):- 被动注入:在系统提示词组装阶段,系统自动获取用户/项目画像和语义相关的记忆条目,以结构化文本追加到提示词末尾
- 主动提取:在 Agent 执行阶段,Agent 主动调用
memory_add提取并持久化重要信息
_init_context() 调用 _fetch_profile() 获取用户/项目画像,调用 _fetch_relevant_memories() 进行语义检索获取 Top K 记忆条目,两者格式化后追加到系统提示词末尾。
主动提取流程:在 Agent 执行阶段,Agent 调用 memory_add 工具,经 Gate 门控验证后,同时写入 pgvector(向量索引)和 PostgreSQL(元数据)。
完整的系统提示词组装流程参见系统提示词,更广泛的上下文组装参见上下文。
检索排序算法
多 scope 记忆检索后,通过加权评分进行合并排序: final_score = similarity × 0.5 + confidence × 0.3 + scope_priority × 0.2 其中 scope 优先级:
同类型记忆去重后保留分数最高的条目,最终返回 Top K 结果。
权限模型
项目级记忆具有细粒度的权限控制:visibility 字段进一步控制可见范围:
public:所有项目成员可见members:项目成员可见(默认)owner_only:仅创建者可见
向量存储
记忆的向量存储使用 PostgreSQL pgvector 扩展,与 RAG 知识库共享底层基础设施:
每位用户可以配置自己的 Embedding API(模型、Base URL、API Key),系统通过
create_embeddings(user_id) 自动加载对应配置。
Episodic Memory 与 Checkpoint
Episodic Memory 通过 LangGraph 的PostgresSaver 实现,负责会话状态的持久化与恢复:
Checkpoint 存储的内容:
此外,
session_state_snapshot 表和 checkpoint_archive 表分别用于会话状态快照和过期 checkpoint 归档。