AskTable
免费试用

告别重复说明:AI 数据分析的永久记忆意味着什么

AskTable 团队
AskTable 团队 2026年4月5日

如果你用过任何对话式 AI 产品,大概率经历过这样一个场景:

你在第一次对话中告诉 AI:"以后回答销售额这类指标,应该带上具体时间。"

AI 回答:"好的,我记住了。"

第二天,你开启一个新的对话窗口问:"上个月销售额怎么样?"

AI 回答:"上个月销售额是 320 万。" —— 没有时间范围。

你只好再说一遍:"我说过要带时间的。"

AI:"抱歉,下次我会注意。"

这不是 AI 不够聪明。这是对话式 AI 的一个系统性缺陷

每一次新对话,对 AI 来说都是一次"初次见面"。你之前说过的所有偏好、上下文、习惯,统统归零。

今天这篇文章,我想从用户体验的视角,聊聊我们如何在 AskTable 中构建永久记忆系统,以及它为什么是 AI 数据分析产品从"可用"走向"好用"的关键一步。


一、问题的本质:为什么 AI 总是"失忆"

对话式 AI 的记忆困境

当前主流的对话式 AI 产品,记忆范围仅限于当前会话的上下文窗口。这意味着:

  • 你关闭浏览器标签页,记忆就丢了
  • 你开启新对话,AI 又变成了一张白纸
  • 你重复说过的话,AI 记不住也不需要你再说

这种设计在早期的通用聊天场景中勉强可以接受——用户本来就是在"问问题",问完就走。但在数据分析场景下,问题被成倍放大。

数据分析场景的特殊性

数据分析不是一个"问完就走"的场景。它是一个持续的、迭代的、有累积效应的工作流。

让我们来看一个真实的用户旅程:

第一天:运营经理小李第一次使用 AI 数据分析工具。他花了很多时间告诉 AI 公司的业务口径——GMV 怎么算、退货怎么处理、华东区包含哪些省份。AI 表示都理解了。

第二天:小李继续工作,但昨天定义的口径全部失效。他不得不再说一遍。

第一周:小李已经说了五遍同样的事情。他开始怀疑这个工具到底值不值得用。

第一个月:小李放弃了 AI 工具,回到了 Excel。因为"教它的时间比我自己查还长"。

这就是没有记忆系统的 AI 在数据分析场景下的真实命运。

一个量化对比

场景无记忆的体验有记忆的体验
第一次定义"GMV"口径AI 理解AI 理解
第二次问 GMV需要重新解释口径AI 直接用你定义的口径
第三次做月度报告再次说明格式偏好AI 按偏好生成
第 N 次查询仍然需要从头说明AI 像老同事一样默契

问题的本质不是 AI 不够智能,而是每次对话都从零开始。

就像你每次和同一个同事沟通,他都要你重新自我介绍一遍。这不叫智能,这叫效率杀手。

用户心智模型 vs 技术现实

用户在和 AI 交互时,天然带有一种"拟人化"的期待:

"我都告诉你一遍了,你怎么又忘了?"

这种抱怨背后,反映的是用户对 AI 的连续性人格预期——用户希望 AI 是一个"认识自己"的助手,而不是每次重启的陌生机器。

从心理学角度看,这是关系型交互的基本需求。人类在与任何智能体(无论是人还是机器)交互时,都会期望对方具备一定的"记忆连续性"。这是建立信任和使用习惯的基础。

从技术角度看,这种期待也非常合理。因为人类的助理确实是这样工作的:你告诉过一次的事情,不需要反复说。

现有方案的不足

市场上也有一些产品试图解决这个问题,但普遍存在以下局限:

  • 会话内记忆:只在当前对话中有效,关闭后丢失
  • 手动笔记:需要用户自己维护一份"AI 须知"文档,每次粘贴
  • 全局 Prompt:在系统提示词中硬编码一些规则,但无法动态更新
  • 用户画像:基于标签的粗粒度记忆,无法覆盖细粒度的偏好和定义

这些方案要么不够自动化,要么不够灵活,要么不够精确。


