Agent 记忆保存交互过程中形成的个体信息,知识库存放经过整理、可被多人查询的资料。前者跟着用户或任务变化,后者强调稳定来源和统一版本。把两类内容混在一起,常见结果是个人偏好污染公共答案,或历史对话挤占检索空间。
ZGI 的公开仓库把 memory 和 workspace knowledge 分开列出,并允许 Agent 绑定知识、文件和 Skill。这个结构提示了一条清楚的设计边界:长期资料进入知识库,用户偏好、任务进度和最近上下文进入记忆。
概念示意图:稳定资料进入公共书架,个人偏好和任务状态进入随身抽屉。
两类信息的更新方式不同
知识库里的内容通常有明确来源。产品手册、制度文件、项目文档、FAQ 和数据字典,都能找到原始文件与更新时间。资料更新后,需要重新解析或建立索引,旧版本也应有清理规则。
记忆来自一次次交互。用户习惯中文回答、某个项目使用固定模板、当前任务已经确认了三个字段,这些信息会随着场景推进而变化。它们未必适合被其他人看到,也不该自动变成团队知识。
两者的差异可以放在一张表里看:
| 观察项 | Agent 记忆 | 知识库 | | --- | --- | --- | | 主要来源 | 对话、任务状态、用户选择 | 文件、网页、数据库与正式资料 | | 作用范围 | 某个用户、会话或任务 | 一个团队、应用或授权人群 | | 更新频率 | 高频、随交互变化 | 按资料版本更新 | | 典型内容 | 偏好、上下文、未完成事项 | 规则、事实、流程、产品资料 | | 主要风险 | 记错、过期、跨用户泄露 | 版本混乱、权限过宽、检索失准 |
什么该进入记忆
判断标准可以看信息是否依赖当前对象。用户说“以后都用表格输出”,这条偏好只影响他的后续交互,适合进入用户记忆。任务执行到审批节点,下一次恢复还要从这里继续,这类状态适合进入任务记忆。
写入前要设置范围和有效期。一次性偏好可以只留在当前会话,长期偏好需要允许用户查看和删除;任务状态在任务结束后可以归档。没有范围的记忆很容易越积越多,模型每次都要面对一堆失去时效的背景。
敏感信息更要谨慎。身份证号、密钥、完整合同内容不应因为出现在对话里就被长期保存。记忆写入可以增加字段过滤、用户确认和过期清理,避免把聊天记录原样堆进存储。
什么该进入知识库
当一份信息需要多人使用、能找到来源、会按版本维护时,知识库更合适。公司报销制度、产品接口说明、客服处理规则都属于这一类。查询时要返回相关片段,同时保留文件名、章节和更新时间。
知识库也不适合无限收集。重复文件、扫描质量差的 PDF、过期制度和缺少标题的临时文档,会让检索结果越来越杂。入库时完成去重、权限分类和版本标记,比后来反复调模型更省事。
如果用户在对话中纠正了一条公共知识,系统可以先把纠正记录为反馈,交给资料负责人核验。核验通过后再更新知识库。直接把一句聊天内容写进公共资料,会绕开来源与审批。
回答时可以同时使用两者
一个采购助手查询公司差旅标准时,从知识库读取制度;用户已经选择高铁优先,这条偏好来自记忆。模型把稳定规则和个体选择放在同一次回答里,结果才会贴近当前任务。
组合时要标出优先级。正式制度应覆盖用户记忆中的旧习惯,当前明确指令又可以覆盖一般偏好。出现冲突时,Agent 应展示冲突来源,或暂停执行等待确认。
在 ZGI 这类可自托管 Agent Runtime 中,可以把 Agent 应用、知识、数据库、记忆、Skill 和工作流放在同一工作区管理。实际部署还要检查记忆的作用域、删除入口、知识权限与冲突规则,公开的功能列表无法替代这些业务配置。
开始设计前,拿十条准备保存的信息逐条判断:它属于谁,谁可以看,多久会过期,有没有正式来源。四个问题回答清楚,记忆和知识库的分工就不会只停留在名称上。
Gitee:gitee.com/zgiai/zgi