多数人工智能产品声称「记得你」。它们通常的意思是:当前的对话窗口还没滑出范围。你一关标签页,模型就不知道你是谁了。技术栈、偏好、约束,每次都要从零再说一遍。
ToRun 的长期记忆是完全不同的机制。本文描述它保存什么、每一轮如何编排,以及你能拿它做什么。
保存什么,为什么保存
ToRun 中的记忆是从你的对话里抽出的一组持久事实。把它们想成结构化的笔记——不是把逐字记录倾倒出来,而是一条条离散的观察:你偏好简洁的回答,你的项目用 MongoDB,你写 TypeScript,你有机器学习的底子,你要的代码示例得是某种写法。
这些事实与语言无关。哪怕你用土耳其语写了三次会话、用英语写了十次,记忆系统也不会裂成语言孤岛。顾及 Unicode 的规范化(NFKD 分解、去除变音符号、大小写折叠)确保用一种语言录入的事实,在你用另一种语言询问时会浮上来。这在实务上很要紧:一个覆盖 29 种语言的平台,负担不起一套只对讲英语的人好用的记忆。
新事实可以在模型察觉到持久信息时自动加入,你也可以明确指出(「记住我部署在 Azure 上」)。这两条路都不对你隐瞒。
记忆如何在调用时成为上下文
ToRun 的每一轮对话在提示到达模型之前,会编排三层上下文:
- 系统层——产品级指令、助手的角色与语气、生效的知识库指令。
- 摘要层——到此为止对话的压缩表示,自动管理,好让长线程不至于耗尽模型的上下文窗口。
- 近期层——最近的 N 轮原文,对你刚说过的话给以更大权重。
长期记忆嵌进系统层。检索这一步用当前消息给出的相关性信号,在你已存的事实上运行:问到数据库索引,关于 MongoDB 偏好的事实就浮上来;转到设计,它们便退下。模型只看到与当前这一轮相关的部分,而不是把你曾产生的每条事实平铺倾倒出来。这样上下文窗口用得高效,也避免了「记忆膨胀」——不相干的个人细节冲淡信号。
上下文额度依档次而定:免费档共有 16K 词元,沿订阅套餐上行,到 Enterprise 达 100 万词元。当编排好的上下文(记忆+摘要+近期轮次)超出模型的窗口时,ToRun 先修剪摘要层,绝不悄悄丢掉你最新的消息或最相关的记忆事实。
事实是你的,由你掌控
记忆属于使用它的人。你可以列出 ToRun 关于你所存的一切,删掉单条或全部。不存在在你不知情时影响对话的「秘密」记忆。事实库可以查看,也可以按要求遗忘。
这一选择出自一条更宽的原则:ToRun 应当把真实状态展示给你,而不是把它藏起来。透明的记忆意味着你可以信任它。如果模型依着一条错的事实行事——比如它曾记下你偏好长篇解释,而你现在想要简洁的——你叫它忘掉,下一次调用就看不到那条事实了。
删除是永久且即时的。不存在旧事实仍会冒出来的宽限期。
知识库不是记忆
记忆保存关于 你 的事实。知识库把回答扎根在 你的文档 上。
当你把文档、代码或领域内容上传到知识库,ToRun 用检索增强生成(RAG)在提问时刻取出相关段落。取回的文本插在对话上下文旁边,模型会标明它用了什么。当你的问题要求读原始材料——一份 API 规范、一份法律文件、你的内部手册——而不是回想个人偏好时,这才是对的工具。
两套系统可以合用:一轮之内既能取用你的个人记忆事实,也能取用知识库中的检索结果。它们喂养上下文编排的不同层,服务不同的目的。记忆回答「你是谁、你偏好怎样工作」;知识库回答「这份文档说了什么」。
两者并用,正是让 ToRun 对真实工作而非演示有用的地方。偏好留在记忆里,省得你反复交代;原始材料留在知识库里,好让回答立在证据上,而不是模型的训练数据上。