weixin_57852754 2026-04-17 16:48 采纳率: 0%
浏览 2

智能体记忆架构如何设计?从Lilian Weng的智能体理论到百度地图的工程实践

在关注智能体发展过程中,我发现很多基于大模型(LLM)的系统在实际使用时仍然存在“记不住用户”的问题,比如无法长期记忆用户偏好、行为习惯或历史交互内容,这与我们期望的“千人千面”智能体验还有一定差距。因此我开始关注智能体记忆架构是如何设计的,以及理论与工程之间如何落地。
我目前主要是在体验百度地图智能副驾、小度想想等智能体产品,同时也参考了一些关于大模型Agent架构的资料,包括Lilian Weng提出的智能体体系(LLM+感知+决策+记忆)等相关内容。
在尝试理解过程中,我了解过一些常见方案,比如通过Prompt拼接实现短期记忆、通过向量数据库实现长期记忆检索等,但对于完整的工程架构设计(例如API层、操作层、存储层如何协同、记忆写入与遗忘机制如何设计等)仍然缺乏系统认知。
因此我想进一步了解,从Lilian Weng的智能体理论出发,到百度地图在实际产品中的工程实践,是如何设计一套可扩展、可落地的智能体记忆架构,从而支撑真实用户场景下的个性化服务能力的。

  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2026-04-17 16:49
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    智能体记忆架构的设计是构建个性化、持续交互的AI系统的关键环节,尤其在像百度地图这样的实际产品中,需要兼顾长期记忆、短期记忆、上下文感知、遗忘机制、可扩展性等多个维度。从 Lilian Weng 的智能体理论(LLM + 感知 + 决策 + 记忆)出发,结合 百度地图等实际产品的工程实践,我们可以逐步拆解出一套完整的智能体记忆架构设计方法。


    一、理解智能体记忆的核心概念

    1.1 记忆类型分类

    • 短期记忆(Short-term Memory):用于当前会话或任务中的上下文信息。
    • 长期记忆(Long-term Memory):用于存储用户偏好、行为习惯、历史交互等持久数据。
    • 工作记忆(Working Memory):用于推理和决策过程中的临时状态。

    1.2 记忆的目标

    • 个性化服务:根据用户历史行为提供定制化体验。
    • 上下文感知:在多轮对话中保持一致性。
    • 高效检索与更新:支持快速读取和写入。

    二、Lilian Weng 的智能体理论框架

    Lilian Weng 提出了一个基于大模型的智能体体系结构,其中“记忆模块”是核心组成部分之一。她的理论强调:

    • 记忆模块应具备
      • 存储能力:记录用户行为、偏好、环境状态等。
      • 检索能力:根据当前任务快速提取相关记忆。
      • 更新机制:根据新信息动态更新记忆。
      • 遗忘机制:避免记忆过载,提升效率。

    三、百度地图的工程实践与智能体记忆架构设计

    百度地图在智能副驾、小度想想等产品中,采用了一套分层、模块化、可扩展的记忆架构,以下是其典型设计思路:

    3.1 架构分层结构

    | 层级 | 功能描述 | |------|----------| | API层 | 提供对外接口,如用户身份识别、记忆查询、记忆更新等。 | | 操作层 | 负责处理业务逻辑,如用户行为分析、记忆匹配、决策建议等。 | | 存储层 | 存储用户长期记忆(如向量数据库、关系型数据库等)。 | | 记忆引擎 | 实现记忆的读取、写入、更新、遗忘等核心逻辑。 |

    3.2 记忆写入与遗忘机制

    • 写入机制

      • 用户行为日志(如搜索、点击、导航路径)被实时采集并编码为向量。
      • 使用向量数据库(如 Faiss、Milvus)进行存储。
      • 需要对用户身份进行绑定,确保记忆的用户隔离性
    • 遗忘机制

      • 基于时间衰减(Time Decay):旧记忆权重逐渐降低。
      • 基于重要性评估(Importance Score):根据用户行为频率、场景重要性决定是否保留。
      • 基于空间/时间范围限制(如只保留最近7天的导航记录)。

    3.3 短期记忆与长期记忆协同

    • 短期记忆

      • 使用 Prompt拼接缓存机制,在单次会话中维持上下文。
      • 如:在一次对话中,系统记住用户上一次提到的目的地,无需重复询问。
    • 长期记忆

      • 通过 向量数据库 存储用户历史行为。
      • 在后续对话中,通过相似度匹配检索相关记忆,实现个性化推荐。

    四、完整智能体记忆架构设计方案(分步)

    以下是一个从理论到工程落地的完整智能体记忆架构设计方案:

    4.1 系统架构设计

    1. API 层

      • 提供 RESTful API 接口,用于外部调用记忆服务。
      • 包括:GET /memory, POST /memory, DELETE /memory 等。
      • 支持用户身份认证(如 Token、Session ID)。
    2. 操作层

      • 实现记忆的逻辑处理,包括:
        • 记忆匹配(根据当前上下文检索相关记忆)。
        • 记忆更新(根据用户行为更新记忆库)。
        • 记忆过滤(根据遗忘策略剔除不相关数据)。
    3. 存储层

      • 使用混合存储方式:
        • 短期记忆:使用 Redis 缓存。
        • 长期记忆:使用向量数据库(如 Milvus)+ 关系型数据库(如 MySQL)。
      • 每条记忆包含:
        • 用户 ID
        • 时间戳
        • 向量表示
        • 权重值(用于遗忘机制)
    4. 记忆引擎

      • 核心组件,负责:
        • 记忆的读取、写入、更新、删除。
        • 实现遗忘策略(如基于时间衰减或重要性评分)。
        • 支持多模态数据(文本、图像、位置等)。

    4.2 记忆写入流程

    1. 用户行为触发:如用户输入搜索词、选择路线、点赞等。
    2. 行为编码:将行为转换为向量(可使用 BERT、Sentence-BERT、自定义模型)。
    3. 写入记忆库:将编码后的向量与用户 ID、时间戳一起存储。
    4. 更新权重:根据行为重要性调整该条记忆的权重。

    示例代码(Python)

    import numpy as np
    from milvus import connections, Collection
    
    # 连接 Milvus 数据库
    connections.connect(host='localhost', port='19530')
    
    collection = Collection("user_memory")
    collection.load()
    
    # 示例:写入用户行为
    user_id = "u123"
    behavior_vector = np.random.rand(768)  # 假设是 BERT 向量
    timestamp = int(time.time())
    weight = 1.0  # 初始权重
    
    # 插入到 Milvus
    collection.insert(
        data=[behavior_vector, [user_id], [timestamp], [weight]]
    )
    

    4.3 记忆遗忘机制

    1. 时间衰减公式: $$ \text{weight} = \text{initial_weight} \times e^{-\lambda \cdot (t - t_0)} $$ 其中:

      • $ t $ 是当前时间
      • $ t_0 $ 是记忆创建时间
      • $ \lambda $ 是衰减系数
    2. 重要性评分

      • 根据用户行为频率、场景优先级(如常去地点、高频搜索词)计算得分。
      • 得分低的记录会被标记为“可遗忘”。
    3. 定期清理

      • 定时执行内存清理任务,移除权重低于阈值的记忆条目。

    五、工程实践中的关键点

    5.1 可扩展性

    • 采用微服务架构,支持水平扩展。
    • 使用分布式向量数据库(如 Milvus、Pinecone)处理大规模数据。

    5.2 用户隐私与安全

    • 所有用户数据需加密存储。
    • 记忆访问需经过权限控制,防止数据泄露。

    5.3 性能优化

    • 使用缓存(如 Redis)加速短期记忆读取。
    • 对长期记忆进行索引优化,提升检索效率。

    六、总结

    | 项目 | 内容 | |------|------| | 核心目标 | 实现个性化、持续交互的智能体验 | | 记忆类型 | 短期记忆 + 长期记忆 + 工作记忆 | | 架构分层 | API 层、操作层、存储层、记忆引擎 | | 关键机制 | 写入机制、遗忘机制、检索机制 | | 技术选型 | 向量数据库(Milvus)、Redis、BERT 等 | | 工程重点 | 可扩展性、安全性、性能优化 |


    如果你希望进一步了解某一层的具体实现,比如 如何设计记忆引擎的遗忘算法如何使用 Milvus 实现向量检索,我可以继续为你展开讲解。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月17日