SuperAPI AI 工具集

self-heal

部署与运维

查看项目

更新于 10-16 07:07

技能介绍

Self-Heal 是一个面向 AI 开发流程的自主错误恢复技能,目标是在任务执行过程中遇到失败时,不停下整个流程,而是先诊断、再修复、然后从中断处继续。它强调一个原则:诊断先于重试,盲目重试既浪费 token,也会让错误被放大。

恢复决策树

技能以决策树方式区分错误类型并给出对应动作:

  • 瞬时错误(网络、限流、超时):使用指数退避重试,最多 3 次。
  • 工具失败(参数错误、schema 不符):修正参数并重试一次;若仍失败则升级。
  • 逻辑错误(输出错误、断言失败):诊断根因,应用修复,验证后继续。
  • 上下文溢出:压缩上下文,从最近的检查点恢复。
  • 未知错误:记录状态,暂停,并交给人工处理。

重试规则

  • 瞬时错误(HTTP 5xx、限流 429、网络超时):在 1 秒、4 秒、16 秒后重试,然后失败。
  • 确定性错误(验证错误、类型不匹配):先修复根因,未修复就重试会浪费预算。
  • 最大重试次数:每个阶段、每种错误类型最多 3 次;同一阶段连续失败则升级层级或停止。

检查点模式

在任何有风险的操作之前保存状态,以便恢复时能继续执行。状态保存在 .agents/plans/.loop-state.json,结构示例:

{
  "phase": "implement",
  "step": 3,
  "lastSuccess": "tests green on auth module",
  "pendingFiles": ["src/api/users.ts"],
  "checkpoint": "<ISO timestamp>"
}

失败时重新加载检查点并跳过已完成步骤,不重复工作。

先诊断,后修复

不在未理解问题的情况下打补丁。诊断步骤包括:

  1. 阅读完整错误——堆栈跟踪、退出码、stderr。
  2. 在隔离环境中复现(最小失败用例)。
  3. 形成一个假设:哪里错了,为什么。
  4. 用针对性检查验证假设(日志、断言、类型检查)。
  5. 只修复证据指向的内容。
  6. 验证修复解决了错误,且没有破坏相邻测试。

上下文溢出恢复

当任务中途上下文耗尽时:

  1. 总结已完成工作,形成 3–5 条要点。
  2. 将摘要和检查点保存到 .agents/plans/recovery-<timestamp>.md。
  3. 用摘要作为前言启动新的上下文。
  4. 从最近保存的检查点继续。

升级阶梯

尝试 动作
1 同一层级重试
2 在层级内切换模型
3 升级到下一层级(haiku → sonnet → opus)
4 暂停——携带完整上下文将阻塞问题交给人工

不应自动修复的情况

  • 硬性阻断:rm -rf、删除 schema、强制推送到 main。
  • 安全失败:不要为了让测试通过而降低验证强度。
  • 需求不明确:如果规格不清楚,应提问,不要猜测后继续。

输出

最终产生 Self-Heal 报告,包含以下字段:

Self-Heal Report
────────────────
Error:     <original failure>
Diagnosis: <root cause>
Action:    <what was done>
Attempts:  <N>
Outcome:   RESOLVED | ESCALATED | BLOCKED
Resumed:   <from checkpoint / from scratch>

适用场景与限制

该技能适用于 AI 编码或自动化任务执行过程中的失败恢复,尤其是需要减少人工中断、避免重复劳动、控制重试成本的场景。其限制在于:不得用于绕过安全校验、不得自动执行破坏性硬阻断操作,遇到需求歧义时应转人工。关于是否收费、价格、支持平台等事实,资料中未提供。