导航诊断技能
检测AI输出质量下降并提示重新锚定。在重复更正、上下文混淆或用户说“似乎有些不对”、“你还没明白”后自动触发。
为什么存在(心智理论)
基于Riedl & Weidmann 2025年关于人机协同的研究:
- 用户的心智理论动态变化(瞬间)
- 当ToM对齐退化时质量下降
- 早期检测和重新锚定可以恢复协作效果
- 用户对ToM(理解克劳德)和克劳德对用户的模型都可能漂移
这项技能在协作退化时检测并提示纠正行动。
何时调用
自动调用时:
- 同一主题检测到2+次更正
- 用户说“似乎有些不对”、“你还没明白”
- 用户说“又错了”、“还是不对”
- 上下文使用超过75%且质量信号下降
- 用户表达挫败感(“呃”、“叹气”、明确挫败)
- 检测到循环模式停滞(3+次相同状态迭代)
不要调用如果:
- 单次更正(正常协作)
- 用户提供新要求(不是更正)
- 新会话(数据不足以诊断)
- 用户明确说“没关系”或“差不多”
质量下降指标
1. 重复更正(高严重性)
触发:同一更正给2+次
信号:“不,我说用户复数,不是用户”(第二次)
问题:未纳入用户反馈
2. 幻觉信号(高严重性)
触发:提及不存在的文件、功能或包
信号:“那个文件不存在”、“没有这样的功能”
问题:从错误的心理模型生成
3. 上下文混淆(中等严重性)
触发:混淆无关任务的细节
信号:“那是另一个项目”、“错误的特性”
问题:上下文窗口污染或误归属
4. 未解决反馈(中等严重性)
触发:用户更正未反映在下一个输出中
信号:被告知不要后仍生成相同模式
问题:未正确更新内部模型
5. 目标漂移(低严重性)
触发:输出越来越偏离原始目标
信号:“我们越来越偏离轨道”、“不是我要的”
问题:失去了用户实际目标的视线
6. 循环停滞(高严重性)
触发:3+连续迭代具有相同的状态哈希(仅循环模式)
信号:nav-loop检测到停滞,触发nav-diagnose
问题:卡在同一步骤,无法前进
执行步骤
第1步:评估质量状态
分析最近的交流(最后10-15条消息):
质量指标:
- [ ] 更正给定:{count}
- [ ] 同一主题更正:{count}
- [ ] 用户挫败信号:{count}
- [ ] 幻觉报告:{count}
- [ ] “不是我的意思”短语:{count}
计算严重性:
severity = "critical" if same_topic_corrections >= 2 or hallucinations >= 1
severity = "high" if corrections >= 3 or frustration_signals >= 2
severity = "medium" if corrections >= 2 or goal_drift_detected
severity = "low" if corrections == 1 # 正常,不要触发
第2步:确定根本原因
分析更正模式:
| 模式 | 可能原因 | 重新锚定焦点 |
|---|---|---|
| 重复相同更正 | 未纳入反馈 | 明确承认并确认理解 |
| 更正增加 | 偏离用户意图 | 重新建立目标 |
| 技术不匹配 | 错误假设 | 澄清技术上下文 |
| 未具体化的挫败 | 沟通不匹配 | 询问哪里出了问题 |
第3步:显示诊断
显示质量检查警报:
⚠️ 质量检查
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
检测到的问题:{ISSUE_TYPE}
严重性:{SEVERITY}
我注意到:
- {OBSERVATION_1}
- {OBSERVATION_2}
可能原因:
- {CAUSE_1}
- {CAUSE_2}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
让我重新锚定我们的协作:
1. 你的目标:{RECONSTRUCTED_GOAL}
2. 当前状态:{STATE_SUMMARY}
3. 你想要的:{CORRECTED_UNDERSTANDING}
这个理解正确吗?[Y/n]
第4步:重新锚定协作
根据用户确认:
如果正确(Y):
✅ 重新锚定!
我将按照这个理解进行:
- {KEY_POINT_1}
- {KEY_POINT_2}
继续进行:{NEXT_ACTION}
如果不正确(n):
帮我更好地理解:
1. 你实际的目标是什么?
2. 我哪里错了?
3. 我应该了解哪些限制?
[欢迎开放式回答]
第5步:记录诊断(可选)
如果存在nav-profile,保存诊断:
{
"date": "{YYYY-MM-DD}",
"issue_type": "{ISSUE_TYPE}",
"severity": "{SEVERITY}",
"resolution": "re-anchored|user-corrected|escalated",
"learnings": ["{WHAT_TO_AVOID}"]
}
第6步:建议预防措施
根据严重性和模式:
对于上下文过载:
💡 建议:考虑运行nav-compact以清除上下文。
当前上下文使用量高,可能会导致混淆。
对于重复更正:
💡 建议:让我保存你的偏好以避免将来发生这种情况。
"记住我总是想要 {X}" - 这将跨会话持久化。
对于沟通不匹配:
💡 建议:考虑调整你的个人资料偏好。
- 当前详细程度:{VERBOSITY}
- 当前确认:{CONFIRMATION}
更新为:"记住我更喜欢 {SUGGESTED_STYLE}"
重新锚定模板
模板1:目标重新对齐
让我验证我理解你的目标:
你想要:{GOAL_STATEMENT}
不是:{COMMON_MISUNDERSTANDING}
关键限制:
- {CONSTRAINT_1}
- {CONSTRAINT_2}
对吗?
模板2:技术重新对齐
让我验证技术上下文:
框架:{FRAMEWORK}
模式:{PATTERNS}
约定:{CONVENTIONS}
我应该使用的:
- {TOOL_1}:用于 {PURPOSE_1}
- {TOOL_2}:用于 {PURPOSE_2}
对我的假设进行更正?
模板3:沟通重新对齐
我可能与你沟通风格不匹配:
你似乎更喜欢:
- {INFERRED_STYLE_1}
- {INFERRED_STYLE_2}
我一直是:
- {MY_STYLE_1}
- {MY_STYLE_2}
我应该调整我的方法吗?
与其他技能的集成
与nav-profile
- 记录诊断以进行模式分析
- 在重复问题后建议偏好更新
- 加载个人资料偏好以进行基线比较
与nav-marker
- 在主要重新锚定前建议标记
- 在标记中包含诊断状态
与nav-compact
- 检测到上下文过载时建议紧凑
- 跟踪如果紧凑解决的问题
质量信号参考
积极信号(良好协作)
- "完美,正是我需要的"
- "Yes, continue"
- "好的,现在..."
- 5+次交流中无更正
- 用户提供新要求(不是更正)
消极信号(质量下降)
- "不"、"错了"、"不是那个"
- "我已经说过..."
- "再次,请..."
- "叹气"、"呃"、明确挫败
- "你不理解"
- 同一更正两次
中性信号(正常迭代)
- "实际上,让我们试试..."
- "我们也可以..."
- "关于..."
- 单次更正并解释
示例场景
场景1:重复REST公约更正
交流1:
用户:“为用户创建端点”
克劳德:创建 /user 端点
用户:“应该是 /users(复数)”
交流2:
用户:“现在为帖子创建端点”
克劳德:创建 /post 端点
用户:“再次,复数!/posts”
→ 触发:复数命名的同一更正给出两次
→ 行动:在REST公约上重新锚定
→ 结果:“我现在明白了 - 总是对REST资源使用复数名词”
场景2:上下文混淆
用户正在处理:OAuth功能(功能A)
克劳德引用:Stripe集成(早期的功能B)
用户:“那是支付功能,不是认证”
→ 触发:检测到上下文混淆
→ 行动:在当前功能上重新锚定
→ 建议:考虑nav-compact以清除旧上下文
场景3:用户挫败
用户:“呃,还是不对”
用户:“这真令人沮丧”
→ 触发:检测到挫败信号
→ 行动:暂停并诊断
→ 响应:关于哪里出了问题的开放式问题
成功标准
诊断成功时:
- [ ] 在用户升级前检测到质量下降
- [ ] 正确识别根本原因
- [ ] 重新锚定恢复协作质量
- [ ] 预防性建议是可行的
- [ ] 用户在重新锚定后确认理解
- [ ] 同一问题不会立即再次发生
限制
无法检测:
- 无声用户挫败(文本中无信号)
- 会话上下文之外的问题
- 外部系统问题
- 用户尚未表达的偏好
不应:
- 在正常更正上过度触发
- 中断生产流程
- 让用户感到被指责
- 需要冗长的重新解释
最佳实践
诊断时:
- 对AI限制保持谦逊
- 不要因为沟通失误而责怪用户
- 提供具体的下一步
- 保持重新锚定简短
重新锚定时:
- 专注于理解,而不是道歉
- 确认具体点,而不是一般的“我理解”
- 让用户更正如果错了
- 感谢用户的耐心
这项技能通过心智理论重新对齐及早捕捉协作质量下降,使快速恢复成为可能 🔍