二、永久记忆系统:让 AI 不再忘记

什么是永久记忆?

永久记忆,指的是 AI 能够跨会话、跨对话、跨时间记住用户的偏好、习惯、定义和上下文,并在后续交互中自动应用这些记忆。

具体来说:

  • 你说过的指标定义,AI 记住了
  • 你偏好的报告格式,AI 记住了
  • 你关注的重点区域、维度、时间窗口,AI 记住了
  • 你在历史对话中纠正过的错误理解,AI 记住了
  • 你自定义的业务术语和缩写,AI 记住了

而且这些记忆不是被动存储,而是在你提问时主动召回并应用

记忆的类型

在 AskTable 的数据分析场景中,我们识别出了几类核心记忆:

1. 偏好记忆

用户在使用过程中的个人偏好设置,比如:

  • "回答销售额这类指标,应该带上具体时间"
  • "图表中显示同比和环比增长率"
  • "用表格展示数据,不要用图表"
  • "数字保留两位小数"

2. 定义记忆

用户对业务指标和术语的定义,比如:

  • "GMV 包含已付款和待付款订单,不包含退款"
  • "活跃用户定义为过去 30 天有登录行为的用户"
  • "华东区包含上海、江苏、浙江、安徽、福建、江西、山东"

3. 关注记忆

用户经常关注的维度、区域、时间窗口等,比如:

  • "主要关注华东区域的数据"
  • "每月初看上月整月数据"
  • "对比数据时偏好用柱状图"

4. 纠错记忆

用户在历史对话中纠正过的错误,比如:

  • "不要把 A 产品的数据混入 B 产品"
  • "Q1 指的是自然季度,不是财季度"
  • "利润率用净利率,不是毛利率"

记忆系统的工作流程

在 AskTable 中,记忆系统的运作可以概括为两个阶段、四个环节

## 历史记忆
- 用户提问销售额、利润率等指标时,应带上具体时间段(2026-04-01)
- 用户主要关注华东区域的数据(2026-03-15)
- 偏好在图表中显示同比和环比增长率(2026-03-20)

这四个环节分别是:

1. 读取(Search)

在用户发起新请求时,系统从记忆库中检索与当前问题相关的历史记忆。这个过程发生在请求处理的早期阶段,确保后续分析已经带上了记忆上下文。

具体来说,当用户输入"上个月华东区的销售额怎么样"时,系统会:

  1. 将用户问题向量化
  2. 在记忆库中进行相似度搜索
  3. 找到与"销售额""华东区""时间范围"相关的记忆条目
  4. 将这些记忆注入到后续的分析流程中

2. 注入(Inject)

将检索到的记忆格式化为结构化的上下文提示,注入到 AI 的系统提示词中。AI 在生成回答时,会自然地将这些记忆考虑进去。

注入的上下文大致如下:

## 历史记忆
- 用户提问销售额、利润率等指标时,应带上具体时间段(2026-04-01)
- 用户主要关注华东区域的数据(2026-03-15)
- 偏好在图表中显示同比和环比增长率(2026-03-20)

这些记忆条目会被附加到系统提示的末尾,让 AI 在生成回答时自动应用。

3. 提取(Extract)

在 AI 完成回复后,系统分析本轮对话,提取其中可能构成新记忆的片段——比如用户的偏好声明、指标定义、纠正反馈等。

例如,用户在对话中说:"以后不要用饼图,用柱状图更好对比。"系统会通过 LLM 分析这句话,提取出结构化的记忆条目:"用户偏好使用柱状图而非饼图进行数据对比。"

4. 存储(Store)

将提取到的新记忆写入向量数据库,建立索引,供后续查询使用。每条记忆都会附带时间戳和来源信息,便于后续的管理和追溯。

读写分离的设计哲学

在工程实现上,我们采用了读写分离的架构:

  • 读(Search):在请求开始时同步执行,确保响应质量
  • 写(Add):在回复完成后异步执行,不阻塞用户体验

这种设计的关键考量是:

读取影响当下,写入影响未来。

