夜雨聆风学习资料网

ARTICLE · 990085

源码解读TencentDB-Agent-Memory原理

源码解读TencentDB-Agent-Memory原理

# TencentDB-Agent-Memory原理

## 一、为什么 AI Agent 需要一套「长时记忆系统」

源码解读:

https://github.com/TencentCloud/tencentdb-agent-memory

如果你和现在的任何一个 AI Agent 聊过,就一定遇到过这种尴尬:
  • 上一轮你刚自我介绍过「我是 DBA,管理北京区的 TDSQL-C」,下一轮它又问「请问您是什么角色?」
  • 两周前你让它帮忙排查过一次慢查询,同样的故障再出现时,它还要一步步重新做过
  • 团队里 A 同事踩过的坑,B 同事再和同一个 Agent 对话时,Agent 完全不知道,再踩一次
根源只有一个:**普通的大模型对话,是「一次性」的**——上下文窗口一关,刚才说过的话、做过的事、学到的经验,统统灰飞烟灭。
TencentDB-Agent-Memory 就是用来解决这个问题的:它是一套外挂在 AI Agent 身上的「长时记忆系统插件」,让 Agent 能像人类一样,**把对话里有价值的信息沉淀下来、整理清楚、下次遇到时立刻想起来**。
这套系统的设计理念可以用 5 句话概括:
🏷️ **宿主无关**
不管你的 Agent 是跑在自己的应用里、还是接入某个平台进程内,核心算法一套不用改。
🏗️ **分层渐进**
把「记忆」从最粗的原始对话,一层层过滤、抽象、压缩,变成越来越精炼的高层认知。
⚡ **异步调度**
所有「把对话提炼成记忆」的重活,都在后台默默跑,绝不拖慢你跟 Agent 说话的响应速度。
🔍 **可追溯**
任何一条记忆,都能精确回溯「它是从哪几条对话里来的、当时用了哪份 Prompt 模板生成的」,出错能定位。
🔐 **强隔离**
多团队多用户共用一套系统时,每个人、每个团队的记忆空间完全独立,不会互相穿透。
---

## 二、整体架构:记忆系统是怎么分工的

整个系统不是一个大而全的黑盒,而是由三个独立模块协同工作。

### 2.1 三大模块各司其职

**记忆核心模块**
这是系统的大脑中枢。所有原始对话的落盘、结构化记忆的抽取与检索、技能经验的管理、自定义 Prompt 模板的维护、每条记忆的生成溯源日志,都在这里完成。对外通过 HTTP 网关提供服务。
**知识内容引擎模块**
专门处理「大块头」的知识:团队的 Wiki 文档、代码仓库的结构图谱。它负责把 Wiki 解析成索引、把代码变成关联图,记忆核心只保存这些知识的「元信息卡片」(叫什么、在哪、和谁有关),真正的内容检索交给知识引擎。
**前端管控面板模块**
纯界面层,给运维和用户看记忆、管技能、调配置,本身不承载核心逻辑。
一句话理解三者关系:**记忆核心管「人和经验」,知识引擎管「文档和代码」,面板管「看得见摸得着」。**

### 2.2 核心调用链路:一次对话里记忆做了什么

当你跟 Agent 说话时,记忆系统参与两个关键时刻:
**第一刻:你说话之后,大模型动笔之前——「召回」**
记忆系统会把「和你现在说的这句话最相关的记忆」找出来,连同你的核心画像、有哪些场景可以参考、记忆系统有什么工具可用,一起塞给大模型。这样大模型回答时,是「带着记忆说话」,而不是「失忆胡扯」。
**第二刻:Agent 回复完你之后——「沉淀」**
这一轮对话结束,记忆系统把你和 Agent 说的话完整存一份原始副本,然后立刻通知后台:「有新素材了,该提炼记忆了!」后台调度器会根据时机,依次做「提炼原子记忆 → 聚合情境场景 → 更新核心画像 → 沉淀可复用技能」这四步。
这两步一收一放,就构成了记忆系统完整的「读-写」闭环。

