mcpField
S
session-guard

session-guard

github.com/wshobsonAgent 工作流41.9k2.9k 次安装2 周前更新
代码仓库

关于 session-guard

帮助 Agent 监测长会话中的上下文丢失、规则偏移和范围扩大的行为技能。它通过工具调用阈值、检查点、重述规则和交接来应对问题,无需软件包或数据库。

主要功能

  1. 01监测工具调用阈值
  2. 02记录会话检查点
  3. 03重述关键项目规则
  4. 04上下文压缩后重读依据
  5. 05拆分任务并准备交接

适用场景

  1. 01管理工具调用较多的会话
  2. 02压缩后重新确认项目规则
  3. 03处理决策矛盾或风格偏移
  4. 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 与先前的决策相矛盾
  • 风格/命名约定开始漂移
  • 在任何上下文压缩事件之后
  • 任务范围无限制地扩大

健康信号

信号阈值操作
工具调用次数>40YELLOW:设置检查点 + 复述关键规则
工具调用次数>60RED:拆分或带锚点压缩
Agent 与先前决策相矛盾任何情况VERIFY:重新阅读事实来源
风格/命名漂移任何情况RECITE:大声说明当前生效的规则
文件读取返回意外内容任何情况RE-READ:不要信任缓存状态
任务范围无限制地扩大持续SPLIT:每个会话只做一项任务

协议

绿色区域(0-40 次工具调用)

正常运行。无需干预。

黄色区域(40-60 次工具调用)
  1. CHECKPOINT - 用一段话总结进展
  2. RECITE - 大声说明当前生效的最关键的 3-5 条规则:"当前生效的规则:[命名约定]、[文件结构]、[错误处理模式]、[测试要求]"
  3. ASSESS - 快完成了吗?坚持做完。还没完成?准备拆分。
  4. REDUCE - 不要进行探索性读取。只做有明确目标的操作。
红色区域(60 次以上工具调用或出现漂移信号)
  1. STOP - 不要进行更多工具调用
  2. VERIFY - 重新阅读项目规则(不要信任记忆)
  3. CHECKPOINT - 将状态写入交接文档
  4. SPLIT - 创建交接文档,建议开启新会话

上下文锚定(防止压缩)

当已发生压缩时(较早的上下文突然丢失,或在 /compact 之后):

  1. 立即 RE-READ 项目的规则文件
  2. 在你的回复中大声 RECITE 3-5 条关键规则
  3. 在执行前 VERIFY 你计划的下一个操作符合这些规则
  4. 如果对任何先前决策不确定,RE-READ 源文件——不要猜测
压缩后能幸存的内容:
  • 最近的用户消息(高优先级)
  • 当前调用的技能正文(上限 5K token,最旧的先被丢弃)
  • Git 状态和项目结构
  • 压缩之后读取的文件内容
压缩中会丢失的内容:
  • 对话早期做出的决策
  • 仅口头说明(未写入文件)的架构规则
  • 来自工具输出的上下文(文件读取、命令输出)
压缩安全模式

将关键指令保存在文件中(CLAUDE.md、CONTEXT.md),而不是对话中。如果某条规则很重要,它必须存在于 Agent 可以重新读取的文件中——而不是早先达成的口头共识中。

常见错误

  • 相信自己在 50 次以上工具调用后仍记得规则(你记不住——重新阅读)
  • 为保险起见重新阅读所有内容(浪费工具调用——要有的放矢)
  • 感觉良好因此认为上下文也没问题(压缩是无声的)
  • 在发现问题之后才拆分(要在之前拆分——预防,而非补救)

为什么这很重要

上下文压缩是 2026 年第一大未解决的平台问题。Hook 无法解决它(已确认:Agent 会忽略压缩后的注入,因为压缩摘要会形成叙事惯性)。本技能是轻量级的行为对策:无需基础设施,无需软件包——有纪律的自我监控,在任何 harness 中都能生效。

评论

支持 Markdown