记忆与上下文
配置跨会话记忆图谱、后台自动提取与长对话的单次上下文摘要压缩
Clouisle 用两层机制解决对话的连续性与成本问题:
- 对话内上下文(消息分支 + 单次上下文摘要):会话进行时的实时历史。当组装好的请求超过预算时,系统把较早的历史压缩成一条摘要,只保留最近一段原文,避免模型窗口溢出。
- 跨会话记忆图谱(Memory Graph):跨越不同会话的持久知识网络,以实体和有向关系沉淀用户偏好、项目背景与核心事实。
没有独立的“会话摘要”子系统,也没有多级(警告/选择性/阻塞)压缩策略:压缩只有一种产物——一条由模型生成的上下文摘要。记忆功能本身就是实体/关系图谱,不是逐条对话文本的堆积。
启用跨会话记忆
- 打开 Agent 编排 > 记忆。
- 开启启用记忆(默认关闭)。
- 设置每次检索的最大记忆数,范围
1-50,默认10。 - 按需开启自动提取记忆(默认开启)。
- 保存并发布 Agent。用户在不同会话中对话时,Agent 会自动召回此前记录的事实。
| 设置 | 默认值 | 范围 | 说明 |
|---|---|---|---|
| 每次检索的最大记忆数 | 10 | 1-50 | 每次记忆检索注入模型的最大实体数 |
| 自动提取记忆 | 开启 | 开/关 | 是否自动从对话中提取并保存记忆;关闭后只能读取,不会新增记忆 |
| 重要性门槛 | 中 | 低 / 中 / 高 | 自动提取时只保存达到该重要性的内容 |

记忆图谱(Memory Graph)
持久记忆不是扁平文本,而是由**实体(Entities)与关系(Relations)**构成的有向知识网络。
可在个人菜单 > 我的记忆(/app/memories)或管理后台(/memories)中可视化探索和管理。
图片待补充:记忆图谱画布
文件:/images/memory-graph-canvas.png。截图内容:记忆图谱的交互画布页面,展示实体节点、关系连线、布局切换按钮(网格、层次、径向)与实体详情侧栏。截图需裁剪到主画布区域,并用主题色框线标出选中的实体节点。未来图片的 alt 与 caption 均使用"记忆图谱画布"。
实体类型
系统预定义了 10 种实体类型,用于归纳记忆内容:
| 实体类型 | 说明 | 示例 |
|---|---|---|
| 偏好 | 用户的个人偏好或习惯 | "偏好简洁的代码风格"、"习惯使用 TypeScript" |
| 项目 | 正在进行或参与的项目 | "电商重构项目"、"内部知识库系统" |
| 人物 | 提到的人物或角色 | "张经理(产品负责人)" |
| 组织 | 涉及的公司、部门或组织 | "研发部"、"供应商 A" |
| 技能 | 掌握的技术或专长 | "Python"、"PostgreSQL 性能优化" |
| 目标 | 阶段目标或意图 | "本季度完成文档站国际化上线" |
| 事实 | 客观事实或特定信息 | "生产集群部署在东京机房" |
| 概念 | 领域专业概念或术语 | "RAG 混合检索" |
| 地点 | 地点或物理方位 | "上海张江研发中心" |
| 自定义 | 其他无法归类的内容 | 用户自定义的事实标签 |
关系类型
实体之间可以建立 9 种有向关系,用于沿关系查找关联记忆:
| 关系类型 | 含义 |
|---|---|
| 偏好 | 偏好某项事物 |
| 使用 | 使用某项工具或技术 |
| 参与 | 从事或参与某项事务/项目 |
| 就职于 | 工作于某机构/公司 |
| 熟悉 | 了解或熟悉某人/某技术 |
| 属于 | 属于某个更高级别的实体 |
| 拥有目标 | 具有某种目标 |
| 位于 | 位于某地点 |
| 相关 | 具有关联性 |
图谱管理功能
- 多布局可视化:支持网格布局、层次布局与径向布局,并支持放大、缩小与适应视图。
- 实体检索与过滤:可按关键词搜索实体名称与描述,或按实体类型进行单选/多选过滤。
- 关系详情抽屉:点击实体查看其出向关系与入向关系,可直接编辑属性,或删除特定单向关系。
- 批量与安全删除:支持框选模式批量删除废弃或敏感记忆实体;删除实体会同时清理与它相关的所有关系。
记忆检索与时间权重
当 Agent 发起记忆检索时,系统会同时考虑语义相似度与记忆的新鲜度:语义接近、且最近更新过的记忆排在前面。默认情况下,约 30 天没有更新的记忆权重减半;越近期的记忆越容易被召回。
- 按时间筛选:检索时可以只看最近 N 天内创建或更新的记忆,适合「最近一周提到过什么」这类问题。
- 按关系展开:命中实体后,可以沿关系向外扩展 1-3 层(默认 1 层),一次最多从 5 个起点出发,方向可选只看指向它的关系、从它出发的关系,或两者都看。只有图谱中真实存在的关系会被返回,模型不会推断未返回的连线,也不会因此新增实体。
- 按类型筛选:可以只检索某一类实体(如只看偏好或项目)。
关闭自动提取记忆后,Agent 只能检索和读取已有记忆,不会写入新实体或关系。
管理后台自动提取
管理员可在站点设置 > 记忆(/site-settings/memory)配置待处理用户轮次的后台记忆提取:
| 设置 | 默认值 | 约束 | 说明 |
|---|---|---|---|
| 后台自动提取 | 关闭 | 开/关 | 后台异步提取的全局总开关 |
| 提取模型 | 空 | 已启用的语言模型 | 执行提取的模型;留空时使用默认回退模型 |
| 冷却时间 | 180 秒 | 10-3600 秒 | 两次提取之间的最小间隔,防止单次对话高频触发 |
| 待处理轮次上限 | 6 轮 | 1-50 轮 | 待处理用户轮次达到该数量时立即触发提取 |
Agent 必须在自身编排中勾选启用记忆与自动提取记忆,且站点设置的后台提取总开关处于开启状态,系统才会为该 Agent 的对话排队后台提取。
长对话如何压缩
上下文压缩默认开启,只有一种动作:把较早的历史交给模型生成一条摘要,用它替换掉那段历史,并保留最近一段原文轮次。
- 预算:可用输入预算由模型自身的上下文窗口决定,并预留输出空间与安全余量;模型未配置上下文窗口时使用默认值。
- 保留最近原文:最新一轮永远保留;工具调用尚未闭合的轮次不会被切开。压缩后如果仍然超出预算,会明确报错,而不是无限重试。
- 摘要生成:摘要长度有上限,并会截断到预算允许的长度;生成失败会重试若干次,全部失败时本轮以明确错误结束。
- 复用:摘要保存在会话上,后续轮次复用同一条摘要并增量更新,不会无限叠加。
压缩只影响本轮请求的上下文,不会删除历史消息;历史仍可在会话中查看。
排查
- 未记住偏好:确认 Agent 已启用记忆、信息达到重要性门槛,并使用同一已登录用户。
- 回复忽略很早的细节:长会话可能已把早期历史压缩成摘要;把关键约束重新陈述,或开启新会话。
- 压缩频繁:检查模型上下文长度、输出预留和工具结果体积;工具返回的大段内容会更快撑满预算。
- 记忆图谱存在错误事实:前往
/app/memories,通过搜索定位错误实体,点击编辑修正描述,或直接删除。 - 同一事实被反复记录:确认站点后台提取开关与 Agent 的自动提取设置是否符合预期;关闭自动提取后只保留读取。
这篇文章对你有帮助吗?