# `CMDC.Plugin.Builtin.Recovery`
[🔗](https://github.com/tupleyun/cmdc/blob/v0.5.3/lib/cmdc/plugin/builtin/recovery.ex#L1)

P1 异常恢复策略链插件 — 工具失败时按策略链逐级恢复。

策略链（按顺序执行）：
1. **重试**：相同参数重试（可配次数 + exponential backoff）
2. **切换模型**：失败次数超阈值后 intervene 切换到备用模型
3. **人工升级**：emit 告警事件通知管理员
4. **中止**：策略全部耗尽后 abort + 生成故障报告

## 配置

    {CMDC.Plugin.Builtin.Recovery,
      max_retries: 3,              # 最大重试次数
      backoff_base_ms: 1000,       # 退避基数（毫秒）
      fallback_model: "qwen3-max", # 备用模型（nil 则跳过模型切换）
      escalation_event: true       # 是否 emit 升级事件
    }

## 触发 Hook

`{:on_tool_error, name, call_id, error, attempt}` — 工具执行失败时触发。

---

*Consult [api-reference.md](api-reference.md) for complete listing*
