上下文守护者 🛡️
您的上下文守护者。错误发生前提醒您。在 60%、70% 和 85% 使用率时发出警告——在上下文污染导致错误和幻觉之前。
为什么您需要它
问题:长时间对话导致上下文污染
质量在上下文填满时静默降级
您不知道何时重新启动,直到为时已晚
错误和幻觉在大约 70% 使用率后增加
解决方案:持续监测上下文使用情况
智能 3 级警报(⚠️ 60%、🟠 70%、🔴 85%)
每个级别的可执行建议
防止重复警报
快速入门
对于代理:
心跳集成
当您收到心跳轮询时,包括此检查:
调用 session_status 工具以获取当前上下文使用情况
从输出中解析上下文百分比
将其与阈值进行比较:60%(警告)、70%(危险)、85%(临界)
如果超过阈值且不是重复警报,则显示适当的警报消息
更新状态文件以跟踪警报历史记录
实现:
在心跳期间:
- 从 session_status 获取上下文使用情况
- 检查使用情况是否 >= 60%、70% 或 85%
- 从内存/上下文守护者状态.json 加载状态
- 确定是否应发送警报(防止重复)
- 如果是,则显示警报并更新状态
对于用户:
在 HEARTBEAT.md 中启用
在 HEARTBEAT.md 中添加:
上下文监控
- 检查上下文使用情况
- 如果超过阈值(60%、70%、85%),则发出警报
代理将自动处理其余部分。
工作原理
监控
该技能调用 session_status 来检查当前上下文使用百分比。
警报级别
⚠️ 警告(60%)
⚠️ 上下文:60% 即将满。建议尽快结束或重新开始。
🟠 危险(70%)
🟠 上下文:70% 污染风险增加。建议:
• 完成当前任务
• 为下一个任务启动新会话
• 或使用上下文优化器压缩
🔴 严重(85%)
🔴 上下文:85% - 严重 高错误风险。强烈建议:
• 保存工作
• 立即启动新会话
• 质量可能降级
智能重复防止
该技能跟踪警报历史记录,并仅在以下情况下发出警报:
首次达到阈值
警报级别升级(60% → 70% → 85%)
使用情况下降到阈值以下,然后再次上升
配置
编辑 config/默认.json 或创建 config/用户.json:
{
"enabled": true,
"checkInterval": "心跳",
"阈值": {
"警告": 60,
"危险": 70,
"严重": 85
},
"alertMethod": "消息",
"alertStyle": "表情",
"preventDuplicates": true,
"trackHistory": true,
"建议": {
"autoSuggest": true,
"suggestCompression": true,
"suggestRestart": true
}
}
选项
checkInterval: "心跳" - 在心跳轮询期间检查(默认)
"cron" - 独立 cron 作业(未来)
数字 - 每 N 分钟检查一次(未来)
阈值:自定义警报级别(默认:60、70、85)
alertMethod: "消息" - 作为消息发送(默认)
"日志" - 仅记录
"通知" - 系统通知(未来)
alertStyle: "表情" - 表情 + 简洁文本(默认)
"文本" - 纯文本
"详细" - 全面解释
手动检查
您可以手动检查上下文状态:
bash {baseDir}/脚本/检查.sh
与其他技能集成
上下文优化器
当您达到 70% 时,该技能建议使用上下文优化器压缩上下文,而不是重新启动。
上下文恢复
上下文恢复后,该技能自动恢复监控。
实现指南
步骤:
调用 session_status 工具并解析输出:
示例输出: "上下文:54k/200k(27%)"
提取:27
如果(使用情况 >= 85)级别 = "严重"
否则如果(使用情况 >= 70)级别 = "危险"
否则如果(使用情况 >= 60)级别 = "警告"
否则级别 = null
从 {工作区}/内存/上下文守护者状态.json 读取:
{
"lastCheck": 1709452800,
"lastUsage": 54,
"lastAlertLevel": "警告",
"lastAlertTime": 1709452500,
"历史记录": [...]
}
防止重复警报:
shouldAlert = false
// 首次达到阈值
如果 (!lastAlertLevel && 级别)shouldAlert = true
// 级别升级(警告 → 危险 → 严重)
如果(levelNum[级别] > levelNum[lastAlertLevel])shouldAlert = true
// 使用情况下降到阈值以下,然后再次上升
如果(lastUsage < 阈值 - 5 && 使用情况 >= 阈值)shouldAlert = true
如果 shouldAlert,则显示适当的消息:
⚠️ 上下文:60% 即将满。建议尽快结束或重新开始。
将新状态保存到内存/上下文守护者状态.json:
{
"lastCheck": <当前时间戳>,
"lastUsage": <当前使用情况>,
"lastAlertLevel": <如果警报,则为级别>,
"lastAlertTime": <如果警报,则为时间戳>,
"历史记录": [..., {"时间戳": <现在>, "使用情况": <使用情况>}]
}
警报消息
警告(60%):⚠️ 上下文:60% 即将满。建议尽快结束或重新开始。
危险(70%):🟠 上下文:70% 污染风险增加。建议:
• 完成当前任务
• 为下一个任务启动新会话
• 或使用上下文优化器压缩