2026-07-29 核实。Claude Code 写的是以追加为主的本地记录。监控设计可以利用这个性质把工作量控制住,同时仍然保住准确的会话身份和诚实的状态迁移
反复全量扫描为什么会失败
轮询本身不必然昂贵。昂贵的模式是:把每一份记录都重新打开、从每个文件读一段固定长度的尾巴、把这些尾巴全部解析一遍,然后每隔几秒重来一次 —— 哪怕几乎什么都没变。归档的体量于是变成了热路径的一部分
这既浪费 CPU 和 I/O,也让正确性更难保证。一段不完整的尾巴可能从一行 JSON 的中间开始,一个旧的完成事件可能被当成最新状态,同时进行的多个会话可能被压成一个全局答案
把发现和摄取分开
让轻量的文件发现按自己的节奏跑,记录稳定身份、路径、大小和修改时间。只有可观测元数据发生变化的文件才进入解析队列。新发现的文件走一次有界的引导读取,已知文件则从它保留的偏移量继续
维护一个理解追加的游标
- 为每份记录保存最后一个完整的字节偏移量
- 文件增长时只读追加的那一段
- 把不完整的末行带到下一次读取
- 检测到截断或替换时安全重置
- 为每一个确切的会话持久化最新的语义证据
只有在恢复仍然正确的前提下,游标才算优化。文件身份变化、体积变小或者续读非法,都应该触发一次有界的重新引导,而不是悄悄跳过数据
从有序证据推导状态
少解析一些字节,不等于可以放松语义。保留服务商与会话身份、比较时间戳,并区分工作中、等待、轮到你了、出错、已结束和过期证据。安静是一个新鲜度信号,不是「运行成功完成」的证明
给监控自己也上一套度量
跟踪检查过的文件数、读取字节数、解析失败数、队列深度和扫描耗时。用一个大到能暴露意外 O(n) 轮询的归档去测。稳态开销应该正比于变化的文件与追加的字节,而不是历史总量
Agent Island 在其中的位置
Agent Island 是 macOS 与 Windows 上一个免费开源的 AI 编码 Agent 状态伴侣。它读取本地会话记录来显示状态和轮到你了提醒,不需要 Agent Island 账号,也不把会话数据上传到 Agent Island。它是一个可见性层,不是执行或审批系统
可以接着读 Claude Code 会话记录字段指南、安全解析 JSONL,或者 有界的本地扫描
← 全部文章