mcpField
R
resilient-execution

resilient-execution

github.com/pixel-process-ugAgent 工作流380 次安装33 周前更新
代码仓库

关于 resilient-execution

resilient-execution 是用于处理执行失败的 Agent 技能,通过错误分类和不同的替代方案系统化排查。它要求记录尝试过程,并在升级未解决任务前提供依据。

主要功能

  1. 01分类临时、环境、逻辑及根本性错误
  2. 02升级前尝试三种不同方案
  3. 03记录每次尝试及结果
  4. 04提供结构化升级报告

适用场景

  1. 01API 调用失败后寻找替代方案
  2. 02排查解析或集成问题
  3. 03汇报阻碍并列出解决尝试依据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pixel-process-ug/superkit-agents --skill resilient-execution

安装后在 Claude Code 中输入/resilient-execution确认已加载。

详细介绍

概述

resilient-execution 技能通过强制要求至少尝试 3 种确实不同的方法,然后才向用户升级处理,避免过早失败。它提供结构化的错误分类系统、方法级联方法,以及对每次尝试的透明记录。没有这项技能时,Agent 会过早放弃;有了它,Agent 就能系统地穷尽各种替代方案,并且只在掌握完整证据后才升级处理。

开始时声明:“我正在使用 resilient-execution 技能——在升级处理之前,我会尝试多种方法。”


阶段 1:错误分类

一种方法失败时,应立即对错误进行分类,然后再重试:

错误类型定义指标正确响应
瞬时错误临时基础设施故障网络超时、速率限制、503 错误、锁争用短暂等待,然后使用相同方法重试
环境错误依赖项缺失或配置错误找不到模块、版本错误、缺少环境变量、权限被拒绝修复环境,然后使用相同方法重试
逻辑错误方法错误或假设不正确输出错误、行为异常、类型不匹配、API 使用错误彻底重新考虑方法
根本性问题使用现有工具确实无法实现API 不存在、硬件限制、缺少能力提供证据并向用户升级处理
在告知用户某事无法完成之前,你必须至少尝试 3 种不同的方法。没有证据证明你以有实质差异的策略进行了 3 次真正的尝试,就不能只说“我试过了,但没成功”。

停止:选择下一种方法前,先对错误进行分类。错误分类会导致无谓的重试。


阶段 2:方法级联

系统地执行级联流程。每次尝试都必须采用确实不同的策略。

Attempt 1: Primary approach (most direct solution)
    | fails
    v
Classify error -> Can same approach work with a fix?
    | YES -> Fix and retry (does NOT count as a new attempt)
    | NO  -> Proceed to Attempt 2
    v
Attempt 2: Alternative approach 1 (different technique)
    | fails
    v
Classify error -> Is this fundamentally blocked?
    | YES -> Proceed directly to escalation
    | NO  -> Proceed to Attempt 3
    v
Attempt 3: Alternative approach 2 (different path entirely)
    | fails
    v
Circuit breaker -> Present findings to user with full evidence
每次尝试都要记录:
### Attempt N: [Approach Name]
**Strategy:** [what makes this different from previous attempts]
**What I tried:** [specific description with commands/code]
**What happened:** [exact error or unexpected result]
**Why it failed:** [root cause analysis]
**Classification:** [Transient / Environmental / Logical / Fundamental]
**What to try next:** [reasoning for next approach]

停止:进行下一次尝试前,记录每一次尝试。不要跳过记录——这些记录是升级报告的证据。


阶段 3:选择替代方法

主要方法失败时,使用此决策表选择下一种方法:

失败类型策略 1策略 2策略 3
库/API 无法正常工作使用其他库直接实现(不使用库)Shell 命令/外部工具
算法产生错误结果使用其他算法拆分为更小的步骤简化约束,解决较容易的版本
权限/访问被拒绝使用其他访问方法提供手动步骤并升级处理通过替代路径绕过
工具限制使用其他工具组合使用多个工具提供手动说明
集成失败模拟依赖项使用替代接口单独隔离并测试组件
性能问题使用其他数据结构批处理/流处理使用近似解
替代策略优先级

按以下优先顺序尝试:

  1. 使用其他工具 — 改用其他库、API 或命令
  2. 使用其他算法 — 以不同方式解决同一问题
  3. 拆分问题 — 将问题拆分为更小、可解决的部分
  4. 简化问题 — 移除约束,先解决更简单的版本
  5. 绕过问题 — 完全通过其他路径实现目标
  6. 手动步骤 — 提供用户可自行遵循的明确说明

阶段 4:升级报告

使用不同方法进行了 3 次真正的尝试后,生成此报告:

## Execution Report

I tried 3 different approaches to [goal]:

### Attempt 1: [Approach Name]
**Strategy:** [description]
**Result:** Failed because [specific reason]
**Error:** [exact error message or unexpected output]

### Attempt 2: [Approach Name]
**Strategy:** [description]
**Result:** Failed because [specific reason]
**Error:** [exact error message or unexpected output]

