07.3 存储、遥测与横切基础设施
关注源码
src/utils/sessionStorage.tssrc/utils/toolResultStorage.tssrc/utils/fileStateCache.tssrc/utils/task/*src/utils/telemetry/*src/native-ts/*src/migrations/*
存储系统为什么重要
这套产品不是纯内存聊天,所以必须持久化很多对象:
- transcript
- sidechain transcript
- task output
- tool result replacement 记录
- file history / attribution snapshot
- session metadata
这些能力大多落在 utils/sessionStorage.ts、utils/task/*、toolResultStorage.ts。
toolResultStorage.ts 的角色
它负责处理“大工具结果不能一直塞在上下文里”这个问题,包括:
- 结果持久化
- 内容替换
- budget 裁剪
- replacement state clone/reconstruct
这使工具结果既能被引用,又不会无限占用 prompt。
fileStateCache 与 read cache
文件读取缓存被多处复用:
- 主线程文件读取
- compact 后 reinjection
- forked agent cache sharing
- session memory / suggestion fork
说明文件缓存不是一个局部优化,而是上下文与 cache-safe fork 的基础设施。
遥测是横切能力
utils/telemetry/* 与 services/analytics/* 一起提供:
- spans
- counters
- event logging
- perfetto/beta tracing
- plugin telemetry
很多运行时决策都内建 telemetry,而不是事后补埋点。
native-ts 和 migrations
native-ts处理少量性能敏感或原生绑定能力。migrations负责 settings/state 的版本演进。
它们文件不多,但对长期维护非常关键。
设计上的关键点
1. transcript 与 task output 是系统级资产
很多 feature 都依赖这些持久化数据,所以它们被下沉到基础设施层。
2. 横切关注点被集中处理
日志、遥测、缓存、清理、快照都没有散在业务模块里,而是各有基础设施入口。
3. 支撑层决定系统可演化性
真正让系统能承载多模式、多工具、多智能体的,不只是 query.ts,而是这些横切基础设施是否稳固。