读取直接决定了当前回答的质量——如果记忆没有及时加载,AI 就会像失忆一样回答错误。因此读取必须是同步的、低延迟的。

写入则是为了优化未来的体验——即使用户这次对话的记忆没有立即写入,也只是下次对话少一条记忆,不影响当前的使用体验。因此写入可以异步化、fire-and-forget。

用户不需要等待"记忆写入完成"才能看到回答。AI 先给你结果,然后默默在后台学习。


三、技术架构:mem0 + Qdrant 为什么这样选

框架选型:mem0 OSS

在记忆系统的技术栈选择上,我们最终选定了 mem0 作为记忆管理框架,配合 Qdrant 作为向量存储。

为什么是 mem0?

1. 专注记忆这一件事

mem0 的定位非常清晰——为 AI 应用提供持久化记忆能力。它不是大而全的 Agent 框架,而是专门解决"记忆存储、检索、更新"的中间件。这种专注性意味着:

  • API 设计简洁,学习成本低
  • 内部优化围绕记忆场景深度打磨
  • 社区和生态都在快速迭代

2. 开箱即用的记忆操作

mem0 提供了三个核心 API:

add()    —— 添加新记忆
search() —— 检索相关记忆
update() —— 更新已有记忆
delete() —— 删除指定记忆

这与我们的"读-写-更新-删除"需求高度吻合。我们不需要在底层自己实现记忆的增删改查逻辑。

3. LLM 驱动的智能提取

mem0 的 add 操作不是简单地把对话内容存入数据库,而是通过 LLM 对对话进行分析,提取结构化的记忆片段。这意味着:

  • 原始对话:"以后回答销售额带上时间"
  • 提取的记忆:"用户希望销售额指标包含时间范围"
  • 存储形式:结构化 + 向量化,便于精确检索

这种智能提取能力,大大降低了应用层的记忆管理复杂度。我们不需要自己写规则来解析用户意图,mem0 内部已经通过 LLM 完成了这一步。

向量存储:为什么选 Qdrant

Qdrant 是一个开源的向量数据库,我们选择它主要基于以下考量:

1. 高性能的相似度搜索

记忆检索的核心是"找到与当前问题最相关的历史记忆"。Qdrant 的 HNSW 索引在向量相似度搜索场景下表现优异,能够在毫秒级返回 Top-K 相关记忆。

在我们的测试中,即使在数千条记忆的规模下,检索延迟仍然保持在 10ms 以内,完全满足实时对话的需求。

2. 元数据过滤

记忆不仅包含向量表示,还需要附带时间戳、来源、类型等元数据。Qdrant 支持向量搜索 + 元数据过滤的组合查询,这对于记忆的精确召回非常重要。

例如,我们可以查询"与销售额相关且最近 30 天内创建的偏好记忆",这种组合查询能力是纯向量搜索无法提供的。

3. 部署灵活

Qdrant 支持 Docker 容器化部署,也支持云服务,与我们的整体技术栈兼容性良好。对于有本地化部署需求的企业客户,Qdrant 也可以完全在客户内网运行。

隔离粒度:Agent 级共享记忆

这是整个记忆系统设计中最关键的架构决策之一。

记忆系统有多种隔离粒度可选:

隔离粒度说明适用场景
用户级每个用户独立的记忆空间个人助手
会话级每个会话独立的记忆无(失去了跨会话的意义)
Agent 级同一 Agent 下所有用户共享记忆团队知识库
组织级整个组织共享大型企业知识库

AskTable 选择了 Agent 级 的隔离粒度。这意味着:

同一个 Data Agent 下,所有用户的记忆是共享的。A 用户定义的"GMV"口径,B 用户在提问时也能享受到这个记忆。

为什么这样设计?

1. 团队知识库模式

在数据分析场景中,指标定义、业务口径、偏好设置往往不是个人化的,而是团队层面的共识。A 用户告诉 AI "GMV 包含退款金额",这个定义对 B 用户同样适用。

如果采用用户级隔离,就会出现"A 定义的 GMV 和 B 定义的 GMV 不一致"的混乱情况。