### 2.3 对外的核心能力

对外来看,记忆系统提供 7 类核心能力,覆盖所有使用场景:
**构造回答前召回记忆**
对应大模型动笔之前的那一步,把相关记忆、画像、场景导航一起准备好。
**对话结束沉淀素材**
每轮对话完成就记录原始内容,并通知后台开始提炼。
**会话结束收尾**
单会话关闭时把缓冲区冲掉,不影响其他正在进行的会话。
**主动搜索结构化记忆**
Agent 可以像用搜索引擎一样,主动调用工具去记忆库里搜更详细的内容。
**主动搜索原始对话**
Agent 也可以回头翻「聊天记录原文」,找更细节的对话上下文。
**技能模块门面(可选启用)**
如果启用了技能系统,所有技能相关的操作都走这个入口。
**生命周期管理**
启动时初始化目录、存储、调度、技能模块;关闭时优雅收尾,把尾巴数据写完整。
---

## 三、四层记忆模型:从「聊天记录」到「核心画像」的进化之路

这是本系统最核心的设计——四层渐进抽象。每一层解决一个明确的问题,信息量逐级减少、信息密度逐级升高。

### 3.1 第一层:原始对话记录(「完整保真副本」)

第一层什么都不做,就是**原封不动地把每轮对话存下来**,不压缩、不改动、不抽取。
它是后面所有层的「数据矿」——将来哪条记忆被怀疑是错的,可以回到第一层挖原始对话素材重新验证;有了更聪明的抽取算法,可以拿历史对话重新抽一遍新记忆。
存储时有三个重要保障:
**① 写入不重复**
用「读游标 → 写记录 → 推游标」的原子操作配合锁机制,保证同一个会话的两条并发结束事件不会写重复。
**② 还原真消息**
系统注入给 Agent 的记忆前缀会被剥掉,只存用户和 Agent 真正说过的话,不存「系统自己塞给自己的东西」。
**③ 向量化不阻塞**
先把元数据和文本索引写好(几毫秒就完),向量化这种慢活扔到后台慢慢做,**用户感觉不到任何卡顿**。
📌 性能:原始对话记录写入耗时不到 50 毫秒,完全不影响对话响应速度。

### 3.2 第二层:原子记忆(「把对话拆成一条条可搜索的知识点」)

如果说第一层是「整本书」,第二层就是「从书里挑出来的知识点卡片」。
每张卡片有固定结构:
- **类别**:用户画像类、事件片段类、指令偏好类、工作事实类、工作任务类、工作方法类、工作产物类
- **优先级**:0-100,重要的排前面
- **归属情境**:这条知识属于哪个话题/场景
- **时间点**:发生的时间或时段
- **来源引用**:对应原始对话里的哪几条消息
从「整本书」到「知识点卡片」经过 6 步流水线:
**① 垃圾过滤**:过短消息(比如「好的」「收到」)、纯符号/表情、提示词注入特征、纯图像编码这类没信息量的东西先丢掉,大概减少 15-30% 的输入。
**② 分批组织**:拿最近 10 条新消息 + 上下文 5 条做背景,既不看太少(缺上下文)也不看太多(Prompt 爆掉)。
**③ 一次 AI 调用同时做两件事**:一边判断「哪些消息属于同一个场景」,一边把每个场景里值得记的内容抽成结构化卡片。一次 AI 调用解决两个问题,省 Token。
**④ 别名归一**:比如「episode」和「episodic」、「preference」和「persona」,历史兼容的各种别名统一成一个标准名,免得分类乱掉。
**⑤ 冲突检测(去重)**:这是关键一步,独立开小节讲。
**⑥ 生成留痕**:每条新记忆都写一条「怎么来的」日志,不存 Prompt 正文,只存模板 ID、版本号、来源、哈希值,出问题能溯源。

