会话日志(Session Log)
概述
会话日志是存在于 Claude 上下文窗口之外的持久化上下文对象,以追加式事件流记录所有发生的事件。与压缩或裁剪等不可逆的上下文决策不同,会话日志保证上下文可持久化、可查询、可回溯。
关键内容
核心接口
| 接口 | 用途 |
|---|---|
getEvents() |
查询上下文,可选择事件流的位置切片 |
emitEvent(id, event) |
向会话写入事件,保持持久化记录 |
与上下文窗口的关系
长周期任务经常超出 Claude 的上下文窗口长度。标准的应对方式(压缩、记忆工具、上下文裁剪)都涉及不可逆的上下文保留/丢弃决策。但很难知道未来轮次需要哪些 token。
会话日志提供了不同的方案:
- 上下文作为存在于上下文窗口之外的对象持久化存储
- 大脑可通过 getEvents() 灵活查询:从上次停止处继续、回退到特定事件前查看前因、在执行特定动作前重读上下文
- 任何获取的事件可在 harness 中转换后再传入 Claude 的上下文窗口
与 Context Engineering 的对比
| 维度 | Context-Engineering 技术 | 会话日志 |
|---|---|---|
| 决策性质 | 不可逆(压缩后原文丢失) | 可逆(原文始终可查询) |
| 存储位置 | 上下文窗口内 | 上下文窗口外 |
| 访问方式 | 模型被动接收 | 大脑主动查询 |
| 灵活性 | 由压缩策略决定 | 由 harness 编码任意转换 |
关注点分离
会话日志与 harness 的上下文管理做了关注点分离: - 会话:保证持久化和可查询性 - Harness:编码任意上下文管理逻辑(如组织上下文以实现高 prompt 缓存命中率)
这种分离使系统能适应未来模型所需的特定上下文工程,而无需预测具体需要什么。
类比:REPL 中的上下文对象
先前研究探索将上下文存储为 REPL 中的对象,LLM 通过编写代码来过滤或切片访问。会话日志提供相同好处,但上下文存储在会话日志中而非沙箱或 REPL 内。
来源
- raw/articles/ai-engineering/anthropic-engineering/Scaling Managed Agents_ Decoupling the brain from the hands.md — Anthropic Engineering Blog
相关
- Managed-Agents — part_of(Managed Agents 的三大组件之一)
- Context-Engineering — compares_to(替代不可逆的上下文决策)
- 上下文压缩 — compares_to(压缩做不可逆摘要,会话日志保持原文可查)
- 脑手分离架构 — part_of(解耦后的独立组件)