AdminChat Memory 与对话设置
Memory 用于保存当前用户的长期工作偏好、项目约定、决定和参考信息, 与聊天历史、知识库检索、Workspace 文件和 SystemMessage 都不是同一概念。 它不授予工具权限,也不能替代当前用户指令或系统安全规则。
通过 AdminChat 侧栏的 Memory 按钮,或新建会话/当前对话中的 Memory → Memory / 对话设置 进入管理弹窗。旁边的问号打开本页或相关章节; 中文界面使用中文文档,其他界面语言使用英文文档。 另见 Chat 基本操作与 Workspace 权限。
第一次使用
- 在新建会话入口选择 Memory 模式;已有会话可在输入区的 Memory 下拉框中切换。
- 打开 Memory 设置,在“记忆条目”中手工添加一条非敏感工作偏好,例如“优先使用简洁的列表回答”。
- 选择“我的全局”或当前 Workspace 作用域,保存条目。没有绑定 Workspace 的会话不能编辑其记忆。
- 使用“只读”或“学习”模式发送相关问题,在“本轮加载”检查提供给模型的条目。
- 如需自动学习,选择“学习”,明确表达“以后请记住……”,再检查系统更新回执和条目列表。
助手说“已记住”不代表已经保存。 自动提取可能在助手回复之后完成, 只有系统确认数据库写入成功的更新回执才代表该次更新已保存。
关闭、只读与学习
| 模式 | 本轮使用长期记忆 | 自动学习 |
|---|---|---|
| 关闭(默认) | 不注入 Memory 条目 | 不执行 |
| 只读 | 加载相关条目 | 不执行 |
| 学习 | 加载相关条目 | 满足触发条件后尝试提取、校验和保存 |
模式按会话保存;新建会话的下拉框配置即将创建的会话,不修改所有历史会话。 关闭 Memory 不会删除已有条目,也不会关闭独立配置的 SystemMessage。 “只读”限制的是自动学习,不禁止用户在管理弹窗中手工编辑。
学习模式需要可用的 PromptRange Memory 提示词提供程序和 Chat 模型; 只读模式不需要初始化学习提示词或调用提取模型。 学习会额外调用模型,可能产生费用,并不保证每次对话都会提取出条目。 当前实现仅在本轮用户原话出现“记住、以后、偏好、纠正、忘记”等中英文触发词时尝试, 过长输入或明确要求不要保存的表达不会进入学习;隐含偏好可能被漏过,可改为手工添加。
用户全局、Workspace 与存储边界
- 隔离边界是租户 + 当前用户。“我的全局”不是所有管理员共享的记忆。
- Workspace 作用域来自当前已授权会话,只展示自己的全局记忆和当前 Workspace 的记忆。 没有选定会话时可管理自己的全局记忆。
- 同一内部事实键存在全局与当前 Workspace 版本时,检索优先选用 Workspace 版本。 文本看起来相似不保证内部事实键相同。
- 主存储是加密的数据库记录,不会自动创建或读取 Workspace 中的
Memory.md。 同名工作区文件只是普通文件,也不会通过资源分享自动暴露数据库记忆。 - 清除聊天记录、关闭模式、删除记忆是不同操作,不要把其中一个当作其他操作。
编辑条目、锁定、归档与删除
在“记忆条目”页添加或编辑单条内容:
| 字段 | 用途 |
|---|---|
| 作用域 | 我的全局,或当前会话 Workspace |
层级 core | 常驻候选,但仍受上下文预算限制 |
层级 topic | 按问题与主题/文本的词法相关性选择;必须填写主题 |
层级 archive | 保留条目但不加载,不等于删除 |
| 类型 | preference、project、decision、reference |
| 锁定 | 禁止 AI 修改或删除;仍可手工编辑,不代表每轮一定加载 |
| 过期时间 | 到期后不加载,不自动删除记录 |
当前上限为每个租户/用户跨所有作用域共 80 条,每条内容 300 字符, 主题最多 40 字符。隐藏的其他 Workspace 条目也计入总数; 满额时拒绝新增,不会自动驱逐其他 Workspace 的记录。
“变更历史”最多保留 100 次记录。删除条目会清除其历史内容与证据, 留下删除元数据,但不会删除原始聊天、已下载文件或备份。 保存冲突会保留较新数据库版本;先保留本地草稿,再重新打开设置核对,不要盲目覆盖。 未保存 Markdown 草稿时,页面会阻止切换到单条写入,避免互相覆盖。
本轮加载与更新回执
“本轮加载”报告本页面最近一轮提供给模型的条目及选择原因, 不保证模型实际采用,也不是全部已存储条目的清单。 当前问题相关的 Topic 条目与 Core 候选参与选择,归档、过期和其他 Workspace 的条目不加载。 预算不足时整条跳过,不截断事实。
当前 Memory 上下文参考预算为 1000 tokens,Core 条目最多 300 tokens。 已知模型使用相应 tokenizer;未知模型标为 UTF-8 保守估计,不冒充精确 Token 数。 报告包含记忆边界提示,不包含 SystemMessage、历史消息和模型协议开销, 不能作为完整请求费用;计费应核对模型实际 Usage。 加载报告及本轮更新回执只保留在当前页面,刷新后不保留。
请区分三件事:数据库里存有条目、本轮加载了条目、本轮更新了条目。 更新回执会说明全局/Workspace 的变更数,或未更新原因:
- 关闭/只读、未满足学习触发条件;
- 没有候选、内容无差异、条目已锁定;
- 容量已满、并发版本冲突;
- 输出格式、证据或安全校验拒绝、提取超时或调用失败。
提取只使用当前用户原话及有限的相关既有记忆,不把助手回答、 附件、工具输出或整个聊天历史当作新增事实证据。 校验失败时不应根据助手的口头承诺认为数据已写入;可查看本轮 PromptCode 辅助排查。
Markdown 预览、编辑与下载
这些页签是用户全局条目的 Markdown 投影,不包含 Workspace 条目。 下载的是当前编辑内容,可能包含尚未保存的草稿,并非“数据库全部记忆”的备份。
支持以下格式,标题应保留英文拼写:
# Memory
## Core
- Prefer concise bullet lists.
## Topic: documentation
- Include a short example when explaining an API.
## Archive
- An old convention retained for reference.使用 - 开头的单行条目,保持每个事实唯一;不支持任意 Markdown 文档结构。 整个编辑文本最多 32000 字符,条目和主题仍受上述限制。 保存 Markdown 会将新增/改写条目作为手工锁定条目处理;同一文本的既有条目会尽量保留身份。
“清空草稿”只修改编辑框,点击“保存更改”后才会清除相应的全局条目, 不清除 Workspace 条目。Workspace 记忆请在“记忆条目”页逐条管理。
SystemMessage 与 Memory 的区别
- 我的 SystemMessage影响当前用户的全部 Chat,不只当前会话。
- 全局 SystemMessage仅超级管理员可设置,影响当前租户所有用户; 单租户模式下影响本站全部 Chat。
- 两者各最多 2000 字符,保存后从下一轮生效,与 Memory 模式独立。
- 它们用于 Chat 对话,不用于标题生成、Memory 提取等内部结构化生成任务。 也不能授予工具权限或覆盖安全/授权规则。
个人设置使用“保存更改”,租户全局设置使用其独立的“保存全局 SystemMessage”按钮。 修改系统提示词不等于新增 Memory 条目,关闭 Memory 也不会撤销这些系统提示词。
部署、隐私与排障
- 升级 Admin 后完成与实际数据库类型匹配的管理员模块迁移,并重启对应服务。 数据库和 ASP.NET Core Data Protection 密钥都需持久保存,多实例使用一致的密钥配置。
- 旧版加密文件仅在没有数据库记录时迁入;已有数据库记录(包括清空后的记录)优先。 旧文件可能保留为迁移备份,应按保留策略处理,避免旧实例继续写旧存储。
- “学习”不可用时先检查 PromptRange 模块和模型配置;只读时没有新条目是预期行为。
- Workspace 内容缺失时,确认选中的是自己有权访问且已绑定该 Workspace 的会话。
- 只见“已记住”的回答但没有条目时,检查系统回执、模式、触发条件、锁定和容量,不要推断保存成功。
- 不录入密钥、密码、个人敏感资料或第三方机密。加密和自动校验不是完整的隐私识别保证; 下载的 Markdown 是普通明文文件,应自行保护。