#### 冲突检测:不让记忆库被重复信息淹没

新的知识点卡片写库之前,要先跟库里已有的记忆「比对是不是重复/矛盾/互补」。这个比对分两阶段。
**阶段一:找候选(三级降级)**
最优情况用**语义比对**:把新卡片变成向量,在库里找语义最相近的前 5 条。这种方式能识别「字面不一样但意思一样」(比如「MySQL 5.7 升级注意事项」和「升级 MySQL 到 8.0 的坑」)。
次优情况用**关键词匹配**:当向量服务不可用时,退化成全文关键词搜索。只能字面匹配,但能覆盖专有名词。
最差情况**跳过比对直接写**:两种搜索都挂了,宁肯有重复也要保证新信息不丢——重复的信息,后面合并阶段还有机会清理。
**阶段二:AI 批量裁决(4 种决策)**
把所有新卡片 + 各自的候选池打包给 AI,让 AI 对每条新卡片做 4 种判断之一:
- **全新入库**:从没见过的新信息,直接写。
- **更新覆盖**:和某条旧记忆意思一样,但内容更精确或时间更新,归档旧的、写新的。
- **合并归并**:和 2 条以上旧记忆分别描述了同一件事的不同侧面,合并成一条更完整的,旧的全部归档。
- **完全丢弃**:100% 冗余的重复信息,直接跳过。
如果 AI 调用超时或解析失败,不中断——所有新卡片退化为「全新入库」,记一条警告日志。下次有机会重抽到同一块对话时,比对会再跑一次自动修复。

### 3.3 第三层:情境场景(「把知识点卡片组装成一个个话题文档」)

第二层是一张张卡片,第三层就是**把主题相关的卡片装订成「话题册」**——每个话题是一份独立的 Markdown 文档,包含:
- 元信息头:话题名、创建更新时间、标签、关键时间点
- 话题概述:这个话题讲的是什么
- 按时间串起来的关键事件链
- 核心结论 + 未解问题
- 对用户画像有什么影响
第三层的提取不是传统的「文本分类打标签」,而是一个**带文件编辑能力的智能编辑机器人**在做:
**① 只能碰话题文档文件夹**
给 AI 的文件操作权限被严格限制,Persona 文档、调度标记这些系统文件物理上都看不到,安全。
**② 编辑前先做快照备份**
每次编辑话题之前先给整个话题文件夹拍个快照。AI 搞砸了(比如误删了一个话题的核心内容)可以立刻回滚。
**③ 话题数量上限强制管控**
话题不是越多越好——太多了翻都翻不过来,反而降低回忆质量。上限(默认 15 个)分三级预警:
- 快到上限(差 3 个):建议优先合并相似话题
- 差 1 个到上限:只能更新已有话题,不许新建
- 达到上限:必须先合并 2-4 个相似话题腾出空位,才能处理新内容
重点是:**合并哪些、怎么合并,不是系统硬编码的,而是让 AI 自己判断**。AI 看得懂「2025 年 Q4 大促压测」和「2026 年 618 压测」应该合并成「大促压测演练集锦」,关键词相似度只有 30% 的硬合并逻辑做不到。
**④ 四种操作语义**
新建话题、给老话题补信息、合并相似话题、软删除无效话题(话题删了还能从索引里清理痕迹)。
**⑤ 给核心画像发信号**
如果 AI 编辑话题时发现「这些内容值得上升到用户画像层」,就发一个特殊信号,下次画像更新时立刻响应。

### 3.4 第四层:核心画像(「从大量话题里压缩出一份人物/团队画像」)

