开源地址:https://github.com/daoyou-zhang/memRangeAgent
### 记忆增强检索(Memory RAG)
系统的核心是三层记忆架构的实现。情节记忆(Episodic)采用 PostgreSQL 存储,每条记录包含对话内容、时间戳、用户 ID、会话 ID 等元数据,并通过向量化技术生成 embedding,支持语义检索。语义记忆(Semantic)通过 LLM 从情节记忆中提炼,存储抽象概念、用户偏好、领域知识等,形成结构化的知识条目。程序记忆(Procedural)记录成功的工具调用序列和操作流程,支持流程复用。
向量检索基于余弦相似度算法,将用户输入向量化后,在记忆库中检索最相关的历史记录。检索结果按相关性和时间衰减加权排序,确保既考虑语义相关性,又优先召回近期记忆。通过 Redis 缓存热点查询,将 RAG 检索延迟控制在 100ms 以内。
### 认知控制器(Cognitive Controller)
认知流程分为四个阶段:意图理解 → 上下文聚合 → 回复生成 → 学习闭环。意图理解使用独立的快速模型(qwen-flash),低温度(0.1)保证稳定的 JSON 输出,分析用户意图类别、实体、置信度和是否需要工具调用。上下文聚合从记忆服务获取用户画像、工作记忆(最近对话)和 RAG 检索结果,从知识服务获取图谱查询结果,融合成完整上下文。回复生成使用高质量模型(deepseek-v3),温度 0.5 保证创造性和稳定性的平衡。学习闭环将对话存入情节记忆,触发异步的画像聚合任务。
### 知识图谱集成
采用 Neo4j 图数据库构建知识图谱,支持实体(Entity)、关系(Relationship)、属性(Property)的灵活建模。实体包括人物、概念、事件等,关系包括"属于"、"相关"、"导致"等语义连接。通过 Cypher 查询语言实现路径查询、社区发现、中心性分析等图算法。
### 系统架构设计
我设计了前后端分离的微服务架构,将系统拆分为三个独立服务:认知服务(daoyou_agent)负责意图理解、回复生成和工具编排;记忆服务(memory)管理三层记忆、RAG 检索和用户画像;知识服务(knowledge)处理知识库、文档索引和图谱查询。服务间通过 HTTP API 通信,支持独立部署、水平扩展和技术栈异构(FastAPI + Flask)。
这种架构的优势在于职责清晰、松耦合、易维护。认知服务专注于"思考",记忆服务专注于"记忆",知识服务专注于"知识"。任何一个服务的升级或故障都不会影响其他服务。同时支持按需扩展,例如记忆服务可以独立部署多个实例处理高并发的 RAG 查询。
### 三层记忆模型设计
我借鉴认知心理学的记忆理论,设计了情节-语义-程序三层记忆架构。情节记忆是"原始素材",记录每次对话的完整信息;语义记忆是"提炼精华",通过 LLM 从情节中抽取抽象知识;程序记忆是"经验总结",记录成功的操作流程。三层记忆通过定时任务和触发器自动转化,实现从短期到长期的知识沉淀。
在数据库设计上,情节记忆表包含 content、embedding、timestamp、user_id、session_id 等字段,支持向量检索和时间过滤。语义记忆表包含 concept、description、confidence、source_memories 等字段,记录知识来源的可追溯性。程序记忆表包含 procedure_name、steps、success_rate 等字段,支持流程复用和优化。
### 自我学习机制设计
我设计了完整的学习闭环:对话 → 情节记忆 → 知识洞察 → 语义记忆 → 用户画像 → 下次对话。