来提交你的插件吧!
有疑问?来看看呗!

插件详情

intelligent_retry logo

intelligent_retry

当LLM回复为空或包含特定错误关键词时,自动进行多次重试,提高交互稳定性。

LLM
工具
增强
版本v3.0.2
作者木有知 & 长安某
Star16
更新2025/12/13

插件说明

AstrBot 智能重试插件 (Intelligent Retry)

License: MIT
Version

一个为 AstrBot 设计的高性能智能重试插件,专门解决大语言模型(LLM)交互中的不稳定问题。通过三层智能检测系统和并发重试机制,显著提升对话体验和响应速度。

当前版本:v3.0.1 - 🔥 重要修复:人格丢失和TTS插件兼容性问题

✨ 核心特性

🔍 三层智能检测系统

  • 第一层:字符级检测 - 优化的正则表达式,识别异常结尾
  • 第二层:结构完整性检测 - 检测括号、引号匹配,代码块完整性
  • 第三层:内容类型自适应 - 根据内容类型(代码、列表、JSON等)使用专门策略

⚡ 并发重试机制

  • 显著减少响应延迟 - 第一次重试失败后启用并发模式
  • 指数增长并发数 - 2→4→8→16个请求,快速获得有效回复
  • 智能资源管理 - 首个有效回复立即返回,自动取消其他请求
  • 用户可控开关 - 考虑token成本,提供完全的用户控制权

🎯 精准错误处理

  • 空回复检测 - 自动识别并重试空响应
  • 错误关键词检测 - 可配置的错误关键词识别
  • HTTP状态码控制 - 支持状态码白名单/黑名单机制
  • 工具调用兼容 - 检测到function_call时不干预

🔧 高级配置选项

  • 双钩子架构 - 请求存储 + 响应检测,提升性能
  • 多种检测模式 - Basic/Enhanced/Strict三种强度
  • 灵活重试策略 - 固定间隔或指数退避
  • 完整的日志系统 - 详细的调试和监控信息

🚀 性能优势

特性 传统重试 智能并发重试
响应延迟 单次延迟 × N次 单次延迟 + 最快响应时间
成功率 逐次尝试 并行尝试,成功率更高
资源利用 串行消耗 智能管控,首个成功立即停止
用户体验 长时间等待 快速响应,明显改善

典型场景:配置10次重试

  • 传统模式:可能需要60+秒
  • 并发模式:通常15-20秒内完成

📦 安装方法

方法一:AstrBot 插件市场(推荐)

在 AstrBot 插件市场搜索 intelligent_retry 直接安装。

方法二:手动安装

cd /path/to/AstrBot/data/plugins
git clone https://github.com/muyouzhi6/astrbot_plugin_retry.git
# 重启 AstrBot 或在 WebUI 中重载插件

⚙️ 配置选项

所有配置可在 WebUI → 插件管理 → Intelligent Retry → 配置 中设置

基础配置

配置项 类型 描述 默认值
最大重试次数 整数 LLM回复异常时的最大重试次数,0=禁用 3
重试间隔(秒) 整数 重试间隔时间,单位秒 2
重试间隔模式 字符串 fixed=固定间隔,exponential=指数退避 exponential
兜底回复 文本 所有重试失败时的用户提示 预设友好提示

智能检测配置

配置项 类型 描述 默认值
启用截断重试 布尔 是否启用智能截断检测功能 false
截断检测模式 字符串 basic/enhanced/strict 检测强度 enhanced
结构完整性检测 布尔 检测括号、引号匹配 true
内容类型自适应检测 布尔 根据内容类型使用专门策略 true
代码块检测 布尔 检测Markdown代码块完整性 true
引号匹配检测 布尔 检测引号配对完整性 true
最小合理长度 整数 有效回复的最小字符数 10

并发重试配置

配置项 类型 描述 默认值
启用并发重试 布尔 是否启用并发重试功能(建议开启) false
并发重试触发阈值 整数 第几次失败后启动并发模式,0=直接并发 1
基础并发数量 整数 第一批并发请求数量(后续指数增长) 2
并发重试超时 整数 并发重试的最大等待时间(秒) 30

错误检测配置

配置项 类型 描述 默认值
错误关键词 文本 触发重试的错误关键词,每行一个 预设常见错误
允许重试的状态码 文本 HTTP状态码白名单,每行一个 400,429,502,503,504
禁止重试的状态码 文本 HTTP状态码黑名单,每行一个 空

🔄 工作原理

双钩子架构

用户请求 → [请求钩子: 存储参数] → LLM处理 → [响应钩子: 检测&重试] → 用户回复

智能重试流程

第1次失败 → 检查并发阈值设置
            ↓
    ┌─ 阈值=0:直接启动并发模式 ──→ 并发批次1: 2个请求
    │                           ↓ 失败
    └─ 阈值>0:顺序重试N次 ──→ 失败 → 并发批次1: 2个请求
                                    ↓ 失败
                            并发批次2: 4个请求 → 任意成功 → 立即返回
                                    ↓ 失败  
                            并发批次3: 8个请求 → 任意成功 → 立即返回
                                    ↓ 全部失败
                                 兜底回复