第四层是记忆系统的最高抽象——**把所有话题文档里反映出来的身份、偏好、方法论、价值观,压缩成一份画像文档**。
画像内容按深浅分 4 层:
**身份层(最浅)**
姓名、角色、团队归属、核心标签。
**偏好层**
语言风格、回答方式、工作习惯、常用工具链。
**方法论层**
做事流程、架构理念、风险偏好、遇到冲突的处理原则。
**世界观层(最深)**
长期目标、价值观、技术信仰、以及明确的「反模式」(告诉 Agent 什么事绝对不要做)。
画像更新有两种模式:
**首次模式**
还没有画像时,从零构建四层结构。
**增量模式(重要!)**
已有画像时——**只让 AI 重点看「自上次更新之后有变化的那些话题」**,没变化的根本不塞给 AI。这样省 Token、聚焦注意力,还大大降低了「AI 手贱删掉原画像有用段落」的风险。
画像什么时候更新?5 条触发路径,任何一条命中都会启动:
**第一优先级(立刻响应)**
- 显式请求:某个话题编辑后发出了「这内容应该进画像」的信号。重要变更马上生效,不等阈值攒够。
**第二优先级(一次性初始化)**
- 冷启动:已经有话题了但还没有画像。新用户不用等阈值就有第一版画像。
**第二优先级变体(灾难自愈)**
- 画像损坏:画像曾经生成过,但现在文件空了(可能是文件系统坏块或运维误删)。系统自动从完整的话题库重新生成画像,不用人工操作。
**第三优先级(首次加速)**
- 第一个话题提取完成。画像的首次生成不用等话题攒够,第一个话题结束就出第一版。
**第四优先级(周期性兜底)**
- 阈值累积:积累的记忆数量达到了间隔阈值,保证以上都没命中时画像也会周期性更新。
任何一条路径没覆盖到,都会被另一条兜住——**画像永远不会「永远不更新」也不会「每 5 分钟重写一遍」。**
---

## 四、智能调度:什么时候该提炼记忆

记忆提炼是 AI 重计算,不能乱调度。提炼太频繁浪费算力,提炼太久积压变质。调度器专门解决这个时机问题。

### 4.1 原子记忆的调度:冷启动快、稳态省

针对新会话用了「热身阶段」的指数阈值策略:
- 会话第 1 轮结束 → 立刻提炼(新用户第 1 轮就有记忆)
- 累积到 2 轮 → 再提炼(阈值翻倍到 4)
- 累积到 4 轮 → 再提炼(阈值翻倍到 8)
- 直到恢复到稳态值(默认每 5 轮提炼一次)
冷启动体验是质的飞跃:不用等攒够 5 轮,**第 1 轮自我介绍完,第 2 轮 Agent 就能想起你是谁。**
稳态阶段还有两条兜底路径:
- **会话空闲 60 秒以上**:兜底捕捉那些没到 5 轮就结束的小会话。
- **优雅关机时**:把所有缓冲区里的内容全部冲完,不丢尾巴数据。
还有一个积压加速机制:当发现数据库后面堆了至少一个批次还没处理的消息,调度器就不等计数也不等空闲,立刻排下一个提炼任务——**像水管满了自动开泵排水一样。** 运维事故当天几百轮对话狂轰滥炸时,这个机制会自动提速跟上积压。

### 4.2 情境场景的调度:响应快 + 不反复重抽

场景用的是一个「**只能提前、不能延后**」的智能计时器,有三个参数同时起作用:
- 原子记忆结束后要等一会儿(默认 90 秒),别刚结束就立刻重抽
- 两次场景之间最少有一个大间隔(默认 900 秒),防止 10 分钟内反复抽同样内容
- 最长 1 小时一定抽一次(只要会话还活跃),别攒太久
当 L1 完成时,取「90 秒后」和「上次 L2 之后 900 秒」两者中**更晚**那个时间点,既不浪费新记忆的热度,也保证 15 分钟内最多抽一次。

### 4.3 核心画像的调度:全局互斥 + 脏标记

画像生成是互斥的——**任何时候只跑一个画像生成任务**,避免并发写画像互相覆盖。
场景提取完成后,被影响到的团队/Agent 画像会被标上「脏了」的标记。然后画像触发器按五级优先级判断要不要真的跑。所有写操作都走统一存储层,单机模式和服务化模式行为完全一致。
---

