模块 II——实时运行与会话
模块 II 是 estate 的实时运行视图:每个 agent 会话此刻在做什么、它的实时 token 和成本 总量、一个派生的 Claude Code 状态,以及一条可重建的时间线。模块 I(清点)物化的是持久的 estate,而模块 II 则在同一条观测流之上为每个会话维护一个实时运行叠加层——并且只展示 该流如实承载的内容。
模块 II 是一个由总线驱动的 Core 层模块,与清点同级。它维护一份按每个会话的外部引用作键的 实时记录,由协作式的观测流构建——从不轮询、从不编造。每个会话它跟踪:
- 当前动作(最后使用的工具)以及它所触及的资源/模式;
- 实时 token 与成本总量,读自成本采样(规范的成本账本和 FinOps 是模块 XI,不在此处—— 这里只是实时数字);
- 一个派生的 Claude Code 状态(
cc_state);以及 - 一条时间线,每个被观测到的事件按摄取顺序追加于其上。
它的契约与实体
Section titled “它的契约与实体”本模块注册了两个按租户限定的实体。sessions.live 持有每个会话的实时记录——当前
动作/资源/模式、模型引用、实时输入/输出 token、实时成本、事件与工具调用计数,以及首次/最后
事件时间戳。sessions.timeline 为每个事件持有一行可回放记录,按摄取排序。没有存储的生命周期
列:协作式流不携带任何结束或失败信号,因此唯一如实的存活性信号是派生的 cc_state。
cc_state 在读取时从事件新近度派生——active / idle / ended——并在连接器触发该
发现项时翻转为静默规避(silent-evasion)状态(它从不由模块自身写入)。读取在模块路由下提供
(实时列表、单个会话、按会话的时间线)外加一条实时 SSE 流;每次读取都需要会话读取权限,且
打开该流会被自动审计。SSE 通道是严格按租户隔离的(一个客户端只接收其授权租户的快照),
且是尽力而为的(慢速客户端会丢弃中间帧并获取下一帧——摄取从不阻塞)。
它消费什么(以及它派生什么)
Section titled “它消费什么(以及它派生什么)”模块 II 消费与清点相同的最小数据观测流——edge.observed、
cost.sampled 和 finding.reported。只有发起方为会话的边才产生实时运行;与某会话关联的
成本采样会累加到实时 token/成本数字(此处不写入任何 CostRecord);以会话为主体的发现项会被
标注,而一个反规避发现项会标记规避状态。有两个字段是从这些相同信号中实时派生的:agent_ref
派生自某会话的归属 agent,而 summary 派生自一个上下文压实(取证性)发现项,其标题按契约是
摘要安全的——从不是 LLM 编造的摘要。