📊 三层检测详解

第一层:字符级检测

  • 检测异常结尾字符
  • 支持中英文标点、数字、字母
  • 识别文件扩展名、URL等合法结尾

第二层:结构检测

  • 括号匹配:() [] {} <>
  • 引号配对:" ' """ '''
  • 代码块:Markdown ``` 结构
  • 数据格式:JSON、XML完整性

第三层:内容自适应

  • 代码内容:语法结构、缩进检测
  • 自然语言:句子完整性、语义检查
  • 列表内容:编号、项目符号检测
  • 表格数据:分隔符、对齐检测

📈 版本更新

v2.9.7 (当前版本)

✅ 修复人格丢失问题
✅ 修复TTS插件兼容性
✅ 优化上下文保持
✅ 代码风格规范
🔧 内部优化改进

v2.9.1

  • ✨ 简化插件架构,移除强制人设和上下文预览等冗余功能
  • 🔧 使用原始请求参数确保完整重试,提升透明性
  • 📊 配置项从21个精简到16个,降低用户配置复杂度
  • 🛠️ 优化代码结构,提升维护性和性能

v2.9.0

  • ✨ 新增并发重试机制,显著减少响应延迟
  • 🔧 实现指数增长的并发请求策略
  • 🛠️ 修复并发重试中的任务管理bug
  • 📊 完善资源管理和异常处理

v2.8.0

  • ✨ 新增三层智能截断检测系统
  • 🔧 实现内容类型自适应检测
  • 🛠️ 重构代码架构,提升性能

🙏 致谢与借鉴

本插件的双钩子架构设计借鉴了 @zgojin 开发的 astrbot_plugin_retry_v2 项目的优秀思路。

该项目采用了先进的"请求存储 + 响应检测"双钩子机制,为我们的架构优化提供了重要的技术启发。

推荐大家为这个优秀的项目点个 ⭐ Star:
👉 https://github.com/zgojin/astrbot_plugin_retry_v2

感谢开源社区的互相学习与共同进步!

💡 使用建议

推荐配置

  • 日常使用:启用并发重试,设置3-5次重试
  • 成本敏感:关闭并发重试,使用传统模式

性能优化

  • 合理设置并发数量(2-4个通常足够)
  • 根据实际需要调整超时时间
  • 在稳定网络环境下可适当减少重试次数

❓ 常见问题

Q: 并发重试会浪费很多token吗?
A: 插件设计了"首个成功立即停止"机制,并提供用户开关控制,可根据需求平衡性能和成本。

Q: 如何判断插件是否正常工作?
A: 启用调试日志,观察重试过程和检测结果。正常情况下插件对用户透明。

Q: 支持哪些LLM服务商?
A: 支持所有AstrBot兼容的LLM服务商,包括OpenAI、Gemini、Claude等。

Q: 可以只启用截断检测而不启用错误重试吗?
A: 可以,通过配置不同的检测选项实现精确控制。

🤝 贡献与支持

  • 🐛 问题反馈:GitHub Issues
  • 🚀 功能建议:欢迎提交Pull Request
  • ⭐ 支持项目:给个Star是最大的鼓励!

� 更新日志

v2.9.7 (2025-09-02) 🔥 重要修复

  • ✅ 修复人格丢失问题:重试时现在使用完整的人格信息,确保角色设定在重试过程中不会丢失
  • ✅ 修复TTS插件兼容性:重试结果现在正确标记为LLM_RESULT类型,TTS插件能正常识别并生成语音
  • ✅ 优化上下文保持:完整保存conversation、system_prompt等关键参数
  • ✅ 代码风格规范:通过ruff格式化,符合AstrBot项目规范
  • 🔧 内部优化:统一导入路径,提升插件生态兼容性

v2.9.6 (2024-12-XX)

  • 新增智能截断检测与并发重试功能
  • 简化架构移除冗余功能,提升性能

�📄 许可证

本项目基于 MIT License 开源。

✍️ 作者

  • 原作者:@muyouzhi6
  • 优化贡献:@长安某
  • 当前版本:智能检测与并发优化增强版

让AI对话更稳定,让等待时间更短暂 🚀

AstrBot LogoAstrBot 插件市场社区

AstrBot 插件市场 是一个开放的插件分享平台,欢迎开发者们贡献优质插件。本站致力于为 AstrBot 用户提供高质量扩展,帮助您快速找到喜欢的插件,并鼓励社区伙伴分享使用心得、提出改进建议。

相关链接

官方项目主站 官方插件市场 官方项目仓库 侧边展示主站

开发相关

插件开发文档 快速提交插件 官方项目文档

© 2026 AstrBot 插件市场 Made with by Community