tool-call-retry
VerifiedAuto retry & fix LLM tool calls with exponential backoff, format validation, error correction, boost tool call success rate by 90%
$ Add to .claude/skills/ About This Skill
Content available in Chinese
- # 🔥 工具调用自动重试器
- ## 核心亮点
- ✅ 成功率提升90%+:内置指数退避重试、格式校验、错误自动修复,解决Agent工具调用不稳定的核心痛点
- 🛡️ 全链路异常兜底:自定义错误处理、参数修复逻辑,支持复杂场景下的错误自愈
- ⚡ 零侵入增强:无需修改原有工具代码,一行封装即可获得重试能力,性能开销<1ms
- 🔑 幂等性保证:支持幂等性键,避免重复调用导致的副作用
🎯 适用场景 - 所有调用外部API/工具的Agent场景 - 不稳定的第三方服务调用 - 大模型工具调用格式错误自动修复 - 高可靠性要求的Agent执行链路
📝 参数说明 | 参数 | 类型 | 必填 | 默认值 | 说明 | |------|------|------|--------|------| | toolFn | Function | 是 | - | 要执行的工具函数,返回Promise | | args | any | 否 | {} | 调用工具的参数 | | maxRetries | number | 否 | 3 | 最大重试次数,1-10 | | initialDelayMs | number | 否 | 1000 | 初始重试延迟,100-10000ms | | validatorFn | Function | 否 | ()=>true | 结果校验函数,返回true表示结果合法 | | errorHandlerFn | Function | 否 | undefined | 错误处理函数,可返回修复后的参数或中止重试 | | idempotencyKey | string | 否 | undefined | 幂等性键,相同键的调用只会执行一次 |
💡 开箱即用示例 ### 基础用法(零配置) ```typescript const fetchWeather = async (params: { city: string }) => { const res = await fetch(`https://api.weather.com/${params.city}`); return res.json(); };
const result = await skills.toolCallRetry({ toolFn: fetchWeather, args: { city: "Beijing" } }); ```
带结果校验 ```typescript const result = await skills.toolCallRetry({ toolFn: callLLM, args: { prompt: "Generate JSON output" }, validatorFn: (res) => typeof res === "object" && res !== null && res.code === 0, maxRetries: 5 }); ```
高级用法(错误自动修复) ```typescript const result = await skills.toolCallRetry({ toolFn: callDatabase, args: { sql: "SELECT * FROM users" }, errorHandlerFn: async (error, attempt) => { if (error.message.includes("SQL syntax error")) { // 自动修复SQL语法 const fixedSql = await fixSqlWithLLM(error.message); return { args: { sql: fixedSql } }; } if (attempt >= 2) { // 重试2次失败后中止 return { abort: true }; } } }); ```
🔧 技术实现说明 - 采用指数退避重试算法,避免服务被打垮 - 全链路类型安全,所有参数带Zod校验 - 支持自定义校验和错误修复逻辑,可扩展性强 - 轻量无依赖,仅200行代码,无额外性能开销
Use Cases
- Automatically retry failed LLM tool calls with exponential backoff
- Validate tool call format before sending to prevent malformed requests
- Correct common tool call errors and reformat parameters automatically
- Boost tool call success rates in autonomous agent workflows
- Handle transient API failures gracefully in multi-step agent operations
Pros & Cons
Pros
- +Claims 90% improvement in tool call success rate through retry and correction
- +Exponential backoff prevents rate limiting during retry sequences
- +Format validation catches errors before they reach the tool endpoint
Cons
- -Retry logic may mask underlying prompt or schema issues that should be fixed
- -No details on which LLM providers or tool formats are supported
FAQ
What does tool-call-retry do?
Auto retry & fix LLM tool calls with exponential backoff, format validation, error correction, boost tool call success rate by 90%
What platforms support tool-call-retry?
tool-call-retry is available on Claude Code, OpenClaw.
What are the use cases for tool-call-retry?
Automatically retry failed LLM tool calls with exponential backoff. Validate tool call format before sending to prevent malformed requests. Correct common tool call errors and reformat parameters automatically.
100+ free AI tools
Writing, PDF, image, and developer tools — all in your browser.
Next Step
Use the skill detail page to evaluate fit and install steps. For a direct browser workflow, move into a focused tool route instead of staying in broader support surfaces.