技能触发守卫(skill-guard)
背景
用户(ID:000001)2026-08-05 明确要求:重点 skill(error-lesson / agent-retro / landing-tracker / anti-amnesia)必须被充分利用,不允许「写完就放着、只写得好看不触发」。本守卫是死规则,每轮强制执行。
2026-08-05 Agent B复查意见已采纳(机制层加固):原检查表是意识层约束,不是机制层拦截——漏过一轮就失效(教训003根源)。已补:①输出前自检钩子 ②断档扫描兜底 ③🔁×3 升级为暂停操作。留痕从自觉变强制。
每轮强制检查表(回复前过一遍,回复后自检一遍)
回复前检查
| 触发条件 | 命中动作 |
|---|---|
| 用户纠错 / 批评 / 指出我没做对 | 当场执行 error-lesson 三段式固化(问题→原因→教训),带触发场景+正确做法+验证动作 |
| 我即将承诺 / 说「已完成」「做好了」 | 先核对 landing-tracker 台账有无证据;无证据不许说完成 |
| 对话出现重要信息(密码/配置/偏好/决策/身份事实) | anti-amnesia R1 即时固化 |
| 话题明显切换 | anti-amnesia R2 话题快照 |
| 每日复盘时间(07:00)/ 周日周报(21:00)已到 | agent-retro 触发 |
| 用户问「落地/落实情况/承诺兑现/查进度」 | 读 landing-tracker 台账逐条汇报,带证据 |
| 用户问「进步/复盘/错误记录」 | agent-retro + error-lesson 数据汇报 |
输出前自检钩子(机制层,Agent B建议采纳)
每次对用户发送正式回复前,回复末尾必须自带一行:
【本轮技能自检:命中 X 个 / 留痕 Y 处】
- X = 本轮命中了哪几个技能(error-lesson / landing-tracker / anti-amnesia / agent-retro / 其它)
- Y = 本轮实际写入的日志/台账条目数
- 这一行写不出数字 = 本轮要么该触发的技能没触发,要么没留痕 → 不许发,回头补。
- 目的:把「留痕」从自觉变强制,空着不许发。(来源:Agent B 2026-08-05 复查建议②-1)
回复后自检
- 本轮有没有该触发没触发的技能?有 → 当场补执行。
- 本轮触发的技能有没有留痕?没留 → 补写触发日志。
- 本轮做出的承诺是否已入账?没入 → 立即补入台账。
触发日志
每次技能触发,在 <VAULT>\06-复盘与日志\Agent A复盘\技能触发日志.md 追加一行:
[YYYY-MM-DD HH:MM] 触发技能: X | 原因: ... | 动作: ... | 证据: ...
用户随时可查,证明技能真的在跑,不是摆设。
断档扫描兜底(Agent B建议采纳)
每日复盘(07:00)/ 用户问「技能有没有在跑」时:
- 扫描
技能触发日志.md,若发现 超过 2 小时无触发记录且当日有会话 → 自动标黄排查,写入触发日志并在复盘里列为问题项。 - 交给机制不交给自觉:复盘 cron 自动执行该扫描。(来源:Agent B 2026-08-05 复查建议②-2)
重复错误升级机制(红牌规则,Agent B建议采纳)
- 🔁×1-2:红牌警告(已有)
- 🔁×3 及以上:升级为暂停该方向操作——不再警告一次,而是强制换方案 / 上报用户定夺。
- 警告是压力,暂停才是止损。
- 触发时在触发日志写「🔁×N 暂停:<该方向>,等待用户决策」。(来源:Agent B 2026-08-05 复查建议③-4)
死规矩
- 技能是拿来用的,不是拿来展示的。触发条件命中就必须执行,不许「记下了下次再说」。
- 执行必留痕:日志或台账必须有对应记录。
- 与 anti-amnesia 分工:它管记忆保全,本守卫管技能启用,不冲突。
- 每轮过检查表不增加用户等待时间,写完记录再回复。