记忆与知识库

了解 EthanKit 如何管理长期记忆 workspace、embedding 召回、品牌知识库流水线、chunks 审核和术语候选。

记忆的作用

记忆让 agent 在不同 session 之间保留有价值的事实。启用记忆后,agent run 可以在开始时召回相关内容,并在结束后写入新的记忆事件。

适合写入记忆的内容包括:

  • 用户或项目的长期偏好。
  • 已确认的业务规则。
  • 反复需要引用的上下文。
  • 某个 workspace 下稳定存在的资料线索。

不适合写入记忆的内容包括一次性临时输入、敏感密钥和未经确认的猜测。

Memory workspace

管理员可以创建多个 memory workspace,把不同 agent 或不同业务场景的记忆隔离开。

Memory 页面可以:

  • 创建 workspace。
  • 重命名 workspace。
  • 删除非默认 workspace。
  • 选择 memory backend。
  • 为 pgvector workspace 选择 embedding model。
  • 查看和清理 memory records。

Agent Builder 里启用 Memory 后,可以选择 workspace,并设置召回数量。召回数量越大,agent 能看到的历史片段越多,但上下文占用也越高。

Embedding 与召回

语义记忆需要 embedding model。管理员在模型配置区添加 embedding model 后,workspace 可以使用 pgvector 进行语义召回。

pgvector workspace 必须选择有效的 embedding 配置。配置缺失或服务不可用时,系统会明确报错,不会静默切换成普通检索。

Workspace backend 常见选择:

Backend适合场景
Lexical (PG)基础文本检索,不依赖 embedding。
Semantic (pgvector)语义召回,需要 embedding model。
Mem0自托管外部记忆服务,使用原生记忆提取与语义召回。

Mem0 通过独立的自托管 REST 服务接入。EthanKit 使用 team 和 workspace 组合生成隔离的 user_id,用 session/run id 记录来源。选择 Mem0 后若服务未配置或不可达,系统会显示错误,不会回退到 PostgreSQL。

OpenViking 不再是在线记忆 backend。控制台对话关闭后,或渠道会话达到空闲 checkpoint 后,系统会通过持久化任务把完整对话和经过清洗的运行摘要定向提交给 OpenViking。它的内容不会注入 agent prompt,也不会参与在线召回。旧 OpenViking workspace 可在 Memory 页面显式迁移到 Mem0;迁移仅复制用户事实、偏好、实体、事件和笔记,不复制 experiences/trajectories。

Memory records

Memory records 页面会显示记忆内容、状态、memory key 和更新时间。状态筛选、事件历史、置信度和重要性会根据当前 backend 的真实能力显示;外部 backend 不支持的字段不会被伪造。

管理员可以展开一条 memory 查看事件历史,也可以删除 active memory。删除前建议确认这条记忆不是当前 agent 仍需要的长期事实。

知识库是什么

Knowledge 页面用于从受控网页来源构建品牌知识库。它和 Memory 的区别是:

能力来源主要用途
Memoryagent 运行中沉淀的长期事实。跨 session 记住偏好、规则和上下文。
Knowledge管理员指定的网页、站点地图和品牌资料。形成可审核的 pages、chunks 和术语候选。

知识库页面会展示:

  • Brands:已配置的知识库品牌。
  • Snapshots:抓取快照。
  • Documents:抓取后的页面或文档。
  • Chunks:切分后的可审核片段。
  • Terms:从资料中挖掘出的品牌术语候选。
  • Sources:独立记录的网页抓取、文件或粘贴文本来源。
  • Document versions:文档版本、当前版本和发布状态。

当 agent 回答需要稳定引用产品材料、品牌语汇或项目知识时,把相关资料放进知识库比把长文本直接贴进 prompt 更容易维护。

知识库流水线

构建知识库时,管理员通常按这个顺序操作:

  1. 选择或填写 brand。
  2. 添加 Source URLs 或 Sitemap URLs。
  3. 设置 Max URLs,限制抓取范围。
  4. 点击 Dry run,预览会选中哪些 URL。
  5. 点击 Run pipeline,执行 crawl、extract、mine terms。
  6. 查看 run summary、run logs、pages & chunks、term candidates。
  7. 完成 chunk 审核并准备一个 draft release。
  8. 为该 release 构建结构化索引,以及已经启用的向量索引。
  9. 索引门禁通过后激活 release。

Dry run 只做发现和预览,不写入最终知识材料。Run pipeline 才会生成可审核内容。

审核 chunks

Pages & chunks 区域用于审核抽取结果。管理员可以:

  • 逐条编辑 chunk 文本。
  • Approve 或 Reject 单个 chunk。
  • Reset 为 pending。
  • 批量选择并 approve pending chunks。
  • 按页面维度选择或批量处理 chunks。

只有经过审核的内容才适合进入稳定知识材料。遇到抓取噪声、导航文字或重复页脚时,优先 reject 或编辑。

Agent 只会召回 active 知识库中 current、published 的文档版本,以及状态为 approved 或 edited 的 chunks。新抓取版本在审核通过后会先进入不可变的 draft release,不会立即替换当前已发布版本。只有结构化索引和已经为该知识库启用的向量索引都完整覆盖目标 release,系统才允许激活;激活后旧版本会自动归档,管理员仍可在 Settings 中查看。

发布质量门禁

Settings 中的 Release quality gate 可以绑定一个 retrieval golden dataset 和固定的 grader revision。启用门禁后,draft release 必须先完成所需索引,并通过当前数据集版本与 grader revision 的回归,才能激活。

当发布结果已经满足索引要求,或最后一个必需索引构建完成时,系统会自动冻结目标 release 与当前 active release,并幂等排队一次回归。重复的索引请求不会重复创建评测;数据集版本、grader revision 或冻结依赖发生变化后,旧结果不再满足当前门禁。失败的回归可在 Settings 中手动重跑,并可跳转到 Eval workbench 查看实验详情。

审核术语

Term candidates 会列出系统从 chunks 中挖掘出的品牌术语、标准化形式、来源类型、分数和证据数量。

管理员可以把术语标记为 approved、needs review 或 rejected。适合保留的术语包括产品名、功能名、品牌固定说法和容易被模型写错的专有词。

只有 approved 术语会进入 Agent 召回上下文;候选和 needs review 状态仅用于管理工作台。

知识库生命周期

Knowledge 页面中的 Settings 支持:

  • 修改知识库名称和描述。
  • 归档或恢复知识库;归档后不能继续摄取,也不会被 Agent 召回。
  • 删除知识库及其来源、文档、chunks 和术语。
  • 重命名、归档或删除来源记录。
  • 归档或删除单个文档版本。

删除操作不可恢复。需要暂时停止使用时优先选择 Archive。

查看和清理记忆

管理员可以在记忆页面查看 memory records、状态、置信度、重要性和历史事件。确认无用或错误的记忆后,可以删除,避免后续 run 继续召回错误内容。

知识库内容则优先通过 chunk / term review 管理。不要把一次性临时资料长期放进知识库。