Session Watcher 把 LLM 的上下文当作库存来管理,用经济订货量(EOQ)理论判断当前会话的上下文是否还值得继续携带,并跟踪重启压力,帮助使用者决定何时交接。它的定位是观察工具:读取转录、从不写入,仪表盘和状态行都是纯观察者,MCP 工具只返回数据供使用者自行操作。
用途 它回答一个核心问题:这个会话是否还值得继续携带?多数上下文工具优化的是如何消耗令牌(压缩、缩小、过滤),而 Session Watcher 跟踪成本曲线的漂移,给出让你决定何时交接的数据。两者可以组合使用:先运行任意剪枝策略,再由它测量成本曲线。
核心模型 L = cache_read_input_tokens,即你正在“租用”的上下文存量;B 是重建基线,即会话的固定开销下限,加上它引入的每个文件、技能和工具的令牌量,也就是重启后必须重新读取的内容;g 是平滑后的 ΔtotalStock − ΔB,表示路径未计入的增长。x = L / B 是原始位置比例;权威位置是 u,每次调用按自身在重启区间中所占比例推进,因此记录的是已走过的路径而非今日数值之比,x 轴上的每个标志点都是从该路径拟合出的参考骨架读取的。br = mf × pp 是账单溢价,即相对理想重启时机多付的部分。重启提醒单独处理:它读取账本累计的租金,因此任何位置修正都不能撤回提醒。指示灯阈值是 lib/bill-regret.js 中的命名常量 BR_AMBER 和 BR_RED:低于琥珀色为绿灯,介于两者之间为琥珀色,达到或超过红色为红灯。完整推导见论文,即 EOQ 库存理论映射到 LLM 提示缓存。
运行要求与快速开始 需要 Node.js ≥ 22.16。启动后会打开浏览器仪表盘。演示模式使用预构建的匿名化会话;重放模式使用你自己的真实转录。两者都是只读,不会修改或上传任何内容。
安装方式(插件,推荐) 可通过插件安装,或在 Claude Code 会话内安装。它会注册:MCP 工具(在每个会话中可用);SessionStart 钩子(把正在运行的观察器指向新会话,并通报待处理的交接)。如果是在已运行的会话中安装或更新,请运行 /reload-plugins 以激活。
DSH 集成 @nomadop/session-watcher-dsh 在 DeepSeek Harness(DSH)中运行 Session Watcher。它监视所加载宿主中每个正在运行的会话,并与 Claude Code 插件共享 ~/.session-watcher。包含:Session Watcher 标签页,位于对话视图条中,挂载该会话的仪表盘元素;composer dock,位于输入框下方的胶囊,显示指示灯、账单溢价和提醒时钟,弹出层中显示位置与上下文存量;工具,即 MCP 工具,各自回答调用智能体自己的会话,但 watcher_status 可指定其他会话;技能,sw-handoff、sw-load 和 sw-explain,注册到宿主;跨会话交接,启动或恢复的智能体会收到一条消息,列出其他会话为其项目准备的待处理交接;重放,使用 npx -y @nomadop/session-watcher replay <path> 在仪表盘上回放 DSH 会话日志。
状态行 插件系统目前尚不支持声明状态行,需手动添加到 ~/.claude/settings.json。可用命令查找插件路径,或通过 claude plugin details session-watcher@session-watcher 查看。注意:插件缓存路径会在版本更新时变化,更新后请重新运行上述命令并更新状态行路径。状态行为紧凑的一行显示。
上下文分桶与交接 分桶面板显示哪些文件、技能和工具正在消耗你的上下文预算。每个路径都带令牌计数,勾选或取消勾选可预览重启成本如何变化;U 型曲线虚影线会随切换实时更新。当需要重启时,交接功能保留你想保留的状态:运行 /sw-handoff 准备一个包(选中的路径、工作摘要、下一任务),然后 /clear,在新会话中运行 /sw-load 恢复。只有你选择的内容会被重建,减少预热与浪费。两个插件注册的工具相同,但 rotate_session 仅由 Claude Code 注册;Guarantees 页面统一列出二者差异。
架构与扩展 Session Watcher 与具体智能体无关。harness 层以下的所有部分都消费规范化观察结果,因此永远不知道会话由哪个智能体产生。要新增智能体,需在 lib/harness/<agent>/ 下写一个 harness:源驱动(把该智能体自身的会话证据转成规范化观察)、基于共享 lib/measurement-projection.js 的薄测量投影适配器(含该智能体原生工具的解释器)、读取其对话的对话源与历史轮次规则,以及告诉读者如何打开它所引用轮次的恢复语句。引擎、对话历史、交接和所有产品界面都是共享的,无需改动。参考 harness 见 lib/harness/claude-code/,第二个见 lib/harness/dsh/。
论文 《Context Is Inventory: A Rent-or-Buy Model for Prompt-Cached LLM Sessions》,Longju Cheng(2026),DOI: 10.5281/zenodo.21236704。论文给出完整理论规范:EOQ→LLM 映射、41.4% 可移动成本界、滑雪租赁式重启策略,以及 1,016 份真实会话转录上的测量。
隐私 无远程遥测。转录在本地读取,绝不上传。本地聚合使用量与交接记录存储在 ~/.session-watcher 下。遥测中不存储转录正文或文件内容。删除 ~/.session-watcher 会清除所有本地状态,但 DSH 会话已准备且尚未成功提交的 Turn Notes 除外,它们位于系统临时目录下。
限制与暂未提供 具体收费、价格与付费方案在资料中未提供;平台支持范围除 Node.js ≥ 22.16、Claude Code 与 DSH 外,资料未提及其他宿主。运行效果取决于真实会话转录,资料未提供量化效果承诺。