## 五、召回流程:说话时怎么把相关记忆想起来

每次大模型动笔回答之前,召回流程就开始工作了。把相关的记忆上下文注入 Agent。

### 5.1 为什么把上下文拆成两段注入

返回的记忆上下文被故意拆成两段,目的是**最大化 Prompt 缓存命中率**:
**稳定段(塞在 System 提示词尾部)**
内容是:核心画像 + 话题导航 + 记忆工具指南。这些内容几小时甚至几天才变一次。Provider 级别的 Prompt 缓存可以稳定命中,大幅省 Token。
**动态段(塞在 User 消息前缀)**
内容是:本次具体命中的原子记忆结果。每轮都不一样,故意放 User 提示词里,不破坏 System 段的稳定性。

### 5.2 三种搜索策略 + 融合

**纯关键词搜索**
走全文关键词排名(BM25)。不需要向量服务,字面匹配准,同义词会漏。
**语义向量搜索**
把查询转成向量,按余弦相似度取最接近的结果。能找到同义词和改写表达,语义匹配强。
**混合搜索(默认推荐)**
两路并行跑,然后用 RRF(倒数排名融合,常数 k=60)把两边结果合并打分后重排。字面+语义同时命中,精度最高。
💡 如果底层向量数据库原生支持混合搜索(一次 API 做完关键词+向量+融合),就直接走后端一次调用,省掉客户端做两次 HTTP 的开销。

### 5.3 预算裁剪 + 超时保护

**预算裁剪**
不能让召回的记忆撑爆 Prompt Token,所以有两道闸门:
- 单条记忆最多多少字符,超了就截断并提示「用主动搜索工具可以看详情」
- 所有记忆拼接后总字符上限,超了就丢弃分数低的
截断按 Unicode 代码点计数,不会把一个汉字切成两半变成乱码。
**超时保护**
召回永远不会阻塞主 Agent 超过 5 秒。超时、配置缺失、存储异常都打包成结构化错误码返回,不会静默失败。监控可以基于错误码设告警,用户侧也能看到错误而不是「莫名其妙没回忆」。
---

## 六、技能记忆系统:把团队经验变成可复用的资产

技能系统是在四层通用记忆之上叠加的**可复用经验资产层**。一个技能的载体是:一份 Markdown 规范的技能文档(包含元信息、适用场景、步骤、注意事项)+ 任意数量的配套资源文件(脚本、模板、数据等)。

### 6.1 十类核心操作

对外提供 6 类写操作 + 4 类读操作,共 10 类:
**写操作(都会触发版本递增)**
- **新建技能**:生成唯一不可猜的技能 ID,碰撞时自动重试
- **整体更新**:替换整份技能文档
- **单点补丁**:只改一处文字(比如把步骤 3 的 A 命令改成 B 命令),成本最低、最常用
- **物理删除**:真删所有版本(2026-07 从软删改为真删)
- **增改资源文件**
- **删除资源文件**
**读操作**
- **取详情**:拿指定版本的完整内容
- **列列表**:按团队/归属 Agent/状态分页
- **搜技能**:关键词/语义/混合三种搜索
- **读资源文件 / 列历史版本 / 打包导出**:支持跨实例迁移导出为 zip

### 6.2 版本管理:每版都是完整快照 + 跨系统伪事务

每次追加版本时,先把**上一版的全部资源目录完整复制一份**到新版目录,再在新版上做改动——这就是「不可变副本」模式。好处是:每版的资源是完整快照,回滚到旧版本直接读对应目录就行,不需要一层层 apply patch。
新技能或新版本的创建会跨三个存储系统:资源文件、技能数据库、资产注册表。没有真正的分布式事务,用「先做最容易失败的、最后做最可靠的 + 失败反向清理」的顺序来保证最终一致性:
1. 先写资源文件(最容易失败,失败了什么都没留下)
2. 再写技能数据库(几乎不会失败,失败了就反向清掉刚才写的资源)
3. 最后登记资产(失败了就反向删技能库再清资源)
极端情况下的兜底:
- 技能库写了但资产登记漏了:下次读技能详情时自动补登记,用户再刷新一次界面就看到了
- 残留的孤儿资源文件:读路径永远走技能库,不会被误读到,只是占点空间

