Agent 研习舱
上下文 记忆 学习2026-04-09

Session as Context Object

定义

Session as Context Object 是一种上下文管理范式:把长程任务的上下文作为一个持久化的、可按位置询问的对象存在模型窗口之外,而不是在窗口内做不可逆的压缩与丢弃。Claude 通过 getEvents() 这样的接口去切片、回溯、重读事件流,把"存什么"与"用什么"彻底解耦。

要点

  • 传统方法(compaction、context trimming、memory 工具)都是对"要留什么"做不可逆决定——一旦未来步骤需要已丢弃的信息就无法恢复
  • 核心思路:session 作为外置可询问对象 —— 存储层只承诺持久可读,上下文工程推给 harness
  • 接口示例:emitEvent(id, event) 写入、getEvents() 按位置切片读取(从上次停的地方继续 / 回溯到某动作之前 / 重读某个决定前的铺垫)
  • 任何取回的事件可在 harness 层再做转换(重组以提升 prompt cache 命中率、精简无关工具结果等)后才进 Claude 的窗口
  • 分层理由:可恢复存储可以固定下来,上下文工程必须随模型演进而变
  • 与"context as REPL object"思路同源:让上下文成为 LLM 可编程访问的对象

示例

Claude Managed Agents 中,harness 崩溃后新 harness wake(sessionId) 并通过 getSession(id) 拿回完整事件日志,从最后一个事件接着跑。Agent 也可以选择"回退 5 步再往下看"来诊断自己为什么做出某个决定——这种询问模式是传统 compaction harness 无法实现的。

相关概念

参考资料

被这些概念引用

来自本站知识库 · 全部概念