Files
msd-core/docs/zh-CN/context-monitor.md
Jakub Zych a9a7a328e6 refactor: hard-fork GSD -> MSD (Make Software Done)
Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD
across contents and paths, upstream package/repo coordinates -> @golem15/msd-core
and golem15com/msd-core. Deep links into upstream history, sibling upstream
packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is.

Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line,
package/plugin identity, regenerated lockfile, install-tree fixtures, derived
registries and benchmark baseline; migration checksum baseline re-locked
(MSD keeps its own install state, so no install had applied the old sums);
sort-order and regex-escaped expectations in tests adjusted.
2026-10-06 01:47:40 +02:00

2.8 KiB
Raw Blame History

上下文窗口监视器

一个后置工具钩子(Claude Code 中的 PostToolUse,Antigravity CLI 中的 AfterTool),当上下文窗口使用率较高时向 Agent 发出警告。

问题背景

状态栏向用户展示上下文使用情况,但 Agent 本身并不感知上下文限制。当上下文剩余量不足时,Agent 会持续工作直至触及上限——可能在任务进行到一半、状态尚未保存时就被迫中断。

工作原理

  1. 状态栏钩子将上下文指标写入 /tmp/claude-ctx-{session_id}.json
  2. 每次工具调用结束后,上下文监视器读取这些指标
  3. 当剩余上下文低于阈值时,以 additionalContext 的形式注入警告
  4. Agent 在对话中接收到警告后即可采取相应措施

阈值

级别 剩余量 Agent 行为
正常 > 35% 无警告
警告 <= 35% 完成当前任务收尾,避免开启新的复杂工作
严重 <= 25% 立即停止,保存状态(/msd-pause-work)

防抖机制

为避免反复向 Agent 发送重复警告:

  • 首次警告始终立即触发
  • 后续警告需间隔 5 次工具调用才会再次触发
  • 严重级别升级(WARNING -> CRITICAL)可绕过防抖机制

架构

Statusline Hook (msd-statusline.js)
    | writes
    v
/tmp/claude-ctx-{session_id}.json
    ^ reads
    |
Context Monitor (msd-context-monitor.js, PostToolUse/AfterTool)
    | injects
    v
additionalContext -> Agent sees warning

中间桥接文件是一个简单的 JSON 对象:

{
  "session_id": "abc123",
  "remaining_percentage": 28.5,
  "used_pct": 71,
  "timestamp": 1708200000
}

与 MSD 的集成

MSD 的 /msd-pause-work 命令用于保存执行状态。WARNING 消息建议使用该命令,CRITICAL 消息则要求立即保存状态。

配置

两个钩子均在执行 npx @golem15/msd-core 安装时自动注册——正常情况下无需手动操作。有关钩子配置详情、阈值覆盖以及手动注册示例,请参阅配置文档。

简要参考:状态栏钩子在 settings.json 中注册为 statusLine;上下文监视器(msd-context-monitor.js)注册为 PostToolUse 钩子(Antigravity CLI 中为 AfterTool)。两项配置均使用运行安装程序时的 Node 可执行文件绝对路径。在 Windows PowerShell 中,需在带引号的可执行文件路径前添加 & 前缀。

安全性

  • 钩子对所有操作进行 try/catch 包裹,出错时静默退出
  • 不会阻塞工具执行——监视器出现故障不应影响 Agent 的工作流程
  • 过期指标(超过 60 秒)将被忽略
  • 缺失的桥接文件可被优雅处理(适用于子 Agent 及新会话)

相关文档