主动上下文监控与智能三级警报,在质量下降前及时重启。
背景守护 QQ 上下文守护是一项面向实际任务的技能,主要用于错误发生前的提示;主动上下文监控警告您使用率为 60%, 70%, 85% , 之前, 上下文污染会引发错误和 迷幻。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
您的上下文守护者。在错误发生前发出预警。
主动式上下文监控,在上下文使用率达到 60%、70% 和 85% 时提前告警——防止因上下文污染引发错误与幻觉。
问题所在:
解决方案:
当收到心跳轮询(heartbeat poll)时,请加入如下检查逻辑:
session_status 工具获取当前上下文使用率实现逻辑:
心跳执行期间: 1. 通过 session_status 获取上下文使用率 2. 检查使用率是否 ≥ 60%、70% 或 85% 3. 从 memory/context-guardian-state.json 加载状态 4. 判断是否应发送告警(防止重复) 5. 若需发送,则显示告警并更新状态
在您的 HEARTBEAT.md 文件中添加以下内容:
## Context Monitoring - Check context usage - Alert if thresholds exceeded (60%, 70%, 85%)
Agent 将自动处理其余所有逻辑。
该技能调用 session_status 工具,获取当前上下文使用率百分比。
⚠️ 警告(60%)
⚠️ Context: 60% 上下文即将饱和。建议尽快收尾当前任务,或开启新会话。
🟠 危险(70%)
🟠 Context: 70% 上下文污染风险上升。建议: • 完成当前任务 • 下一任务使用新会话启动 • 或使用 context-optimizer 压缩上下文
🔴 严重(85%)
🔴 Context: 85% - CRITICAL 错误风险极高。强烈建议: • 保存当前工作 • 立即启动新会话 • 响应质量很可能已下降
该技能追踪告警历史,仅在以下情形触发告警:
编辑 config/default.json,或新建 config/user.json:
{
"enabled": true,
"checkInterval": "heartbeat",
"thresholds": {
"warning": 60,
"danger": 70,
"critical": 85
},
"alertMethod": "message",
"alertStyle": "emoji",
"preventDuplicates": true,
"trackHistory": true,
"suggestions": {
"autoSuggest": true,
"suggestCompression": true,
"suggestRestart": true
}
}
checkInterval:
"heartbeat" — 在心跳轮询期间检查(默认)"cron" — 独立 cron 任务(未来支持)number — 每 N 分钟检查一次(未来支持)thresholds:
alertMethod:
"message" — 以消息形式发送(默认)"log" — 仅记录日志"notification" — 系统通知(未来支持)alertStyle:
"emoji" — Emoji + 简明文本(默认)"text" — 纯文本"detailed" — 完整说明您可手动检查上下文状态:
bash {baseDir}/scripts/check.sh
当上下文使用率达 70% 时,该技能将建议使用 context-optimizer 压缩上下文,而非直接重启会话。
完成上下文恢复后,该技能将自动恢复监控。
1. 获取上下文使用率
调用 session_status 工具并解析其输出:
示例输出:"Context: 54k/200k (27%)" 提取结果:27
2. 判定告警等级
if (usage >= 85) level = "critical" else if (usage >= 70) level = "danger" else if (usage >= 60) level = "warning" else level = null
3. 加载状态
读取 {workspace}/memory/context-guardian-state.json:
{
"lastCheck": 1709452800,
"lastUsage": 54,
"lastAlertLevel": "warning",
"lastAlertTime": 1709452500,
"history": [...]
}
4. 判断是否应告警
防止重复告警:
shouldAlert = false // 首次达到阈值 if (!lastAlertLevel && level) shouldAlert = true // 告警等级升级(warning → danger → critical) if (levelNum[level] > levelNum[lastAlertLevel]) shouldAlert = true // 使用率曾低于阈值(容差 5%)后再次回升至阈值及以上 if (lastUsage < threshold - 5 && usage >= threshold) shouldAlert = true
5. 发送告警
若 shouldAlert 为真,则显示对应告警消息:
⚠️ Context: 60% Getting full. Consider wrapping up or starting fresh soon.
6. 更新状态
将新状态写入 memory/context-guardian-state.json:
{
"lastCheck": ,
"lastUsage": ,
"lastAlertLevel": ,
"lastAlertTime": ,
"history": [..., {"timestamp": , "usage": }]
}
警告(60%):
⚠️ Context: 60% Getting full. Consider wrapping up or starting fresh soon.
危险(70%):
🟠 Context: 70% Pollution risk rising. Recommend: • Finish current task • Start new session for next task • Or compress with context-optimizer
严重(85%):
🔴 Context: 85% - CRITICAL High error risk. STRONGLY recommend: • Save work • Start new session NOW • Quality degradation likely
状态存储于 {workspace}/memory/context-guardian-state.json:
{
"lastCheck": 1709452800,
"lastUsage": 54,
"lastAlertLevel": null,
"lastAlertTime": null,
"history": [
{"timestamp": 1709452800, "usage": 54}
]
}
未出现任何告警:
HEARTBEAT.md 中已包含上下文监控条目告警过于频繁:
preventDuplicates 已启用告警数值不准确:
session_status 工具是否正常工作在 HEARTBEAT.md 中添加:
## Context Monitoring - Check context usage - Alert if thresholds exceeded
新建 config/user.json:
{
"thresholds": {
"warning": 50,
"danger": 65,
"critical": 80
}
}
依赖项:
session_status 工具性能表现:
隐私保障:
v1.1.0:
v1.2.0:
发现 Bug?有改进建议?欢迎在 GitHub 上提交 Issue 或 Pull Request。
MIT
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章