### Attempt 3: [Approach Name]
**Strategy:** [description]
**Result:** Failed because [specific reason]
**Error:** [exact error message or unexpected output]

### Root Cause Analysis
[Why all three approaches failed — identify the common blocker]

### Recommended Next Steps
- **Option A:** [what the user could try]
- **Option B:** [alternative path]
- **Option C:** [if applicable]

### What I Need From You to Proceed
[Specific ask — access, information, permission, or decision]

停止:没有此报告,不要升级处理。用户需要看到 3 次真正尝试的证据。


决策表:何时重试才算“真正尝试”

算作真正尝试不算
使用不同的库或工具使用同一库,只是更换导入方式
使用不同的算法或数据结构使用同一算法,只调整参数
采用不同的架构方案使用同一方案,只做少量代码修改
使用手动变通方案,而非自动化方案使用同一自动化方案,只添加重试循环
将问题拆分为多个子问题使用同一整体方案,只添加日志
使用完全不同的 API使用同一 API,只更换身份验证方式(除非错误由身份验证引起)

反模式/常见错误

不要这样做这样做为何会失败应该怎么做
用同一方案重试 3 次,并称之为“3 次尝试”同一方案会导致同一失败。这不是真正的替代方案。每次尝试都必须采用有实质区别的策略
失败 1 次后就放弃错过 2 种或更多可行方案始终尝试至少 3 种真正不同的方案
跳过错误分类不分类就会重试错误的事项在选择下一种方案之前先分类
向用户隐瞒失败的尝试缺少背景信息,用户无法提供帮助记录并透明地报告每次尝试
未尝试手动变通方案就升级处理许多自动化操作失败的事项,手动操作却能成功始终将手动步骤作为方案 3 加以考虑
未经调查就归咎于平台“平台限制”往往是错误判断宣布无法实现之前,先搜索变通方案
修复环境问题后将其算作新尝试修复环境后重试同一方案,仍只算 1 次尝试只统计真正不同的策略
跳过中间尝试的日志记录会丢失证据链,无法生成升级报告立即记录每次尝试

防止自我合理化的提醒

想法事实
“这真的无法实现”你尝试过 3 种不同方案了吗?很可能没有。
“错误很明确,我知道问题出在哪”明确的错误也可能有隐藏的根本原因。请调查。
“我已经试过所有办法了”列出你尝试过的办法。总还有其他选择。
“用户应该自己解决这个问题”提供手动操作路径,但先尝试 3 种方案。
“这是平台限制”限制往往有变通方案。请搜索一下。
“同样的错误一直出现”不同方案出现同样的错误,可能意味着根本原因不同。请分类。
“这花的时间太长了”如果用户必须从头开始,放弃会花更长时间。
“更简单的版本没有用”能正常运行的简单版本,胜过无法运行的复杂版本。

未进行 3 次真正尝试,不要升级处理。绝不例外。


集成点

技能关系
circuit-breaker在 resilient-execution 用尽循环级重试后激活
task-management任务步骤失败时调用 resilient-execution
self-learning记录失败模式,以避免在后续会话中重复犯错
planning利用失败历史选择更稳健的方案
auto-improvement跟踪重试成功率和方案有效性
verification-before-completion验证失败时调用 resilient-execution

具体示例

示例:文件解析失败
Attempt 1: JSON.parse() on the file
  Result: SyntaxError — file contains comments (JSONC format)
  Classification: Logical — wrong parser for this format

Attempt 2: Strip comments with regex, then JSON.parse()
  Result: Failed — nested block comments not handled
  Classification: Logical — regex too simple for comment stripping

Attempt 3: Use `jsonc-parser` library (handles JSONC natively)
  Result: Success — file parsed correctly
示例:API 集成失败
Attempt 1: Direct HTTP request to API endpoint
  Result: 403 Forbidden — authentication required
  Classification: Environmental — missing auth config

  Fix: Add API key from .env
  Result: 429 Too Many Requests — rate limited
  Classification: Transient — wait and retry
  Result: 200 OK but response format changed from docs
  Classification: Logical — API version mismatch

Attempt 2: Use official SDK instead of raw HTTP
  Result: SDK throws "unsupported region" error
  Classification: Environmental — region config needed

Attempt 3: Use GraphQL endpoint instead of REST
  Result: Success — GraphQL endpoint supports all regions

核心原则

  • 绝不默默放弃——始终展示尝试过的方案
  • 真正的替代方案——每次尝试都必须采用有实质区别的方案,而不是只对同一方案做少量调整
  • 根本原因分析——尝试下一种方案之前,先弄清楚原因
  • 从失败中学习——将哪些方法无效及其原因更新到记忆中
  • 保持透明——在每一步都向用户展示你的推理
  • 先分类——错误类型决定是重试同一方案还是尝试新方案

技能类型

RIGID — 至少尝试 3 次是硬性门槛。每次重试前都必须进行错误分类。必须严格遵循升级报告格式。无论任务看起来多简单,都不得放宽这些要求。

评论

支持 Markdown