上下文、会话、摘要与记忆不是一回事
返回机制目录 · 可编辑图 · PNG
最容易造成误解的一句话是“Agent 有记忆”。先问四件事:内容存在哪里,保存多久,由谁决定读入,本轮模型真的看见了什么。模型的当前上下文是一次请求的输入,并不等于系统能访问的全部历史或文件。
| 名称 | 它通常是什么 | 本轮一定可见吗? |
|---|---|---|
| 当前上下文 | 此次模型请求实际提交的指令、选中的消息、工具结果等 | 是;它本身就是输入 |
| 会话记录 | 应用保存的消息和事件历史 | 不一定;可能只投影当前分支或近几轮 |
| 压缩摘要 | 为预算或续接而概括出的历史信息 | 不一定;要看是否被选入本轮 |
| 长期记忆 | 跨轮次、甚至跨会话保存的事实、偏好或状态 | 不一定;通常还需检索、引用或注入 |
| 外部知识 | 文件、数据库、网页等可访问材料 | 不一定;可访问不等于已读取,更不等于已验证 |
图的虚线是“可被选择或检索”,不是自动、无损、可靠的传输。上下文装配会受到窗口预算、策略与权限约束;没被装进去的内容不会神奇地存在于本轮模型输入里。反过来,被装进去也不意味着模型必然正确使用它。
Pi 提供一个可核对的具体例子:其核心在请求前进行 transformContext → convertToLlm;coding-agent 的 SessionManager 投影当前会话分支。这证明 Pi 的“存储状态”和“本次模型消息”有转换边界,不证明所有系统采用同一种存储或摘要算法。Pi 代码导读有更完整的固定版本路径。
下一步应分别研究:压缩在什么条件下触发,摘要保留/丢失了什么;长期记忆如何写入和检索;检索结果怎样做来源核验。这三件事不能靠本图推出答案。图是通用教学模型,不代表某个产品的完整实现。
图的文字说明 · context-vs-memory
左侧四层是系统可能拥有的来源:会话记录、压缩摘要、长期记忆和外部知识。它们通过选择、引用或检索,才可能进入中间的上下文装配。右侧是一次模型请求实际可见的输入;它不自动等于左侧所有内容。虚线不表示每个系统都有该路径。具体 Pi 实例及源码边界见专题正文。
在线预览稿:书稿仍在校稿,系统篇以文内固定源码版本为准;静态阅读不等于运行验收。