### 6.3 Review 机器人:对话里自动提炼技能

对话结束后,一个带「技能管理工具」的 AI Review 机器人会在后台默默看完整段对话:
- 先搜一下团队已有的技能:有没有同一问题的?
- 有的话判断是「整体内容不够全」(整体更新)还是「局部一两处要改」(单点补丁)
- 没有的话就新建
然后调用技能工具把经验沉淀下来,最后把候选结果(技能 ID + 版本号)上报供审计。
整个抽取在**后台异步队列**执行,用户对话时完全无感知,但团队技能库一直在悄悄长大。

### 6.4 防重复造轮子的 4 种模式

AI 最大的坑之一是:看不到已有的技能,就会重复造一个重名/重复的。Review 机器人开始工作之前,先注入团队已有技能清单做前缀,根据数量多少选 4 种模式之一:
- **全铺模式**:技能总数不多(≤20),直接全部铺开,不额外花 AI 调用
- **相关优先模式**:总数量超上限,额外花一次 AI 调用来生成搜索关键词,然后按相关性挑最相关的 top-N 注入
- **最近更新兜底模式**:相关模式失败时,按最近更新时间降序挑 top-N,并附带提示「还有 X 条没显示,可以主动列出来」
- **空模式**:技能库为空或配置了不注入
实测在 50+ 技能的团队里,相关优先 + 最近更新的组合把「技能重名错误率」从 17% 压到了 2% 以下。

### 6.5 旧版本过期清理

版本 TTL 开关打开后,每次新版本成功,就顺手清掉过期的老版本。读路径引用过期版本时也会明确报错提示换最新版。效果是:**技能库永远是活的**——过期的操作步骤不会被照做,老版本占的存储和数据库空间也会自动回收。
---

## 七、存储与检索:单机能跑、集群能扩

### 7.1 两层可替换的存储抽象

系统定义了两层可替换的存储抽象,所以部署方式可以非常灵活:
**记忆检索层**
接口负责:原始对话、原子记忆的写和搜索(关键词/向量/混合/计数)。
内置实现用 SQLite + 向量插件 + 全文索引,零外部依赖就能跑。扩展实现切换到腾讯云向量数据库,适合多节点服务化。
**文件大对象层**
接口负责:读/写文件、建目录、列目录、复制目录、版本目录。
内置实现用本地文件系统,扩展实现切到腾讯云 COS,适合集群。
所以:
- 单机/插件模式:SQLite + 本地文件系统,安装即用
- 服务模式:向量数据库 + COS,无状态可水平扩展
两种模式切换时,算法层零改动。

### 7.2 三种搜索方式的取舍

**关键词搜索(BM25)**
无需向量服务,纯字面。文档集很小时 BM25 的绝对分数不可靠,专门做了「结果数很少就全返回」的兜底。
**语义向量搜索(余弦相似度)**
能理解语义,支持服务端做向量化(向量数据库原生支持时),省客户端调用。
**混合搜索 + RRF 融合**
两条路并行,对同一条记录的排序倒数做累加后重排,精度最高。融合常数 k 固定为 60。

### 7.3 五维强隔离

所有写和检索都支持五维过滤:团队 ID、Agent ID、用户 ID、会话 ID、任务 ID。v3 路由强制要求前三维必须通过请求体或请求头传入,从入口上杜绝跨租户穿透。
画像和话题的存储空间,按团队/Agent 拼成独立的目录前缀,在 COS 上就是互不相关的文件夹,天然不串。
---

## 八、可观测性:怎么知道记忆系统在好好工作