2. 降低重复沟通成本

如果采用用户级隔离,团队中每个人都要向 AI 重复一遍相同的定义和偏好。这与我们解决"重复说明"痛点的初衷背道而驰。

我们的目标就是让团队不需要反复说明同一件事。Agent 级共享是实现这一目标的前提。

3. 记忆即知识沉淀

随着团队使用时间的增长,Agent 的记忆库会自然沉淀为一份活的团队知识库。新加入的成员不需要重新教 AI 任何东西,AI 已经"认识"团队了。

这种知识沉淀的价值,远超过简单的对话效率提升。它实际上是在构建团队的数据资产

4. 与 AskTable 的产品模型一致

AskTable 的核心产品单元是 Data Agent。每个 Data Agent 对应一个特定的数据分析场景(如销售分析、运营监控等),有独立的数据源、分析模型和权限配置。记忆系统作为 Agent 的能力之一,自然也应该以 Agent 为边界。

当然,Agent 级共享也带来了挑战——比如如何处理用户之间的记忆冲突。这在实际运行中通过时间戳优先级和手动管理功能来解决。

Protocol 抽象:mem0 只是实现之一

在架构设计上,我们做了一个重要的决策:记忆能力通过 Protocol 层抽象,mem0 只是当前的一个实现

┌─────────────────────────────────┐
│         Agent 框架层             │
│   (只依赖 MemoryProtocol 接口)    │
├─────────────────────────────────┤
│      MemoryProtocol 抽象层        │
│   - search(query)               │
│   - add(conversation)            │
│   - update(id, content)          │
│   - delete(id)                  │
├─────────────────────────────────┤
│      实现层(可替换)              │
│   ┌─────────┐  ┌──────────────┐  │
│   │ mem0    │  │ 自研方案(未来) │  │
│   │ +Qdrant │  │              │  │
│   └─────────┘  └──────────────┘  │
└─────────────────────────────────┘

这意味着:

  • 记忆系统的调用方(Agent 框架)只依赖抽象接口
  • mem0 的具体实现被封装在 Protocol 层内部
  • 后续如果需要切换到自研方案或其他框架,只需要替换实现层,不需要修改调用方代码

这种设计的好处是显而易见的:

  1. 降低锁定风险:不会被 mem0 这一个框架绑架
  2. 灵活演进:可以根据实际需求逐步优化或替换记忆实现
  3. 并行实验:可以同时运行多套记忆方案做对比测试
  4. 成本控制:未来如果自研方案的成本更低,可以无缝切换

四、用户体验升级:Before vs After

Before:每次都从零开始

在没有记忆系统之前,用户的使用体验是这样的:

对话 1(4 月 1 日):
  用户:"什么是我们的 GMV 计算口径?"
  AI:"请告诉我你们的 GMV 定义。"
  用户:"GMV 包含已付款和待付款订单,不包含退款。"
  AI:"好的,我理解了。"

对话 2(4 月 2 日):
  用户:"本月 GMV 是多少?"
  AI:"本月 GMV 是 1,200 万。"
  (没有带时间范围,没有用正确的口径)
  用户:"我说过 GMV 要包含待付款的,而且要带上时间!"
  AI:"抱歉,本月(2026-04-01 至 2026-04-30)GMV 是 1,350 万,
       包含已付款和待付款订单。"

对话 3(4 月 3 日):
  用户:"华东区的情况呢?"
  AI:"请问你指的是哪个区域?"
  (不记得用户主要关注华东)
  用户:"算了,我自己查吧。"

对话 4(4 月 5 日):
  用户:"生成月度报告。"
  AI:"好的,请问你需要包含哪些内容?图表用什么形式?
       关注哪些区域?时间范围是?"
  用户:"......"
  (用户关闭了浏览器)

每一次对话,用户都在重复相同的事情。久而久之,用户对 AI 的耐心被消耗殆尽。

这不是用户的问题,而是产品的问题。

After:AI 像一个越来越懂你的同事

有了永久记忆系统之后:

