关于 session-guard
帮助 Agent 监测长会话中的上下文丢失、规则偏移和范围扩大的行为技能。它通过工具调用阈值、检查点、重述规则和交接来应对问题,无需软件包或数据库。
主要功能
- 01监测工具调用阈值
- 02记录会话检查点
- 03重述关键项目规则
- 04上下文压缩后重读依据
- 05拆分任务并准备交接
适用场景
- 01管理工具调用较多的会话
- 02压缩后重新确认项目规则
- 03处理决策矛盾或风格偏移
- 04任务范围持续扩大时拆分工作
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill session-guard安装后在 Claude Code 中输入/session-guard确认已加载。
详细介绍
会话守卫
概述
长会话会无声地腐化。上下文压缩会不声不响地丢弃指令。Hook 无法解决这个问题(多位开发者在 GitHub issue #19471、#9796、#64171 中已确认)。本技能通过行为上的自我约束来同时防止这两种情况:监控健康状态、在压缩过程中锚定关键规则、在损害发生前拆分。无需软件包,无需数据库——纯粹的行为约束,在任何 harness 中都能生效。
何时使用
- 会话超过 40 次工具调用
- Agent 与先前的决策相矛盾
- 风格/命名约定开始漂移
- 在任何上下文压缩事件之后
- 任务范围无限制地扩大
健康信号
| 信号 | 阈值 | 操作 |
|---|---|---|
| 工具调用次数 | >40 | YELLOW:设置检查点 + 复述关键规则 |
| 工具调用次数 | >60 | RED:拆分或带锚点压缩 |
| Agent 与先前决策相矛盾 | 任何情况 | VERIFY:重新阅读事实来源 |
| 风格/命名漂移 | 任何情况 | RECITE:大声说明当前生效的规则 |
| 文件读取返回意外内容 | 任何情况 | RE-READ:不要信任缓存状态 |
| 任务范围无限制地扩大 | 持续 | SPLIT:每个会话只做一项任务 |
协议
绿色区域(0-40 次工具调用)
正常运行。无需干预。
黄色区域(40-60 次工具调用)
- CHECKPOINT - 用一段话总结进展
- RECITE - 大声说明当前生效的最关键的 3-5 条规则:"当前生效的规则:[命名约定]、[文件结构]、[错误处理模式]、[测试要求]"
- ASSESS - 快完成了吗?坚持做完。还没完成?准备拆分。
- REDUCE - 不要进行探索性读取。只做有明确目标的操作。
红色区域(60 次以上工具调用或出现漂移信号)
- STOP - 不要进行更多工具调用
- VERIFY - 重新阅读项目规则(不要信任记忆)
- CHECKPOINT - 将状态写入交接文档
- SPLIT - 创建交接文档,建议开启新会话
上下文锚定(防止压缩)
当已发生压缩时(较早的上下文突然丢失,或在 /compact 之后):
- 立即 RE-READ 项目的规则文件
- 在你的回复中大声 RECITE 3-5 条关键规则
- 在执行前 VERIFY 你计划的下一个操作符合这些规则
- 如果对任何先前决策不确定,RE-READ 源文件——不要猜测
压缩后能幸存的内容:
- 最近的用户消息(高优先级)
- 当前调用的技能正文(上限 5K token,最旧的先被丢弃)
- Git 状态和项目结构
- 压缩之后读取的文件内容
压缩中会丢失的内容:
- 对话早期做出的决策
- 仅口头说明(未写入文件)的架构规则
- 来自工具输出的上下文(文件读取、命令输出)
压缩安全模式
将关键指令保存在文件中(CLAUDE.md、CONTEXT.md),而不是对话中。如果某条规则很重要,它必须存在于 Agent 可以重新读取的文件中——而不是早先达成的口头共识中。
常见错误
- 相信自己在 50 次以上工具调用后仍记得规则(你记不住——重新阅读)
- 为保险起见重新阅读所有内容(浪费工具调用——要有的放矢)
- 感觉良好因此认为上下文也没问题(压缩是无声的)
- 在发现问题之后才拆分(要在之前拆分——预防,而非补救)
为什么这很重要
上下文压缩是 2026 年第一大未解决的平台问题。Hook 无法解决它(已确认:Agent 会忽略压缩后的注入,因为压缩摘要会形成叙事惯性)。本技能是轻量级的行为对策:无需基础设施,无需软件包——有纪律的自我监控,在任何 harness 中都能生效。
评论
支持 Markdown