语言技术
Python、postgres、TypeScript、前端系统类型
Web行业分类
人工智能开源地址
https://github.com/daoyou-zhang/memRangeAgent授权协议
MIT许可
### 当前 AI 对话系统的核心痛点
传统 AI 对话系统普遍存在三大问题:一是"健忘症",每次对话都是全新开始,无法记住用户的历史交互和偏好;二是"知识孤岛",只能依赖预训练知识,无法从实际对话中学习和进化;三是"能力边界",受限于 LLM 的上下文窗口和静态知识库,难以处理复杂的多轮对话和专业领域问题。
市面上的 RAG 系统虽然能检索外部文档,但仅限于静态知识库,无法从动态对话中提取和积累知识。用户每次提问都需要重新检索,系统无法建立对用户的深度理解,导致回复千篇一律,缺乏个性化和连贯性。
### memRagAgent 的创新解决方案
本项目通过"记忆增强检索"(Memory-Augmented RAG)技术,构建了一个具备长期记忆和自我进化能力的智能对话系统。核心创新点包括:
**三层记忆架构**:借鉴人类记忆模型,设计了情节记忆(Episodic)、语义记忆(Semantic)和程序记忆(Procedural)三层结构。情节记忆记录具体对话场景和时间线,语义记忆提炼抽象知识概念和用户画像,程序记忆存储操作流程和工具调用序列。三层记忆相互转化,实现从短期到长期的知识沉淀。
**自我学习闭环**:每次对话后自动触发学习机制,通过 LLM 从对话中提取知识洞察(Knowledge Insights),识别用户偏好、行为模式和领域知识,聚合生成动态更新的用户画像。系统能够"记住"每个用户的特点,随着交互次数增加,回复质量持续提升,真正实现个性化服务。
**混合检索策略**:结合向量检索和知识图谱两种技术。向量检索基于语义相似度,擅长模糊匹配和语义理解;知识图谱基于实体关系,擅长结构化推理和路径查询。两者互补,突破了传统 RAG 的检索局限,能够处理更复杂的知识关联和推理任务。
**工具编排能力**:基于 MCP(Model Context Proto
### 记忆增强检索(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 等字段,支持流程复用和优化。
### 自我学习机制设计
我设计了完整的学习闭环:对话 → 情节记忆 → 知识洞察 → 语义记忆 → 用户画像 → 下次对话。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论