对话 1(4 月 1 日):
  用户:"什么是我们的 GMV 计算口径?"
  AI:"请告诉我你们的 GMV 定义。"
  用户:"GMV 包含已付款和待付款订单,不包含退款。"
  AI:"好的,我理解了。"
  (后台:记忆写入完成)

对话 2(4 月 2 日):
  用户:"本月 GMV 是多少?"
  AI:"本月(2026-04-01 至 2026-04-30)GMV 是 1,350 万,
       包含已付款和待付款订单。"
  (自动带上了时间范围和正确的口径)
  用户:"不错。"

对话 3(4 月 3 日):
  用户:"华东区的情况呢?"
  AI:"华东区本月 GMV 为 480 万,占比 35.6%,环比增长 12.3%。"
  (自动应用了用户关注华东区域的记忆)

对话 4(4 月 5 日):
  用户:"生成月度报告。"
  AI:直接按照用户偏好的格式、关注的区域、正确的口径生成报告。
  包含:华东区各省份数据、同比环比柱状图、时间范围标注。
  用户:"很好,直接发给老板。"

AI 不再需要用户反复教导。它在默默学习,然后默默应用。

关键差异对比

维度BeforeAfter
新对话启动零上下文自动加载相关记忆
指标定义每次需要重新说明一次定义,全局生效
偏好设置重复声明自动应用
错误纠正纠正后下次仍然犯错纠正后永久生效
团队协作每个人单独教 AI一个人定义,全员受益
新人上手需要教 AI 一遍AI 已经认识团队
用户感受"它不记得我""它越来越懂我"

前端交互:Memories Tab

为了让用户对记忆系统有充分的控制和可见性,我们在 Data Agent 配置页面新增了 "Memories" Tab

这个 Tab 提供了以下功能:

1. 记忆总览

展示当前 Agent 的所有记忆条目,按时间倒序排列,每条记忆包含:

  • 记忆内容(结构化文本)
  • 创建时间
  • 来源(哪次对话中提取)

2. 搜索记忆

支持关键词搜索,快速定位特定的记忆条目。比如搜索"GMV"可以立即找到所有与 GMV 相关的记忆。

3. 手动添加记忆

用户可以直接在界面上手动添加记忆条目,而不需要通过对话来触发。这对于一些不需要通过对话表达的规则和偏好非常有用。

4. 删除记忆

用户可以对不再需要的记忆进行删除操作。比如某个指标口径已经变更,旧的口径记忆就可以删除。

5. 开关控制

用户可以选择关闭记忆功能。在某些场景下(如临时分析、测试数据等),用户可能不希望记忆系统介入。

6. 记忆质量反馈

未来我们将增加记忆质量反馈功能,用户可以对记忆的准确性进行标记,帮助系统持续优化。


五、挑战与应对

任何新系统的引入都会带来新的挑战。记忆系统也不例外。以下是我们在实践中遇到的主要挑战以及应对策略。

挑战一:LLM 调用成本

问题

mem0 的 add 操作每次需要 1-2 次 LLM 调用(用于从对话中提取结构化记忆)。对于高频使用的场景,这笔开销不容忽视。

假设一个团队每天有 50 次对话,每次对话产生 1 条记忆,那么每天额外需要 50-100 次 LLM 调用。一个月就是 1,500-3,000 次。

应对策略

  1. 异步化执行

    记忆写入在回复完成后异步执行,不增加用户感知的响应延迟。用户看到回答的速度不受影响。

  2. 批量处理

    对于短时间内的多轮对话,合并提取而非逐条处理。比如用户在 10 分钟内连续问了 5 个问题,我们可以将这 5 轮对话合并为一次提取操作,而不是 5 次。

  3. 按需开启

    用户可以在 Agent 配置中控制是否开启记忆功能。对于一些临时性的分析任务,可以关闭记忆以避免不必要的 LLM 开销。

  4. 阈值控制

    当记忆库达到一定规模后,可以降低写入频率。因为随着记忆库的完善,新记忆的边际价值会逐渐递减。

挑战二:中文场景的记忆质量

问题

mem0 的事实提取 prompt 主要面向英文场景优化。在中文对话中,提取的准确性和结构化程度可能受到影响。