看不见的系统,等于黑盒。可观测性由三部分构成。

### 8.1 全链路量化指标

每一步都上报指标,通过 Kafka 或 OTLP / ClickHouse / 控制台输出。指标上报全被 try/catch 包住,上报失败静默忽略,绝不影响业务返回。
**原子记忆侧**
输入原始对话数、抽取到的原子记忆数、抽取率(低了可能是 Prompt 太保守或消息噪声多)、去重后 4 种决策(全新/更新/合并/丢弃)各自的数量、各阶段耗时。
**画像/场景侧**
场景生成延迟、画像生成延迟。
**召回侧**
使用哪种搜索策略、命中多少条原子记忆、总延迟、是否有错误。
**技能侧**
一次抽取耗时、处理了多少消息、产生了多少候选技能、用了哪种前缀注入模式、跳过执行的原因。
通过仪表盘观察这些指标的趋势,能发现「慢退化」:
- 连续一周「纯冗余丢弃 / 总抽取量」> 50% → 提示对重复信息不敏感,该调 Prompt 或去重阈值了
- 召回错误突然升高 → 依赖的向量服务 / 向量服务在抖
- 技能抽取一直用「相关模式」却长期空命中 → Prompt 需要改

### 8.2 生成溯源:每条记忆能回到「案发现场」

每条记忆关联一条生成日志,包含:
- 使用的 Prompt 模板 ID、版本号、来源层级(系统/实例/团队/Agent)、内容哈希
- 输入引用:来自哪几条原始对话或上一层的哪些记忆
- 输出引用:同批生成了哪些本层记忆
- 层级、模型名、Prompt 家族、开始时间、耗时
有了这个:用户抱怨「怎么记住了我从没说过的事」时,5 分钟内就能从记忆 ID → 查到哪几条原始对话被误抽 → 回原文确认 → 到底是 AI 幻觉还是原始消息被注入污染 → 对应修 sanitize 规则 / 质量门 / 自定义 Prompt。**不是瞎猜「LLM 质量下降」,而是有因果链。**

### 8.3 全量 AI 调用 Trace

每一次 AI 调用(原子记忆抽取 / 去重裁决 / 场景生成 / 画像生成 / 技能提炼)都通过四元组(团队/用户/Agent/会话)打身份标签,且有稳定的业务 trace 名(如 `memory.l1-extract`)、团队标签、Agent 标签。
界面上可以:
- 按团队过滤,看整个团队一周内抽取有无异常
- 按 Agent 过滤,看某专用 Agent 抽取的质量
- 点进某条具体 trace,看完整的 System Prompt / User Prompt / AI 输出 / 工具调用链
和生成日志互补:日志是「这条记忆怎么来的」业务视角,Trace 是「这次 AI 调用发生了什么」LLM 视角。
---

## 九、实际效果与三个典型案例

### 案例一:数据库故障排查场景

一位 DBA 跟 Agent 多次对话后,记忆系统自动沉淀了四层内容:
**原始对话(约 40 条消息)**:从「凌晨 TDSQL-C 实例 A 慢查询」到「定位索引问题」再到「确认好转」的全过程。
**原子记忆(7 条卡片)**:比如「实例 A 在某日 02:10 出现慢查询,持续 45 分钟,Buffer Pool 命中率跌至 92%」「报表任务在 02:00 批量执行的新 SQL 没有走索引」「大表 DDL 优先用 CONCURRENTLY 模式避免长时间锁表」「优化后 SQL 耗时从 12 秒降到 80 毫秒」等等。
**情境场景(一份话题文档)**:时间范围写着「2025-08-20 02:10 ~ 03:00」,事件链按时间串:告警→定位报表 SQL→发现索引不匹配→CONCURRENTLY 建复合索引→命中率恢复 99.2%;可复用方法单独一节写着「大表 DDL 优先 CONCURRENTLY」「复合索引匹配 WHERE 列顺序(等值在前,范围在后)」。
**核心画像(更新片段)**:工作方法偏好里多了两条——「遇到 DDL 场景优先推荐 CONCURRENTLY/在线 DDL 方案」「索引优化先看 WHERE 组合再匹配等值/范围特征」。
**下次同类对话的效果**:用户问「实例 B 今早慢查询,能参考上次 A 的处理方式吗?」——召回同时从语义命中「慢查询+索引优化」、从关键词命中「CONCURRENTLY」「Buffer Pool」,把原子记忆和场景文档路径一起注入,Agent 不用再问什么是 CONCURRENTLY、上次怎么处理的,直接进入分析阶段——**每轮节省 2-3 次交互。**

