失败重试 · 退避与幂等保护【律令·本地零联网】
错误重试与容错保护:错误分类(可重试/不可)先于重试,指数退避+抖动、预算反解、幂等键防重复副作用、反模式扫描。
免费 · 开源许可 BUSL-1.1 · 本地执行,安装后不产生任何外部网络请求
去安装 →这个技能做什么
本地运行,零网络、免 API Key、数据不出电脑。 四项诚实承诺:① 算不出就说算不出,绝不编造数字;② 高危动作强制人工确认;③ 幂等断点,绝不重复副作用;④ 全程留痕可审计。
失败重试
子命令
| 子命令 | 作用 |
|---|---|
policy | 查看错误分类规则与默认参数 |
classify | 判定错误是否可重试 |
plan | 生成退避计划 |
next | 第 n 次尝试该等多久 |
budget | 按总时间预算反解重试次数 |
key | 生成幂等键 |
run | 带重试执行命令 |
lint | 扫描重试反模式 |
工作流建议
- 先是分类,不是重试:拿到错误先
classify。认证错、参数错、404、空间不足重试一万次也没用。 - 写操作先想幂等:
plan的risk提示出现时,先用key生成幂等键并把键传进下游写接口,再谈重试。 - 定预算再定次数:用
budget --budget-s反解,而不是拍脑袋写「重试 5 次」。 - 交付时要说清楚:
- 报了
attempts_used与total_slept_s,让用户知道实际花了多久; verdict = aborted_non_retryable时必须说明「为什么不再试」(分类原因);exhausted时提醒「加次数无用,要修根因」;- 退避计划触及
cap时说明「否则指数会失控」。
自检清单
- 报重试策略前,是否先
classify过典型错误? - 若是写操作,是否提示了幂等(
--idempotent或先key)? - 重试次数是否由
budget反解得出,而非拍脑袋? aborted_non_retryable/exhausted时是否说清了原因与后续动作?lint报unbounded_retry/no_jitter时,是否真的存在对应缺陷(而非注释误报)?
---
失败重试 · 律令科技(深圳)有限公司 (@lexord-technology) · Proprietary · © 2026
与相邻技能的关系
本包只做自己职责范围内的事,遇到下列情形直接转给兄弟技能:
| 用户要做的事 | 转交给 | 转交话术 |
|---|---|---|
| 要给一批任务加重试 | batch-runner | 「批量调度交给 batch-runner」 |
| 重试仍失败要能断点续跑 | resume-runner | 「断点恢复交给 resume-runner」 |
| 重试导致状态损坏 | task-recovery | 「体检与救援交给 task-recovery」 |
反向边界:先分类错误再决定重试——不可重试的错误(如参数非法)直接失败,不做无意义退避。幂等键防重复副作用。
你是一个重试策略的守门人:在「再试一次」之前先问「该不该试、要等多久、重复执行会不会出事」。核心原则:分类先于重试、退避必须有上限、写操作重试先想幂等。
标签
重试错误重试指数退避容错幂等
安装方式
- 打开 SkillHub 上的技能页,点击安装;
- 技能文件落在本机技能目录,SKILL.md 全文可在安装前预览;
- 在你的 Agent 里直接说出使用场景即可触发,例如「失败重试、重试策略、要不要重试」。
network: none,运行过程中不发起任何外部网络请求,也不上传你的文件与数据。你可以断网运行来验证这一点。同类技能
常见问题
按真实会被问到的顺序排。每条答案都给得出可核对的依据——触发词、文件名、路径、源码,全部来自技能包里的真实内容,不是宣传话术。
失败重试 · 退避与幂等保护 能帮我做什么?
错误重试与容错保护:错误分类(可重试/不可)先于重试,指数退避+抖动、预算反解、幂等键防重复副作用、反模式扫描。
常见的触发场景有:失败重试、重试策略、要不要重试。
完整说明、版本记录和安装方式在 SkillHub 上的「失败重试 · 退避与幂等保护」页面。
它明确不做什么?什么情况该转给别的技能?
本包只做职责范围内的事。下面这些情况它会明确转给兄弟技能,而不是硬做:
- 要给一批任务加重试 → 转给 batch-runner
- 重试仍失败要能断点续跑 → 转给 resume-runner
- 重试导致状态损坏 → 转给 task-recovery
反向边界:先分类错误再决定重试——不可重试的错误(如参数非法)直接失败,不做无意义退避。幂等键防重复副作用。
用之前得注意什么?有什么红线?
每次执行前要过的自检项:
- 报重试策略前,是否先 classify 过典型错误?
- 若是写操作,是否提示了幂等(--idempotent 或先 key)?
- 重试次数是否由 budget 反解得出,而非拍脑袋?
- aborted_non_retryable / exhausted 时是否说清了原因与后续动作?
装上之后怎么用?
安装后,在支持 SkillHub 的 AI 客户端(如 WorkBuddy)里直接使用即可。
触发方式:对话里提到「失败重试、重试策略、要不要重试」等场景,或把相关文件发给 AI,它就会自动响应。
也可以直接跑脚本,典型用法:python scripts/retry_guard.py [--base 1] [--factor 2] [--max-delay 60] [--jitter equal] [--timeout 60] <子命令>(完整参数见包内说明)。
或从客户端的「已安装技能」列表里手动唤起。
怎么验证它真的没有联网?
不发一个网络包——包的 frontmatter 声明 network: none,不声明就没有联网能力。三条验证路径任选:
① 安装后把网断掉再跑一遍,功能照常——它本来就没打算联网;
② 用抓包工具(Wireshark / Fiddler)观察该技能进程,零外部连接;
③ 直接翻源码:retry_guard.py 的源码全部公开可预览,没有一行网络代码。这是能逐行核对的技术事实,不是宣传口号。
要付费吗?要 API Key 吗?
不需要 API Key,全部技能免费安装。
许可为 BUSL-1.1:BUSL-1.1 源码可见,个人及企业内部可自由使用(含内部生产环境);发布满 4 年自动转为 Apache-2.0。详见随包 LICENSE.md。
什么环境能跑?需要装依赖吗?
Windows / macOS / Linux 都能跑。
纯 Python 标准库实现,不需要 pip install 任何东西,也就没有环境冲突要调。
唯一前置是本机装了 Python 3;客户端(如 WorkBuddy)会替你调用,一般不用手动敲命令。
它会不会乱动我的电脑?高危操作怎么办?
四项诚实承诺写死在每个包里:算不出就说算不出;高危动作强制人工确认(阻断而非提示,不是弹窗问一句就放行);幂等断点,绝不重复副作用;全程留痕可审计。
这类工具包只读取你指定的输入,结果写到输出目录,不改原文件;每一步动作留痕可查。
遇到问题怎么反馈?
执行 · 门禁 · 账单 · 可靠 —— 四块拼图,覆盖 Agent 落地全链路
去企业页 →