比如,英文场景下:

  • 用户说:"Always include the date range when reporting sales."
  • 提取为:"User prefers date range included in sales reports."

中文场景下:

  • 用户说:"以后回答销售额带上时间。"
  • 可能提取为:"用户希望销售额包含时间。"(语义丢失)
  • 理想提取:"用户要求在报告销售额指标时,同时标注具体时间范围。"

应对策略

  1. 结构化记忆降低语言依赖

    AskTable 的记忆内容偏向结构化(指标定义、偏好声明等),这类内容在跨语言场景下受语言模型的影响较小。因为结构化的内容本身就包含了足够的语义信息。

  2. 逐步优化 Prompt

    后续可以根据中文场景的特点,定制提取 prompt 和记忆 schema。我们已经在规划针对中文的优化方案。

  3. 影响评估与监控

    在实际使用中持续监控记忆质量,用数据驱动优化。我们会定期抽查记忆条目的准确性,确保提取质量在可接受范围内。

挑战三:调试和可观测性

问题

当记忆系统出现"记错了"或"召回了不相关的记忆"时,如何定位问题?记忆系统的黑盒特性使得调试成为一个挑战。

典型的调试场景包括:

  • AI 应用了错误的记忆导致回答偏差
  • 记忆没有被正确召回,AI 表现得像"忘了"
  • 记忆之间存在冲突,AI 不知道该应用哪条

应对策略

  1. 前端可见性

    在 Data Agent 配置页面的 Memories Tab 中,用户可以:

    • 查看当前 Agent 的所有记忆条目
    • 搜索特定记忆
    • 手动添加记忆
    • 删除错误或不需要的记忆
    • 通过开关控制记忆功能的启用/禁用

    这种可见性让用户不再是"盲人摸象",而是可以清楚地看到 AI 记住了什么。

  2. Protocol 抽象确保可替换

    通过 Protocol 层的抽象,确保 mem0 只是实现之一。如果后续发现 mem0 在可观测性方面不够好,我们可以切换到自研方案,提供更详细的 Trace 和 Debug 信息。

  3. 内部 Trace 记录

    系统会记录记忆的检索和写入过程,包括:

    • 检索时使用了什么 query
    • 返回了哪些记忆条目
    • 每条记忆的相关性分数
    • 写入时提取了什么内容
    • 写入是否成功

    这些 Trace 信息为问题排查提供了数据支撑。

挑战四:记忆冲突处理

问题

在 Agent 级共享记忆的场景下,不同用户可能对同一指标有不同定义。比如:

  • A 用户说:"GMV 包含退款金额。"
  • B 用户说:"GMV 不包含退款金额。"

这两条记忆是矛盾的。AI 应该听谁的?

应对策略

  1. 时间戳优先级

    最新的记忆覆盖旧的记忆。这符合"业务口径以最新定义为准"的常规逻辑。

  2. 冲突提示

    当系统检测到潜在的记忆冲突时,可以在 Memories Tab 中标记出来,提醒用户注意。

  3. 手动管理

    用户可以在 Memories Tab 中查看和编辑记忆,手动解决冲突。对于重要的指标定义,建议由数据负责人统一管理。

  4. 精细化隔离(未来)

    考虑在特定场景下支持用户级隔离的记忆空间,与 Agent 级共享记忆并存。比如某些偏好是个人化的(如图表颜色偏好),而某些定义是团队共享的(如 GMV 口径)。


六、未来演进

永久记忆系统是 AskTable AI 能力升级的第一步,但不是最后一步。以下是我们正在规划和探索的方向。

1. 记忆的分类与层级

当前的记忆系统是扁平化的——所有记忆存储在同一个空间中。未来我们计划引入记忆分类

  • 偏好记忆:用户的格式偏好、展示习惯等
  • 定义记忆:指标口径、业务术语的定义
  • 上下文记忆:特定项目或任务的上下文信息
  • 纠错记忆:用户纠正过的错误理解

