智能体记忆(Agentic Memory)
执行摘要
本文描述 Semantic Router 中智能体记忆的概念验证(POC)。智能体记忆使 AI 智能体能够跨会话记住信息,从而提供连续性与个性化。
POC 范围: 本文为概念验证,非生产级设计。目标是验证核心记忆流(检索 → 注入 → 提取 → 存储)在可接受准确度下可行。生产加固(错误处理、扩展、监控)不在范围内。
核心能力
| 能力 | 说明 |
|---|---|
| 记忆检索 | 基于嵌入的检索与简单预过滤 |
| 记忆写入 | 基于 LLM 的事实与流程提取 |
| 跨会话持久化 | 记忆存于 Milvus(重启可保留;生产级备份/高可用未验证) |
| 用户隔离 | 按 user_id 划分(见下表) |
用户隔离与 Milvus 性能说明:
方式 POC 生产(1 万+ 用户) 简单过滤 检索后按 user_id过滤退化:先搜全库再过滤 分区键 POC 过重 物理隔离,每用户 O(log N) 标量索引 POC 过重 对 user_id建索引以加速过滤POC: 使用简单元数据过滤(测试足够)。
生产: 在 Milvus schema 中将user_id配为分区键或标量索引字段。
关键设计原则
- 简单预过滤 决定是否检索记忆
- 利用历史 上下文窗口 对查询消歧
- LLM 提取事实 并在保存时分类
- 对检索结果做 基于阈值的过滤
POC 明确假设
| 假设 | 含义 | 若错误的风险 |
|---|---|---|
| LLM 提取基本准确 | 可能存入错误事实 | 记忆污染(可用 Forget API 修复) |
| 0.6 相似度阈值为起点 | 可能需调参 | 可依检索质量日志调整 |
| Milvus 可用且已配置 | 宕机则功能关闭 | 优雅降级(不崩溃) |
| 嵌入模型输出 384 维向量 | 须与 Milvus schema 一致 | 启动失败(可检测) |
| 可通过 Response API 链获得历史 | 上下文所需 | 无历史则跳过记忆 |
目录
1. 问题陈述
现状
Response API 通过 previous_response_id 提供会话链,但跨会话知识会丢失:
Session A (March 15):
User: "My budget for the Hawaii trip is $10,000"
→ Saved in session chain
Session B (March 20) - NEW SESSION:
User: "What's my budget for the trip?"
→ No previous_response_id → Knowledge LOST ❌
目标状态
使用智能体记忆时:
Session A (March 15):
User: "My budget for the Hawaii trip is $10,000"
→ Extracted and saved to Milvus
Session B (March 20) - NEW SESSION:
User: "What's my budget for the trip?"
→ Pre-filter: memory-relevant ✓
→ Search Milvus → Found: "budget for Hawaii is $10K"
→ Inject into LLM context
→ Assistant: "Your budget for the Hawaii trip is $10,000!" ✅
2. 架构概览
┌─────────────────────────────────────────────────────────────────────────┐
│ AGENTIC MEMORY ARCHITECTURE │