Chapter 13

持久化、沙箱、文件系统、终端与可观测性

目标不是背 API,而是建立能从顶层设计一路推导到源码细节的心智模型。读完本章,你应该能解释“为什么这样设计”,而不仅是“代码在哪里”。

1. Persistence:把事件流写出去,而不是侵入 Session

持久化后端订阅 session 事件并在 flush checkpoint 确认落盘;恢复时读取 log,经过版本/结构验证后重新构造 live session。JSONL 与 SQLite 只是两个 provider。

2. Sandbox:约束“执行世界”

FS、subprocess、shell、terminal 如果共享同一个 execution-world seam,那么把底层 provider 换成远程 sandbox,就能让 bash/PTY/LSP 一起迁移,而不需要每个工具都写 remote 版本。

3. Observability

事件驱动架构天然提供观察点:session/event 可做持久化与投影,tools/result 可做审计,LLM stream 可做 token/latency 指标。关键是观察插件不应改变主业务语义,除非它挂在明确的 waterfall 决策点。

4. 错误恢复的核心原则

  • durable state 先于 UI convenience。
  • 取消信号必须贯穿 provider reader / tool executor。
  • 插件错误应在定义好的边界被隔离,而不是让整个进程进入半状态。
  • 能够恢复的东西必须来自可重建记录。
源码定位:Architecture capability seams · docs/architecture.zh.md
打开官方源码/文档
源码定位:Session durability split · packages/core/session/README.md
打开官方源码/文档