智能体内省调试
当智能体运行反复失败、消耗令牌却无进展、在相同工具上循环或偏离预期任务时,使用此技能。
这是一个工作流技能,而非隐藏运行时。它教会智能体在升级给人类之前,系统性地自我调试。
何时激活
- 达到最大工具调用/循环限制失败
- 重复重试但无任何进展
- 上下文增长或提示漂移导致输出质量下降
- 文件系统或环境状态与预期不匹配
- 可通过诊断和较小纠正措施恢复的工具故障
范围边界
激活此技能用于:
- 在盲目重试前捕获失败状态
- 诊断常见的智能体特定失败模式
- 应用受限的恢复操作
- 生成结构化的人类可读调试报告
请勿将此技能作为以下情况的主要来源:
- 代码变更后的功能验证;请使用
verification-loop - 当已有更窄的 ECC 技能时的框架特定调试
- 当前框架无法自动强制执行的运行时承诺
四阶段循环
阶段 1:失败捕获
在尝试恢复之前,精确记录失败信息。
捕获内容:
- 错误类型、消息和堆栈跟踪(如可用)
- 最后有意义的工具调用序列
- 智能体当时试图完成的任务
- 当前上下文压力:重复提示、过大的粘贴日志、重复的计划或失控的笔记
- 当前环境假设:工作目录、分支、相关服务状态、预期文件
最小捕获模板:
## 失败捕获
- 会话/任务:
- 进行中的目标:
- 错误:
- 最后成功的步骤:
- 最后失败的工具/命令:
- 观察到的重复模式:
- 需验证的环境假设:
阶段 2:根因诊断
在更改任何内容之前,将失败与已知模式匹配。
| 模式 | 可能原因 | 检查 |
|---|---|---|
| 最大工具调用/重复相同命令 | 循环或无退出观察路径 | 检查最后 N 次工具调用是否存在重复 |
| 上下文溢出/推理能力下降 | 无界笔记、重复计划、过大日志 | 检查近期上下文是否存在重复和低信号批量内容 |
ECONNREFUSED / 超时 | 服务不可用或端口错误 | 验证服务健康状态、URL 和端口假设 |
429 / 配额耗尽 | 重试风暴或缺少退避 | 统计重复调用次数并检查重试间隔 |
| 写入后文件缺失/差异过时 | 竞态、工作目录错误或分支漂移 | 重新检查路径、工作目录、git 状态和实际文件是否存在 |
| “修复”后测试仍然失败 | 假设错误 | 隔离确切失败的测试并重新推导错误 |
诊断问题:
- 这是逻辑失败、状态失败、环境失败还是策略失败?
- 智能体是否丢失了真实目标并开始优化错误的子任务?
- 失败是确定性的还是瞬态的?
- 能够验证诊断的最小可逆操作是什么?
阶段 3:受限恢复
使用改变诊断面的最小操作进行恢复。
安全恢复操作:
*…