Skip to content

在不同对话之间使用记忆 ​

amux 记忆用于保存经过确认、以后仍会用到的偏好、约定和经验。它由 Hub 保存为 Markdown 文档,供有权限的 Agent 按需读取。本指南说明如何启用、验证保存、跨对话查找、更正和 遗忘,以及如何理解记忆的共享范围。

记忆和其他上下文有什么区别 ​

内容保留在哪里、怎样使用新对话是否自动拥有它
当前 Session 的原生历史当前 Agent 对话及其可恢复历史新建独立 Session 不会复制整个历史
飞书话题上下文Bridge 为当前输入选择的有限相关消息取决于话题、选择规则和预算,不是全群历史
工作区文件所选 Runtime 的文件系统取决于工作目录与访问权,不等于记忆文档
amux 记忆Hub 上、由有效身份决定的记忆作用域新对话通过记忆协议及工具读取,而非直接拷贝全部内容

更换专家或 Runtime 不会自动删除记忆;新开话题也不是删除记忆的方法。反过来,之前在 聊天里说过的话不一定已持久保存,只有成功的写入结果才能证明保存完成。

由负责人启用 ​

  1. 负责人在私聊 /amux → 实验功能中打开 Agent 记忆。
  2. 保存设置,检查待重启提示,并在合适时机确认重启系统。
  3. 新建一段对话或通过对应管理入口建立新连续会话。
  4. 请求助手读取记忆入口并报告是否可用;不要仅以实验开关的显示值判断成功。

功能默认关闭,使用单一 Hub 级开关 memory.enabled,远端 Runtime 不需要分别启用。 只保存不重启不会改变正在运行的策略。旧的未绑定记忆协议的对话不会静默迁移;首次启用 后应建立新对话,而不是依赖旧 Session 重启就获得新能力。

当前支持 Codex、Claude 和 Pi 的相应受管启动。Runtime 必须有可执行的 amux CLI, Agent 才能访问 Hub 记忆;具体工具缺失会产生错误或不可用提示。其他 Provider 不能仅凭 接口相似就假定支持同样的记忆契约。

完成一次“保存 → 新对话读取”的验证 ​

明确要求保存什么 ​

建议从一条真实、已确认且不敏感的约定开始,例如:

请把这项已确认的约定保存到 amux 记忆:本项目的审阅报告应包含“结论、证据、未解决 问题”三部分。先检查是否已有相关记录,再写入 topics/review-format.md,必要时在 MEMORY.md 保留简短指针。完成后告诉我实际保存的路径与内容;失败就明确说没有保存。

路径是记忆工具中的逻辑路径,不是让 Agent 在当前代码仓库新建一个同名文件。写入前 应先读取已有文档,以便保留其他约定并获得当前修订号。

核验持久化,而非只看回复 ​

请助手在写入后重新读取该路径,报告已保存内容。新建独立对话后,再请求:

请先查找我们约定的审阅报告格式,说明读取的记忆路径,然后按该格式审阅下面的材料。

这能同时验证工具、作用域和跨对话使用。若新对话找不到,应检查身份、绑定和搜索条件, 而不是重复声称“你应该记住”。未完成写入、只存在于上一次聊天中的文字不会因此变成记忆。

运维者可以核对自己获授权作用域内的文档:

sh
amux memory search "审阅报告"
amux memory show topics/review-format.md

CLI 使用当前认证身份的作用域,不会因为你在排障就自动切换到某位飞书用户的私有记忆。

Agent 何时会读取、保存记忆 ​

受管启动向 Agent 提供固定协议:在新原生对话开始时读取小型 MEMORY.md 入口;涉及 以前的工作、偏好、约定或反复出现的问题时,先搜索并读取相关片段;收到明确的记住请求、 稳定的偏好更正或可复用且已验证的经验时,再按需写入。

这是一套 Agent 使用工具的协议,不是 Hub 每轮自动全文检索或重写提示词。模型是否正确 遵循仍应通过工具结果核验;没有历史需求的每一轮对话不需要搜索全部记忆。

记忆不授予操作权限,也不覆盖本轮明确指令和已验证的新事实。密码、令牌、临时授权和 未经证实的猜测不应作为记忆保存;这是受管记忆协议中的明确约束。

怎样组织内容与处理读取上限 ​

把少量通用偏好和主题索引放在 MEMORY.md,把详细内容放到主题文档。例如:

text
MEMORY.md
projects/example/release-checklist.md
topics/review-format.md

projects/example 只是组织示例,目录名本身不创建权限边界。具体限制如下:

内容当前限制或语义
根入口 MEMORY.md最多 2 KiB、64 行;用于简短偏好和指针
单个记忆文档最多 64 KiB;详细材料按主题拆分
每个作用域最多 1024 个文件、16 MiB 存储
搜索字面关键词匹配,返回有限摘要;不是向量语义搜索
读取有输出预算,可能返回后续偏移信息;只读首段不等于读取全文
路径相对于授权作用域;绝对路径、..、隐藏组件和不安全链接会被拒绝

入口预算只针对根目录下准确命名的 MEMORY.md。遇到超限时移动细节并保留指针,不要 把整篇长报告塞入入口。搜索结果可能因扫描预算不完整;结果为空或被截断时,应检查 提示、换用已知路径或关键词,再判断是否真的没有记录。

谁共享同一份记忆 ​

安装与执行身份记忆范围
Hub 未启用用户隔离策略全局记忆,在各 Runtime 间共享,不按 Profile 或飞书群自动分区
Hub 启用了用户隔离策略按认证后的有效 Principal 分区
服务身份执行使用该服务 Principal 的范围,不自动使用点击卡片的人的私人记忆
同一身份换专家或 Runtime仍由 Hub 身份策略选择范围,不因机器或专家名称变化另建一份

因此,“新建私聊”“换一个专家”或“换一个群”都不能替代隐私隔离。跨用户隔离需要由 运维者配置身份策略。获得某个 Session 的访问权,也不等于能访问另一个 Principal 的记忆。

受管对话创建时固定记忆范围的前提条件,后续恢复或持久实例复用保留它。若身份或策略 变化造成不匹配,请求会失败,不会偷偷回退到全局记忆。请负责人检查后建立合适的新对话。

更正或忘记 ​

更正示例:

请把审阅报告格式的“未解决问题”改为“风险与待确认项”。先读取当前文档,保留其他 有效内容,更新相关主题和入口指针;告诉我实际修改了哪些路径。

遗忘示例:

请忘记已废止的旧发布约定,检查 MEMORY.md 和相关主题中的副本及指针。只删除该约定, 保留其他内容,并报告处理成功和失败的部分。

写入与删除需要当前修订号;新建使用 absent。如果其他执行已修改文件,旧修订号会 导致冲突。正确做法是重新读取、合并最新内容后再写,不能绕过检查覆盖别人刚保存的约定。 多个文档的更改不是一个事务,部分成功时必须明确报告剩余处理项。

删除文档不会抹去已经读入当前对话的内容,也不会删除其他文件或外部系统中的副本。 若需要让当前 Agent 不再参考刚读过的旧内容,还应新开上下文;仅执行 /clear 又不会 删除 Hub 中仍然存在的记忆。

关闭与重新启用 ​

关闭实验并重启会拒绝记忆工具访问,但保留文件。已有受管会话保留固定协议和对原生 自动记忆的抑制,不会因为 amux 记忆关闭就回退到另一套自动记忆存储。

重新启用后,绑定兼容的旧受管会话可继续访问;原先没有记忆绑定的旧会话仍需新建。 Codex 与 Claude 的受管启动使用各自支持的局部控制关闭原生自动记忆,Pi 已审阅的核心 不带同类自动长期记忆;自定义扩展需要单独评估。amux 不直接迁移用户原生记忆文件。

常见问题 ​

现象检查或处理
开关开了,工具仍不可用是否完成 Hub 重启,是否新对话,Runtime 的 CLI 是否可用
同一个问题在新对话里没有回忆检查写入是否成功、范围是否一致、Agent 是否实际调用搜索和读取
CLI 能看到,飞书看不到比较有效身份和受管绑定,不把不同作用域混为一谈
保存提示冲突重新读取修订号并合并,而非重复用旧值提交
MEMORY.md 太大把详细内容移到主题文档,入口只留简短偏好与指针
已删除但当前回答仍提到旧约定旧内容可能已进入对话;检查其他副本,并新开上下文
禁用后 Agent 仍说已记住要求工具成功凭据;不可用时应报告未保存,不应改用另一个存储

当前行为详见记忆模型,精确参数见 CLI和 MCP参考。

Released under the Apache-2.0 License.