不同类型的记忆在检索和应用时会有不同的策略:

  • 偏好记忆的检索阈值更低(宁可多召回一些偏好)
  • 定义记忆的检索更精确(口径不能错)
  • 纠错记忆的优先级更高(避免重复犯错)

2. 记忆的生命周期管理

记忆不是永恒不变的。随着业务的变化,某些记忆会过期、失效或需要更新。未来我们将引入:

  • 自动过期:长时间未使用的记忆自动降级,不再优先召回
  • 版本控制:指标定义变更时保留历史记录,支持回溯
  • 冲突检测:自动发现并提示矛盾的记忆条目
  • 记忆衰减:根据使用频率和时间自动调整记忆的权重

3. 记忆的主动学习

当前的记忆系统是被动式的——只有在对话中用户明确声明时才会提取记忆。未来我们探索:

  • 主动询问:当 AI 发现用户多次重复相同内容时,主动建议建立记忆。例如:"我注意到您多次提到要带时间范围,是否将此设为默认偏好?"
  • 推荐确认:AI 基于历史行为推断可能的偏好,向用户确认。例如:"我注意到您经常关注华东区,是否将此设为默认关注区域?"
  • 智能推理:从用户行为中推断偏好,而非依赖显式声明。比如用户每次都手动调整图表类型,系统可以自动学习这个偏好。

4. 多 Agent 记忆协同

随着 AskTable 支持更多类型的 Agent,不同 Agent 之间的记忆共享和协同将成为一个重要课题:

  • 销售 Agent 学到的客户偏好,能否辅助客服 Agent?
  • 运营 Agent 总结的规律,能否被分析 Agent 复用?
  • 如何在不泄露隐私的前提下实现跨 Agent 知识流动?

我们设想的未来架构是:

┌─────────────────────────────────────┐
│           组织级知识图谱              │
│   (跨 Agent 共享的元知识和业务定义)    │
├────────────┬────────────┬────────────┤
│ 销售 Agent │ 运营 Agent │ 分析 Agent │
│  专属记忆   │  专属记忆   │  专属记忆   │
└────────────┴────────────┴────────────┘

在组织级层面,共享通用的业务定义和术语;在 Agent 层面,保持各自的专属记忆。这样既保证了知识的一致性,又保证了记忆的针对性。

这些问题我们将在后续的版本中逐步探索。


总结

永久记忆系统的本质,是让 AI 从一个"每次都是陌生人"的工具,变成一个"越来越懂你"的同事。

这不是一个锦上添花的功能,而是对话式 AI 从可用走向好用的基础设施

在 AskTable 的实践中,我们通过 mem0 + Qdrant 的技术架构,实现了:

  • 跨会话记忆:关闭浏览器再打开,AI 依然认识你
  • Agent 级共享:一个人教,团队受益
  • 读写分离:不牺牲响应速度,异步化记忆学习
  • Protocol 抽象:保持技术选型的灵活性
  • 前端可见:记忆可查、可改、可删、可控

同时,我们通过前端可见的记忆管理功能,让用户能够查看、编辑、控制自己的记忆数据,确保记忆系统的透明度和可控性。

我们对记忆系统的设计哲学可以概括为一句话:

好的记忆系统不应该让用户感知到它的存在。 它应该像人类助理的记忆一样——自然、可靠、不需要刻意维护。

如果你对 AI 数据分析的智能体架构感兴趣,欢迎阅读我们关于 AskTable AI Agent 工作原理 的深入解析,以及 AskTable 如何将数据分析师打包为 AI 的文章。

关于记忆系统如何让 AI 成为不断成长的"数据团队",我们也有一篇专门的讨论:记忆系统:让 AI 成为不断成长的数据团队


核心观点:好的 AI 助手不应该让你每次都重新介绍自己。它应该记住你说过的每一句话,并在下一次对话中默默应用。这就是永久记忆的意义——不是技术炫技,而是让交互回归自然。

需要帮助规划你的企业AI转型?

从认知建立到落地陪跑,我们提供完整的企业AI服务

无论是刚开始评估AI,还是已经准备好落地,我们都能提供对应的支持