### 案例二:团队技能自动沉淀

一个运维团队跟 Agent 反复做过 5 次数据库版本升级,每次的步骤、注意事项、回滚点散落在对话里。
Review 机器人自动识别出这是可复用经验,沉淀了一份技能:`TDSQL for MySQL 滚动升级流程`(从 5.7 滚动升级到 8.0,数据量<5TB),内容包括适用场景、前置检查(从库延迟<1s、备份集校验、参数兼容清单)、标准步骤、灰度策略、回滚预案。
后续对话补充了 MySQL 8.0 的特殊注意事项,Review 机器人对技能做了单点补丁,版本从 v1 自动升到 v2。
**效果**:下次任何一位团队成员说「要把实例 C 从 5.7 升级到 8.0」,召回阶段就直接命中这份技能——**Agent 不用再被一步步教升级流程**。版本史完整记录,随时可以回看旧版本。技能可以导出 zip 跨实例迁移,团队经验真正变成了可复用资产。

### 案例三:冷启动新用户体验

第一次对话用热身模式:
- 第 1 轮结束 → 立刻抽取原子记忆 → 抓出 2-3 条
- 第 2 轮结束 → 再次抽取
- **第 2 轮回忆时已经能引用第 1 轮的自我介绍**
比如第 1 轮用户说「我是腾讯云 DBA,主要管北京区的 TDSQL-C」——第 2 轮 Agent 就已经知道你是谁、干什么的,不会再重复问「您是什么角色?」。
对比传统「攒够 N 条才处理」的方案,冷启动从「前 5 轮像新 Agent」变成「第 1 轮就有记忆」。
---

## 十、总结:五把钥匙

TencentDB-Agent-Memory 的核心原理,最后可以归纳为五把钥匙:
🔑 **第一把:四层渐进抽象**
从保真原始对话 → 原子知识点卡片 → 情境话题文档 → 核心画像,每一层解决一个明确的粒度问题。越往上信息越少、越凝练、越能反映长期认知。
🔑 **第二把:异步智能调度**
热身阶段指数阈值(新会话快速出记忆)、向下计时器双约束(响应快+不反复)、积压自动加速排水、状态持久化重启不丢进度。所有 AI 重计算不阻塞对话路径,既快又准。
🔑 **第三把:智能抽取机器人**
场景机器人、画像机器人、技能 Review 机器人——不是打标签分类器,而是带文件编辑能力的真正智能体,在沙箱里自主编辑文档、合并话题、沉淀经验。
🔑 **第四把:多层冲突检测与去重**
原子记忆的 4 决策冲突检测、情境场景的强制 MERGE 上限治理、技能的版本幂等与补丁低成本增量——记忆不会越攒越脏,而是**越用越精炼**。
🔑 **第五把:全链路可观测**
全链路指标、每条记忆的生成溯源、每次 AI 调用的 Trace UI 回放——每一条记忆都能追溯「从哪来、怎么生成的、用了哪个版本的 Prompt」。
这套系统,单机零外部依赖就能跑,服务化场景下切换向量数据库 + COS 就能水平扩展,真正做到:**记忆能力可大可小、可本地可云端、随 Agent 和团队一起成长。**

相关学习资料

返回首页浏览学习资料