Skip to content

Release history

AstrBot releases

All releases

61 shown

No immediate action
v4.25.2 Breaking risk

ChatUI, QQ adapter, KB chunker, Dashboard, docs

No immediate action
v4.25.1 Bug fix

Cyrillic rendering fix

No immediate action
v4.25.0 Breaking risk

SILK audio detection fix

Config change
v4.24.5 New feature
Auth

Two-stage dashboard update

Upgrade now
v4.24.4 Security relevant
Auth RCE / SSRF

Jinja2 SSTI fix

Upgrade now
v4.24.3 Security relevant
Auth RCE / SSRF

Jinja2 SSTI fix

v4.24.2 Breaking risk
Security fixes
  • Restrict `send_message_to_user` to current session for normal users; admins retain full targeting (CVE placeholder – security fix #7822)
Notable features
  • Plugin Pages: expose custom Dashboard pages via `pages/` directory
  • Internationalization support through `.astrbot-plugin/i18n`
Full changelog

我们将推出更好的 AstrBot 插件分享和管理平台,敬请期待!

What's Changed

新增

  • 新增插件自定义 WebUI 页面(Plugin Pages)能力,插件可通过 pages/ 目录和注册 Web 路由来向 Dashboard 暴露自定义页面。详见开发文档。(#5940
  • 新增插件国际化支持,插件可在 .astrbot-plugin/i18n 中提供多语言名称、描述和配置文本,Dashboard 组件会按当前语言解析展示。详见开发文档。(#7919
  • 新增插件技能支持,插件可通过 skills/ 提供 skills。(#7945)。详见开发文档。
  • 新增 extra_user_content_parts 临时内容标记,插件可使用 TextPart(...).mark_as_temp() 让追加内容只参与本轮 LLM 请求而不写入会话历史。(#7976)。详见插件开发文档。
  • 新增插件详情页、插件短描述、插件置顶,以及通过 AstrBot 官方插件存储下载插件的能力,改善插件安装与浏览体验。(#7896, #7918, #7930, #7931
  • 新增 fallback_max_context_tokens 配置,当模型元数据缺失且 max_context_tokens 为 0 时,可使用默认上下文窗口上限参与压缩判断。该值默认为 128k。(#7942
  • 支持在 WebUI Skills 页中查看并编辑技能文件。(#7903
  • 新增 CUA Computer Use 沙盒运行时,支持桌面 GUI、截图、键盘、鼠标、浏览器启动流程、前后台 Shell、文件回退处理与权限控制,并补充使用文档和测试。(#7828
  • 新增后台 Shell 命令执行、输出重定向和超时支持,并为 Python 工具增加 timeout 参数。(#7835, #7953
  • 新增 QQ 官方平台消息级 Markdown 控制能力。(#6980
  • 新增 Chat 与 Live Chat 路由的附件保存事件,前端可感知附件持久化结果。(#7869
  • 新增部署脚本,支持 Linux/macOS/WSL 与 Windows PowerShell 一键安装,并将脚本发布到 docs public 目录。(#7631

优化

  • 优化 Dashboard 扩展、知识库、MCP、技能和配置页面的布局、卡片样式、响应式表现与多语言文案。(#7903
  • 优化会话历史中的工具调用渲染,工具消息不再作为普通气泡直接进行 Markdown 渲染,而是聚合到对应 assistant 的工具卡片中,避免大工具结果导致页面卡顿。(#7937
  • 优化上下文管理与压缩策略,包括截断算法、用户消息删除问题修复、PPIO 上下文长度错误识别,以及配置界面对执行顺序的说明。(#7888, #7920
  • 优化 Provider 模型添加逻辑、模型启用开关持久化、Provider 测试失败提示,以及默认 Provider 缺失或无效时的启动警告。(#7865, #7498, #7934
  • 优化 send_message_to_user 在安全模式、cron 主动任务和无完整 session 格式场景下的提示与容错,并为 cron payload 增加 session 信息。(#7907, #7911
  • 优化 list+options 配置项,改用 v-autocomplete 并缓存候选项,改善长列表选择体验。(#7884, #7885
  • 优化命令与工具描述显示,WebUI 中被截断的描述现在可通过 tooltip 查看。(#7838
  • 优化指标统计、日志可读性、知识库文档、系统提示词文档,以及 AGENTS.md 中的 pre-commit 开发说明。(#7838, #7962

修复

  • 修复 send_message_to_user 可被普通用户指定任意 session 发送消息的安全问题;普通用户只能发送到当前会话,管理员仍可指定 session。(#7822, #7824
  • 修复 T2I 文本模板渲染回归,恢复原始文本渲染,默认注入 Shiki runtime,并调整内置模板和 WebUI 预览。(#7789
  • 修复 IME 输入法组合状态下按 Enter 会误发送聊天的问题。(#7845
  • 修复 Anthropic 并行工具结果合并、自定义请求头和 system prompt 兼容性,避免多 httpx 安装导致 client 类型不匹配,并使用列表格式 system 参数提升代理兼容性。(#7875, #7587
  • 修复 OpenAI Provider 的 http_client 与 SDK httpx 类型兼容问题。(#7773
  • 修复 stop_event() 后后续 handler 仍继续执行,以及 clear_result() 导致停止状态被重置的问题。(#7900, #7922
  • 修复 system_promptNone 时注入人格或 skills prompt 会报错的问题。(#7880
  • 修复 Shipyard Neo 沙盒就绪检测和优雅清理,避免未就绪时继续运行或关闭流程异常。(#7881
  • 修复桌面端插件安装并发问题,安装过程现在受核心锁保护。(#7872
  • 修复 QQ 官方私聊主动推送在缺少缓存 msg_id 时跳过发送的问题,同时保留群聊缓存校验。(#7904, #7914
  • 修复微信客服文件消息支持,并移除企业微信文件消息占位文本。(#7923
  • 修复钉钉 SDK 任务异常退出或连接超时后无法自动重连的问题。(#7924
  • 修复 PowerShell 安装脚本 BOM、部署脚本路径、.gitignore 与公开目录同步问题。
  • 修复工具调用 tool_choice 相关调试问题,暂时注释该参数以规避部分 Provider 不兼容。(#7853, #7856, #7862

What's Changed (EN)

New Features

  • Added the CUA Computer Use sandbox runtime with desktop GUI, screenshots, keyboard, mouse, browser startup flow, foreground/background shell support, filesystem fallbacks, permission handling, docs, and tests. (#7828)
  • Added Plugin Pages, allowing plugins to expose Dashboard pages through a pages/ directory with asset authentication, bridge script, back-button behavior, docs, and security tests. (#5940)
  • Added plugin internationalization support through .astrbot-plugin/i18n, including localized names, descriptions, config text, Dashboard integration, docs, and tests. (#7919)
  • Added plugin-provided skills with synchronization, metadata enrichment, plugin detail display, and configuration-aware filtering. (#7945)
  • Added the plugin detail page, plugin short descriptions, plugin pinning, and support for downloading plugins from AstrBot official plugin storage. (#7896, #7918, #7930, #7931)
  • Added background shell command execution with output redirection and timeout support, and added a timeout parameter to the Python tool. (#7835, #7953)
  • Added fallback_max_context_tokens, used when model metadata is missing and max_context_tokens is set to 0. (#7942)
  • Added message-level Markdown control for QQ Official. (#6980)
  • Added attachment saved events for Chat and Live Chat routes. (#7869)
  • Added Linux/macOS/WSL and Windows PowerShell deployment scripts, published through the docs public directory. (#7631)
  • Added temporary extra_user_content_parts; plugins can use TextPart(...).mark_as_temp() to include content in the current LLM request without persisting it into conversation history. (#7976)

Improvements

  • Improved the Dashboard extension, knowledge base, MCP, skills, and config pages with better layouts, card styles, responsiveness, translations, and skill-file editing in WebUI. (#7903)
  • Improved tool rendering in conversation history by grouping tool messages into the assistant tool card instead of rendering large tool results as normal Markdown bubbles. (#7937)
  • Improved context management and compression, including truncation behavior, user-message retention, PPIO context-length error detection, and clearer UI copy for execution order. (#7888, #7920)
  • Improved Provider model adding logic, model enable-toggle persistence, failed provider-test feedback, and startup warnings for missing or invalid default providers. (#7865, #7498, #7934)
  • Improved send_message_to_user prompts and tolerance in safety mode, cron proactive tasks, and incomplete session formats; cron payloads now include session information. (#7907, #7911)
  • Improved list+options config fields by switching to v-autocomplete and memoizing select items for better long-list selection. (#7884, #7885)
  • Improved truncated command and tool descriptions in WebUI by adding tooltip access. (#7838)
  • Improved metrics, log clarity, knowledge base docs, system prompt docs, and AGENTS.md pre-commit setup guidance. (#7838, #7962)

Bug Fixes

  • Fixed a security issue where normal users could ask send_message_to_user to send messages to arbitrary sessions; normal users are now restricted to the current session while admins can still target other sessions. (#7822, #7824)
  • Fixed T2I text template rendering by restoring raw text rendering, injecting Shiki runtime by default, and updating built-in templates and preview behavior. (#7789)
  • Fixed Enter key handling during IME composition in chat input. (#7845)
  • Fixed Anthropic parallel tool-result merging, custom headers, and system prompt compatibility by using default_headers and list-format system prompts. (#7875, #7587)
  • Fixed OpenAI Provider http_client compatibility with SDK httpx. (#7773)
  • Fixed stop_event() allowing later handlers to continue, and fixed stop-state reset caused by clear_result(). (#7900, #7922)
  • Fixed persona and skills prompt injection when system_prompt is None. (#7880)
  • Fixed Shipyard Neo readiness gating and graceful sandbox cleanup. (#7881)
  • Fixed concurrent desktop plugin installation by protecting installs with the core lock. (#7872)
  • Fixed QQ Official private proactive push being skipped when cached msg_id is missing, while preserving group-message cache validation. (#7904, #7914)
  • Fixed WeChat kefu file messages and removed the WeCom file-message placeholder. (#7923)
  • Fixed DingTalk reconnect failures after SDK task exits or connection timeouts. (#7924)
  • Fixed the PowerShell install script BOM, deploy script paths, .gitignore, and public-directory sync issues.
  • Fixed provider incompatibilities around tool_choice by temporarily commenting out the parameter for debugging. (#7853, #7856, #7862)

What's Changed

  • fix: restore T2I text template rendering by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/7789
  • feat: add message-level markdown control for QQ Official platform by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/6980
  • docs: add pre-commit setup guide to AGENTS.md by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7838
  • fix: prevent IME enter from sending chat by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7845
  • feat: add CUA computer-use sandbox support by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7828
  • feat: add one-line deploy script (deploy-cli.sh) by @EterUltimate in https://github.com/AstrBotDevs/AstrBot/pull/7631
  • chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.3 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7857
  • feat: add attachment saved event handling in chat and live chat routes by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7869
  • fix: Protect desktop plugin installs with core lock by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7872
  • feat(shell): add background command execution with output redirection and timeout support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7835
  • fix: merge anthropic parallel tool results by @daniel5u in https://github.com/AstrBotDevs/AstrBot/pull/7875
  • fix(provider): persist model enable toggle by @ACAne0320 in https://github.com/AstrBotDevs/AstrBot/pull/7865
  • fix(core): restrict send_message_to_user to current session (security fix #7822) by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7824
  • fix(shipyard-neo): add readiness gate and graceful sandbox cleanup by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/7881
  • fix: warn when default chat provider is unset by @s11IM in https://github.com/AstrBotDevs/AstrBot/pull/7498
  • fix(dashboard): use v-autocomplete for list+options config field (#7884) by @10knamesmore in https://github.com/AstrBotDevs/AstrBot/pull/7885
  • feat: add PluginDetailPage component for detailed plugin information display by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7896
  • fix: stop_event() 后续 handler 仍然执行 by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7900
  • fix: align OpenAI http_client with SDK httpx by @bugkeep in https://github.com/AstrBotDevs/AstrBot/pull/7773
  • perf: improve ui and supports edit skills file in webui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7903
  • feat: re-implement plugin pinning functionality for extensions by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7918
  • fix: guard against None system_prompt in _ensure_persona_and_skills by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/7880
  • feat: Implement plugin internationalization support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7919
  • fix(#7904): QQ官方私聊主动推送不再因缺少缓存 msg_id 而跳过发送 by @NayukiChiba in https://github.com/AstrBotDevs/AstrBot/pull/7914
  • feat: supports to download plugins via astrbot official plugin storage by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7930
  • feat: add short description support for plugin by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7931
  • fix: prevent stop_event() state from being reset by clear_result() by @lingyun14beta in https://github.com/AstrBotDevs/AstrBot/pull/7922
  • fix: 优化上下文管理策略 UI 文案,明确执行顺序 by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7920
  • fix: avoid success toast on failed provider test by @Fronut in https://github.com/AstrBotDevs/AstrBot/pull/7934
  • feat: add fallback_max_context_tokens config for context compression by @Pleiades1726 in https://github.com/AstrBotDevs/AstrBot/pull/7942
  • fix: handle PPIO platform context-length error messages by @leonforcode in https://github.com/AstrBotDevs/AstrBot/pull/7888
  • fix: 支持微信客服文件消息 by @AstralSolipsism in https://github.com/AstrBotDevs/AstrBot/pull/7923
  • fix(provider): fix Anthropic custom headers and system prompt compatibility by @PinkYuDeer in https://github.com/AstrBotDevs/AstrBot/pull/7587
  • fix(#7907): send_message_to_user cron 场景下 session 容错 by @NayukiChiba in https://github.com/AstrBotDevs/AstrBot/pull/7911
  • perf: tool rendering in conversation page by @10knamesmore in https://github.com/AstrBotDevs/AstrBot/pull/7937
  • feat: add python tool timeout param by @Fronut in https://github.com/AstrBotDevs/AstrBot/pull/7953
  • fix: 钉钉连接超时后自动重连失败 by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7924
  • feat: supports plugin to add skills by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7945
  • feat: supports plugin to register custom pages (webui) by @lxfight in https://github.com/AstrBotDevs/AstrBot/pull/5940
  • feat: add temporary extra user content parts by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7976

New Contributors

  • @EterUltimate made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7631
  • @ACAne0320 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7865
  • @s11IM made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7498
  • @10knamesmore made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7885
  • @Fronut made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7934
  • @Pleiades1726 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7942
  • @AstralSolipsism made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7923
  • @PinkYuDeer made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7587

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.23.6...v4.24.1

v4.24.1 Breaking risk
Security fixes
  • Restricts `send_message_to_user` to current session for normal users (CVE not listed)
Notable features
  • Plugin Pages: expose custom Dashboard pages via `pages/` directory
  • Internationalization support for plugins through `.astrbot-plugin/i18n`
Full changelog

我们将推出更好的 AstrBot 插件分享和管理平台,敬请期待!

What's Changed

新增

  • 新增插件自定义 WebUI 页面(Plugin Pages)能力,插件可通过 pages/ 目录和注册 Web 路由来向 Dashboard 暴露自定义页面。详见开发文档。(#5940
  • 新增插件国际化支持,插件可在 .astrbot-plugin/i18n 中提供多语言名称、描述和配置文本,Dashboard 组件会按当前语言解析展示。详见开发文档。(#7919
  • 新增插件技能支持,插件可通过 skills/ 提供 skills。(#7945)。详见开发文档。
  • 新增 extra_user_content_parts 临时内容标记,插件可使用 TextPart(...).mark_as_temp() 让追加内容只参与本轮 LLM 请求而不写入会话历史。(#7976)。详见插件开发文档。
  • 新增插件详情页、插件短描述、插件置顶,以及通过 AstrBot 官方插件存储下载插件的能力,改善插件安装与浏览体验。(#7896, #7918, #7930, #7931
  • 新增 fallback_max_context_tokens 配置,当模型元数据缺失且 max_context_tokens 为 0 时,可使用默认上下文窗口上限参与压缩判断。该值默认为 128k。(#7942
  • 支持在 WebUI Skills 页中查看并编辑技能文件。(#7903
  • 新增 CUA Computer Use 沙盒运行时,支持桌面 GUI、截图、键盘、鼠标、浏览器启动流程、前后台 Shell、文件回退处理与权限控制,并补充使用文档和测试。(#7828
  • 新增后台 Shell 命令执行、输出重定向和超时支持,并为 Python 工具增加 timeout 参数。(#7835, #7953
  • 新增 QQ 官方平台消息级 Markdown 控制能力。(#6980
  • 新增 Chat 与 Live Chat 路由的附件保存事件,前端可感知附件持久化结果。(#7869
  • 新增部署脚本,支持 Linux/macOS/WSL 与 Windows PowerShell 一键安装,并将脚本发布到 docs public 目录。(#7631

优化

  • 优化 Dashboard 扩展、知识库、MCP、技能和配置页面的布局、卡片样式、响应式表现与多语言文案。(#7903
  • 优化会话历史中的工具调用渲染,工具消息不再作为普通气泡直接进行 Markdown 渲染,而是聚合到对应 assistant 的工具卡片中,避免大工具结果导致页面卡顿。(#7937
  • 优化上下文管理与压缩策略,包括截断算法、用户消息删除问题修复、PPIO 上下文长度错误识别,以及配置界面对执行顺序的说明。(#7888, #7920
  • 优化 Provider 模型添加逻辑、模型启用开关持久化、Provider 测试失败提示,以及默认 Provider 缺失或无效时的启动警告。(#7865, #7498, #7934
  • 优化 send_message_to_user 在安全模式、cron 主动任务和无完整 session 格式场景下的提示与容错,并为 cron payload 增加 session 信息。(#7907, #7911
  • 优化 list+options 配置项,改用 v-autocomplete 并缓存候选项,改善长列表选择体验。(#7884, #7885
  • 优化命令与工具描述显示,WebUI 中被截断的描述现在可通过 tooltip 查看。(#7838
  • 优化指标统计、日志可读性、知识库文档、系统提示词文档,以及 AGENTS.md 中的 pre-commit 开发说明。(#7838, #7962

修复

  • 修复 send_message_to_user 可被普通用户指定任意 session 发送消息的安全问题;普通用户只能发送到当前会话,管理员仍可指定 session。(#7822, #7824
  • 修复 T2I 文本模板渲染回归,恢复原始文本渲染,默认注入 Shiki runtime,并调整内置模板和 WebUI 预览。(#7789
  • 修复 IME 输入法组合状态下按 Enter 会误发送聊天的问题。(#7845
  • 修复 Anthropic 并行工具结果合并、自定义请求头和 system prompt 兼容性,避免多 httpx 安装导致 client 类型不匹配,并使用列表格式 system 参数提升代理兼容性。(#7875, #7587
  • 修复 OpenAI Provider 的 http_client 与 SDK httpx 类型兼容问题。(#7773
  • 修复 stop_event() 后后续 handler 仍继续执行,以及 clear_result() 导致停止状态被重置的问题。(#7900, #7922
  • 修复 system_promptNone 时注入人格或 skills prompt 会报错的问题。(#7880
  • 修复 Shipyard Neo 沙盒就绪检测和优雅清理,避免未就绪时继续运行或关闭流程异常。(#7881
  • 修复桌面端插件安装并发问题,安装过程现在受核心锁保护。(#7872
  • 修复 QQ 官方私聊主动推送在缺少缓存 msg_id 时跳过发送的问题,同时保留群聊缓存校验。(#7904, #7914
  • 修复微信客服文件消息支持,并移除企业微信文件消息占位文本。(#7923
  • 修复钉钉 SDK 任务异常退出或连接超时后无法自动重连的问题。(#7924
  • 修复 PowerShell 安装脚本 BOM、部署脚本路径、.gitignore 与公开目录同步问题。
  • 修复工具调用 tool_choice 相关调试问题,暂时注释该参数以规避部分 Provider 不兼容。(#7853, #7856, #7862

What's Changed (EN)

New Features

  • Added the CUA Computer Use sandbox runtime with desktop GUI, screenshots, keyboard, mouse, browser startup flow, foreground/background shell support, filesystem fallbacks, permission handling, docs, and tests. (#7828)
  • Added Plugin Pages, allowing plugins to expose Dashboard pages through a pages/ directory with asset authentication, bridge script, back-button behavior, docs, and security tests. (#5940)
  • Added plugin internationalization support through .astrbot-plugin/i18n, including localized names, descriptions, config text, Dashboard integration, docs, and tests. (#7919)
  • Added plugin-provided skills with synchronization, metadata enrichment, plugin detail display, and configuration-aware filtering. (#7945)
  • Added the plugin detail page, plugin short descriptions, plugin pinning, and support for downloading plugins from AstrBot official plugin storage. (#7896, #7918, #7930, #7931)
  • Added background shell command execution with output redirection and timeout support, and added a timeout parameter to the Python tool. (#7835, #7953)
  • Added fallback_max_context_tokens, used when model metadata is missing and max_context_tokens is set to 0. (#7942)
  • Added message-level Markdown control for QQ Official. (#6980)
  • Added attachment saved events for Chat and Live Chat routes. (#7869)
  • Added Linux/macOS/WSL and Windows PowerShell deployment scripts, published through the docs public directory. (#7631)
  • Added temporary extra_user_content_parts; plugins can use TextPart(...).mark_as_temp() to include content in the current LLM request without persisting it into conversation history. (#7976)

Improvements

  • Improved the Dashboard extension, knowledge base, MCP, skills, and config pages with better layouts, card styles, responsiveness, translations, and skill-file editing in WebUI. (#7903)
  • Improved tool rendering in conversation history by grouping tool messages into the assistant tool card instead of rendering large tool results as normal Markdown bubbles. (#7937)
  • Improved context management and compression, including truncation behavior, user-message retention, PPIO context-length error detection, and clearer UI copy for execution order. (#7888, #7920)
  • Improved Provider model adding logic, model enable-toggle persistence, failed provider-test feedback, and startup warnings for missing or invalid default providers. (#7865, #7498, #7934)
  • Improved send_message_to_user prompts and tolerance in safety mode, cron proactive tasks, and incomplete session formats; cron payloads now include session information. (#7907, #7911)
  • Improved list+options config fields by switching to v-autocomplete and memoizing select items for better long-list selection. (#7884, #7885)
  • Improved truncated command and tool descriptions in WebUI by adding tooltip access. (#7838)
  • Improved metrics, log clarity, knowledge base docs, system prompt docs, and AGENTS.md pre-commit setup guidance. (#7838, #7962)

Bug Fixes

  • Fixed a security issue where normal users could ask send_message_to_user to send messages to arbitrary sessions; normal users are now restricted to the current session while admins can still target other sessions. (#7822, #7824)
  • Fixed T2I text template rendering by restoring raw text rendering, injecting Shiki runtime by default, and updating built-in templates and preview behavior. (#7789)
  • Fixed Enter key handling during IME composition in chat input. (#7845)
  • Fixed Anthropic parallel tool-result merging, custom headers, and system prompt compatibility by using default_headers and list-format system prompts. (#7875, #7587)
  • Fixed OpenAI Provider http_client compatibility with SDK httpx. (#7773)
  • Fixed stop_event() allowing later handlers to continue, and fixed stop-state reset caused by clear_result(). (#7900, #7922)
  • Fixed persona and skills prompt injection when system_prompt is None. (#7880)
  • Fixed Shipyard Neo readiness gating and graceful sandbox cleanup. (#7881)
  • Fixed concurrent desktop plugin installation by protecting installs with the core lock. (#7872)
  • Fixed QQ Official private proactive push being skipped when cached msg_id is missing, while preserving group-message cache validation. (#7904, #7914)
  • Fixed WeChat kefu file messages and removed the WeCom file-message placeholder. (#7923)
  • Fixed DingTalk reconnect failures after SDK task exits or connection timeouts. (#7924)
  • Fixed the PowerShell install script BOM, deploy script paths, .gitignore, and public-directory sync issues.
  • Fixed provider incompatibilities around tool_choice by temporarily commenting out the parameter for debugging. (#7853, #7856, #7862)

What's Changed

  • fix: restore T2I text template rendering by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/7789
  • feat: add message-level markdown control for QQ Official platform by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/6980
  • docs: add pre-commit setup guide to AGENTS.md by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7838
  • fix: prevent IME enter from sending chat by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7845
  • feat: add CUA computer-use sandbox support by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7828
  • feat: add one-line deploy script (deploy-cli.sh) by @EterUltimate in https://github.com/AstrBotDevs/AstrBot/pull/7631
  • chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.3 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7857
  • feat: add attachment saved event handling in chat and live chat routes by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7869
  • fix: Protect desktop plugin installs with core lock by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7872
  • feat(shell): add background command execution with output redirection and timeout support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7835
  • fix: merge anthropic parallel tool results by @daniel5u in https://github.com/AstrBotDevs/AstrBot/pull/7875
  • fix(provider): persist model enable toggle by @ACAne0320 in https://github.com/AstrBotDevs/AstrBot/pull/7865
  • fix(core): restrict send_message_to_user to current session (security fix #7822) by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7824
  • fix(shipyard-neo): add readiness gate and graceful sandbox cleanup by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/7881
  • fix: warn when default chat provider is unset by @s11IM in https://github.com/AstrBotDevs/AstrBot/pull/7498
  • fix(dashboard): use v-autocomplete for list+options config field (#7884) by @10knamesmore in https://github.com/AstrBotDevs/AstrBot/pull/7885
  • feat: add PluginDetailPage component for detailed plugin information display by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7896
  • fix: stop_event() 后续 handler 仍然执行 by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7900
  • fix: align OpenAI http_client with SDK httpx by @bugkeep in https://github.com/AstrBotDevs/AstrBot/pull/7773
  • perf: improve ui and supports edit skills file in webui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7903
  • feat: re-implement plugin pinning functionality for extensions by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7918
  • fix: guard against None system_prompt in _ensure_persona_and_skills by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/7880
  • feat: Implement plugin internationalization support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7919
  • fix(#7904): QQ官方私聊主动推送不再因缺少缓存 msg_id 而跳过发送 by @NayukiChiba in https://github.com/AstrBotDevs/AstrBot/pull/7914
  • feat: supports to download plugins via astrbot official plugin storage by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7930
  • feat: add short description support for plugin by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7931
  • fix: prevent stop_event() state from being reset by clear_result() by @lingyun14beta in https://github.com/AstrBotDevs/AstrBot/pull/7922
  • fix: 优化上下文管理策略 UI 文案,明确执行顺序 by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7920
  • fix: avoid success toast on failed provider test by @Fronut in https://github.com/AstrBotDevs/AstrBot/pull/7934
  • feat: add fallback_max_context_tokens config for context compression by @Pleiades1726 in https://github.com/AstrBotDevs/AstrBot/pull/7942
  • fix: handle PPIO platform context-length error messages by @leonforcode in https://github.com/AstrBotDevs/AstrBot/pull/7888
  • fix: 支持微信客服文件消息 by @AstralSolipsism in https://github.com/AstrBotDevs/AstrBot/pull/7923
  • fix(provider): fix Anthropic custom headers and system prompt compatibility by @PinkYuDeer in https://github.com/AstrBotDevs/AstrBot/pull/7587
  • fix(#7907): send_message_to_user cron 场景下 session 容错 by @NayukiChiba in https://github.com/AstrBotDevs/AstrBot/pull/7911
  • perf: tool rendering in conversation page by @10knamesmore in https://github.com/AstrBotDevs/AstrBot/pull/7937
  • feat: add python tool timeout param by @Fronut in https://github.com/AstrBotDevs/AstrBot/pull/7953
  • fix: 钉钉连接超时后自动重连失败 by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7924
  • feat: supports plugin to add skills by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7945
  • feat: supports plugin to register custom pages (webui) by @lxfight in https://github.com/AstrBotDevs/AstrBot/pull/5940
  • feat: add temporary extra user content parts by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7976

New Contributors

  • @EterUltimate made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7631
  • @ACAne0320 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7865
  • @s11IM made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7498
  • @10knamesmore made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7885
  • @Fronut made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7934
  • @Pleiades1726 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7942
  • @AstralSolipsism made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7923
  • @PinkYuDeer made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7587

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.23.6...v4.24.1

v4.23.6 Breaking risk
Notable features
  • Added `/stats` command to view conversation token usage (total, input cached/other, output).
  • Introduced Firecrawl web search and extraction tooling with session management.
  • Implemented 15‑second deduplication for WeChat kefu text messages.
Full changelog

What's Changed

新增

  • 新增 /stats 命令,可查看当前会话的 Token 使用统计,并按总量、输入(缓存)、输入(其他)与输出拆分展示。(#7831
  • 新增 Firecrawl Web 搜索与网页提取工具,支持搜索结果处理、网页内容提取、会话管理、请求校验与相关测试。(#7764
  • 微信客服文本消息新增 15 秒内去重,减少重复消息处理。(#7788

优化

  • 优化 Provider 配置界面性能与响应式显示,改善相关组件的字体和布局体验。(#7772
  • 优化统计页 TPM 计算逻辑,TPM 现在仅统计输出 Token,并更新相关文案。(#7827
  • 优化 OpenAI 兼容 Provider 的空 assistant 消息过滤逻辑,流式与非流式路径统一处理空字符串和空列表内容,避免严格 Provider 拒绝历史消息。(#7758

修复

  • 修复 DeepSeek v4 与 reasoning content 相关处理,支持空字符串 reasoning 内容,并在 assistant 消息中保留 reasoning 字段。(#7823, #7830
  • 修复 OpenRouter reasoning 字段属性名不正确的问题。(#7821
  • 修复超大图片未压缩可能导致后续处理异常的问题,并复用图片最大尺寸检查工具。(#7807
  • 修复 MiniMax TTS 默认输出 MP3 导致 QQ 官方平台语音转换出现 RIFF 错误的问题,默认输出格式改为 WAV。(#7797
  • 修复 Computer 沙盒图片下载未按图片发送的问题。(#7785
  • 修复 Windows 环境下部分 HTTPS 请求证书校验失败的问题,使用 certifi SSL context 提升兼容性。(#7778
  • 修复非安全上下文或部分对话框中复制功能不可用的问题,抽取共享剪贴板工具并增加 fallback。(#7747
  • 修复文件上传可能存在路径穿越的问题,并清理上传文件名中的 NUL 字节。(#7751

What's Changed (EN)

New Features

  • Added a /stats command to show token usage for the current conversation, including total tokens, input cached tokens, input other tokens, and output tokens. (#7831)
  • Added Firecrawl web search and web extract tools with result handling, content extraction, session management, payload validation, and tests. (#7764)
  • Added 15-second deduplication for WeChat kefu text messages to reduce duplicate message handling. (#7788)

Improvements

  • Improved the Provider configuration UI performance and responsive layout, including font and component styling updates. (#7772)
  • Updated stats-page TPM calculation so TPM only counts output tokens, with matching label updates. (#7827)
  • Improved empty assistant message filtering for OpenAI-compatible providers by sharing the logic across streaming and non-streaming paths and handling empty string or empty list content. (#7758)

Bug Fixes

  • Fixed DeepSeek v4 and reasoning content handling by supporting empty-string reasoning content and preserving the reasoning field in assistant messages. (#7823, #7830)
  • Fixed the reasoning field attribute used for OpenRouter. (#7821)
  • Fixed oversized image handling by downscaling large images and sharing the image max-size check helper. (#7807)
  • Fixed MiniMax TTS output for QQ Official voice conversion by changing the default output format from MP3 to WAV. (#7797)
  • Fixed Computer sandbox image downloads so they are sent as images. (#7785)
  • Fixed HTTPS certificate verification issues on Windows by using a certifi SSL context. (#7778)
  • Fixed copy actions in insecure contexts and dialogs by extracting a shared clipboard utility with fallback behavior. (#7747)
  • Fixed path traversal risks in file uploads and removed embedded NUL bytes from upload filenames. (#7751)

What's Changed

  • fix: prevent path traversal in file uploads by @bugkeep in https://github.com/AstrBotDevs/AstrBot/pull/7751
  • fix: 在非安全上下文中为 copyMessage 添加 execCommand 备用方案 by @alonguser in https://github.com/AstrBotDevs/AstrBot/pull/7747
  • perf: improve provider config ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7772
  • feat: add deduplication for WeChat kefu text messages within 15 seconds by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7788
  • fix: use certifi ssl context on Windows by @lingyun14beta in https://github.com/AstrBotDevs/AstrBot/pull/7778
  • fix(computer): send sandbox image downloads as images by @RhoninSeiei in https://github.com/AstrBotDevs/AstrBot/pull/7785
  • feat: add Firecrawl web search tools by @wjiajian in https://github.com/AstrBotDevs/AstrBot/pull/7764
  • fix(openai): apply empty-assistant filter to streaming path by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7758
  • fix: revise reasoning_key attribute to OpenRouter by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7821
  • [fix] 将Minimax TTS默认输出格式改为wav以解决RIFF错误 by @enemywind-zm in https://github.com/AstrBotDevs/AstrBot/pull/7797
  • fix(core): downscale oversized images by @bugkeep in https://github.com/AstrBotDevs/AstrBot/pull/7807
  • fix: deepseek v4 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7823
  • fix: update reasoning_content handling to support empty string values by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7830
  • feat: add /stats command to view conversation token usage by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7831
  • fix(stats): TPM now only counts output tokens by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7827

New Contributors

  • @bugkeep made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7751
  • @alonguser made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7747
  • @lingyun14beta made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7778
  • @wjiajian made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7764
  • @enemywind-zm made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7797

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.23.5...v4.23.6

v4.23.5 New feature
Security fixes
  • Fixed path traversal vulnerability in backup importer (CWE-22)
Notable features
  • Added EPUB support for knowledge‑base document upload (parsing, reading, tests)
  • Reintroduced `/provider` built‑in command to view and manage Provider information
  • WebUI chat now supports inline message editing, regeneration from selected messages, thread panel, and conversation checkpoint
Full changelog

What's Changed

新增

  • WebUI ChatUI 新增消息重新编辑、从重新生成 AI 回复、分支询问面板(划选 AI 回复内容即可看到)与会话 checkpoint 支持。(#7673
  • WebUI ChatUI 适配思考时的工具调用的模式,并自动将该 Loop 过程合并到独立的侧边栏面板中,以时间线呈现,大幅提升用户体验。(#7742)
  • WebUI ChatUI 附件处理新增预览与 Dedup 校验,改善上传前的附件识别与展示体验,修复用户消息气泡无法正常显示图片的问题。(commit
  • 知识库文档上传新增 EPUB 支持,并补充 EPUB 解析、文件读取与相关测试。(#7594
  • 非流式 Agent Loop 新增中间工具调用消息过程折叠发送功能。(#7627
  • 重新内置 /provider 命令,支持通过命令管理与查看 Provider 相关信息。(#7691
  • 插件页新增“有新版本时置顶显示”能力,并支持保存该偏好设置。(#7665

优化

  • 优化 FileReadTool 描述,明确图片、PDF 与 DOCX 支持,并增强工具结果的模态能力检查。(#7506
  • 统一多处文档链接,修正 CLI、配置、Dashboard 与知识库页面中的文档入口。(#7709

修复

  • 修复部分国内或自定义 OpenAI/Anthropic 兼容模型提供商因 TLS 证书链、代理或模型列表能力差异导致配置不可用的问题。(#7685
  • 修复模型回复包含 reasoning content 时可能漏发普通回复的问题。(#7715
  • 修复 QQ 官方 API 在 DNS 或连接瞬时异常下缺少重试导致请求失败的问题。(#7718
  • 修复 RegexFilter 不能同时接受 strre.Pattern 的问题。(#7633
  • 修复备份导入器存在路径穿越风险的问题。(#7681
  • 修复旧版 documents_fts 表残留时可能影响知识库 FTS 迁移的问题。(#7706
  • 修复 MiniMax Token Plan Provider 在已配置模型不在硬编码列表中时直接阻塞的问题,改为警告提示。(#7692
  • 修复 MCP schema 中无效 required 字段未被规范化导致工具 schema 异常的问题。(#6077
  • 修复视频附件传给 LLM 时的处理问题,并补充相关测试。(#7679

What's Changed (EN)

New Features

  • Added inline message editing, regeneration from a selected message, a thread panel, and conversation checkpoint support to the WebUI chat page. (#7673)
  • Added chat attachment previews and file signature checks in WebUI to improve attachment recognition and display before upload. (commit)
  • Added buffered intermediate messages for the non-streaming Agent Loop, allowing process messages such as tool calls to be surfaced in non-streaming scenarios. (#7627)
  • Reintroduced /provider as a built-in command for viewing and managing Provider-related information. (#7691)
  • Added an option to pin installed plugins with available updates to the top of the plugin page, with persisted preference storage. (#7665)
  • Added EPUB support for knowledge-base document upload, including EPUB parsing, file reading support, and tests. (#7594)

Improvements

  • Updated the FileReadTool description to mention image, PDF, and DOCX support, and improved modality checks for tool results. (#7506)
  • Unified documentation links across CLI output, configuration, Dashboard, and knowledge-base pages. (#7709)

Bug Fixes

  • Fixed missing normal replies when model output contains reasoning content. (#7715)
  • Added retries for transient DNS and connection errors in the QQ Official API flow. (#7718)
  • Fixed RegexFilter so it accepts both str and re.Pattern. (#7633)
  • Fixed a path traversal vulnerability in the backup importer. (#7681)
  • Dropped legacy documents_fts tables when present to avoid knowledge-base FTS migration issues. (#7706)
  • Fixed configuration failures for some domestic or custom OpenAI/Anthropic-compatible model providers caused by TLS certificate chains, proxy handling, or model-list capability differences. (#7685)
  • Changed MiniMax Token Plan Provider behavior to warn instead of blocking when a configured model is not in the hardcoded model list. (#7692)
  • Normalized invalid required flags in MCP schemas to avoid tool schema errors. (#6077)
  • Fixed video attachment handling for LLM requests and added related tests. (#7679)

What's Changed

  • fix: handle video attachment for llm by @xunxiing in https://github.com/AstrBotDevs/AstrBot/pull/7679
  • fix: normalize invalid MCP required flags in MCP schemas by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6077
  • feat: add epub support for knowledge base document upload by @Aster-amellus in https://github.com/AstrBotDevs/AstrBot/pull/7594
  • feat: 插件有新版本时置顶显示(可开关) by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7665
  • fix: warn instead of blocking when configured model not in hardcoded list by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7692
  • fix: 修复了国内配置一些模型不可用问题 by @hjdhnx in https://github.com/AstrBotDevs/AstrBot/pull/7685
  • fix: drop legacy documents_fts table if exists by @Sisyphbaous-DT-Project in https://github.com/AstrBotDevs/AstrBot/pull/7706
  • feat: re-establishing /provider as a built-in command by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7691
  • docs: Unify documentation links by @Rain-0x01-39 in https://github.com/AstrBotDevs/AstrBot/pull/7709
  • fix: prevent path traversal in backup importer (CWE-22) by @sebastiondev in https://github.com/AstrBotDevs/AstrBot/pull/7681
  • feat: add buffered intermediate messages for non-streaming agent loop by @alicesainta in https://github.com/AstrBotDevs/AstrBot/pull/7627
  • fix: accept both str and re.Pattern in RegexFilter by @ShadowLemoon in https://github.com/AstrBotDevs/AstrBot/pull/7633
  • perf: update FileReadTool description to mention image, PDF and docx support, and enhance modality checking in tool result case by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7506
  • feat: add inline message editing and regeneration functionality for webui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7673
  • fix: add retry on DNS/connection transient errors for QQ Official API by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7718
  • fix: missing replies when reasoning content is present by always emitting reasoning messages alongside normal completion outputs by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7715
  • fix: add missing platform adapter filter types by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7738
  • perf: improve tool calls in reasoning and multiple tool calls display by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7742
  • 修复appid提示不适用于所有对应适配器的问题 by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/7746

New Contributors

  • @hjdhnx made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7685
  • @Sisyphbaous-DT-Project made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7706
  • @sebastiondev made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7681
  • @ShadowLemoon made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7633

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.23.2...v4.23.5

v4.23.2 Breaking risk
Notable features
  • Added SQLite FTS5 support to knowledge‑base sparse retrieval stage, optimizing latency for tens‑to‑hundreds of thousands of chunks.
  • Implemented KOOK role mention support (records, event parsing, API types, tests).
  • Introduced MiniMax Token Plan Provider.
Full changelog

What's Changed

新增

  • 知识库稀疏检索阶段新增 SQLite FTS5 支持,大幅优化万到十万级别分块时造成的召回时的显著卡顿。(#7648
  • KOOK 平台新增角色提及支持,包含角色记录、事件解析、API 类型与相关测试。(#7626
  • 新增 MiniMax Token Plan Provider。(#7609
  • 新增 on_agent_beginon_using_llm_toolon_llm_tool_respondon_agent_done 插件事件钩子,并更新插件开发文档。(#7540
  • 为 t2i 模板启用 Shiki 代码高亮,并新增 VitePress 风格模板。(#7501

优化

  • 优化 EmptyModelOutputError 处理,不再严格强制校验模型工具输出的名字是否符合工具集,采用引导的方式让模型输出正确的工具调用。(#7375
  • 优化 SendMessageToUserTool 工具在本地 workspace root 内解析相对文件路径的问题。(#7668

修复

  • 修复 Bocha 搜索返回 Brotli 压缩内容时出现 Can not decode content-encoding: br 的问题。(#7655

  • 修复微信个人号主动 Cron 发送时 context_token 未持久化的问题。(#7595

  • 修复 Anthropic Provider 默认 max_tokens 偏小导致工具调用输出文件操作时造成大量截断的问题。(#7593

  • 修复 Cron last_run_at 在 Dashboard 中未按本地时区显示的问题。(#7625

  • 修复 Cron 工具调度失败时静默继续的问题,并在失败时返回明确错误给模型。(#7513

  • 修复 Telegram 媒体组异常被静默吞掉的问题。(#7537

  • 修复会话限流计数为 0 时可能触发 IndexError 的问题。(#7635

  • 修复知识库上传错误处理与错误提示,提升失败时的可诊断性。(#7534, #7536

  • 修复 Dashboard 聊天附件 401 问题。(#7569

  • 修复 Dashboard 数字输入框在未编辑时失焦会重置为 0 的问题。(#7560

  • 修复 Dashboard 列表项内代码块暗色模式传递问题,并移除 ThemeAwareMarkdownCodeBlock 中注入的默认值。(#7667, commit

  • 修复 Updater 请求不支持 SOCKS 代理的问题,并补充相关测试。(#7615

  • 回滚 SCSS import warning 修复以避免相关兼容问题。(#7616

What's Changed (EN)

New Features

  • Added SQLite FTS5 support to the knowledge-base sparse retrieval stage, greatly reducing recall latency for knowledge bases with tens of thousands to hundreds of thousands of chunks. (#7648)
  • Added KOOK role mention support, including role records, event parsing, API types, and tests. (#7626)
  • Added the MiniMax Token Plan Provider. (#7609)
  • Added plugin event hooks for on_agent_begin, on_using_llm_tool, on_llm_tool_respond, and on_agent_done, with updated plugin development docs. (#7540)
  • Enabled Shiki highlighting for t2i templates and added a VitePress-style template. (#7501)

Improvements

  • Improved EmptyModelOutputError handling by no longer strictly enforcing whether model tool output names match the tool set, and instead guiding the model toward valid tool calls. (#7375)
  • Improved relative file path resolution within the local workspace root for SendMessageToUserTool. (#7668)

Bug Fixes

  • Fixed Bocha search failures caused by Brotli-compressed responses reporting Can not decode content-encoding: br. (#7655)
  • Fixed context_token persistence for proactive Cron sends in the Weixin OC adapter. (#7595)
  • Increased the Anthropic Provider default max_tokens value to avoid heavy truncation during tool-call output for file operations. (#7593)
  • Displayed Cron last_run_at in the local timezone in Dashboard. (#7625)
  • Returned explicit errors to the model when Cron tool scheduling fails instead of continuing silently. (#7513)
  • Prevented Telegram media group exceptions from being silently swallowed. (#7537)
  • Fixed an IndexError when session rate_limit_count is 0. (#7635)
  • Improved knowledge-base upload error handling and error messages for better diagnostics. (#7534, #7536)
  • Fixed Dashboard chat attachment 401 errors. (#7569)
  • Fixed numeric inputs resetting to 0 on blur when the value was not edited. (#7560)
  • Fixed dark-mode propagation for code blocks inside Dashboard list items and removed the injected default value from ThemeAwareMarkdownCodeBlock. (#7667, commit)
  • Added SOCKS proxy support for updater requests and related tests. (#7615)
  • Reverted the SCSS import warning fix to avoid related compatibility issues. (#7616)

What's Changed

  • chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7524
  • perf(ci): improve dashboard and docs ci to pnpm and cache by @kyangconn in https://github.com/AstrBotDevs/AstrBot/pull/7522
  • fix: improve knowledge base upload error messages by @catDforD in https://github.com/AstrBotDevs/AstrBot/pull/7534
  • fix: improve error handling for knowledge base upload by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/7536
  • feat: enable shiki highlighting for t2i templates and add a template by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/7501
  • feat: add on_agent_begin, on_using_llm_tool, on_llm_tool_respond, on_agent_done event hooks by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7540
  • fix(dashboard): resolve chat attachment 401 by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/7569
  • fix: prevent numeric input from resetting to zero on blur without edit by @3351163616 in https://github.com/AstrBotDevs/AstrBot/pull/7560
  • fix: increase anthropic default max tokens by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7593
  • fix(weixin_oc): persist context_token for proactive cron sends by @SweetenedSuzuka in https://github.com/AstrBotDevs/AstrBot/pull/7595
  • fix: scss import warning by @kyangconn in https://github.com/AstrBotDevs/AstrBot/pull/7528
  • fix: return an explicit erro from the cron tool when scheduling a task fails instead of processing silently by @Hongbro886 in https://github.com/AstrBotDevs/AstrBot/pull/7513
  • docs: correct documentation URL from astrbot.app to docs.astrbot.app by @Hongbro886 in https://github.com/AstrBotDevs/AstrBot/pull/7612
  • revert "fix: scss import warning" by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7616
  • fix: support SOCKS proxies in updater requests by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7615
  • feat: add MiniMax Token Plan provider with hardcoded model list by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7609
  • fix: correct minor text inconsistencies in README files and document by @alicesainta in https://github.com/AstrBotDevs/AstrBot/pull/7602
  • fix: display cron last_run_at in local timezone by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/7625
  • feat: implement FTS5 support in knowledge base sparse retrieving stage by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7648
  • fix: prevent Telegram media group exceptions from being silently swallowed by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7537
  • fix: handle rate_limit_count=0 to prevent IndexError by @bobo-xxx in https://github.com/AstrBotDevs/AstrBot/pull/7635
  • fix(dashboard): propagate dark mode to code blocks inside list items by @MostimaBridges in https://github.com/AstrBotDevs/AstrBot/pull/7667
  • fix: force Bocha search API requests to use gzip/deflate encoding to avoid aiohttp 3.12+ brotli decoding errors. by @MagicSun7940 in https://github.com/AstrBotDevs/AstrBot/pull/7655
  • fix: resolve relative file paths within a local workspace root for the SendMessageToUserTool by @Blueteemo in https://github.com/AstrBotDevs/AstrBot/pull/7668
  • feat: implements support for KOOK role mentions by @shuiping233 in https://github.com/AstrBotDevs/AstrBot/pull/7626
  • fix: resolve EmptyModelOutputError and enhance tool fallback robustness by @xmbhjQAQ in https://github.com/AstrBotDevs/AstrBot/pull/7375

New Contributors

  • @3351163616 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7560
  • @SweetenedSuzuka made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7595
  • @Hongbro886 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7513
  • @Blueteemo made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7609
  • @alicesainta made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7602
  • @bobo-xxx made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7635
  • @MostimaBridges made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7667
  • @MagicSun7940 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7655
  • @xmbhjQAQ made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7375

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.23.1...v4.23.2

v4.23.1 Breaking risk
Breaking changes
  • Dependency change: python‑ripgrep downgraded to version 0.0.8, affecting compatibility with Python 3.13 and later.
Full changelog

What's Changed

这是 v4.23.0 的热修复版本:v4.23.1

  • python-ripgrep 依赖降级到 0.0.8,修复 Python 3.13, 3.14 版本无法正常启动的问题。(#7514
  • 修复会话 ID 包含冒号 : 时,平台路由在 Dashboard 中无法显示的问题。(#7517
  • 适配 DeerFlow 2.0,更新 DeerFlow Runner、API Client、会话命令、Provider 管理逻辑、配置文档与相关测试。(#7500
  • 移除 Dashboard v-main 不必要的 margin,额外的外边距会把背景色显露出来,因此视觉上看起来像右侧多了一条边框。(#7481
  • 修复插件安装状态检查时格式不一致导致的判断问题。(#7493
  • Dashboard 代码块高亮切换到 Shiki,并同步暗色/亮色主题渲染,优化 README、更新日志与聊天消息中的代码块显示效果。(#7497

新增 (v4.23.0)

  • 为电脑使用能力支持文件读取(read)、写入(write)、编辑(edit)、Grep 搜索(ripgrep)与按会话隔离的 workspace。(#7402
  • 微信个人号适配器支持引用消息的解析。(#7380
  • 新增 Brave Search 网页搜索工具,移除旧的默认网页搜索实现。(#6847
  • 新增 Mattermost 平台适配器支持。(#7369
  • 新增 NVIDIA Rerank Provider。(#7227
  • 新增 LongCat LLM Provider。(#7360
  • 新增 OpenAI、Gemini 音频输入模态支持,并修复 ChatUI 录音相关问题。(#7378
  • Discord 平台新增 Bot 消息过滤配置,允许控制是否接收其他 Bot 的消息。(#6505
  • 新增 LLM 对重复工具调用的引导能力,减少模型陷入重复调用工具的情况。(#7388
  • QQ 官方 API 文件上传新增重试机制,提升文件发送稳定性。(#7430

优化 (v4.23.0)

  • 重构 ChatUI 样式、消息渲染与输入体验,改善聊天界面的整体可维护性与交互一致性。(#7485
  • 合并 Cron 相关工具为统一管理工具,并新增 Cron 任务编辑能力。(#7445
  • 重构内置工具管理逻辑,改善 AstrBot 内置工具注册与调用维护性。(#7418
  • 移除了大部分低频内置命令并整合命令功能,将这些指令挪至 builtin-command-extension 插件,同时更新文档。(#7478
  • 移除默认网页搜索实现,改由新的搜索工具链路提供能力。(#7416
  • 移除 lxmlbeautifulsoup4 依赖,降低安装体积与依赖复杂度。(#7449
  • 新增 MCP stdio 配置校验,降低无效配置导致的启动失败与排查成本。(#7477
  • Docker 运行配置启用 no-new-privileges,提升容器默认安全性。(commit
  • 降低 MCP Server 状态轮询频率,减少后台请求开销。(#7399
  • 帮助命令忽略 dashboard_update 等内部有效命令,减少帮助列表噪音。(commit
  • 修正文档中的路径拼接示例,避免插件开发存储文档误导使用者。(#7448
  • 补充 Matrix 平台常量、平台图标与相关文档。(#7368

修复 (v4.23.0)

  • 修复 STT 或 TTS Provider 在配置中禁用时仍可能被取用的问题。(#7363
  • 修复 Gemini 空模型输出误触发错误处理的问题。(#7377
  • 修复 Gemini FunctionResponse 中不支持的 id 字段导致请求失败的问题。(#7386
  • 修复仅存在原生工具时仍传递 FunctionCallingConfig 的问题。(#7407
  • 修复工具结果断言与动态阈值不一致的问题。(commit
  • 修复 Bailian Rerank 对不同 URL 端点返回格式的兼容性问题。(#7250
  • 修复 QQ 官方 WebSocket 关闭流程清理不完整的问题。(#7395
  • 修复 Telegram 网络异常后的轮询恢复问题,并补充相关测试。(#7468
  • 修复 Telegram 长消息最终分段过长的问题。(#7432
  • 修复 Telegram sendMessageDraft 发送空文本导致 400 错误刷屏的问题。(#7398
  • 修复 Telegram 收集命令时插件 handler 不在 star_map 中导致 KeyError 的问题。(#7405
  • 修复 Discord Slash Command 未及时 defer 导致 10062 Unknown interaction 的问题。(#7474
  • 修复微信个人号适配器缺少上下文 token 时的警告信息。(commit
  • 修复 group_icl_enable 在消息处理时未使用 UMO 绑定配置的问题。(#7397
  • 修复插件函数工具模块路径与插件主模块路径不一致的问题。(#7462
  • 修复插件版本检查逻辑对预发布版本的支持问题。(commit
  • 修复 Shell 命令执行 JSON 响应中非 ASCII 字符被转义的问题。(#7475
  • 修复 Windows 桌面端插件依赖加载不安全或失败的问题。(#7446
  • 修复 faiss 在启动阶段过早导入导致部分环境启动失败的问题。(#7400
  • 修复 WebUI 暗色模式渲染与多处交互问题。(#7173
  • 修复 ChatUI 项目常量缺失,并补充相关测试用例。(#7414
  • 修复页面切换时浮动按钮跳动的问题。(#7214
  • 修复对话管理页依赖的 MessageList.vue 缺失导致 Linux 环境 Dashboard 构建失败的问题。(commit
  • 修复工具调用图标使用了 MDI 子集缺失图标导致的显示问题。(commit
  • 修复 Dashboard store 中 defineStore 的类型用法问题。(#7490
  • 修复 compose 文件中的 Docker 镜像名称错误。(#7488

What's Changed (EN)

hotfix of v4.23.0

  • Fixed inconsistent format handling when checking whether a plugin is installed. (#7493)
  • Downgraded python-ripgrep to 0.0.8 to fix dependency compatibility issues. (#7514)
  • Fixed platform routes not being displayed in Dashboard when the session ID contains a colon :. (#7517)
  • Switched Dashboard code-block highlighting to Shiki, synchronized dark/light theme rendering, and improved code-block display in README, changelog, and chat messages. (#7497)
  • Aligned the DeerFlow runner with DeerFlow 2.0, including updates to the runner, API client, conversation commands, provider management, documentation, and tests. (#7500)
  • Removed unnecessary v-main margins in Dashboard for more consistent layout across viewports. (#7481)
  • Updated the smoke test workflow to cover multiple operating systems and Python versions, and added a startup check script. (#7514)

New Features (v4.23.0)

  • Added the LongCat LLM Provider. (#7360)
  • Added missing Matrix platform constants, platform logo, and documentation updates. (#7368)
  • Added local Computer Use filesystem tools, including file read, write, edit, Grep search, and per-session workspace support. (#7402)
  • Added the Brave Search web search tool, replacing the old default web search implementation. (#6847)
  • Added Mattermost platform support. (#7369)
  • Added the NVIDIA Rerank Provider. (#7227)
  • Added audio input support across OpenAI and Gemini providers, and fixed ChatUI recording issues. (#7378)
  • Added reply component support for the Weixin OC adapter. (#7380)
  • Added configurable Discord bot-message filtering, including support for receiving messages from other bots. (#6505)
  • Added LLM guidance for repeated tool calls to reduce repetitive tool-call loops. (#7388)
  • Added retry handling for QQ Official API file uploads to improve file-send reliability. (#7430)

Improvements (v4.23.0)

  • Refactored ChatUI styling, message rendering, and input interactions for better maintainability and UI consistency. (#7485)
  • Merged Cron tools into a unified management tool and added Cron task editing. (#7445)
  • Refactored built-in tool management to improve registration and maintenance. (#7418)
  • Removed rarely used built-in commands, consolidated command functionality, and updated command documentation. (#7478)
  • Removed the old default web search implementation in favor of the new search tool flow. (#7416)
  • Removed lxml and beautifulsoup4 dependencies to reduce dependency weight and installation complexity. (#7449)
  • Added MCP stdio configuration validation to reduce startup failures caused by invalid configs. (#7477)
  • Enabled no-new-privileges in Docker runtime configuration to improve default container security. (commit)
  • Reduced MCP Server status polling frequency to lower background request overhead. (#7399)
  • Ignored internal effective commands such as dashboard_update in HelpCommand to reduce help-list noise. (commit)
  • Fixed a path concatenation example in the plugin storage docs. (#7448)
  • Updated the README logo. (commit)

Bug Fixes (v4.23.0)

  • Returned None when STT or TTS providers are disabled in config instead of still resolving them. (#7363)
  • Fixed empty model output handling that could misfire when using Gemini. (#7377)
  • Removed the unsupported id field from Gemini FunctionResponse payloads. (#7386)
  • Skipped FunctionCallingConfig when only native tools are present. (#7407)
  • Updated tool-result assertions to match dynamic threshold values. (commit)
  • Fixed Bailian Rerank compatibility with different response formats based on URL endpoint. (#7250)
  • Cleaned up QQ Official WebSocket shutdown handling. (#7395)
  • Fixed Telegram polling recovery after network failures and added related tests. (#7468)
  • Fixed overly long final Telegram message segments. (#7432)
  • Fixed Telegram sendMessageDraft 400 spam caused by empty text. (#7398)
  • Fixed a KeyError in Telegram command collection when a plugin handler is missing from star_map. (#7405)
  • Fixed Discord 10062 Unknown interaction errors by deferring slash commands immediately. (#7474)
  • Improved the missing-context-token warning message in the Weixin OC adapter. (commit)
  • Fixed group_icl_enable to use UMO-bound config during message handling. (#7397)
  • Aligned function tool module paths with plugin main module paths. (#7462)
  • Fixed plugin version checks for pre-release versions. (commit)
  • Preserved non-ASCII characters in JSON responses from shell command execution. (#7475)
  • Fixed safer desktop plugin dependency loading on Windows. (#7446)
  • Deferred faiss imports during startup to avoid startup failures in some environments. (#7400)
  • Fixed WebUI dark-mode rendering and multiple interaction bugs. (#7173)
  • Added missing ChatUI project constants and related tests. (#7414)
  • Prevented floating buttons from jumping during page transitions. (#7214)
  • Restored MessageList.vue for the conversation management page to fix Dashboard production builds on Linux. (commit)
  • Updated tool-call icons to use an icon included in the MDI subset. (commit)
  • Fixed defineStore type usage in Dashboard stores. (#7490)
  • Fixed the Docker image name in the compose file. (#7488)

What's Changed

新增

  • 为电脑使用能力支持文件读取(read)、写入(write)、编辑(edit)、Grep 搜索(ripgrep)与按会话隔离的 workspace。(#7402
  • 微信个人号适配器支持引用消息的解析。(#7380
  • 新增 Brave Search 网页搜索工具,移除旧的默认网页搜索实现。(#6847
  • 新增 Mattermost 平台适配器支持。(#7369
  • 新增 NVIDIA Rerank Provider。(#7227
  • 新增 LongCat LLM Provider。(#7360
  • 新增 OpenAI、Gemini 音频输入模态支持,并修复 ChatUI 录音相关问题。(#7378
  • Discord 平台新增 Bot 消息过滤配置,允许控制是否接收其他 Bot 的消息。(#6505
  • 新增 LLM 对重复工具调用的引导能力,减少模型陷入重复调用工具的情况。(#7388
  • QQ 官方 API 文件上传新增重试机制,提升文件发送稳定性。(#7430

优化

  • 重构 ChatUI 样式、消息渲染与输入体验,改善聊天界面的整体可维护性与交互一致性。(#7485
  • 合并 Cron 相关工具为统一管理工具,并新增 Cron 任务编辑能力。(#7445
  • 重构内置工具管理逻辑,改善 AstrBot 内置工具注册与调用维护性。(#7418
  • 移除了大部分低频内置命令并整合命令功能,将这些指令挪至 builtin-command-extension 插件,同时更新文档。(#7478
  • 移除默认网页搜索实现,改由新的搜索工具链路提供能力。(#7416
  • 移除 lxmlbeautifulsoup4 依赖,降低安装体积与依赖复杂度。(#7449
  • 新增 MCP stdio 配置校验,降低无效配置导致的启动失败与排查成本。(#7477
  • Docker 运行配置启用 no-new-privileges,提升容器默认安全性。(commit
  • 降低 MCP Server 状态轮询频率,减少后台请求开销。(#7399
  • 帮助命令忽略 dashboard_update 等内部有效命令,减少帮助列表噪音。(commit
  • 修正文档中的路径拼接示例,避免插件开发存储文档误导使用者。(#7448
  • 补充 Matrix 平台常量、平台图标与相关文档。(#7368

修复

  • 修复 STT 或 TTS Provider 在配置中禁用时仍可能被取用的问题。(#7363
  • 修复 Gemini 空模型输出误触发错误处理的问题。(#7377
  • 修复 Gemini FunctionResponse 中不支持的 id 字段导致请求失败的问题。(#7386
  • 修复仅存在原生工具时仍传递 FunctionCallingConfig 的问题。(#7407
  • 修复工具结果断言与动态阈值不一致的问题。(commit
  • 修复 Bailian Rerank 对不同 URL 端点返回格式的兼容性问题。(#7250
  • 修复 QQ 官方 WebSocket 关闭流程清理不完整的问题。(#7395
  • 修复 Telegram 网络异常后的轮询恢复问题,并补充相关测试。(#7468
  • 修复 Telegram 长消息最终分段过长的问题。(#7432
  • 修复 Telegram sendMessageDraft 发送空文本导致 400 错误刷屏的问题。(#7398
  • 修复 Telegram 收集命令时插件 handler 不在 star_map 中导致 KeyError 的问题。(#7405
  • 修复 Discord Slash Command 未及时 defer 导致 10062 Unknown interaction 的问题。(#7474
  • 修复微信个人号适配器缺少上下文 token 时的警告信息。(commit
  • 修复 group_icl_enable 在消息处理时未使用 UMO 绑定配置的问题。(#7397
  • 修复插件函数工具模块路径与插件主模块路径不一致的问题。(#7462
  • 修复插件版本检查逻辑对预发布版本的支持问题。(commit
  • 修复 Shell 命令执行 JSON 响应中非 ASCII 字符被转义的问题。(#7475
  • 修复 Windows 桌面端插件依赖加载不安全或失败的问题。(#7446
  • 修复 faiss 在启动阶段过早导入导致部分环境启动失败的问题。(#7400
  • 修复 WebUI 暗色模式渲染与多处交互问题。(#7173
  • 修复 ChatUI 项目常量缺失,并补充相关测试用例。(#7414
  • 修复页面切换时浮动按钮跳动的问题。(#7214
  • 修复对话管理页依赖的 MessageList.vue 缺失导致 Linux 环境 Dashboard 构建失败的问题。(commit
  • 修复工具调用图标使用了 MDI 子集缺失图标导致的显示问题。(commit
  • 修复 Dashboard store 中 defineStore 的类型用法问题。(#7490
  • 修复 compose 文件中的 Docker 镜像名称错误。(#7488

What's Changed (EN)

New Features

  • Added the LongCat LLM Provider. (#7360)
  • Added missing Matrix platform constants, platform logo, and documentation updates. (#7368)
  • Added local Computer Use filesystem tools, including file read, write, edit, Grep search, and per-session workspace support. (#7402)
  • Added the Brave Search web search tool, replacing the old default web search implementation. (#6847)
  • Added Mattermost platform support. (#7369)
  • Added the NVIDIA Rerank Provider. (#7227)
  • Added audio input support across OpenAI and Gemini providers, and fixed ChatUI recording issues. (#7378)
  • Added reply component support for the Weixin OC adapter. (#7380)
  • Added configurable Discord bot-message filtering, including support for receiving messages from other bots. (#6505)
  • Added LLM guidance for repeated tool calls to reduce repetitive tool-call loops. (#7388)
  • Added retry handling for QQ Official API file uploads to improve file-send reliability. (#7430)

Improvements

  • Refactored ChatUI styling, message rendering, and input interactions for better maintainability and UI consistency. (#7485)
  • Merged Cron tools into a unified management tool and added Cron task editing. (#7445)
  • Refactored built-in tool management to improve registration and maintenance. (#7418)
  • Removed rarely used built-in commands, consolidated command functionality, and updated command documentation. (#7478)
  • Removed the old default web search implementation in favor of the new search tool flow. (#7416)
  • Removed lxml and beautifulsoup4 dependencies to reduce dependency weight and installation complexity. (#7449)
  • Added MCP stdio configuration validation to reduce startup failures caused by invalid configs. (#7477)
  • Enabled no-new-privileges in Docker runtime configuration to improve default container security. (commit)
  • Reduced MCP Server status polling frequency to lower background request overhead. (#7399)
  • Ignored internal effective commands such as dashboard_update in HelpCommand to reduce help-list noise. (commit)
  • Fixed a path concatenation example in the plugin storage docs. (#7448)
  • Updated the README logo. (commit)

Bug Fixes

  • Returned None when STT or TTS providers are disabled in config instead of still resolving them. (#7363)
  • Fixed empty model output handling that could misfire when using Gemini. (#7377)
  • Removed the unsupported id field from Gemini FunctionResponse payloads. (#7386)
  • Skipped FunctionCallingConfig when only native tools are present. (#7407)
  • Updated tool-result assertions to match dynamic threshold values. (commit)
  • Fixed Bailian Rerank compatibility with different response formats based on URL endpoint. (#7250)
  • Cleaned up QQ Official WebSocket shutdown handling. (#7395)
  • Fixed Telegram polling recovery after network failures and added related tests. (#7468)
  • Fixed overly long final Telegram message segments. (#7432)
  • Fixed Telegram sendMessageDraft 400 spam caused by empty text. (#7398)
  • Fixed a KeyError in Telegram command collection when a plugin handler is missing from star_map. (#7405)
  • Fixed Discord 10062 Unknown interaction errors by deferring slash commands immediately. (#7474)
  • Improved the missing-context-token warning message in the Weixin OC adapter. (commit)
  • Fixed group_icl_enable to use UMO-bound config during message handling. (#7397)
  • Aligned function tool module paths with plugin main module paths. (#7462)
  • Fixed plugin version checks for pre-release versions. (commit)
  • Preserved non-ASCII characters in JSON responses from shell command execution. (#7475)
  • Fixed safer desktop plugin dependency loading on Windows. (#7446)
  • Deferred faiss imports during startup to avoid startup failures in some environments. (#7400)
  • Fixed WebUI dark-mode rendering and multiple interaction bugs. (#7173)
  • Added missing ChatUI project constants and related tests. (#7414)
  • Prevented floating buttons from jumping during page transitions. (#7214)
  • Restored MessageList.vue for the conversation management page to fix Dashboard production builds on Linux. (commit)
  • Updated tool-call icons to use an icon included in the MDI subset. (commit)
  • Fixed defineStore type usage in Dashboard stores. (#7490)
  • Fixed the Docker image name in the compose file. (#7488)

What's Changed (Details)

  • chore: switch dashboard code blocks highlight to shiki by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/7497
  • fix: inconsistent format issue when checking if the plugin is installed by @Waterwzy in https://github.com/AstrBotDevs/AstrBot/pull/7493
  • fix: remove unnecessary margins from v-main for consistent layout by @Saramanda9988 in https://github.com/AstrBotDevs/AstrBot/pull/7481
  • fix: align deerflow runner with deerflow 2.0 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7500
  • fix: downgrade python-ripgrep version to 0.0.8 in dependencies by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7514
  • fix: routing not displayed when session id includes : by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7517
  • docs: add usage of select_knowledgebase in plugin development docs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7115
  • feat: add new StatsPage for enhanced statistics overview by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7152
  • fix(core): Record.path was incorrectly treated as required under Pydantic v2 by @No-22-Github in https://github.com/AstrBotDevs/AstrBot/pull/7048
  • fix: improve number input UX in config renderer by @Reisenbug in https://github.com/AstrBotDevs/AstrBot/pull/7153
  • fix: send SSE heartbeat to prevent WebChat disconnect during compression by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7003
  • perf: improve ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7178
  • chore(deps): bump codecov/codecov-action from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7209
  • Fix cached_tokens handling in _extract_usage method by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/6719
  • refactor: update provider panels for improved layout and styling by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7248
  • feat: integrate Monaco Editor workers for enhanced code editing support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7249
  • fix: add pysocks dependency to support SOCKS5 proxy for pip install by @Neko-Yukari in https://github.com/AstrBotDevs/AstrBot/pull/7221
  • fix(Docker): add amr encoder by @WenqiOfficial in https://github.com/AstrBotDevs/AstrBot/pull/7247
  • fix: support both old and new Bailian Rerank API response formats by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7217
  • 修正了QQ websoket连接的文档错误 by @Thelia-Lzr in https://github.com/AstrBotDevs/AstrBot/pull/7279
  • 修复:过滤空助手消息,以防止在严格API上出现400错误(fix: filter empty assistant messages to prevent 400 error on strict APIs) by @kaixinyujue in https://github.com/AstrBotDevs/AstrBot/pull/7202
  • Docs/update mimo provider readme by @RichardLiuda in https://github.com/AstrBotDevs/AstrBot/pull/7207
  • Feat(webui): dashboard and console qol improvements by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/7215
  • fix: 改进知识库的初始化错误处理 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7243
  • docs: 在 uv 部署文档中添加不支持 WebUI 升级的说明 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7298
  • fix: resolve Discord/Misskey hot reload issue by fixing client_self_id misuse by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7331
  • fix: satisfy Google Gemini's function_response requirements to avoid 400 Invalid argument errors by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7216
  • fix: filter Gemini thinking parts from user-facing message chain by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7196
  • perf: Set content to None when the OpenAI message content list is empty by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6551
  • fix(windows): inherit all system environment variables into MCP runner for Windows by @SoloLevelingAI in https://github.com/AstrBotDevs/AstrBot/pull/7054
  • feat: support token usage extraction for llama.cpp by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7358
  • feat(provider/vllm_rerank): add configurable rerank_api_suffix option by @richard950825-sys in https://github.com/AstrBotDevs/AstrBot/pull/7278
  • feat(matrix): add missing Matrix constant and update docs by @stevessr in https://github.com/AstrBotDevs/AstrBot/pull/7368
  • fix: add checks to return None if STT or TTS providers are disabled in config by @machinad in https://github.com/AstrBotDevs/AstrBot/pull/7363
  • feat(provider): add LongCat LLM Provider by @Futureppo in https://github.com/AstrBotDevs/AstrBot/pull/7360
  • fix: empty model output error may misfire when use gemini by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7377
  • feat: add audio input support across providers and chatui recording issue fix by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7378
  • feat: add NVIDIA rerank provider support by @WenqiOfficial in https://github.com/AstrBotDevs/AstrBot/pull/7227
  • feat: implement llm guidance for repetition tool call by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7388
  • fix: clean up qq official websocket shutdown by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7395
  • feat(platform): add Mattermost bot support by @KagurazakaNyaa in https://github.com/AstrBotDevs/AstrBot/pull/7369
  • chore(deps): bump docker/login-action from 4.0.0 to 4.1.0 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7401
  • fix: reduce MCP server status polling frequency by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/7399
  • fix: defer faiss imports during startup by @Aster-amellus in https://github.com/AstrBotDevs/AstrBot/pull/7400
  • fix: prevent KeyError in Telegram collect_commands when plugin handler not in star_map by @michealmachine in https://github.com/AstrBotDevs/AstrBot/pull/7405
  • fix(google-gemini): skip FunctionCallingConfig when only native tools are present by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7407
  • fix(dashboard): fix WebUI dark mode rendering and multiple UI interaction bugs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7173
  • fix(telegram): skip empty text in sendMessageDraft to prevent 400 spam by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7398
  • fix: remove unsupported id field from Gemini FunctionResponse by @kaiisfree in https://github.com/AstrBotDevs/AstrBot/pull/7386
  • fix: add ChatUIProject & SessionProjectRelation to shared constants & test cases by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/7414
  • fix: prevent floating buttons from jumping during page transitions by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/7214
  • feat: add new web search tool Brave Search by @daniel5u in https://github.com/AstrBotDevs/AstrBot/pull/6847
  • refactor: remove default web search by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7416
  • refactor: improve astrbot builtin tool management by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7418
  • perf: merge 3 cron tools into 1 cron manage tool, and add edit capability for cron tool. by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7445
  • fix: split long telegram final segments by @Shujakuinkuraudo in https://github.com/AstrBotDevs/AstrBot/pull/7432
  • fix: make desktop plugin dependency loading safer on Windows by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7446
  • chore: remove lxml and bs4 deps by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7449
  • docs: fix path concatenation error in storage.md by @2doright in https://github.com/AstrBotDevs/AstrBot/pull/7448
  • feat(discord): add configurable bot message filtering, allow bot to receive other bots' messages by @MinaraAgent in https://github.com/AstrBotDevs/AstrBot/pull/6505
  • feat: filesystem grep, read, write, edit file and workspace support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7402
  • fix: Telegram polling recovery after network failures by @Shujakuinkuraudo in https://github.com/AstrBotDevs/AstrBot/pull/7468
  • fix: correct tool source identification for add_llm_tools plugins by @railgun19457 in https://github.com/AstrBotDevs/AstrBot/pull/7462
  • feat: implement retry mechanism for QQ Official API file uploads by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/7430
  • fix: ensure JSON response is encoded with non-ASCII characters for shell command execution by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7475
  • fix(discord): prevent 10062 Unknown interaction error by deferring slash commands immediately by @yuanqiuye in https://github.com/AstrBotDevs/AstrBot/pull/7474
  • feat(weixin_oc): support reply components by @Sagiri777 in https://github.com/AstrBotDevs/AstrBot/pull/7380
  • fix: support both Bailian Rerank API formats based on URL endpoint by @Neko-Yukari in https://github.com/AstrBotDevs/AstrBot/pull/7250
  • perf: add validation for MCP stdio configuration by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7477
  • refactor: remove rarely-used builtin commands and consolidate functionality by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7478
  • fix: use UMO-bound config for group_icl_enable in on_message by @saschabuehrle in https://github.com/AstrBotDevs/AstrBot/pull/7397
  • refactor: chatui style by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7485
  • fix: wrong image name in compose by @kyangconn in https://github.com/AstrBotDevs/AstrBot/pull/7488
  • fix: type use of defineStore in @/stores by @kyangconn in https://github.com/AstrBotDevs/AstrBot/pull/7490

New Contributors

  • @No-22-Github made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7048
  • @Neko-Yukari made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7221
  • @WenqiOfficial made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7247
  • @Thelia-Lzr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7279
  • @kaixinyujue made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7202
  • @SoloLevelingAI made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7054
  • @richard950825-sys made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7278
  • @KagurazakaNyaa made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7369
  • @Aster-amellus made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7400
  • @michealmachine made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7405
  • @kaiisfree made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7386
  • @Shujakuinkuraudo made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7432
  • @2doright made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7448
  • @MinaraAgent made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6505
  • @yuanqiuye made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7474
  • @Sagiri777 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7380
  • @saschabuehrle made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7397
  • @Saramanda9988 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7481

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.23.0...v4.23.1

v4.23.0 Breaking risk
Breaking changes
  • Removed default web search implementation; users must switch to Brave Search tool.
  • Removed `lxml` and `beautifulsoup4` dependencies.
Notable features
  • Added LongCat LLM Provider
  • Added Mattermost platform adapter support
  • Added NVIDIA Rerank Provider
Full changelog

What's Changed

新增

  • 为电脑使用能力支持文件读取(read)、写入(write)、编辑(edit)、Grep 搜索(ripgrep)与按会话隔离的 workspace。(#7402
  • 微信个人号适配器支持引用消息的解析。(#7380
  • 新增 Brave Search 网页搜索工具,移除旧的默认网页搜索实现。(#6847
  • 新增 Mattermost 平台适配器支持。(#7369
  • 新增 NVIDIA Rerank Provider。(#7227
  • 新增 LongCat LLM Provider。(#7360
  • 新增 OpenAI、Gemini 音频输入模态支持,并修复 ChatUI 录音相关问题。(#7378
  • Discord 平台新增 Bot 消息过滤配置,允许控制是否接收其他 Bot 的消息。(#6505
  • 新增 LLM 对重复工具调用的引导能力,减少模型陷入重复调用工具的情况。(#7388
  • QQ 官方 API 文件上传新增重试机制,提升文件发送稳定性。(#7430

优化

  • 重构 ChatUI 样式、消息渲染与输入体验,改善聊天界面的整体可维护性与交互一致性。(#7485
  • 合并 Cron 相关工具为统一管理工具,并新增 Cron 任务编辑能力。(#7445
  • 重构内置工具管理逻辑,改善 AstrBot 内置工具注册与调用维护性。(#7418
  • 移除了大部分低频内置命令并整合命令功能,将这些指令挪至 builtin-command-extension 插件,同时更新文档。(#7478
  • 移除默认网页搜索实现,改由新的搜索工具链路提供能力。(#7416
  • 移除 lxmlbeautifulsoup4 依赖,降低安装体积与依赖复杂度。(#7449
  • 新增 MCP stdio 配置校验,降低无效配置导致的启动失败与排查成本。(#7477
  • Docker 运行配置启用 no-new-privileges,提升容器默认安全性。(commit
  • 降低 MCP Server 状态轮询频率,减少后台请求开销。(#7399
  • 帮助命令忽略 dashboard_update 等内部有效命令,减少帮助列表噪音。(commit
  • 修正文档中的路径拼接示例,避免插件开发存储文档误导使用者。(#7448
  • 补充 Matrix 平台常量、平台图标与相关文档。(#7368

修复

  • 修复 STT 或 TTS Provider 在配置中禁用时仍可能被取用的问题。(#7363
  • 修复 Gemini 空模型输出误触发错误处理的问题。(#7377
  • 修复 Gemini FunctionResponse 中不支持的 id 字段导致请求失败的问题。(#7386
  • 修复仅存在原生工具时仍传递 FunctionCallingConfig 的问题。(#7407
  • 修复工具结果断言与动态阈值不一致的问题。(commit
  • 修复 Bailian Rerank 对不同 URL 端点返回格式的兼容性问题。(#7250
  • 修复 QQ 官方 WebSocket 关闭流程清理不完整的问题。(#7395
  • 修复 Telegram 网络异常后的轮询恢复问题,并补充相关测试。(#7468
  • 修复 Telegram 长消息最终分段过长的问题。(#7432
  • 修复 Telegram sendMessageDraft 发送空文本导致 400 错误刷屏的问题。(#7398
  • 修复 Telegram 收集命令时插件 handler 不在 star_map 中导致 KeyError 的问题。(#7405
  • 修复 Discord Slash Command 未及时 defer 导致 10062 Unknown interaction 的问题。(#7474
  • 修复微信个人号适配器缺少上下文 token 时的警告信息。(commit
  • 修复 group_icl_enable 在消息处理时未使用 UMO 绑定配置的问题。(#7397
  • 修复插件函数工具模块路径与插件主模块路径不一致的问题。(#7462
  • 修复插件版本检查逻辑对预发布版本的支持问题。(commit
  • 修复 Shell 命令执行 JSON 响应中非 ASCII 字符被转义的问题。(#7475
  • 修复 Windows 桌面端插件依赖加载不安全或失败的问题。(#7446
  • 修复 faiss 在启动阶段过早导入导致部分环境启动失败的问题。(#7400
  • 修复 WebUI 暗色模式渲染与多处交互问题。(#7173
  • 修复 ChatUI 项目常量缺失,并补充相关测试用例。(#7414
  • 修复页面切换时浮动按钮跳动的问题。(#7214
  • 修复对话管理页依赖的 MessageList.vue 缺失导致 Linux 环境 Dashboard 构建失败的问题。(commit
  • 修复工具调用图标使用了 MDI 子集缺失图标导致的显示问题。(commit
  • 修复 Dashboard store 中 defineStore 的类型用法问题。(#7490
  • 修复 compose 文件中的 Docker 镜像名称错误。(#7488

What's Changed (EN)

New Features

  • Added the LongCat LLM Provider. (#7360)
  • Added missing Matrix platform constants, platform logo, and documentation updates. (#7368)
  • Added local Computer Use filesystem tools, including file read, write, edit, Grep search, and per-session workspace support. (#7402)
  • Added the Brave Search web search tool, replacing the old default web search implementation. (#6847)
  • Added Mattermost platform support. (#7369)
  • Added the NVIDIA Rerank Provider. (#7227)
  • Added audio input support across OpenAI and Gemini providers, and fixed ChatUI recording issues. (#7378)
  • Added reply component support for the Weixin OC adapter. (#7380)
  • Added configurable Discord bot-message filtering, including support for receiving messages from other bots. (#6505)
  • Added LLM guidance for repeated tool calls to reduce repetitive tool-call loops. (#7388)
  • Added retry handling for QQ Official API file uploads to improve file-send reliability. (#7430)

Improvements

  • Refactored ChatUI styling, message rendering, and input interactions for better maintainability and UI consistency. (#7485)
  • Merged Cron tools into a unified management tool and added Cron task editing. (#7445)
  • Refactored built-in tool management to improve registration and maintenance. (#7418)
  • Removed rarely used built-in commands, consolidated command functionality, and updated command documentation. (#7478)
  • Removed the old default web search implementation in favor of the new search tool flow. (#7416)
  • Removed lxml and beautifulsoup4 dependencies to reduce dependency weight and installation complexity. (#7449)
  • Added MCP stdio configuration validation to reduce startup failures caused by invalid configs. (#7477)
  • Enabled no-new-privileges in Docker runtime configuration to improve default container security. (commit)
  • Reduced MCP Server status polling frequency to lower background request overhead. (#7399)
  • Ignored internal effective commands such as dashboard_update in HelpCommand to reduce help-list noise. (commit)
  • Fixed a path concatenation example in the plugin storage docs. (#7448)
  • Updated the README logo. (commit)

Bug Fixes

  • Returned None when STT or TTS providers are disabled in config instead of still resolving them. (#7363)
  • Fixed empty model output handling that could misfire when using Gemini. (#7377)
  • Removed the unsupported id field from Gemini FunctionResponse payloads. (#7386)
  • Skipped FunctionCallingConfig when only native tools are present. (#7407)
  • Updated tool-result assertions to match dynamic threshold values. (commit)
  • Fixed Bailian Rerank compatibility with different response formats based on URL endpoint. (#7250)
  • Cleaned up QQ Official WebSocket shutdown handling. (#7395)
  • Fixed Telegram polling recovery after network failures and added related tests. (#7468)
  • Fixed overly long final Telegram message segments. (#7432)
  • Fixed Telegram sendMessageDraft 400 spam caused by empty text. (#7398)
  • Fixed a KeyError in Telegram command collection when a plugin handler is missing from star_map. (#7405)
  • Fixed Discord 10062 Unknown interaction errors by deferring slash commands immediately. (#7474)
  • Improved the missing-context-token warning message in the Weixin OC adapter. (commit)
  • Fixed group_icl_enable to use UMO-bound config during message handling. (#7397)
  • Aligned function tool module paths with plugin main module paths. (#7462)
  • Fixed plugin version checks for pre-release versions. (commit)
  • Preserved non-ASCII characters in JSON responses from shell command execution. (#7475)
  • Fixed safer desktop plugin dependency loading on Windows. (#7446)
  • Deferred faiss imports during startup to avoid startup failures in some environments. (#7400)
  • Fixed WebUI dark-mode rendering and multiple interaction bugs. (#7173)
  • Added missing ChatUI project constants and related tests. (#7414)
  • Prevented floating buttons from jumping during page transitions. (#7214)
  • Restored MessageList.vue for the conversation management page to fix Dashboard production builds on Linux. (commit)
  • Updated tool-call icons to use an icon included in the MDI subset. (commit)
  • Fixed defineStore type usage in Dashboard stores. (#7490)
  • Fixed the Docker image name in the compose file. (#7488)

What's Changed (Details)

  • docs: add usage of select_knowledgebase in plugin development docs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7115
  • feat: add new StatsPage for enhanced statistics overview by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7152
  • fix(core): Record.path was incorrectly treated as required under Pydantic v2 by @No-22-Github in https://github.com/AstrBotDevs/AstrBot/pull/7048
  • fix: improve number input UX in config renderer by @Reisenbug in https://github.com/AstrBotDevs/AstrBot/pull/7153
  • fix: send SSE heartbeat to prevent WebChat disconnect during compression by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7003
  • perf: improve ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7178
  • chore(deps): bump codecov/codecov-action from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7209
  • Fix cached_tokens handling in _extract_usage method by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/6719
  • refactor: update provider panels for improved layout and styling by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7248
  • feat: integrate Monaco Editor workers for enhanced code editing support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7249
  • fix: add pysocks dependency to support SOCKS5 proxy for pip install by @Neko-Yukari in https://github.com/AstrBotDevs/AstrBot/pull/7221
  • fix(Docker): add amr encoder by @WenqiOfficial in https://github.com/AstrBotDevs/AstrBot/pull/7247
  • fix: support both old and new Bailian Rerank API response formats by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7217
  • 修正了QQ websoket连接的文档错误 by @Thelia-Lzr in https://github.com/AstrBotDevs/AstrBot/pull/7279
  • 修复:过滤空助手消息,以防止在严格API上出现400错误(fix: filter empty assistant messages to prevent 400 error on strict APIs) by @kaixinyujue in https://github.com/AstrBotDevs/AstrBot/pull/7202
  • Docs/update mimo provider readme by @RichardLiuda in https://github.com/AstrBotDevs/AstrBot/pull/7207
  • Feat(webui): dashboard and console qol improvements by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/7215
  • fix: 改进知识库的初始化错误处理 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7243
  • docs: 在 uv 部署文档中添加不支持 WebUI 升级的说明 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7298
  • fix: resolve Discord/Misskey hot reload issue by fixing client_self_id misuse by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7331
  • fix: satisfy Google Gemini's function_response requirements to avoid 400 Invalid argument errors by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7216
  • fix: filter Gemini thinking parts from user-facing message chain by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7196
  • perf: Set content to None when the OpenAI message content list is empty by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6551
  • fix(windows): inherit all system environment variables into MCP runner for Windows by @SoloLevelingAI in https://github.com/AstrBotDevs/AstrBot/pull/7054
  • feat: support token usage extraction for llama.cpp by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7358
  • feat(provider/vllm_rerank): add configurable rerank_api_suffix option by @richard950825-sys in https://github.com/AstrBotDevs/AstrBot/pull/7278
  • feat(matrix): add missing Matrix constant and update docs by @stevessr in https://github.com/AstrBotDevs/AstrBot/pull/7368
  • fix: add checks to return None if STT or TTS providers are disabled in config by @machinad in https://github.com/AstrBotDevs/AstrBot/pull/7363
  • feat(provider): add LongCat LLM Provider by @Futureppo in https://github.com/AstrBotDevs/AstrBot/pull/7360
  • fix: empty model output error may misfire when use gemini by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7377
  • feat: add audio input support across providers and chatui recording issue fix by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7378
  • feat: add NVIDIA rerank provider support by @WenqiOfficial in https://github.com/AstrBotDevs/AstrBot/pull/7227
  • feat: implement llm guidance for repetition tool call by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7388
  • fix: clean up qq official websocket shutdown by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7395
  • feat(platform): add Mattermost bot support by @KagurazakaNyaa in https://github.com/AstrBotDevs/AstrBot/pull/7369
  • chore(deps): bump docker/login-action from 4.0.0 to 4.1.0 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7401
  • fix: reduce MCP server status polling frequency by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/7399
  • fix: defer faiss imports during startup by @Aster-amellus in https://github.com/AstrBotDevs/AstrBot/pull/7400
  • fix: prevent KeyError in Telegram collect_commands when plugin handler not in star_map by @michealmachine in https://github.com/AstrBotDevs/AstrBot/pull/7405
  • fix(google-gemini): skip FunctionCallingConfig when only native tools are present by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7407
  • fix(dashboard): fix WebUI dark mode rendering and multiple UI interaction bugs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7173
  • fix(telegram): skip empty text in sendMessageDraft to prevent 400 spam by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7398
  • fix: remove unsupported id field from Gemini FunctionResponse by @kaiisfree in https://github.com/AstrBotDevs/AstrBot/pull/7386
  • fix: add ChatUIProject & SessionProjectRelation to shared constants & test cases by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/7414
  • fix: prevent floating buttons from jumping during page transitions by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/7214
  • feat: add new web search tool Brave Search by @daniel5u in https://github.com/AstrBotDevs/AstrBot/pull/6847
  • refactor: remove default web search by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7416
  • refactor: improve astrbot builtin tool management by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7418
  • perf: merge 3 cron tools into 1 cron manage tool, and add edit capability for cron tool. by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7445
  • fix: split long telegram final segments by @Shujakuinkuraudo in https://github.com/AstrBotDevs/AstrBot/pull/7432
  • fix: make desktop plugin dependency loading safer on Windows by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7446
  • chore: remove lxml and bs4 deps by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7449
  • docs: fix path concatenation error in storage.md by @2doright in https://github.com/AstrBotDevs/AstrBot/pull/7448
  • feat(discord): add configurable bot message filtering, allow bot to receive other bots' messages by @MinaraAgent in https://github.com/AstrBotDevs/AstrBot/pull/6505
  • feat: filesystem grep, read, write, edit file and workspace support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7402
  • fix: Telegram polling recovery after network failures by @Shujakuinkuraudo in https://github.com/AstrBotDevs/AstrBot/pull/7468
  • fix: correct tool source identification for add_llm_tools plugins by @railgun19457 in https://github.com/AstrBotDevs/AstrBot/pull/7462
  • feat: implement retry mechanism for QQ Official API file uploads by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/7430
  • fix: ensure JSON response is encoded with non-ASCII characters for shell command execution by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7475
  • fix(discord): prevent 10062 Unknown interaction error by deferring slash commands immediately by @yuanqiuye in https://github.com/AstrBotDevs/AstrBot/pull/7474
  • feat(weixin_oc): support reply components by @Sagiri777 in https://github.com/AstrBotDevs/AstrBot/pull/7380
  • fix: support both Bailian Rerank API formats based on URL endpoint by @Neko-Yukari in https://github.com/AstrBotDevs/AstrBot/pull/7250
  • perf: add validation for MCP stdio configuration by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7477
  • refactor: remove rarely-used builtin commands and consolidate functionality by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7478
  • fix: use UMO-bound config for group_icl_enable in on_message by @saschabuehrle in https://github.com/AstrBotDevs/AstrBot/pull/7397
  • refactor: chatui style by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7485
  • fix: wrong image name in compose by @kyangconn in https://github.com/AstrBotDevs/AstrBot/pull/7488
  • fix: type use of defineStore in @/stores by @kyangconn in https://github.com/AstrBotDevs/AstrBot/pull/7490

New Contributors

  • @No-22-Github made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7048
  • @Neko-Yukari made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7221
  • @WenqiOfficial made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7247
  • @Thelia-Lzr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7279
  • @kaixinyujue made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7202
  • @SoloLevelingAI made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7054
  • @richard950825-sys made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7278
  • @KagurazakaNyaa made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7369
  • @Aster-amellus made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7400
  • @michealmachine made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7405
  • @kaiisfree made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7386
  • @Shujakuinkuraudo made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7432
  • @2doright made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7448
  • @MinaraAgent made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6505
  • @yuanqiuye made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7474
  • @Sagiri777 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7380
  • @saschabuehrle made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7397

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.22.2...v4.23.0

v4.23.0-beta.1 Breaking risk
Breaking changes
  • Removed `lxml` and `beautifulsoup4` dependencies, reducing installation size and complexity.
Notable features
  • Added Brave Search web search tool (replaces old default).
  • Added Mattermost platform adapter support.
  • Added NVIDIA Rerank Provider.
Full changelog

What's Changed

新增

  • 为电脑使用能力支持文件读取(read)、写入(write)、编辑(edit)、Grep 搜索(ripgrep)与按会话隔离的 workspace。(#7402
  • 新增 Brave Search 网页搜索工具,替代旧的默认网页搜索实现。(#6847
  • 新增 Mattermost 平台适配器支持。(#7369
  • 新增 NVIDIA Rerank Provider。(#7227
  • 新增 OpenAI、Gemini 音频输入模态支持,并修复 ChatUI 录音相关问题。(#7378
  • Discord 平台新增 Bot 消息过滤配置,允许控制是否接收其他 Bot 的消息。(#6505
  • 新增 LLM 对重复工具调用的引导能力,减少模型陷入重复调用工具的情况。(#7388

优化

  • 合并 Cron 相关工具为统一管理工具,并新增 Cron 任务编辑能力。(#7445
  • 重构内置工具管理逻辑,改善 AstrBot 内置工具注册与调用维护性。(#7418
  • 移除默认网页搜索实现,改由新的搜索工具链路提供能力。(#7416
  • 移除 lxmlbeautifulsoup4 依赖,降低安装体积与依赖复杂度。(#7449
  • 降低 MCP Server 状态轮询频率,减少后台请求开销。(#7399
  • 修正文档中的路径拼接示例,避免插件开发存储文档误导使用者。(#7448

修复

  • 修复 Windows 桌面端插件依赖加载不安全或失败的问题。(#7446
  • 修复 Telegram 长消息最终分段过长的问题。(#7432
  • 修复 Telegram sendMessageDraft 发送空文本导致 400 错误刷屏的问题。(#7398
  • 修复 Telegram 收集命令时插件 handler 不在 star_map 中导致 KeyError 的问题。(#7405
  • 修复 QQ 官方 WebSocket 关闭流程清理不完整的问题。(#7395
  • 修复 Gemini FunctionResponse 中不支持的 id 字段导致请求失败的问题。(#7386
  • 修复 Gemini 空模型输出误触发错误处理的问题。(#7377
  • 修复仅存在原生工具时仍传递 FunctionCallingConfig 的问题。(#7407
  • 修复 ChatUI 项目常量缺失,并补充相关测试用例。(#7414
  • 修复 WebUI 暗色模式渲染与多处交互问题。(#7173
  • 修复页面切换时浮动按钮跳动的问题。(#7214
  • 修复 faiss 在启动阶段过早导入导致部分环境启动失败的问题。(#7400
  • 修复微信个人号适配器缺少上下文 token 时的警告信息。(commit
  • 修复工具结果断言与动态阈值不一致的问题。(commit

What's Changed (EN)

New Features

  • Added local Computer Use filesystem tools, including file read, write, edit, Grep search, and per-session workspace support. (#7402)
  • Added the Brave Search web search tool, replacing the old default web search implementation. (#6847)
  • Added Mattermost platform support. (#7369)
  • Added the NVIDIA Rerank Provider. (#7227)
  • Added audio input support across providers and fixed ChatUI recording issues. (#7378)
  • Added configurable Discord bot-message filtering, including support for receiving messages from other bots. (#6505)
  • Added LLM guidance for repeated tool calls to reduce repetitive tool-call loops. (#7388)

Improvements

  • Merged Cron tools into a unified management tool and added Cron task editing. (#7445)
  • Refactored built-in tool management to improve registration and maintenance. (#7418)
  • Removed the old default web search implementation in favor of the new search tool flow. (#7416)
  • Removed lxml and beautifulsoup4 dependencies to reduce dependency weight and installation complexity. (#7449)
  • Reduced MCP Server status polling frequency to lower background request overhead. (#7399)
  • Fixed a path concatenation example in the plugin storage docs. (#7448)
  • Updated the README logo. (commit)

Bug Fixes

  • Fixed safer desktop plugin dependency loading on Windows. (#7446)
  • Fixed overly long final Telegram message segments. (#7432)
  • Fixed Telegram sendMessageDraft 400 spam caused by empty text. (#7398)
  • Fixed a KeyError in Telegram command collection when a plugin handler is missing from star_map. (#7405)
  • Cleaned up QQ Official WebSocket shutdown handling. (#7395)
  • Removed the unsupported id field from Gemini FunctionResponse payloads. (#7386)
  • Fixed empty model output handling that could misfire when using Gemini. (#7377)
  • Skipped FunctionCallingConfig when only native tools are present. (#7407)
  • Added missing ChatUI project constants and related tests. (#7414)
  • Fixed WebUI dark-mode rendering and multiple interaction bugs. (#7173)
  • Prevented floating buttons from jumping during page transitions. (#7214)
  • Deferred faiss imports during startup to avoid startup failures in some environments. (#7400)
  • Improved the missing-context-token warning message in the Weixin OC adapter. (commit)
  • Updated tool-result assertions to match dynamic threshold values. (commit)

What's Changed

  • docs: add usage of select_knowledgebase in plugin development docs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7115
  • feat: add new StatsPage for enhanced statistics overview by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7152
  • fix(core): Record.path was incorrectly treated as required under Pydantic v2 by @No-22-Github in https://github.com/AstrBotDevs/AstrBot/pull/7048
  • fix: improve number input UX in config renderer by @Reisenbug in https://github.com/AstrBotDevs/AstrBot/pull/7153
  • fix: send SSE heartbeat to prevent WebChat disconnect during compression by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7003
  • perf: improve ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7178
  • chore(deps): bump codecov/codecov-action from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7209
  • Fix cached_tokens handling in _extract_usage method by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/6719
  • refactor: update provider panels for improved layout and styling by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7248
  • feat: integrate Monaco Editor workers for enhanced code editing support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7249
  • fix: add pysocks dependency to support SOCKS5 proxy for pip install by @Neko-Yukari in https://github.com/AstrBotDevs/AstrBot/pull/7221
  • fix(Docker): add amr encoder by @WenqiOfficial in https://github.com/AstrBotDevs/AstrBot/pull/7247
  • fix: support both old and new Bailian Rerank API response formats by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7217
  • 修正了QQ websoket连接的文档错误 by @Thelia-Lzr in https://github.com/AstrBotDevs/AstrBot/pull/7279
  • 修复:过滤空助手消息,以防止在严格API上出现400错误(fix: filter empty assistant messages to prevent 400 error on strict APIs) by @kaixinyujue in https://github.com/AstrBotDevs/AstrBot/pull/7202
  • Docs/update mimo provider readme by @RichardLiuda in https://github.com/AstrBotDevs/AstrBot/pull/7207
  • Feat(webui): dashboard and console qol improvements by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/7215
  • fix: 改进知识库的初始化错误处理 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7243
  • docs: 在 uv 部署文档中添加不支持 WebUI 升级的说明 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7298
  • fix: resolve Discord/Misskey hot reload issue by fixing client_self_id misuse by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7331
  • fix: satisfy Google Gemini's function_response requirements to avoid 400 Invalid argument errors by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7216
  • fix: filter Gemini thinking parts from user-facing message chain by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7196
  • perf: Set content to None when the OpenAI message content list is empty by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6551
  • fix(windows): inherit all system environment variables into MCP runner for Windows by @SoloLevelingAI in https://github.com/AstrBotDevs/AstrBot/pull/7054
  • feat: support token usage extraction for llama.cpp by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7358
  • feat(provider/vllm_rerank): add configurable rerank_api_suffix option by @richard950825-sys in https://github.com/AstrBotDevs/AstrBot/pull/7278
  • feat(matrix): add missing Matrix constant and update docs by @stevessr in https://github.com/AstrBotDevs/AstrBot/pull/7368
  • fix: add checks to return None if STT or TTS providers are disabled in config by @machinad in https://github.com/AstrBotDevs/AstrBot/pull/7363
  • feat(provider): add LongCat LLM Provider by @Futureppo in https://github.com/AstrBotDevs/AstrBot/pull/7360
  • fix: empty model output error may misfire when use gemini by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7377
  • feat: add audio input support across providers and chatui recording issue fix by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7378
  • feat: add NVIDIA rerank provider support by @WenqiOfficial in https://github.com/AstrBotDevs/AstrBot/pull/7227
  • feat: implement llm guidance for repetition tool call by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7388
  • fix: clean up qq official websocket shutdown by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7395
  • feat(platform): add Mattermost bot support by @KagurazakaNyaa in https://github.com/AstrBotDevs/AstrBot/pull/7369
  • chore(deps): bump docker/login-action from 4.0.0 to 4.1.0 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7401
  • fix: reduce MCP server status polling frequency by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/7399
  • fix: defer faiss imports during startup by @Aster-amellus in https://github.com/AstrBotDevs/AstrBot/pull/7400
  • fix: prevent KeyError in Telegram collect_commands when plugin handler not in star_map by @michealmachine in https://github.com/AstrBotDevs/AstrBot/pull/7405
  • fix(google-gemini): skip FunctionCallingConfig when only native tools are present by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7407
  • fix(dashboard): fix WebUI dark mode rendering and multiple UI interaction bugs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7173
  • fix(telegram): skip empty text in sendMessageDraft to prevent 400 spam by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7398
  • fix: remove unsupported id field from Gemini FunctionResponse by @kaiisfree in https://github.com/AstrBotDevs/AstrBot/pull/7386
  • fix: add ChatUIProject & SessionProjectRelation to shared constants & test cases by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/7414
  • fix: prevent floating buttons from jumping during page transitions by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/7214
  • feat: add new web search tool Brave Search by @daniel5u in https://github.com/AstrBotDevs/AstrBot/pull/6847
  • refactor: remove default web search by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7416
  • refactor: improve astrbot builtin tool management by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7418
  • perf: merge 3 cron tools into 1 cron manage tool, and add edit capability for cron tool. by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7445
  • fix: split long telegram final segments by @Shujakuinkuraudo in https://github.com/AstrBotDevs/AstrBot/pull/7432
  • fix: make desktop plugin dependency loading safer on Windows by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7446
  • chore: remove lxml and bs4 deps by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7449
  • docs: fix path concatenation error in storage.md by @2doright in https://github.com/AstrBotDevs/AstrBot/pull/7448
  • feat(discord): add configurable bot message filtering, allow bot to receive other bots' messages by @MinaraAgent in https://github.com/AstrBotDevs/AstrBot/pull/6505
  • feat: filesystem grep, read, write, edit file and workspace support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7402

New Contributors

  • @No-22-Github made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7048
  • @WenqiOfficial made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7247
  • @Thelia-Lzr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7279
  • @kaixinyujue made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7202
  • @SoloLevelingAI made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7054
  • @richard950825-sys made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7278
  • @KagurazakaNyaa made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7369
  • @Aster-amellus made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7400
  • @michealmachine made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7405
  • @kaiisfree made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7386
  • @2doright made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7448
  • @MinaraAgent made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6505

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.22.2...v4.23.0-beta.1

v4.22.3 New feature
Notable features
  • Token usage extraction support for llama.cpp
  • Bundled Monaco Editor workers in WebUI to avoid external CDN dependencies
  • New statistics overview panel for model and platform usage
Full changelog

What's Changed

新增

  • 新增 vllm_rerank 提供商支持可配置的 rerank_api_suffix,可灵活适配不同 API 路径。(#7278
  • 适配 llama.cpp 的 token 用量提取支持,增强 token 统计与计费分析能力。(#7358
  • WebUI 捆绑 Monaco Editor 的 worker 文件,防止从 CDN 下载失败。(#7249
  • 全新的模型/平台总览统计面板。(#7152

优化

  • 优化 OpenAI 消息处理,若 content 列表为空时将其置为 None,并降低空内容下的异常率。(#6551
  • 优化 provider page 布局与样式,提升整体设置页面排版一致性。(#7248
  • 用户已登录时将直接跳转欢迎页,减少再次进入登录页的步骤。(commit

修复

  • 修复 Windows 下 MCP runner 未继承完整系统环境变量导致启动异常的问题。(#7054
  • 修复 Gemini 思考片段泄露到用户可见消息链路的问题。(#7196
  • 修复 Gemini(OpenAI 兼容 API) 下,function_response 格式要求导致的 400 Invalid argument 错误。(#7216
  • 修复知识库初始化失败时的错误提示与恢复问题。(#7243
  • 修复 Bailian Rerank 对新旧响应格式兼容性,避免解析失败。(#7217
  • Docker 镜像补充 AMR 编码器依赖,修复部分部署场景下的音频转码缺失问题。(#7247
  • 修复 pip 安装缺少 pysocks 依赖导致的 SOCKS5 代理不可用问题。(#7221
  • 修复 cached_tokens_extract_usage 中的处理逻辑,避免 token 统计错乱。(#6719
  • 增强 SSE 断开保护,压缩传输下主动发送心跳,减少 WebChat 误断连。(#7003
  • 修复严格 API 下空 assistant 消息导致的 400 错误。(#7202
  • 新增二维码功能缺失的 qrcode 依赖修复,恢复二维码生成功能。(commit
  • 修复配置器数字输入组件的交互体验问题,避免异常输入场景下的处理偏差。(#7153
  • 修复 Record.path 在 Pydantic v2 下被错误视为必填字段的问题。(#7048

What's Changed (EN)

New Features

  • Added configurable rerank_api_suffix for the vllm_rerank provider to support custom API paths.(#7278
  • Added token usage extraction support for llama.cpp to improve token accounting.(#7358
  • Bundled Monaco Editor workers in WebUI so code editing does not depend on external CDN downloads.(#7249
  • Added a new statistics overview for model and platform usage.(#7152
  • Redirected logged-in users to the welcome page instead of the login page.(commit

Improvements

  • Improved OpenAI message handling by setting message content to None when content lists are empty, reducing empty-payload edge cases.(#6551
  • Improved provider page layout and styling to keep settings pages consistent.(#7248
  • Refined connection-success handling and messaging when users are already logged in.(commit

Bug Fixes

  • Inherited all system environment variables in Windows MCP runner to fix environment-dependent launch issues.(#7054
  • Filtered Gemini thinking parts from user-facing message chains.(#7196
  • Fixed Gemini function_response compatibility to prevent 400 Invalid argument responses.(#7216
  • Improved knowledge base initialization error handling.(#7243
  • Fixed Bailian rerank parsing for both old and new response formats.(#7217
  • Added AMR encoder support in Docker builds to fix missing audio codec support.(#7247
  • Added the pysocks dependency so pip installs can use SOCKS5 proxy correctly.(#7221
  • Fixed _extract_usage cached token handling.(#6719
  • Sent SSE heartbeat packets to prevent WebChat disconnection under compression.(#7003
  • Fixed 400 errors caused by empty assistant messages on strict APIs.(#7202
  • Added missing qrcode dependency to restore QR code generation.(commit
  • Fixed number input UX in config renderer.(#7153
  • Fixed Record.path being incorrectly treated as required under Pydantic v2.(#7048

What's Changed

  • docs: add usage of select_knowledgebase in plugin development docs by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7115
  • feat: add new StatsPage for enhanced statistics overview by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7152
  • fix(core): Record.path was incorrectly treated as required under Pydantic v2 by @No-22-Github in https://github.com/AstrBotDevs/AstrBot/pull/7048
  • fix: improve number input UX in config renderer by @Reisenbug in https://github.com/AstrBotDevs/AstrBot/pull/7153
  • fix: send SSE heartbeat to prevent WebChat disconnect during compression by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7003
  • perf: improve ui by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7178
  • chore(deps): bump codecov/codecov-action from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/7209
  • Fix cached_tokens handling in _extract_usage method by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/6719
  • refactor: update provider panels for improved layout and styling by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7248
  • feat: integrate Monaco Editor workers for enhanced code editing support by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7249
  • fix: add pysocks dependency to support SOCKS5 proxy for pip install by @Neko-Yukari in https://github.com/AstrBotDevs/AstrBot/pull/7221
  • fix(Docker): add amr encoder by @WenqiOfficial in https://github.com/AstrBotDevs/AstrBot/pull/7247
  • fix: support both old and new Bailian Rerank API response formats by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7217
  • 修正了QQ websoket连接的文档错误 by @Thelia-Lzr in https://github.com/AstrBotDevs/AstrBot/pull/7279
  • 修复:过滤空助手消息,以防止在严格API上出现400错误(fix: filter empty assistant messages to prevent 400 error on strict APIs) by @kaixinyujue in https://github.com/AstrBotDevs/AstrBot/pull/7202
  • Docs/update mimo provider readme by @RichardLiuda in https://github.com/AstrBotDevs/AstrBot/pull/7207
  • Feat(webui): dashboard and console qol improvements by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/7215
  • fix: 改进知识库的初始化错误处理 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7243
  • docs: 在 uv 部署文档中添加不支持 WebUI 升级的说明 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/7298
  • fix: resolve Discord/Misskey hot reload issue by fixing client_self_id misuse by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7331
  • fix: satisfy Google Gemini's function_response requirements to avoid 400 Invalid argument errors by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7216
  • fix: filter Gemini thinking parts from user-facing message chain by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/7196
  • perf: Set content to None when the OpenAI message content list is empty by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6551
  • fix(windows): inherit all system environment variables into MCP runner for Windows by @SoloLevelingAI in https://github.com/AstrBotDevs/AstrBot/pull/7054
  • feat: support token usage extraction for llama.cpp by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7358
  • feat(provider/vllm_rerank): add configurable rerank_api_suffix option by @richard950825-sys in https://github.com/AstrBotDevs/AstrBot/pull/7278

New Contributors

  • @No-22-Github made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7048
  • @Neko-Yukari made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7221
  • @WenqiOfficial made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7247
  • @Thelia-Lzr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7279
  • @kaixinyujue made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7202
  • @SoloLevelingAI made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7054
  • @richard950825-sys made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7278

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.22.2...v4.22.3

v4.22.2 New feature
Notable features
  • Added `tool_choice` parameter to Chat Provider text_chat interface.
  • Introduced `EmptyModelOutputError` for empty model responses with enhanced retry logic.
Full changelog

What's Changed

新增

  • 个人微信 新增“对方正在输入...”状态控制能力。(#6977
  • 配置管理页支持从现有配置复制生成新配置,减少重复创建成本。(#6785

优化

  • Chat Provider text_chat 接口新增 tool_choice 参数,并为模型空响应引入统一的 EmptyModelOutputError 与增强重试逻辑,改善 “skills-like” 工具调用模式下的稳定性。(#7101#7104
  • SSL 证书配置错误时自动回退到非 SSL 模式,而不是程序直接退出。(#7102

修复

  • 修复 个人微信 Bot 无法发送多媒体文件与 CDN 上传地址兼容性问题,适配新的 upload_full_url 返回格式。#7066
  • 修复 个人微信 连接超时 / 中断后直接导致微信适配器实例退出的问题,增强了重试机制。(#7041
  • 修复 WebUI Skills 上传对多技能压缩包的处理,允许单个 zip 包内包含多个技能。(#7070
  • 修复 OpenAI 嵌入模型接口处理相关问题。#7026
  • QQ 机器人发送语音或音频文件没有响应 (#7007
  • ChatUI 切换到某个会话,刷新后错误地跳转到最新会话 (#6535
  • 修复百炼 qwen3-rerank 的请求负载兼容性问题,并忽略不受支持的 return_documents 参数。(#6222
  • 修复 QQ 下,发送唤醒前缀后,多次空触发 LLM 的问题。(#6893
  • 修复 GSVI TTS 调用方式与鉴权头构造问题,并补充默认配置值,适配新的 /infer_single API。(#7083
  • 修复缺失 httpx SOCKS 代理依赖的问题,恢复 SOCKS 代理支持。(#7093
  • 修复企业微信客服发送失败时无法回退普通消息接口的问题。(#7012
  • 修复 WebUI 对话管理详情页无法滚动的问题。#6972
  • 修复 Telegram 附件消息 caption 丢失的问题。(#7020

What's Changed (EN)

New Features

  • Added tool_choice to Tool Loop Agent Runner and introduced EmptyModelOutputError with stronger retry handling, improving stability for "skills-like" tool-call workflows.(#7101#7104
  • Added SSL config resolution and validation for Dashboard, with automatic fallback to non-SSL mode when the certificate setup is invalid.(#7102
  • Added the ability to create a new config by copying an existing one in the config management page.(#6785
  • Updated the QQ Official adapter to support asynchronous message parsing and attachment preparation.(#7007
  • Added typing-state control ("user is typing...") for the Weixin OC adapter.(#6977

Improvements

  • Refactored Chat UI routing and layout so the UI mode is URL-driven and related state is scoped to sessionStorage.(#6535
  • Improved WebUI polish by centering extension-page toast hints and making code blocks more readable in dark mode.(#6043#7014

Bug Fixes

  • Fixed skill installer handling so a single zip archive can contain multiple skills.(#7070
  • Fixed Bailian qwen3-rerank payload compatibility and ignored unsupported return_documents parameters.(#6222
  • Fixed pipeline wake-up and request flow on empty messages.(#6893
  • Fixed GSVI TTS invocation and authorization-header construction, and added safer default config values.(#7083
  • Fixed missing httpx SOCKS proxy dependency to restore SOCKS proxy support.(#7093
  • Fixed Weixin OC inbound polling retry behavior and CDN upload compatibility with the new upload_full_url response field.(#7041#7066
  • Fixed WeCom fallback behavior so sending can retry through the regular message API when the KF API returns 40096.(#7012
  • Fixed missing attachment captions in Telegram messages.(#7020
  • Hardened OpenAI attachment recovery and fixed Embedding URL suffix trimming to avoid recovery failures and accidental URL character removal.(#7004#7026
  • Fixed Dashboard regressions around list-option label mapping, missing icons, and mouse-wheel handling in the preview container.(#6844#6970#6972

What's Changed

  • fix: honor computer_use_require_admin in shipyard_neo tools by @1zzxy1 in https://github.com/AstrBotDevs/AstrBot/pull/6951
  • fix(dashboard): include missing vuetify mdi icons by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/6970
  • docs: Fix typo in plugin configuration documentation by @Yinr in https://github.com/AstrBotDevs/AstrBot/pull/6971
  • docs: normalize QQ group listings in READMEs and community docs by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/6976
  • fix(provider): restore parameter transparency in core LLM provider adapters by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/6934
  • feat(dashboard): center extension page toast hints with the global UI by @catDforD in https://github.com/AstrBotDevs/AstrBot/pull/6043
  • docs: update plugin dev link in webui by @xrr2016 in https://github.com/AstrBotDevs/AstrBot/pull/6978
  • Feat(webui): improve code block readability in dark mode(iss#6963) by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/7014
  • fix: harden OpenAI attachment recovery by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7004
  • revert: "fix(provider): restore parameter transparency in core LLM provider adapters" by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7023
  • fix(dashboard): update aiocqhttp tutorial links to new docs path by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/7038
  • fix(embedding): use removesuffix instead of rstrip to prevent over-trimming URLs by @Izayoi9 in https://github.com/AstrBotDevs/AstrBot/pull/7026
  • fix(telegram): preserve attachment captions by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/7020
  • fix(wecom): fallback to message API when kf returns 40096 by @silwings1986 in https://github.com/AstrBotDevs/AstrBot/pull/7012
  • fix(chatui): refactor routing and layout to drive UI mode from URL and scope state to sessionStorage by @itamiokanjiro in https://github.com/AstrBotDevs/AstrBot/pull/6535
  • fix(weixin_oc): add error handling and retry logic for inbound updates polling by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7041
  • feat: Add "typing" ("对方正在输入...") state control for weixin_oc plateform by @GowayLee in https://github.com/AstrBotDevs/AstrBot/pull/6977
  • docs: corrent weixin_oc wechat version requirements by @tlw00988 in https://github.com/AstrBotDevs/AstrBot/pull/7068
  • fix(weixin_oc): allow CDN uploads to use upload_full_url when provided by @Astral-Yang in https://github.com/AstrBotDevs/AstrBot/pull/7066
  • fix: bundle httpx SOCKS proxy support by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/7093
  • fix(gsvi_tts): Use the correct calling method by @Rain-0x01-39 in https://github.com/AstrBotDevs/AstrBot/pull/7083
  • fix(pipeline): skip waking on empty messages by @Reisenbug in https://github.com/AstrBotDevs/AstrBot/pull/6893
  • fix: allow multiple skills in a single zip archive by @jmt059 in https://github.com/AstrBotDevs/AstrBot/pull/7070
  • feat: update QQOfficialPlatformAdapter to support async parsing and attachment preparation by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7007
  • fix(dashboard): apply labels mapping for list options in config renderer by @Foolllll-J in https://github.com/AstrBotDevs/AstrBot/pull/6844
  • feat: allow copy config from existing configs by @Flartiny in https://github.com/AstrBotDevs/AstrBot/pull/6785
  • fix(provider): fix Bailian rerank payload compatibility for qwen3-rerank by @kawayiYokami in https://github.com/AstrBotDevs/AstrBot/pull/6222
  • fix(webui): keep wheel scrolling inside history dialog by @1zzxy1 in https://github.com/AstrBotDevs/AstrBot/pull/6972
  • feat(agent-runner): add tool_choice parameter to fix empty tool calls response in "skills-like" tool call mode by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7101
  • feat(dashboard): add SSL configuration resolution for dashboard by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7102
  • feat: implement EmptyModelOutputError for handling empty responses across providers and enhance retry logic in ToolLoopAgentRunner by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/7104

New Contributors

  • @Yinr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6971
  • @xrr2016 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6978
  • @silwings1986 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7012
  • @tlw00988 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7068
  • @Astral-Yang made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7066
  • @Rain-0x01-39 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7083
  • @jmt059 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/7070
  • @Foolllll-J made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6844

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.22.1...v4.22.2

v4.22.1 Breaking risk
Notable features
  • Enhanced skill installation supports multiple top‑level folders and Chinese names
  • OpenAI embedding API base auto‑appends "/v1"
  • GET endpoint added for /api/file with multi‑method support
Full changelog

What's Changed

新增

  • 增强 Skills 安装流程,不再限制上传的压缩包顶级必须是一个目录。并支持中文技能名称显示。(#6952
  • OpenAI Embedding 模型配置支持自动补齐 /v1 基础路径。(#6863
  • /api/file 新增 GET 端点并支持多种请求方式。(#6874
  • WebUI 设置页新增日志与缓存清理能力。(#6822
  • Lark 平台新增可折叠 Thinking 面板能力与消息处理优化。(#6831

修复

  • 修复 QQ 官方机器人中,在 Cron Job 或者主动发送消息时的 msg_id 相关负载处理问题。(#6604
  • 修复 个人微信 在轮询超时后停止轮询的问题。(#6915
  • 修复 硅基流动 提供商无法正确使用工具调用能力的问题。(#6829
  • 修复部分提供商工具调用流式增量返回缺少 index 导致的异常。(#6661
  • 修复 WebUI 中 ObjectEditorupdateKey 错误索引导致的“键已存在”误判。(#6825
  • 修复 UI 图标集合及测试一致性导致的展示异常。(#6894#6892
  • 修复 T2I 配置间未同步生效模板的问题。(#6824
  • 修复 MIMO TTS 样式参数以对齐官方文档约定。(#6814

What's Changed (EN)

New Features

  • Enhanced skill installation to support multiple top-level folders, duplicate handling, and Chinese skill names.(#6952
  • Automatically append /v1 to embedding_api_base for OpenAI embedding compatibility.(#6863
  • Added plugin author display and pinned plugin card support in WebUI.(#6875
  • Added GET endpoint for /api/file and support for multiple HTTP methods.(#6874
  • Added log and cache cleanup in Dashboard settings.(#6822
  • Added collapsible reasoning panel and message handling improvements for Lark.(#6831

Improvements

  • Validate config_path before existence checks to avoid false negatives.(#6722
  • Improved Provider batch reset behavior and "follow" configuration handling in WebUI.(#6825
  • Updated OpenAI-related guidance in i18n docs for clearer compatibility hints.(adc252a3)

Bug Fixes

  • Fixed missing index field in streaming tool_call deltas.(#6661
  • Fixed msg_id payload handling for QQ API.(#6604
  • Kept Weixin OC polling active after inbound timeout.(#6915
  • Fixed updateKey index bug in WebUI ObjectEditor that caused false “key exists” errors.(#6825
  • Fixed icon regressions in UI and related icon scan tests.(#6894#6892
  • Fixed SiliconFlow provider tools compatibility issue.(#6829
  • Synchronized active T2I template across all configs.(#6824
  • Aligned MIMO TTS payload style with official docs.(#6814
  • Removed privacy-sensitive data left in tests.(#6803
v4.22.0 Breaking risk
Notable features
  • Added WeChat personal account support with QR‑code setup and media handling.
  • WebUI plugins can now be pinned and reordered via drag‑and‑drop.
  • Image compression feature allows max size limits and JPEG quality control.
Full changelog

What's Changed

新增

  • 新增个人微信接入能力(微信官方提供)。详见 个人微信接入#6777
  • 新增图片压缩能力,支持图片尺寸、JPEG 质量限制。(#6794
  • 新增 WebUI 已安装插件置顶与拖拽重排能力。(#6776

优化

  • 知识库为空时自动跳过检索,避免无效搜索调用。(#6750
  • 修复 frontmatter 转义换行符保留行为并更新相关测试与 CI 工作流(含文档与配置同步)。(#6783

修复

  • Telegram 适配器改为导入 Forbidden,替代已弃用的 Unauthorized(兼容性修正)。(#6769
  • 处理 OpenAI Provider 中 token usage metricsNone 时的异常场景。(#6788
  • 保留全部 CallToolResultcontent 项,避免工具调用上下文内容丢失。(#6149

What's Changed (EN)

New Features

  • Added WeChat personal account support, including QR-code driven setup, message flow refactor, and media handling improvements.(#6777
  • Added pinning and drag-sorting for installed WebUI plugins.(#6776
  • Added image compression with max-size handling and temporary-file lifecycle management for improved image efficiency.(#6794

Improvements

  • Skipped search execution when the entire knowledge base is empty.(#6750
  • Preserved escaped newlines in frontmatter, with related test and CI workflow updates.(#6783

Bug Fixes

  • Replaced deprecated Telegram adapter import of Unauthorized with Forbidden.(#6769
  • Handled None values in OpenAI provider token usage metrics.(#6788
  • Kept all CallToolResult.content items to prevent losing tool-call context.(#6149

What's Changed

  • feat: supports weixin personal account by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6777
  • fix(platform.tg_adapter): import Forbidden instead of deprecated Unauthorized (#6765) by @mzwing in https://github.com/AstrBotDevs/AstrBot/pull/6769
  • feat: skip search when the entire knowledge base is empty by @Waterwzy in https://github.com/AstrBotDevs/AstrBot/pull/6750
  • feat: fix preserve escaped newlines in frontmatter & update tests & ci workflows by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/6783
  • Feat(webui): support pinning and dragging for installed plugins (#6649) by @M1LKT in https://github.com/AstrBotDevs/AstrBot/pull/6776
  • fix: handle potential None values for token usage metrics in OpenAI provider by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6788
  • feat: supports image compressing (#6463) by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6794
  • fix: keep all CallToolResult content items by @tsubasakong in https://github.com/AstrBotDevs/AstrBot/pull/6149

New Contributors

  • @mzwing made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6769
  • @M1LKT made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6776

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.21.0...v4.22.0

v4.21.0 Breaking risk
Breaking changes
  • Renamed `skill.md` file to `SKILL.md` (case‑sensitive).
Notable features
  • Added category filtering for market plugins and enhanced UI components
  • Added Kimi Coding Plan provider with Anthropic API compatibility
  • Added toggle to disable thinking mode in Ollama
Full changelog

What's Changed

新增

  • 为插件市场新增分类筛选并优化界面组件。(#6762
  • 新增 Kimi Coding Plan Provider(兼容 Anthropic API)。(#6559
  • 统一并重命名 skill.md 文件为 SKILL.md。(#6757
  • 新增 Ollama 关闭思考模式开关。(#5941
  • 新增小米 MiMo TTS 与 STT Provider。(#6643
  • 新增多模态上下文 token 计数能力(图片、音频与思维链)。(#6596
  • 新增按元信息名称安装插件并校验可导入标识符。(#6530

优化

  • 降低 kook_typeStrEnum(str, Enum) 以兼容旧版本 Python。(#6512
  • 优化 WebChat 消息处理:提前保存消息并增强流式补全。(#6698
  • 优化 Dashboard 中移动端 persona 选择器布局。(#5907
  • 优化 Dashboard,减少 MDI icon font 范围并自托管 Google Fonts。(#6532
  • 使用 Pydantic 重构 KOOK 适配器数据模型以提升消息结构解析与校验性能。(#5719
  • 调整文档术语与表达(“消息平台”改为“机器人”等)并优化更新说明文字。(#6568

修复

  • 修复 web search tools 中被禁用系统函数时未正确生效的问题。(#6584
  • 跳过空的知识库嵌入批次,避免不必要计算。(#6106
  • 修复 Feishu opus 文件在 Whisper API STT 场景下未正确转换的问题。(#6078
  • 修复 Lark 在工具调用中断时卡片创建与重续流程。(#6743
  • 修复 Windows 环境下 skill 文件编码兼容问题。(#6058
  • 修复 WebChat 单独渲染的 HTML 回复被错误显示的问题。(#6074
  • 修复 Gemini 数组 schema 缺少 items 字段的问题。(#6051
  • 修复 skills 使用硬编码工作区路径的问题,改为使用缓存中的真实沙箱路径。(#6331
  • 修复 subagent 工具调用超时传递,修正 tool_call_timeout 并将默认超时从 60 秒提升到 120 秒。(#6713
  • 修复 skills-like 下缺失 extra_user_content_parts 时未注入图片说明的问题。(#6710
  • 修复 /stop 后继续处理后续 follow-up 消息的问题。(#6704
  • 修复核心流程在 stop 时中断子代理工具等待的行为。(#5850
  • 修复 Windows 平台 stdio MCP 服务 PATHEXT 丢失的问题。(#5822
  • 修复 Telegram 轮询重启机制,失败时自动恢复循环。(#6648
  • 修复 /stop 后 follow-up 状态未清理导致后续触发继续运行的问题。(#6656
  • 修复 OpenAI 配置日志,改进代理与 API Base 的可读性与排障能力。(#6669
  • 修复长工具调用中截断逻辑误删唯一 user 消息的问题。(#6198
  • 修复截断器移除唯一用户消息导致部分 provider 返回 400 的问题。(#6581
  • 修复 ID 白名单为空时提示文案不清晰的问题。(#6611
  • 修复 MoonshotAI 官方 API 下 OpenAI token usage 缺失问题。(#6618
  • 提升 Wecom AI Bot 流式可读性与速度(限流处理),改善卡顿与显示体验。(#6610
  • 修复 Wecom 长连接回复消失的问题。(#6606
  • 修复 Windows 打包运行时 pip/native 构建环境配置问题。(#6575
  • 修复仅在显式配置时传递 embedding dimensions,避免无效参数干扰。(#6432
  • 修复 register_agent 装饰器导致的 NameError。(#5765
  • 修复默认 persona 场景下的 subagent 查询失败问题。(#5672
  • 修复 Windows 下 skill 读取失败问题。(#6490
  • 修复 SKILL.md 多行 frontmatter 解析问题。(#6460
  • 修复 SQLite database is locked 问题,新增繁忙超时处理。(#6474
  • 修复工作流限制仅允许上游仓库触发的报错场景。(#6531

What's Changed (EN)

New Features

  • Added category filtering for market plugins and enhanced UI components.
  • Normalized and renamed skill.md files to SKILL.md.
  • Added a toggle to disable thinking mode in Ollama.
  • Added Xiaomi MiMo TTS & STT providers.
  • Added Kimi Coding Plan provider with Anthropic API compatibility.
  • Added context token counting support for multimodal content (images, audio, and chain-of-thought).
  • Added plugin installation by metadata name and validated importable identifiers.

Improvements

  • Refactored StrEnum to (str, Enum) in kook_type for backward compatibility.
  • Enhanced WebChat message handling with proactive saving and streaming completion.
  • Simplified dashboard persona selector layout for mobile screens.
  • Subset MDI icon font and self-hosted Google Fonts in dashboard.
  • Implemented Pydantic data models for KOOK adapter for better retrieval and schema validation.
  • Updated documentation wording for incomplete updates terminology.

Bug Fixes

  • Fixed disabled system functions in web search tools.
  • Skipped empty knowledge-base embedding batches.
  • Converted Feishu opus files for Whisper API STT.
  • Deferred Lark card creation and renewal on tool call break.
  • Added fallback for Windows skill file encodings.
  • Rendered standalone HTML replies as code in WebChat.
  • Ensured Gemini array schemas always include items.
  • Fixed skills path resolution to use cached sandbox path instead of hardcoded workspace root.
  • Passed tool_call_timeout to subagent handsoff/cron/background tasks and increased default timeout to 120 seconds.
  • Fixed skills-like re-query missing extra_user_content_parts causing image caption not injected.
  • Rejected follow-up messages after /stop request.
  • Interrupted subagent tool waits on stop.
  • Preserved PATHEXT for stdio MCP servers on Windows.
  • Added automatic restart for Telegram polling loop on failure.
  • Fixed follow-up persistence logic after /stop trigger.
  • Improved OpenAI proxy/API base logging.
  • Prevented truncation logic from removing the only user message in long tool-calling conversations.
  • Fixed truncation removing the only user message and returning 400 for some providers.
  • Updated ID whitelist empty-configuration hint wording.
  • Fixed token usage with MoonshotAI official API.
  • Improved Wecom AI Bot streaming readability and speed via throttling.
  • Prevented Wecom AI Bot long connection replies from disappearing.
  • Set packaged Windows runtime build env for pip native builds.
  • Only pass embedding dimensions when explicitly configured.
  • Fixed register_agent decorator NameError.
  • Fixed subagent lookup failure when using default persona.
  • Fixed reading skills on Windows.
  • Fixed multiline frontmatter parsing in SKILL.md.
  • Fixed SQLite database is locked with busy timeout.
  • Restricted workflows to upstream repo.

What's Changed

  • feat: localize session management group & interval method texts by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/6471
  • fix: SQLite 'database is locked' under concurrent writes by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6474
  • fix: parse multiline frontmatter description in SKILL.md by @RhoninSeiei in https://github.com/AstrBotDevs/AstrBot/pull/6460
  • chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/6461
  • chore: remove deprecated version field from compose.yml by @YuanyuanMa03 in https://github.com/AstrBotDevs/AstrBot/pull/5495
  • fix: reading skills on Windows by @linzhengtian in https://github.com/AstrBotDevs/AstrBot/pull/6490
  • fix: subagent create failure when using default persona by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5672
  • fix: register_agent decorator NameError by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5765
  • fix: only pass dimensions when explicitly configured in embedding config by @jnMetaCode in https://github.com/AstrBotDevs/AstrBot/pull/6432
  • perf: Implement Pydantic data models for the KOOK adapter to enhance data retrieval and message schema validation by @shuiping233 in https://github.com/AstrBotDevs/AstrBot/pull/5719
  • refactor: Downgrade StrEnum to (str, Enum) in kook_type for backward compatibility by @shuiping233 in https://github.com/AstrBotDevs/AstrBot/pull/6512
  • feat: install plugin using metadata name and validate importable identifiers by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6530
  • fix: restrict workflows to upstream repo by @Raven95676 in https://github.com/AstrBotDevs/AstrBot/pull/6531
  • Fix LLM always choosing FileDownloadTool instead of FileUploadTool by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6527
  • perf(dashboard): subset MDI icon font and self-host Google Fonts by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/6532
  • 更改未完成更新的文档用词问题(多处“消息平台”已更名为“机器人”) by @nuomicici in https://github.com/AstrBotDevs/AstrBot/pull/6568
  • fix: set packaged Windows runtime build env for pip native builds by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/6575
  • feat (doc) : Add doc for shipyard-neo sandbox driver by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/6590
  • docs(sandbox): clarify section references in guides by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/6591
  • fix: prevent wecom ai bot long connection replies from disappearing by @shijianhuai in https://github.com/AstrBotDevs/AstrBot/pull/6606
  • fix(wecom-aibot): significantly improve streaming readability and speed via add throttling by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6610
  • feat: context token counting support for multimodal content (images, audio, and chain-of-thought) by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6596
  • fix(openai): Token usage not working when using MoonshotAI official API by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6618
  • fix: update hint for ID whitelist configuration to clarify behavior w… by @machinad in https://github.com/AstrBotDevs/AstrBot/pull/6611
  • fix: 截断器丢失唯一 user 消息导致智谱等 provider 返回 400 by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6581
  • fix: prevent truncation logic from removing the only user message in long tool-calling conversations by @leonforcode in https://github.com/AstrBotDevs/AstrBot/pull/6198
  • feat: add Kimi Coding Plan provider with Anthropic API compatibility by @daniel5u in https://github.com/AstrBotDevs/AstrBot/pull/6559
  • fix(openai-embedding): remove automatically appended /v1 suffix by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6669
  • fix(dashboard): add mobile adaptation for persona selection interface by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/5907
  • fix: Follow-up logic persists after /stop trigger. by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6656
  • fix: auto-restart telegram polling loop on failure by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/6648
  • feat: add xiaomi MiMo TTS & STT providers by @RichardLiuda in https://github.com/AstrBotDevs/AstrBot/pull/6643
  • chore: rename "OpenAI" provider to "OpenAI Compatible" by @kermanx in https://github.com/AstrBotDevs/AstrBot/pull/6707
  • fix: prevent accidental removal of MCP external tools due to name collisions with disabled built-in tools by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5925
  • feat: add a toggle to disable thinking mode in Ollama by @catDforD in https://github.com/AstrBotDevs/AstrBot/pull/5941
  • fix: preserve PATHEXT for stdio mcp servers on windows by @XXXxx7258 in https://github.com/AstrBotDevs/AstrBot/pull/5822
  • fix(core): interrupt subagent tool waits on stop by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/5850
  • fix(agent): reject follow-up messages after stop request by @ccsang in https://github.com/AstrBotDevs/AstrBot/pull/6704
  • fix: skills-like re-query missing extra_user_content_parts causes image_caption not to be injected by @he-yufeng in https://github.com/AstrBotDevs/AstrBot/pull/6710
  • perf(webchat): enhance message handling with proactive saving and streaming completion by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6698
  • fix(websearch): prevent disabled websearch tools from being added to the toolset by @BillionClaw in https://github.com/AstrBotDevs/AstrBot/pull/6584
  • fix(agent): pass tool_call_timeout to subagent handsoff, cron and background task execution, and increase default timeout from 60 to 120 by @Yaohua-Leo in https://github.com/AstrBotDevs/AstrBot/pull/6713
  • fix(skills): use actual sandbox path from cache instead of hardcoded workspace root by @ccsang in https://github.com/AstrBotDevs/AstrBot/pull/6331
  • fix: ensure Gemini array schemas always include items by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6051
  • fix(webchat): render standalone HTML replies as code blocks by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6074
  • fix(core): fall back on Windows skill file encodings by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6058
  • fix(lark): Defer card creation and renew on tool call break by @camera-2018 in https://github.com/AstrBotDevs/AstrBot/pull/6743
  • fix: convert Feishu opus files for Whisper API STT by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6078
  • fix: skip empty knowledge-base embedding batches by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6106
  • feat(skill_manager): normalize and rename legacy skill markdown files to SKILL.md by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6757
  • feat(extension): add category filtering for market plugins and enhance UI components by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6762

New Contributors

  • @YuanyuanMa03 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5495
  • @linzhengtian made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6490
  • @jnMetaCode made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6432
  • @shijianhuai made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6606
  • @machinad made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6611
  • @leonforcode made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6198
  • @daniel5u made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6559
  • @RichardLiuda made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6643
  • @kermanx made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6707
  • @BillionClaw made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6584
  • @Yaohua-Leo made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6713

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.20.1...v4.21.0

v4.20.1 Breaking risk
Notable features
  • MiniMax provider added
  • Send shortcut settings and localization for WebChat input
  • Local temporary directory binding in YAML config
Full changelog

What's Changed

新增

  • 补充 MiniMax Provider。(#6318
  • 新增 WebUI ChatUI 页面的会话批量删除功能。(#6160
  • 新增 WebUI ChatUI 配置发送快捷键。(#6272

优化

  • 优化 UMO 处理兼容性。(#5996
  • 重构 _extract_session_id,改进聊天类型分支处理。(#5775)
  • 优化聊天组件行为,使用 shiki 进行代码块渲染。(#6286
  • 优化 WebUI 主题配色与视觉体验。(#6263
  • 优化 OneBot @ 组件后处理,避免消息文本解析空格问题。(#6238

修复

  • 修复创建新 Provider 后未同步 providers_config 的问题。(#6388
  • 修复 API 返回 null choices 时的 TypeError。(#6313
  • 修复 QQ Webhook 重试回调重复触发的问题。(#6320
  • 修复流式模式下 deltaNone 导致工具调用时报错的问题。(#6365
  • 修复模型服务链接说明文字错误。(#6296
  • 修复 AI 在 tool-calling 模式设为 skills-like 时发送媒体失败的问题。(#6317
  • 修复 Telegram 适配器中 GIF 被错误转成静态图的问题。(#6329
  • 将 Provider 图标来源替换为 jsDelivr CDN 地址,修复部分环境下图标加载问题。(#6340
  • 修复 QQ 官方表情消息未解析为可读文本的问题。(#6355
  • 修复 WebChat 队列异常时流式结果页面崩溃的问题。(#6123
  • 修复子代理 handoff 工具在插件过滤时丢失的问题。(#6155
  • 修复 Cron 提示文案缺少空格及 utcnow() 的弃用警告问题。(#6192
  • 修复 WebUI 启动时 Sidebar hash 导航抖动/定位问题。(#6159
  • 修复启动重试过程中移除已移除 API Key 的 ValueError 报错。(#6193
  • 修复 README 启动命令引用更新为 astrbot run。(#6189
  • 修复 Plain.toDict()@ 提及场景下空白字符丢失的问题。(#6244
  • 修复 provider 依赖重复定义问题。(#6247
  • 修复 Telegram 中普通回复被误判为线程的处理问题。(#6174

其他

  • 调整 astrbot.service 及 CI 配置,升级 GitHub Actions 版本。

What's Changed (EN)

New Features

  • Added OpenRouter chat completion provider adapter with support for custom headers (#6436).
  • Added MiniMax provider (#6318).
  • Added batch conversation deletion in WebChat (#6160).
  • Added send shortcut settings and localization support for WebChat input (#6272).
  • Added local temporary directory binding in YAML config (#6191).

Improvements

  • Improved UMO processing compatibility (#5996).
  • Refactored _extract_session_id for chat type handling (#5775).
  • Improved chat component behavior and uses shiki for code-block rendering (#6286).
  • Improved WebUI theme color and visual behavior (#6263).
  • Improved OneBot @ component spacing handling (#6238).
  • Improved PR checklist validation and closure messaging.

Bug Fixes

  • Fixed missing providers_config sync after creating new providers (#6388).
  • Fixed TypeError when API returns null choices (#6313).
  • Fixed repeated QQ webhook retry callbacks (#6320).
  • Fixed tool-calling streaming null delta handling to prevent AttributeError (#6365).
  • Fixed model service link wording in docs/config (#6296).
  • Fixed AI media sending failure when tool-calling mode is set to skills-like (#6317).
  • Fixed GIF being sent as static image in Telegram adapter (#6329).
  • Replaced npm registry URLs with jsDelivr CDN for provider icons (#6340).
  • Fixed QQ official face message parsing to readable text (#6355).
  • Fixed WebChat stream-result crash on queue errors (#6123).
  • Preserved subagent handoff tools during plugin filtering (#6155).
  • Fixed cron prompt spacing and deprecated utcnow() usage (#6192).
  • Fixed unstable sidebar hash navigation on startup (#6159).
  • Fixed ValueError in retry loop when removing an already removed API key (#6193).
  • Updated startup command to astrbot run across READMEs (#6189).
  • Preserved whitespace in Plain.toDict() for @ mentions (#6244).
  • Removed duplicate dependencies entries (#6247).
  • Fixed Telegram normal reply being treated as topic thread (#6174).

Documentation

  • Updated rainyun backup/access documentation (#6427).
  • Updated package.md and platform docs, including Matrix and Wecom AI bot documentation.
  • Fixed Discord invite link in community docs.

Chores

  • Updated PR templates/checklist workflow, repository service config, and automated checks.
  • Refreshed repository automation and formatting maintenance, and removed obsolete changelog scripts.
v4.20.0 Breaking risk
Breaking changes
  • Removed deprecated `normalize_whitespace` parameter in the Telegram adapter.
Security fixes
  • [Security] Fix CRITICAL vulnerability: V-004
Notable features
  • Added Russian translation support
  • Added file, voice, and video message support for QQ Official Bot (including WebSocket mode)
Full changelog

What's Changed

新增

  • 新增俄语翻译(#6081)。
  • QQ 官方 Bot 新增文件、语音、视频消息支持(含 WebSocket 模式)(#6063)。

优化

  • 优化 QQ 官方 Bot 的流式消息投递可靠性与主动媒体发送能力(#6131)。
  • 优化边界场景下 booter 选择逻辑与消息发送工具(#6064)。

修复

  • 修复 Dashboard README 对话框锚点导航失效(#6083)。
  • 优先使用具名 weekday 的 cron 示例,避免歧义(#6091)。
  • 修复插件市场安装后状态未及时刷新的问题(#6124)。
  • 修复插件依赖安装逻辑:仅安装缺失依赖(#6088)。
  • 移除 Telegram 适配器中已废弃的 normalize_whitespace 参数(#6044)。
  • 修复 Windows 本地 skill 文件读取问题(#6028)。
  • 修复 Discord pre-ack emoji 配置重启后不持久化的问题(#6031)。
  • 统一 WebUI 搜索框清空行为(#6017)。
  • 优化插件依赖自动安装流程与 Dashboard 安装体验(#5954)。

What's Changed (EN)

New Features

  • Added Russian translation support (#6081).
  • Added file, voice, and video message support for QQ Official Bot (including WebSocket mode) (#6063).

Improvements

  • Improved streaming message delivery reliability and proactive media sending for QQ Official API (#6131).
  • Optimized booter selection logic in edge cases and message sending tooling (#6064).

Bug Fixes

  • Fixed broken README dialog anchor navigation in the Dashboard (#6083).
  • Preferred named weekday cron examples to reduce ambiguity (#6091).
  • Fixed plugin market install-state refresh after installation (#6124).
  • Fixed plugin dependency installation logic to install only missing packages (#6088).
  • Removed deprecated normalize_whitespace parameter in the Telegram adapter (#6044).
  • Fixed local skill file reading issues on Windows (#6028).
  • Fixed Discord pre-ack emoji config not being persisted across restarts (#6031).
  • Unified WebUI search input clear behavior (#6017).
  • Improved plugin dependency auto-install flow and Dashboard installation experience (#5954).

What's Changed

  • fix: 插件依赖自动安装逻辑与 Dashboard 安装体验优化 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5954
  • fix(webui): unify search input clear behavior by @Flartiny in https://github.com/AstrBotDevs/AstrBot/pull/6017
  • fix: Persist Discord pre-ack emoji config across restart by adding missing default key by @Jzjerry in https://github.com/AstrBotDevs/AstrBot/pull/6031
  • fix: improve Windows local skill file reading by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/6028
  • feat: added support for file, voice, and video messages for QQ Official Bot (including WebSocket mode). by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6063
  • perf: optimize booter selection for edge cases and message sending tool by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/6064
  • fix(docs): typo in docker.md & napcat.md by @shudorcl in https://github.com/AstrBotDevs/AstrBot/pull/6048
  • fix(telegram): remove deprecated normalize_whitespace param from telegramify_markdown.markdownify calls by @DOHEX in https://github.com/AstrBotDevs/AstrBot/pull/6044
  • fix: install only missing plugin dependencies by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/6088
  • chore: update dependency and workflow versions by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/6119
  • fix(extension): refresh plugin market install state after install by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/6124
  • docs: 添加 Astrbook 和玖帕喵社区链接 by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/6135
  • [Security] Fix CRITICAL vulnerability: V-004 by @orbisai0security in https://github.com/AstrBotDevs/AstrBot/pull/6093
  • fix: prefer named weekday cron examples by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6091
  • fix(dashboard): restore README dialog anchor navigation by @stablegenius49 in https://github.com/AstrBotDevs/AstrBot/pull/6083
  • feat: add Russian translation by @seoeaa in https://github.com/AstrBotDevs/AstrBot/pull/6081
  • perf(QQ Official API): improve streaming message delivery reliability and proactive media sending by @2ndelement in https://github.com/AstrBotDevs/AstrBot/pull/6131

New Contributors

  • @Jzjerry made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6031
  • @shudorcl made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6048
  • @DOHEX made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6044
  • @orbisai0security made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6093
  • @stablegenius49 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6091
  • @seoeaa made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6081
  • @2ndelement made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/6131

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.19.5...v4.20.0

v4.19.5 Bug fix
Notable features
  • Lark (Feishu) adapter supports CardKit streaming output
  • WebUI plugin list adds filtering and sorting
Full changelog

What's Changed

新增

  • Lark 适配器支持 CardKit 流式输出(飞书)(#5777)。
  • WebUI 已安装插件列表新增筛选与排序功能 (#5923)。

优化

  • 启动时后台加载 MCP Server,不阻塞加载流程 (#5993)。

修复

  • 部分情况下 MCP 页报错 500 导致查看不了 MCP 服务器 (#5993)。
  • 修复 TTS Provider 测试:增加文件大小校验,并补充 MiniMax 空音频检测 (#5999)。
  • 修复前端切换到 Chat 后又回到 Welcome 时,页面切换配置未正确持久化的问题 (#5792)。
  • 修复 Azure TTS 不支持 84 位订阅密钥的问题 (#5813)。

文档

  • 文档仓库迁移:将 AstrBotDevs/AstrBot-docs 内容迁移至 AstrBotDevs/AstrBot (#5960)。

What's Changed (EN)

New Features

  • Added CardKit streaming output support for the Lark/Feishu adapter (#5777).
  • Added filtering and sorting for installed plugins in the WebUI (#5923).

Impprovement

  • MCP Server now loads in the background during startup without blocking the loading process (#5993).

Bug Fixes

  • Added file size validation in TTS provider tests and MiniMax empty-audio detection (#5999).
  • Fixed frontend state persistence when switching from Chat back to Welcome (#5792).
  • Fixed Azure TTS support for 84-character subscription keys (#5813).
  • Reverted the MCP stdio missing-command error wording change after the previous fix (#5992).

Documentation

  • Migrated documentation content from AstrBotDevs/AstrBot-docs into AstrBotDevs/AstrBot (#5960).
v4.19.4 New feature
Notable features
  • Wecom AI Bot supports long-connection (WebSocket) mode
Full changelog

What's Changed

新增

  • 企业微信智能机器人支持长连接模式。#5930

New

  • Wecom AI Bot supports long-connection mode(Websockets). #5930
v4.19.3 New feature
Notable features
  • Added batch upload support for multiple skill ZIP files
Full changelog

What's Changed

新增

  • 新增 Skills 批量上传能力 (#5804)。

修复

  • 修复 MCP Server 配置异常时可能导致崩溃的问题 (#5666, #5673)。
  • 修复钉钉适配器文本消息被忽略、无法主动发送文件的问题 (#5921)。
  • 修复钉钉适配器无法接收图片与文件的问题 (#5920)。
  • fix(provider): handle MiniMax ThinkingBlock when max_tokens reached (#5913)。
  • 修复 OpenRouter api_base 配置错误的问题 (#5911)。
  • 修复插件市场中按展示名搜索已安装插件不生效的问题 (#5806, #5811)。
  • 修复仅图片响应未应用 reply_with_quotereply_with_mention 的问题 (#5219)。
  • 修复 RegexFilter 使用 re.match 导致匹配范围不正确的问题 (#5368)。
  • 修复桌面运行环境检测依赖 frozen Python 的问题 (#5859)。
  • 修复通过“创建新配置”创建平台机器人后找不到 pipeline scheduler 的问题 (#5776)。

What's Changed (EN)

New Features

  • Added batch upload support for multiple skill ZIP files (#5804).

Bug Fixes

  • Fixed potential crash on malformed MCP server config (#5666, #5673).
  • Fixed DingTalk adapter issue where text messages were ignored and files could not be sent proactively (#5921).
  • Fixed DingTalk adapter issue where image and file messages could not be received (#5920).
  • Fixed incorrect OpenRouter api_base configuration (#5911).
  • Fixed searching installed plugins by display name in extensions (#5806, #5811).
  • Fixed image-only responses not applying reply_with_quote and reply_with_mention (#5219).
  • Fixed RegexFilter using re.match instead of re.search for expected matching behavior (#5368).
  • Fixed desktop runtime detection requiring frozen Python (#5859).
  • Fixed missing pipeline scheduler after creating a platform bot via "create new config" (#5776).
  • fix(provider): handle MiniMax ThinkingBlock when max_tokens reached (#5913)

What's Changed

  • test(skill_manager): update sandbox cache path expectations by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/5706
  • fix: align aiocqhttp poke segment with onebot v11 by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5773
  • fix: pipeline scheduler not found after creating platform bot via using 'create new config' by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5776
  • fix: detect desktop runtime without frozen python by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5859
  • feat(skills): add batch upload functionality for multiple skill ZIP files by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5804
  • fix: use re.search instead of re.match in RegexFilter by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/5368
  • fix: apply reply_with_quote and reply_with_mention to image-only response by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/5219
  • fix(extension): support searching installed plugins by display name (#5806) by @ChuwuYo in https://github.com/AstrBotDevs/AstrBot/pull/5811
  • correct openrouter api_base by @windycold in https://github.com/AstrBotDevs/AstrBot/pull/5911
  • fix: cannot receive image, file in dingtalk by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5920
  • fix(dingtalk): text is ignored; cannot send file actively by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5921
  • fix: prevent crash on malformed MCP server config (#5666) by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/5673
  • fix: 修复 asyncio 事件循环相关问题 by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5774
  • fix(provider): handle MiniMax ThinkingBlock when max_tokens reached by @JasonOA888 in https://github.com/AstrBotDevs/AstrBot/pull/5913

New Contributors

  • @ChuwuYo made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5811
  • @windycold made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5911
  • @JasonOA888 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5913

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.19.2...v4.19.3

v4.19.2 Bug fix
Notable features
  • Integrated KOOK platform adapter
  • WebSocket transport mode selection for chat interface
  • DeerFlow Agent Runner integration with optimized streaming
Full changelog

What's Changed

新增

  • 集成 KOOK 平台适配器 (#5658)。
  • 新增 Discord pre-react Emoji 支持 (#5609)。
  • 新增 Telegram 支持 sendMessageDraft 流式实时输出 API (#5726)
  • 支持在 Agent 运行时进行消息跟进能力,跟进的消息实时注入给 Agent (#5484)。
  • 集成 DeerFlow Agent Runner 并优化流式处理 (#5581)。
  • 新增 shell, ipython tool 中包含操作系统信息,提高 windows 下 tool call 成功率 (#5677)。
  • Sandbox 支持 Shipyard-neo - 支持 Skills 自迭代 (#5028)。
  • 新增 ChatUI WebSocket 传输模式选择,OpenAPI Chat API 支持 WebSocket 连接 (#5410)。
  • 支持 Persona 自定义报错回复消息与兜底逻辑 (#5547)。
  • 将 WebUI 静态文件打包至 wheel,并将 astrbot CLI 日志替换为英文 (#5665)。
  • 增强聊天界面与移动端响应式体验 (#5635)。
  • 优化插件失败处理逻辑与扩展列表交互体验 (#5535)。

修复

  • 修复 MCP 初始化超时参数关键字不匹配的问题 (#5743)。
  • 修复 MCP 工具竞态条件导致"completion 无法解析"错误 (#5534)。
  • 修复 LINE 适配器中非 HTTPS URL 直接透传的问题 (#5697)。
  • 修复 WebUI 侧边栏自定义状态不稳定的问题 (#5670)。
  • 修复 KOOK 适配器收到消息和心跳响应时输出多余调试日志的问题。
  • 修复 DEMO_MODE 环境变量未正确解析为布尔值的问题 (#5676)。
  • 修复子 Agent 无法正确接收本地图片(参考图)路径的问题 (#5579)。
  • 修复 /model 命令切换至不同 Provider 模型时产生误导性行为的问题 (#5578)。
  • 修复对话记录中 UTC 时区偏移未处理导致时间戳异常的问题 (#5580)。
  • 修复备份导入时重复平台统计数据导致异常的问题 (#5594)。
  • 修复 max_agent_step 配置未应用到子 Agent 的问题 (#5608)。
  • 修复插件列表排序和搜索过滤逻辑 (#5559)。
  • 修复 uv sync 时未要求 Node.js 环境的问题。

What's Changed (EN)

New Features

  • Integrated KOOK platform adapter (#5658).
  • Integrated DeerFlow Agent Runner with optimized streaming support (#5581).
  • feat(telegram): supports sendMessageDraft API (#5726)
  • Integrated Neo skill self-iteration capability with full lifecycle management (candidate, release, deletion) via Shipyard Neo sandbox (#5028).
  • Added Discord pre-ack emoji support (#5609).
  • Added WebSocket transport mode selection for the chat interface (#5410).
  • Added OS information to tool descriptions with unit test coverage (#5677).
  • Added follow-up message handling in ToolLoopAgentRunner (#5484).
  • Added support for persona custom error reply messages with fallback logic (#5547).
  • Bundled WebUI static files into the wheel package and replaced astrbot CLI logs with English (#5665).
  • Optimized async IO performance and added benchmark coverage (#5737).
  • Refactored API key creation and added unit tests for open API routes.
  • Improved error messaging for AI execution failures in agent runners.
  • Enhanced chat interface and mobile responsiveness (#5635).
  • Improved plugin failure handling and extension list UX (#5535).

Bug Fixes

  • Fixed MCP initialization timeout keyword mismatch (#5743).
  • Fixed MCP tools race condition causing completion 无法解析 error (#5534).
  • Fixed LINE adapter allowing non-HTTPS URLs to pass through directly (#5697).
  • Fixed unstable sidebar customization state in WebUI (#5670).
  • Fixed excessive debug logging in KOOK adapter for received messages and heartbeat responses.
  • Fixed DEMO_MODE environment variable not being parsed correctly as a boolean (#5676).
  • Fixed sub-agent failing to correctly receive local image (reference image) paths (#5579).
  • Fixed misleading behavior of the /model command when switching to a model from a different provider (#5578).
  • Fixed unhandled UTC timezone offset causing incorrect timestamps in conversation records (#5580).
  • Fixed backup import failure due to duplicate platform stats entries (#5594).
  • Fixed max_agent_step config not being applied to sub-agents (#5608).
  • Fixed plugin list sorting and search filtering logic (#5559).
  • Fixed missing Node.js environment requirement during uv sync.

What's Changed

  • Feat/ipv6 by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/4898
  • feat: implement follow-up message handling in ToolLoopAgentRunner by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5484
  • feat: implement websockets transport mode selection for chat by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5410
  • 可选后端,实现前后端分离 by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/4899
  • Revert "可选后端,实现前后端分离" by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/5536
  • feat: improve plugin failure handling and extension list UX by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5535
  • feat: support persona custom error reply message with fallback by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5547
  • fix: add plugin sorting by name and improve search filtering logic by @Flartiny in https://github.com/AstrBotDevs/AstrBot/pull/5559
  • test: add tests for star base class and config management by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5356
  • test: add comprehensive tests for core lifecycle and agent execution by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5357
  • feat: 集成 DeerFlow Agent Runner 并优化流式处理 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5581
  • fix: resolve unhandled UTC timezone offset for timestamps in conversation records by @WintryWind7 in https://github.com/AstrBotDevs/AstrBot/pull/5580
  • fix:修正子agent无法正确接收本地图片(参考图)路径的问题 by @a61995987 in https://github.com/AstrBotDevs/AstrBot/pull/5579
  • fix: resolve /model command misleading behavior when switching to model from different provider by @pandyzhou in https://github.com/AstrBotDevs/AstrBot/pull/5578
  • fix: harden backup import for duplicate platform stats by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/5594
  • feat: 接入 Shipyard Neo 自迭代 Skill 闭环与管理能力 by @w31r4 in https://github.com/AstrBotDevs/AstrBot/pull/5028
  • feat: enhance chat interface and mobile responsiveness by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5635
  • fix: apply max_agent_step config to subagents by @Copilot in https://github.com/AstrBotDevs/AstrBot/pull/5608
  • feat: add Discord pre-ack emoji support by @Copilot in https://github.com/AstrBotDevs/AstrBot/pull/5609
  • Fix/fix: resolve MCP tools race condition causing 'completion 无法解析' error by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/5534
  • refactor: bundled webui static files into wheel and replace astrbot cli log with English by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5665
  • feat: integrates KOOK platform adapter by @shuiping233 in https://github.com/AstrBotDevs/AstrBot/pull/5658
  • fix(dashboard): 自定义侧边栏中错误展开“更多功能”页面问题 (#5405) by @catDforD in https://github.com/AstrBotDevs/AstrBot/pull/5670
  • fix: only allow HTTPS URLs to pass through directly in LINE adapter by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/5697
  • chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/5694
  • fix(core): correctly parse DEMO_MODE as boolean from env var. by @L-1ngg in https://github.com/AstrBotDevs/AstrBot/pull/5676
  • feat: add OS information to tool descriptions and implement unit tests by @miaoxutao123 in https://github.com/AstrBotDevs/AstrBot/pull/5677
  • unittest: 添加之前遗漏的kook_card_data.json by @shuiping233 in https://github.com/AstrBotDevs/AstrBot/pull/5703

New Contributors

  • @WintryWind7 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5580
  • @pandyzhou made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5578
  • @w31r4 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5028
  • @catDforD made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5670
  • @L-1ngg made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5676
  • @miaoxutao123 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5677

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.18.3...v4.19.2

v4.18.3 New feature
Notable features
  • Added `useExtensionPage` composable for unified plugin extension page state management
  • Added a generic desktop app updater bridge to support in‑app update workflows
Full changelog

What's Changed

新增

  • 新增桌面端通用更新桥接能力,便于接入客户端内更新流程 (#5424)。

修复

  • 修复新增平台对话框中 Line 适配器未显示的问题。
  • 修复 Telegram 无法发送 Video 的问题 (#5430)。
  • 修复创建 embedding provider 时无法自动识别向量维度的问题 (#5442)。
  • 修复 QQ 官方平台发送媒体消息时 markdown 字段未清理的问题 (#5445)。
  • 修复上下文管理策略 -> 上下文截断时 tool call / response 配对丢失的问题 (#5417)。
  • 修复会话更新时 persona_id 被覆盖的问题,并增强 persona 解析逻辑。
  • 修复 WebUI 中 GitHub 代理地址显示异常的问题 (#5438)。
  • 修复设置页新建开发者 API Key 后复制失败的问题 (#5439)。
  • 修复 Telegram 语音消息格式与 OpenAI STT 兼容性问题(使用 OGG) (#5389)。

优化

  • 优化知识库检索流程,改为批量查询元数据,修复 N+1 查询性能问题 (#5463)。
  • 优化 Cron 未来任务执行的会话隔离能力,提升并发稳定性。
  • 优化 WebUI 插件页的交互。

What's Changed (EN)

New Features

  • Added useExtensionPage composable for unified plugin extension page state management.
  • Added a generic desktop app updater bridge to support in-app update workflows (#5424).

Bug Fixes

  • Fixed the Line adapter not appearing in the "Add Platform" dialog.
  • Fixed Telegram video sending issues (#5430).
  • Fixed Pyright static type checking errors (#5437).
  • Fixed embedding dimension auto-detection when creating embedding providers (#5442).
  • Fixed stale markdown fields when sending media messages via QQ Official Platform (#5445).
  • Fixed tool call/response pairing loss during context truncation (#5417).
  • Fixed persona_id being overwritten during conversation updates and improved persona resolution logic.
  • Fixed incorrect GitHub proxy display in WebUI (#5438).
  • Fixed API key copy failure after creating a new key in settings (#5439).
  • Fixed Telegram voice format compatibility with OpenAI STT by using OGG (#5389).

Improvements

  • Improved knowledge base retrieval by batching metadata queries to eliminate the N+1 query pattern (#5463).
  • Improved session isolation for future cron tasks to increase stability under concurrency.
  • Improved WebUI plugin page interactions.

What's Changed

  • fix: Telegram voice message format (OGG instead of WAV) causing issues with OpenAI STT API by @realquantumcookie in https://github.com/AstrBotDevs/AstrBot/pull/5389
  • feat(dashboard): add generic desktop app updater bridge by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5424
  • fix(dashboard): 修复设置页新建 API Key 后复制失败问题 by @exynos967 in https://github.com/AstrBotDevs/AstrBot/pull/5439
  • Fix: GitHub proxy not displaying correctly in WebUI by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/5438
  • fix: ensure tool call/response pairing in context truncation by @Luna-channel in https://github.com/AstrBotDevs/AstrBot/pull/5417
  • fix(persona): preserve conversation persona_id and unify session/conversation resolution by @Raven95676 in https://github.com/AstrBotDevs/AstrBot/pull/5440
  • fix: clear markdown field when sending media messages via QQ Official Platform by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/5445
  • fix: cannot automatically get embedding dim when create embedding provider by @exynos967 in https://github.com/AstrBotDevs/AstrBot/pull/5442
  • fix: pyright check by @Dt8333 in https://github.com/AstrBotDevs/AstrBot/pull/5437
  • fix(telegram): cannot send video message (#2536) by @CCCCCCTV in https://github.com/AstrBotDevs/AstrBot/pull/5430
  • perf: batch metadata query in KB retrieval to fix N+1 problem by @CAICAIIs in https://github.com/AstrBotDevs/AstrBot/pull/5463
  • fix:fix the issue where incomplete cleanup of residual plugins occurs… by @Waterwzy in https://github.com/AstrBotDevs/AstrBot/pull/5462
  • chore: fix UnsupportedDunder report in pyright by @Dt8333 in https://github.com/AstrBotDevs/AstrBot/pull/5474
  • [bug]查看介入教程line前往错误界面的问题 by @Sjshi763 in https://github.com/AstrBotDevs/AstrBot/pull/5479

New Contributors

  • @realquantumcookie made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5389
  • @CCCCCCTV made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5430

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.18.2...v4.18.3

v4.18.2 New feature
Notable features
  • Added Agent session stop functionality with improved /stop request handling.
  • Configurable base URL for Dashboard release redirects.
Full changelog

What's Changed

新增

  • 新增 Agent 会话停止能力,并优化 stop 请求处理流程,支持 /stop 指令终止 Agent 运行并尽量不丢失已运行输出的结果。 (#5380)。
  • 新增 SubAgent 交接场景下的 computer-use 工具支持 (#5399)。
  • 新增 Agent 执行过程中展示工具调用结果的能力,提升执行过程可观测性 (#5388)。
  • 新增插件加载/卸载 Hook,扩展插件生命周期能力 (#5331)。
  • 新增插件加载失败后的热重载能力,提升插件开发与恢复效率 (#5334)。
  • 新增 SubAgent 图片 URL/本地路径输入支持 (#5348)。
  • 新增 Dashboard 发布跳转基础 URL 可配置项 (#5330)。

修复

  • 修复 Tavily 请求的硬编码 6 秒超时。
  • 修复 OneBot v11 适配器关闭之后仍然在连接的问题(#5412)。
  • 修复上下文会话中平台缺失时的日志处理,补充 warning 并改进排查信息。
  • 修复 embedding 维度未透传到 provider API 的问题 (#5411)。
  • 修复 File 组件处理逻辑并增强 OneBot 驱动层路径兼容性 (#5391)。
  • 修复 sandbox 文件传输工具缺少管理员权限校验的问题 (#5402)。
  • 修复 pipeline 与 from ... import * 引发的循环依赖问题 (#5353)。
  • 修复配置文件存在 UTF-8 BOM 时的解析问题 (#5376)。
  • 修复 ChatUI 复制回滚路径缺失与错误提示不清晰的问题 (#5352)。
  • 修复保留插件目录处理逻辑,避免插件目录行为异常 (#5369)。
  • 修复 ChatUI 文件消息段无法持久化的问题 (#5386)。
  • 修复 .dockerignore 误排除 changelogs 目录的问题。
  • 修复 aiohttp 版本过新导致 qq-botpy 报错的问题 (#5316)。

优化

  • 完成 SubAgent 编排页面国际化,补齐多语言支持 (#5400)。
  • 增补消息事件处理相关测试,并完善测试框架的 fixtures/mocks 覆盖 (#5355, #5354)。

What's Changed (EN)

New Features

  • Added computer-use tools support in sub-agent handoff scenarios (#5399).
  • Added support for displaying tool call results during agent execution for better observability (#5388).
  • Added plugin load/unload hooks to extend plugin lifecycle capabilities (#5331).
  • Added hot reload support when plugin loading fails, improving recovery during plugin development (#5334).
  • Added image URL/local path input support for sub-agents (#5348).
  • Added stop control for active agent sessions and improved stop request handling (#5380).
  • Added configurable base URL for dashboard release redirects (#5330).

Fixes

  • Fixed logging behavior when platform information is missing in context sessions, with clearer warning and diagnostics.
  • Fixed missing embedding dimensions being passed to provider APIs (#5411).
  • Fixed shutdown stability issues in the aiocqhttp adapter (#5412).
  • Fixed File component handling and improved path compatibility in the OneBot driver layer (#5391).
  • Fixed missing admin guard for sandbox file transfer tools (#5402).
  • Fixed circular import issues related to pipeline and from ... import * usage (#5353).
  • Fixed config parsing issues when files contain UTF-8 BOM (#5376).
  • Fixed missing copy rollback path and unclear error messaging in ChatUI (#5352).
  • Fixed reserved plugin directory handling to avoid abnormal plugin path behavior (#5369).
  • Fixed ChatUI file segment persistence issues (#5386).
  • Fixed accidental exclusion of the changelogs directory in .dockerignore.
  • Fixed compatibility issues caused by a hard-coded 6-second timeout in Tavily requests.
  • Fixed qq-botpy runtime errors caused by overly new aiohttp versions (#5316).

Improvements

  • Completed internationalization for the sub-agent orchestration page (#5400).
  • Added broader message-event test coverage and improved fixtures/mocks in the test framework (#5355, #5354).
  • Updated README content and applied repository-wide formatting cleanup (ruff format) (#5375).

What's Changed

  • fix: 修复 aiohttp 版本过新导致 qq-botpy 报错的问题 by @moemoli in https://github.com/AstrBotDevs/AstrBot/pull/5316
  • feat(dashboard): make release redirect base URL configurable by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5330
  • feat: add stop functionality for active agent sessions and improve handling of stop requests by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5380
  • fix: chatui cannot persist file segment by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5386
  • fix(plugin): update plugin directory handling for reserved plugins by @Raven95676 in https://github.com/AstrBotDevs/AstrBot/pull/5369
  • chore(README): updated with README.md by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/5375
  • feat: add image urls / paths support for subagents by @a61995987 in https://github.com/AstrBotDevs/AstrBot/pull/5348
  • feat: add hot reload when failed to load plugins by @Waterwzy in https://github.com/AstrBotDevs/AstrBot/pull/5334
  • fix(chatui): add copy rollback path and error message. by @hanbings in https://github.com/AstrBotDevs/AstrBot/pull/5352
  • fix: 处理配置文件中的 UTF-8 BOM 编码问题 by @tangsenfei in https://github.com/AstrBotDevs/AstrBot/pull/5376
  • feat: add plugin load&unload hook by @PyuraMazo in https://github.com/AstrBotDevs/AstrBot/pull/5331
  • test: enhance test framework with comprehensive fixtures and mocks by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5354
  • test: add comprehensive tests for message event handling by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5355
  • feat: add support for showing tool call results in agent execution by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5388
  • fix: resolve pipeline and star import cycles by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5353
  • feat: enable computer-use tools for subagent handoff by @Axi404 in https://github.com/AstrBotDevs/AstrBot/pull/5399
  • fix: enforce admin guard for sandbox file transfer tools by @Axi404 in https://github.com/AstrBotDevs/AstrBot/pull/5402
  • fix(core): 优化 File 组件处理逻辑并增强 OneBot 驱动层路径兼容性 by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/5391
  • i18n(SubAgentPage): complete internationalization for subagent orchestration page by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/5400
  • fix(aiocqhttp): enhance shutdown process for aiocqhttp adapter by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5412
  • fix: 让 Embedding 维度配置真正生效 by @piexian in https://github.com/AstrBotDevs/AstrBot/pull/5411

New Contributors

  • @a61995987 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5348
  • @hanbings made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5352
  • @tangsenfei made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5376
  • @PyuraMazo made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5331
  • @Axi404 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5399

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.18.1...v4.18.2

v4.18.1 New feature
Notable features
  • SubAgent background execution mode via `background: true`
  • Config schema password rendering support for `string` and `text` fields
Full changelog

What's Changed

修复

  • fix: 修复插件市场出现插件显示为空白的 bug;纠正已安装插件卡片的排版,统一大小 (#5309)

新增

  • SubAgent 支持后台执行模式配置:当 background: true 时,子代理将在后台运行,主对话无需等待子代理完成即可继续进行。当子代理完成后,会收到通知。适用于长时间运行或用户不需要立即结果的任务。(#5081)
  • 配置 Schema 新增密码渲染支持:stringtext 类型可通过 password: true(或 render_type: "password")在 WebUI 中按密码输入方式显示。

What's Changed (EN)

Fixes

  • fix: Fixed a bug where the plugin marketplace would show blank cards for plugins; corrected the layout of installed plugin cards for consistent sizing (#5309)

New Features

  • Added background execution mode support for sub-agents: when background: true is set, the sub-agent will run in the background, allowing the main conversation to continue without waiting for the sub-agent to finish. You will be notified when the sub-agent completes. This is suitable for long-running tasks or when the user does not need immediate results. (#5081)
  • Added password rendering support in config schema: string and text fields can be rendered as password inputs in WebUI with password: true (or render_type: "password").

What's Changed

  • fix(SubAgentPage): 当中间的介绍文本非常长时,Flex 布局会自动挤压右侧的控制按钮区域 by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/5306
  • fix: 修复新版本插件市场出现插件显示为空白的 bug;纠正已安装插件卡片的排版,统一大小 by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/5309
  • feat: supports spawn subagent as a background task that not block the main agent workflow by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/5081

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.18.0...v4.18.1

v4.18.0 New feature
Notable features
  • Telegram command alias registration synchronized with menu
  • Anthropic adaptive thinking parameters (type/effort) for reasoning strategy control
Full changelog

What's Changed

新增

  • 新增 AstrBot HTTP API,支持基于 API Key 的对话、会话查询、配置查询、文件上传与 IM 消息发送能力。详见AstrBot HTTP API (Beta) (#5280)。
  • 新增 Telegram 指令别名注册能力,别名可同步展示在 Telegram 指令菜单中 (#5234)。
  • 新增 Anthropic 自适应思考参数配置(type/effort),增强思考策略可控性 (#5209)。

修复

  • 修复 QQ 官方频道消息发送异常问题,提升消息下发稳定性 (#5287)。
  • 修复 ChatUI 使用非 default 配置文件对话时仍然使用 default 配置的问题 (#5292)。

优化

  • 优化插件市场卡片的平台支持展示,改进移动端可用性与交互体验 (#5271)。
  • 重构 Dashboard 桌面运行时桥接字段,从 isElectron 统一迁移至 isDesktop,提升跨端语义一致性 (#5269)。

What's Changed (EN)

New Features

  • Added AstrBot HTTP API with API Key support for chat, session listing, config listing, file upload, and IM message sending. See AstrBot HTTP API (Beta) (#5280).
  • Added Telegram command alias registration so aliases can also appear in the Telegram command menu (#5234).
  • Added Anthropic adaptive thinking parameters (type/effort) for more flexible reasoning strategy control (#5209).

Fixes

  • Fixed QQ official guild message sending errors to improve delivery stability (#5287).
  • Fixed chat config binding failures caused by missing session IDs when creating new chats, and improved localStorage fault tolerance (#5292).

Improvements

  • Improved plugin marketplace card display for platform compatibility, with better mobile accessibility and interaction (#5271).
  • Refactored desktop runtime bridge fields in the dashboard from isElectron to isDesktop for clearer cross-platform semantics (#5269).

What's Changed

  • refactor(dashboard): replace legacy isElectron bridge fields with isDesktop by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5269
  • fix: update contributor avatar image URL to include max size and columns by @VanillaNahida in https://github.com/AstrBotDevs/AstrBot/pull/5268
  • feat: astrbot http api by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5280
  • feat(dashboard): improve plugin platform support display and mobile accessibility by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/5271
  • fix: qq official guild message send error by @moemoli in https://github.com/AstrBotDevs/AstrBot/pull/5287
  • 更新readme文档,补充桌面app说明,并向前移动位置 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5297
  • feat: add Anthropic Claude Code OAuth provider and adaptive thinking support by @Minidoracat in https://github.com/AstrBotDevs/AstrBot/pull/5209
  • Feat/telegram command alias register #5233 by @evpeople in https://github.com/AstrBotDevs/AstrBot/pull/5234
  • Fix:修复新建对话时因缺少会话ID导致配置绑定失败的问题 by @Li-shi-ling in https://github.com/AstrBotDevs/AstrBot/pull/5292

New Contributors

  • @moemoli made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5287
  • @Minidoracat made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5209

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.17.6...v4.18.0

v4.17.6 Breaking risk
Breaking changes
  • Removed Electron desktop pipeline; migration to Tauri repository required.
Notable features
  • Admin permission checks for Python/Shell execution tools
  • `astrbot-version` plugin with platform requirement validation
  • Password confirmation step when changing account passwords
Full changelog

What's Changed

新增

  • 新增 Python / Shell 执行工具的管理员权限校验,提升高风险操作安全性 (#5214)。
  • 新增插件 astrbot-version 与平台版本要求校验支持,增强插件兼容性管理能力 (#5235)。
  • 账号密码修改流程新增“确认新密码”校验,减少误输导致的配置问题 (#5247)。

修复

  • 修复 MCP 工具完整暴露给主 Agent,无视人格 tool 选择的问题 (#5252)。
  • 改进微信公众号被动回复处理机制,引入缓冲与分片回复并优化超时行为,提升回复稳定性 (#5224)。
  • 修复仅发送 JSON 消息段时可能触发空消息回复报错的问题 (#5208)。
  • 修复会话重置/新建/删除时未终止活动事件导致的陈旧响应问题 (#5225)。
  • 修复 provider 在 dict 格式 content 场景下可能残留 JSON 内容的问题 (#5250)。
  • 修复工具 schema 属性中的 additionalProperties 配置问题 (#5253)。
  • 优化账号编辑校验错误提示,简化并统一用户名/密码为空场景返回信息。

优化

  • 优化 PersonaForm 布局与工具选择展示,并完善工具停用状态的本地化显示。

其他

  • 移除 Electron Desktop 流水线并迁移到 Tauri 仓库 (#5226)。
  • 更新相关仓库链接与功能请求模板文案,统一中英文表达。
  • 移除过时文档文件 heihe.md

What's Changed (EN)

New Features

  • Added admin permission checks for Python/Shell execution tools to improve safety for high-risk operations (#5214).
  • Added support for astrbot-version and platform requirement checks for plugins to improve compatibility management (#5235).
  • Added password confirmation when changing account passwords to reduce misconfiguration caused by typos (#5247).

Fixes

  • Improved passive reply handling for WeChat Official Accounts with buffering/chunking and timeout behavior optimizations for better stability (#5224).
  • Fixed an empty-message reply error when only JSON message segments were sent (#5208).
  • Fixed stale responses by terminating active events on reset/new/delete operations (#5225).
  • Fixed residual JSON content issues in provider handling when content was in dict format (#5250).
  • Fixed incomplete exposure of MCP tools to the main agent (#5252).
  • Fixed additionalProperties handling in tool schema properties (#5253).
  • Simplified and unified account-edit validation error responses for empty username/password scenarios.

Improvements

  • Enhanced PersonaForm layout and tool selection display, and improved localized labels for inactive tools.

Others

  • Removed the Electron desktop pipeline and switched to the Tauri repository (#5226).
  • Updated related repository links and refined feature request template wording in both Chinese and English.
  • Removed outdated documentation file heihe.md.

What's Changed

  • feat: add admin permission checks config item for computer use feature by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5214
  • fix: 改进微信公众号被动回复处理机制,引入缓冲与分片回复,并优化超时行为 by @Trance-0 in https://github.com/AstrBotDevs/AstrBot/pull/5224
  • fix: 修复仅发送 JSON 消息段时的空消息回复报错 by @NanoRocky in https://github.com/AstrBotDevs/AstrBot/pull/5208
  • fix(core): terminate active events on reset/new/del to prevent stale responses by @YukiRa1n in https://github.com/AstrBotDevs/AstrBot/pull/5225
  • chore: remove Electron desktop pipeline and switch to tauri repo by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5226
  • Feat/config leave confirm by @SnowNightt in https://github.com/AstrBotDevs/AstrBot/pull/5249
  • feat: add support for plugin astrbot-version and platform requirement checks by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5235
  • feat: add password confirmation when changing password by @whatevertogo in https://github.com/AstrBotDevs/AstrBot/pull/5247
  • fix(provider): 修复 dict 格式 content 导致的 JSON 残留问题 by @NayukiChiba in https://github.com/AstrBotDevs/AstrBot/pull/5250
  • fix: all mcp tools exposed to main agent by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5252
  • fix: remove additionalProperties from tool schema properties by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5253

New Contributors

  • @Trance-0 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5224
  • @whatevertogo made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5247

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.17.5...v4.17.6

v4.17.5 New feature
Notable features
  • Added plugin error hook for custom error routing to unify exception control.
  • Support Markdown message sending in qqofficial platform.
Full changelog

What's Changed

新增

  • 支持 QQ 官方机器人平台发送 Markdown 消息,提升富文本消息呈现能力 (#5173)。
  • 新增在插件市场中集成随机插件推荐能力 (#5190)。
  • 新增插件错误钩子(plugin error hook),支持自定义错误路由处理,便于插件统一异常控制 (#5192)。

修复

  • 修复全部 LLM Provider 失败时重复显示错误信息的问题,减少冗余报错干扰 (#5183)。
  • 修复从“选择配置文件”进入配置管理后直接关闭弹窗时,显示配置文件不正确的问题 (#5174)。

优化

  • 重构 telegram Voice_messages_forbidden 回退逻辑,提取为共享辅助方法并引入类型化 BadRequest 异常,提升异常处理一致性 (#5204)。

其他

  • 更新 README 相关文档内容。
  • 执行 ruff format 代码格式整理。

What's Changed (EN)

New Features

  • Added a plugin error hook for custom error routing, enabling unified exception handling in plugins (#5192).
  • Added Markdown message sending support for qqofficial to improve rich-text delivery (#5173).
  • Added the MarketPluginCard component and integrated random plugin recommendations in the extension marketplace (#5190).
  • Added support for the aihubmix provider.
  • Added LINE support notes to multilingual README files.

Fixes

  • Fixed duplicate error messages when all LLM providers fail, reducing noisy error output (#5183).
  • Fixed incorrect displayed profile after opening configuration management from profile selection and closing the dialog directly (#5174).

Improvements

  • Refactored Voice_messages_forbidden fallback logic into a shared helper and introduced a typed BadRequest exception for more consistent error handling (#5204).

Others

  • Updated README documentation.
  • Applied ruff format code formatting.

What's Changed

  • feat: supports send markdown message in qqofficial by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5173
  • fix: prevent duplicate error message when all LLM providers fail by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/5183
  • fix: 修复选择配置文件进入配置文件管理弹窗直接关闭弹窗显示的配置文件不正确 by @SnowNightt in https://github.com/AstrBotDevs/AstrBot/pull/5174
  • feat: add MarketPluginCard component and integrate random plugin feature in ExtensionPage by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5190
  • feat(core): add plugin error hook for custom error routing by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/5192
  • fix: handle Telegram Voice_messages_forbidden with typed exception and text caption by @911218sky in https://github.com/AstrBotDevs/AstrBot/pull/5204

New Contributors

  • @911218sky made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5204

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.17.4...v4.17.5

v4.17.4 New feature
Notable features
  • Added NVIDIA Provider template for quick integration with NVIDIA model services.
  • Enabled WebUI search functionality to locate configuration items.
Full changelog

What's Changed

新增

  • 新增 NVIDIA Provider 模板,便于快速接入 NVIDIA 模型服务 (#5157)。
  • 支持在 WebUI 搜索配置

修复

  • 修复 CronJob 页面操作列按钮重叠问题,提升任务管理可用性 (#5163)。

优化

  • 优化 Python / Shell 本地执行工具的权限拒绝提示信息引导,提升排障可读性。
  • Provider 来源面板样式升级,新增菜单交互并完善移动端适配。
  • PersonaForm 组件增强响应式布局与样式细节,改进不同屏幕下的编辑体验 (#5162)。
  • 配置页面新增未保存变更提示,减少误操作导致的配置丢失。
  • 配置相关组件新增搜索能力并同步更新界面交互,提升配置项定位效率 (#5168)。

What's Changed (EN)

New Features

  • Added an NVIDIA provider template for faster integration with NVIDIA model services (#5157).
  • Added an announcement section to the Welcome page, with localized announcement title support.
  • Added an FAQ link to the vertical sidebar and updated navigation for localization.

Fixes

  • Fixed overlapping action buttons in the CronJob page action column to improve task management usability (#5163).
  • Improved permission-denied messages for local execution in Python and shell tools for better troubleshooting clarity.

Improvements

  • Enhanced the provider sources panel with a refined menu style and better mobile support.
  • Improved PersonaForm with responsive layout and styling updates for better editing experience across screen sizes (#5162).
  • Added an unsaved-changes notice on the configuration page to reduce accidental config loss.
  • Added search functionality to configuration components and updated related UI interactions for faster settings discovery (#5168).
v4.17.3 Bug fix
Notable features
  • Webchat automatically sends images returned by `astrbot_execute_ipython`
Full changelog

What's Changed

修复

  • ‼️ 修复 Python 3.14 环境下 'Plain' object has no attribute 'text' 报错问题 (#5154)。
  • ‼️ 修复插件元数据处理流程:在实例化前注入必要属性,避免初始化阶段元数据缺失 (#5155)。
  • 修复桌面端后端构建中 AstrBot 内置插件运行时依赖未打包的问题 (#5146)。
  • 修复通过 AstrBot Launcher 启动时仍被检测并触发更新的问题。

优化

  • Webchat 下,使用 astrbot_execute_ipython 工具如果返回了图片,会自动将图片发送到聊天中。

其他

  • 执行 ruff format 代码格式整理。

What's Changed (EN)

Fixes

  • ‼️ Fixed plugin metadata handling by injecting required attributes before instantiation to avoid missing metadata during initialization (#5155).
  • ‼️ Fixed 'Plain' object has no attribute 'text' error when using Python 3.14 (#5154).
  • Fixed missing runtime dependencies for built-in plugins in desktop backend builds (#5146).
  • Fixed update checks being triggered when AstrBot is launched via AstrBot Launcher.

Improvements

  • In Webchat, when using the astrbot_execute_ipython tool, if an image is returned, it will automatically be sent to the chat.

Others

  • Applied ruff format code formatting.
v4.17.2 Bug fix

Fixed missing tools from MCP server and built‑in plugins failing to load in the Electron desktop app.

Full changelog

What's Changed

hotfix of 4.17.0

  • 修复:MCP 服务器的 Tools 没有被正确添加到上下文中。
  • 修复:Electron 桌面应用部署时,系统自带插件未被正确加载的问题。
  • fix: Tools from MCP server were not properly added to context.
  • fix: built-in plugins were not properly loaded in Electron desktop application deployment.
v4.17.1 Bug fix
Notable features
  • Added LINE platform adapter with configuration support
  • Added fallback chat model list for automatic switch on primary model failure
  • Added hot reload after plugin load failure
Full changelog

What's Changed

hotfix of 4.17.0

  • 修复:当开启了 “启用文件日志” 后,无法启动 AstrBot,报错 ValueError: Invalid unit value while parsing duration: 'files'。这是由于日志轮转设置中保留配置错误导致的,已通过根据备份数量正确设置保留参数进行修复。
  • fix: When "Enable file logging" is turned on, AstrBot fails to start with error ValueError: Invalid unit value while parsing duration: 'files'. This is due to an incorrect retention configuration in the log rotation setup, which has been fixed by properly setting the retention parameter based on backup count.

新增

  • 新增 LINE 平台适配器与相关配置支持 (#5085)
  • 新增备用回退聊天模型列表,当主模型报错时自动切换到备用模型 (#5109)
  • 新增插件加载失败后的热重载支持,便于插件修复后快速恢复 (#5043)
  • WebUI 新增 SSL 配置选项并同步更新相关日志行为 (#5117)

修复

  • 修复 Dockerfile 中依赖导出流程,增加 uv lock 步骤并移除不必要的 --frozen 参数,提升构建稳定性 (#5091, #5089)
  • 修复首次启动公告 FIRST_NOTICE.md 的本地化路径解析问题,补充兼容路径处理 (#5083, #5082)

优化

  • 日志系统由 colorlog 切换为 loguru,增强日志输出与展示能力 (#5115)

What's Changed (EN)

New Features

  • Added LINE platform adapter support with related configuration options (#5085)
  • Added fallback chat model chain support in tool loop runner, with corresponding config and improved provider selection display (#5109)
  • Added hot reload support after plugin load failure for faster recovery during plugin development and maintenance (#5043)
  • Added SSL configuration options for WebUI and updated related logging behavior (#5117)

Fixes

  • Fixed Dockerfile dependency export flow by adding a uv lock step and removing unnecessary --frozen flag to improve build stability (#5091, #5089)
  • Fixed locale path resolution for FIRST_NOTICE.md and added compatible fallback handling (#5083, #5082)

Improvements

  • Replaced colorlog with loguru to improve logging capabilities and console display (#5115)
v4.17.0 New feature
Notable features
  • Added LINE platform adapter with related configuration support
  • Added fallback chat model chain that automatically switches when the primary model errors
  • Added hot reload support after plugin load failures for faster recovery
Full changelog

What's Changed

新增

  • 新增 LINE 平台适配器与相关配置支持 (#5085)
  • 新增备用回退聊天模型列表,当主模型报错时自动切换到备用模型 (#5109)
  • 新增插件加载失败后的热重载支持,便于插件修复后快速恢复 (#5043)
  • WebUI 新增 SSL 配置选项并同步更新相关日志行为 (#5117)

修复

  • 修复 Dockerfile 中依赖导出流程,增加 uv lock 步骤并移除不必要的 --frozen 参数,提升构建稳定性 (#5091, #5089)
  • 修复首次启动公告 FIRST_NOTICE.md 的本地化路径解析问题,补充兼容路径处理 (#5083, #5082)

优化

  • 日志系统由 colorlog 切换为 loguru,增强日志输出与展示能力 (#5115)

What's Changed (EN)

New Features

  • Added LINE platform adapter support with related configuration options (#5085)
  • Added fallback chat model chain support in tool loop runner, with corresponding config and improved provider selection display (#5109)
  • Added hot reload support after plugin load failure for faster recovery during plugin development and maintenance (#5043)
  • Added SSL configuration options for WebUI and updated related logging behavior (#5117)

Fixes

  • Fixed Dockerfile dependency export flow by adding a uv lock step and removing unnecessary --frozen flag to improve build stability (#5091, #5089)
  • Fixed locale path resolution for FIRST_NOTICE.md and added compatible fallback handling (#5083, #5082)

Improvements

  • Replaced colorlog with loguru to improve logging capabilities and console display (#5115)
v4.16.0 New feature
Notable features
  • Proactive message push and private‑chat file receiving for QQ official bot adapter
  • Automatic "typing..."/"uploading image..." status while waiting for AI response in Telegram adapter
  • File reception and quoted‑message content reading (images, video, files, text) for Feishu adapter
Full changelog

What's Changed

新增

  • QQ 官方机器人平台支持主动推送消息,私聊场景支持接收文件 (#5066)
  • 为 Telegram 平台适配器新增等待 AI 回复时自动展示 “正在输入”、“正在上传图片” 等状态的功能 (#5037)
  • 为飞书适配器增加接收文件、读取引用消息的内容(包括引用的图片、视频、文件、文字等) (#5018)
  • 新增自定义平台适配器 i18n 支持 (#5045)
  • 新增临时文件处理能力,可在系统配置中限制 data/temp 目录的最大大小。 (#5026)
  • 增加首次启动公告功能,支持多语言与 WebUI 集成

修复

  • 修复 OpenRouter DeepSeek 场景下的 chunk 错误 (#5069)
  • 修复备份时人格文件夹映射缺失问题 (#5042)
  • 修复更新日志与官方文档弹窗双滚动条问题 (#5060)
  • 修复 provider 额外参数弹窗 key 显示异常
  • 修复连接失败时错误日志提示不准确的问题
  • 修复提前返回时未等待 reset 协程导致的资源清理问题 (#5033)
  • 提升打包版桌面端启动稳定性并优化插件依赖处理 (#5031)
  • 为 Electron 与后端日志增加按大小轮转 (#5029)
  • 加固冻结运行时(frozen app runtime)插件依赖加载流程 (#5015)

优化

  • 完善合并消息、引用解析与图片回退,并支持配置化控制 (#5054)
  • 配置页面支持通过侧边栏子项切换普通配置/系统配置,并补充相关路由修复
  • 优化分段回复间隔时间初始化逻辑 (#5068)

文档与维护

  • 同步并修正 README 文档内容与拼写 (#5055, #5014)
  • 新增 AUR 安装方式说明 (#4879)
  • 执行代码格式化(ruff)

What's Changed (EN)

New Features

  • Added proactive message push and private-chat file receiving support for the QQ official bot adapter (#5066)
  • Added automatic "typing..." and "uploading image..." status display while waiting for AI response in the Telegram adapter (#5037)
  • Added file receiving and quoted message content reading (including quoted images, videos, files, text, etc.) for the Feishu adapter (#5018)
  • Added i18n support for custom platform adapters (#5045)
  • Introduced temporary file handling and TempDirCleaner (#5026)
  • Added a first-launch notice feature with multilingual content and WebUI integration

Fixes

  • Added sidebar child-tab switching for normal/system config and fixed related routing behavior on the config page
  • Fixed chunk errors when using OpenRouter DeepSeek (#5069)
  • Improved forwarded-quote parsing and image fallback with configurable controls (#5054)
  • Fixed missing persona-folder mapping in backup exports (#5042)
  • Fixed double scrollbar issue in changelog and official docs dialogs (#5060)
  • Fixed key rendering issues in the provider extra-params dialog
  • Improved error log wording for connection failures
  • Fixed unawaited reset coroutine cleanup on early returns (#5033)
  • Improved packaged desktop startup stability and plugin dependency handling (#5031)
  • Added size-based log rotation for Electron and backend logs (#5029)
  • Hardened plugin dependency loading in frozen app runtime (#5015)

Improvements

  • Optimized initialization logic for segmented-reply interval timing (#5068)

Docs & Maintenance

  • Synced and fixed README docs and typos (#5055, #5014)
  • Added AUR installation instructions (#4879)
  • Applied code formatting with ruff

Details

  • fix: harden plugin dependency loading in frozen app runtime by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5015
  • feat: adding support for media and quoted message attachments for feishu by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5018
  • docs: add AUR installation method by @LIghtJUNction in https://github.com/AstrBotDevs/AstrBot/pull/4879
  • fix(desktop): 为 Electron 与后端日志增加按大小轮转 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5029
  • fix: 提升打包版桌面端启动稳定性并优化插件依赖处理 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5031
  • feat: temporary file handling and introduce TempDirCleaner by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5026
  • fix: close unawaited reset coroutine on early return by @Limitless2023 in https://github.com/AstrBotDevs/AstrBot/pull/5033
  • docs: clean and sync README by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/5014
  • feat: add send_chat_action for Telegram platform adapter by @evpeople in https://github.com/AstrBotDevs/AstrBot/pull/5037
  • fix: 修复更新日志、官方文档弹窗双滚动条问题 by @SnowNightt in https://github.com/AstrBotDevs/AstrBot/pull/5060
  • docs: sync and fix readme typo by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/5055
  • fix: 修复备份时缺失的人格文件夹映射 by @xzj0898 in https://github.com/AstrBotDevs/AstrBot/pull/5042
  • feat: QQ 官方机器人平台支持主动推送消息、私聊场景下支持接收文件 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5066
  • perf: 优化分段回复间隔时间的初始化逻辑 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5068
  • fix: chunk err when using openrouter deepseek by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5069
  • feat: add i18n supports for custom platform adapters by @stevessr in https://github.com/AstrBotDevs/AstrBot/pull/5045
  • fix: 完善转发引用解析与图片回退并支持配置化控制 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5054

New Contributors

  • @Limitless2023 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5033
  • @evpeople made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5037
  • @SnowNightt made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5060
  • @xzj0898 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/5042

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.15.0...v4.16.0

v4.15.0 Breaking risk
⚠ Upgrade required
  • Non‑Electron users experiencing a redirect to GitHub Releases when clicking the WebUI update button should manually redeploy AstrBot or replace the `dist` directory with the provided `AstrBot-v4.15.0-dashboard.zip` to restore normal behavior.
Notable features
  • Proactive message push added for WeCom AI Bot and WeCom app with video, file, image, audio support
  • Proactive message push added for Dingtalk adapter with image, video, audio support
  • Delete button added to persona management dialog
Full changelog

What's Changed

⚠️ 提醒 v4.14.8 用户:由于 v4.14.8 版本 Bug,若您未使用 Electron AstrBot 桌面应用,会被错误地通过 WebUI 对话框跳转到 Github Releases 页。
类似出现如下对话框:

如果是这种情况,不要下载和安装下面的安装包。您有两种升级方式:

  1. 您可能需要手动重新部署 AstrBot 才能升级。(如果可以打开更新页面切换新版本则可以忽略此提醒)
  2. 下载此文件,解压后放到 AstrBot 的 data 目录下,替换 dist 目录,然后刷新 WebUI 界面,重新点击更新按钮即可恢复原来的更新对话框。

新增

  • 企业微信智能机器人支持主动消息推送,并新增视频、文件等消息类型支持 (#4999)
  • 企业微信应用支持主动消息推送,并优化企微应用、微信公众号、微信客服的音频处理流程 (#4998)
  • 钉钉适配器支持主动消息推送,并新增图片、视频、音频等消息类型支持 (#4986)
  • 人格管理弹窗新增删除按钮 (#4978)

修复

  • 修复 SubAgents 工具去重相关问题 (#4990)
  • 改进 WeCom AI Bot 的流式消息处理逻辑,提升分段与流式回复稳定性 (#5000)
  • 稳定源码与 Electron 打包环境下的 pip 安装行为,并修复非 Electron 场景点击 WebUI 更新按钮时误触发跳转对话框的问题 (#4996)
  • 修复桌面端后端构建时 certifi 数据收集问题 (#4995)
  • 修复冻结运行时(frozen runtime)中的 pip install 执行问题 (#4985)
  • 为 Windows ARM64 通过 vcpkg 预置 OpenSSL,修复相关构建准备问题

优化

  • 更新 pydantic 依赖版本 (#4980)
  • 调整 GHCR namespace 的 CI 配置

What's Changed (EN)

New Features

  • Enhanced persona tool management and improved UI localization for subagent orchestration (#4990)
  • Added proactive message push for WeCom AI Bot, with support for video, file, and more message types (#4999)
  • Added proactive message push for WeCom app, and improved audio handling for WeCom app, WeChat Official Account, and WeCom customer service (#4998)
  • Enhanced Dingtalk adapter with proactive push and support for image, video, and audio message types (#4986)
  • Added a delete button to the persona management dialog for better usability (#4978)

Fixes

  • Improved streaming message handling in WeCom AI Bot for better segmented and streaming reply stability (#5000)
  • Stabilized pip installation behavior in source and Electron packaged environments, and fixed the unexpected redirect dialog when clicking WebUI update in non-Electron mode (#4996)
  • Fixed certifi data collection in desktop backend build (#4995)
  • Fixed pip install execution in frozen runtime (#4985)
  • Prepared OpenSSL via vcpkg for Windows ARM64 build flow

Improvements

  • Updated pydantic dependency version (#4980)
  • Updated CI configuration for GHCR namespace

Details

  • feat: refactor release workflow and add special update handling for electron app by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4969
  • chore: auto ann fix by ruff by @Dt8333 in https://github.com/AstrBotDevs/AstrBot/pull/4903
  • chore: update pydantic dependency version by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4980
  • feat: add delete button to persona management dialog by @Copilot in https://github.com/AstrBotDevs/AstrBot/pull/4978
  • feat: enhance Dingtalk adapter with active push message and image, video, audio message type by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4986
  • fix: handle pip install execution in frozen runtime by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/4985
  • 修复electron打包方式下证书问题 by @Raven95676 in https://github.com/AstrBotDevs/AstrBot/pull/4995
  • feat: 企业微信应用 支持主动消息推送,并优化企微应用、微信公众号、微信客服音频相关的处理 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4998
  • feat: 企业微信智能机器人支持主动消息推送以及发送视频、文件等消息类型支持 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4999
  • feat: enhance WecomAIBotAdapter and WecomAIBotMessageEvent for improved streaming message handling by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5000
  • feat: enhance persona tool management and update UI localization for subagent orchestration by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4990
  • perf: 稳定源码与 Electron 打包环境下的 pip 安装行为,并修复非 Electron 环境下点击 WebUI 更新按钮时出现跳转对话框的问题 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/4996
  • fix: 'HandoffTool' object has no attribute 'agent' by @Li-shi-ling in https://github.com/AstrBotDevs/AstrBot/pull/5005
  • chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/AstrBotDevs/AstrBot/pull/5006
  • fix: stabilize packaged runtime pip/ssl behavior and mac font fallback by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5007
  • fix: 修复 Windows 打包版后端重启失败问题 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5009
  • fix: 修复app内重启异常,修复app内点击重启不能立刻提示重启,以及在后端就绪时及时刷新界面的问题 by @zouyonghe in https://github.com/AstrBotDevs/AstrBot/pull/5013
  • chore: bump version to 4.15.0 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/5003

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.14.7...v4.15.0

v4.14.8 Breaking risk
Breaking changes
  • Minimum Python version for AstrBot increased to 3.12
Notable features
  • Provider-level proxy support
  • Plugin command permission management in WebUI
  • LLM image preview and autonomous send decision
Full changelog

What's Changed

hotfix of 4.14.7

  • 为 AstrBot Electron App 增加特殊的更新处理。

修复

  • 人格预设对话可能会重复添加到上下文 (#4961)

新增

  • 增加提供商级别的代理支持 (#4949)
  • WebUI 管理行为增加插件指令权限管理功能 (#4887)
  • 允许 LLM 预览工具返回的图片并自主决定是否发送 (#4895)
  • Telegram 平台添加媒体组(相册)支持 (#4893)
  • 增加欢迎功能,支持本地化内容和新手引导步骤
  • 支持 Electron 桌面应用部署 (#4952)

注意

  • 更新 AstrBot Python 版本要求至 3.12 (#4963)

What's Changed

Fixes

  • Fixed issue where persona preset conversations could be duplicated in context (#4961)

Features

  • Added provider-level proxy support (#4949)
  • Added plugin command permission management to WebUI management behavior (#4887)
  • Allowed LLMs to preview images returned by tools and autonomously decide whether to send them (#4895)
  • Added media group (album) support for Telegram platform (#4893)
  • Added welcome feature with support for localized content and onboarding steps
  • Supported Electron desktop application deployment (#4952)

Notice

  • Updated AstrBot Python version requirement to 3.12 (#4963)
v4.14.7 Bug fix
⚠ Upgrade required
  • Updated AstrBot Python version requirement to 3.12
Notable features
  • Provider-level proxy support
  • Plugin command permission management in WebUI
  • LLM image preview and autonomous send decision
Full changelog

What's Changed

修复

  • 人格预设对话可能会重复添加到上下文 (#4961)

新增

  • 增加提供商级别的代理支持 (#4949)
  • WebUI 管理行为增加插件指令权限管理功能 (#4887)
  • 允许 LLM 预览工具返回的图片并自主决定是否发送 (#4895)
  • Telegram 平台添加媒体组(相册)支持 (#4893)
  • 增加欢迎功能,支持本地化内容和新手引导步骤
  • 支持 Electron 桌面应用部署 (#4952)

注意

  • 更新 AstrBot Python 版本要求至 3.12 (#4963)

What's Changed

Fixes

  • Fixed issue where persona preset conversations could be duplicated in context (#4961)

Features

  • Added provider-level proxy support (#4949)
  • Added plugin command permission management to WebUI management behavior (#4887)
  • Allowed LLMs to preview images returned by tools and autonomously decide whether to send them (#4895)
  • Added media group (album) support for Telegram platform (#4893)
  • Added welcome feature with support for localized content and onboarding steps
  • Supported Electron desktop application deployment (#4952)

Notice

  • Updated AstrBot Python version requirement to 3.12 (#4963)
v4.14.6 Bug fix
Notable features
  • Feishu (Lark) Bot can now send file, image, and video messages
  • Performance optimizations for WebChat and WeCom AI conversation queue lifecycle
Full changelog

What's Changed

修复

  • 修复一些原因导致 Tavily WebSearch、Bocha WebSearch 无法使用的问题

新增

  • 飞书支持 Bot 发送文件、图片和视频消息类型。

优化

  • 优化 WebChat 和 企业微信 AI 会话队列生命周期管理,减少内存泄漏,提高性能。

What's Changed

  • feat: implement feishu / lark media file handling utilities for file, audio and video processing by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4938
  • perf: optimize webchat and wecom ai queue lifecycle by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4941

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.14.5...v4.14.6

v4.14.5 Bug fix
Notable features
  • Added Bocha web search tool
  • Systemd support
Full changelog

What's Changed

Fix

  • fix: fix: messages[x] assistant content must contain at least one part after tool calling (#4928) after tool calls.
  • fix: TypeError when MCP schema type is a list (#4867)
  • fix: Fixed an issue that caused scheduled task execution failures with specific providers 修复特定提供商导致的定时任务执行失败的问题 (#4872)

Feature

  • feat: add bocha web search tool (#4902)
  • feat: systemd support (#4880)
v4.14.4 Breaking risk
Breaking changes
  • Skill Runtime related options require re‑configuration post‑upgrade from earlier versions.
Notable features
  • Future Tasks (CronJob) system with one‑time task scheduling
  • SubAgent orchestrator for tool‑management policies
  • Theme customization with primary and secondary color options
Full changelog

What's Changed

hotfix of v4.14.0

hotfix

  • 修复 token 统计错误的问题,修复在多轮 tool call 情况下或者其他极端情况下可能造成 tool 无限调用的问题。
  • 修复 on_llm_request 钩子可能无法应用效果的问题
  • event.request_llm() 过时导致的群聊上下文感知-主动回复功能可能不可用的问题

What's Changed - BIG AND BEAUTIFUL VERSION

如果在之前版本使用了 Skill,这次更新之后需要重新配置 Skill Runtime 相关选项。

新增

  • 🔥 新增未来任务系统(Future Tasks)。给 AstrBot 布置的未来任务,让 AstrBot 能够在某一时刻自动唤醒,帮你完成任务。详见 主动任务 。(实验性) (#4697)
  • 🔥 新增子代理(SubAgent)编排器。(实验性)(#4697)
  • 🔥 AstrBot 目前可以直接通过调用 tool 将图片 / 文件推送给用户,大大提高交互效果。
  • 新增 Computer Use 运行时配置,以融合 Skill 和 Sandbox 配置 (#4831)
  • 新增主题自定义功能,可设置主色与辅色
  • 支持在配置页下人格对话框的编辑人格 (#4826)
  • 支持开关 “追踪” 功能;支持在系统配置中设置是否将日志写入 log 文件 (#4822)

修复

  • ‼️ 修复近期版本引入的 missing 2 required positional arguments: 'filter1' and 'filter2' 相关报错问题 。
  • ‼️ 修复 ChatUI 图片、思考等显示异常问题。
  • ‼️ 修复 Skill 上传到 Sandbox 后未自动解压导致 Agent 无法读取的问题。
  • ‼️ 修复配置特定插件集时 MCP 工具被过滤的问题 (#4825)
  • ‼️ 移除 ChatUI 自带的让 LLM 最后提出问题的 prompt (#4824)
  • ‼️ 修复 WebUI 在上传 Skill 失败后仍显示成功消息的 bug (#4768)
  • 修复 MCP 服务器无法重命名的问题 (#4766)
  • 修复插件的 tool 无法在 WebUI 管理行为中看到来源的问题 (#4776)
  • ‼️ 修复 skill-like 的 tool 模式下,调用 tool 失败的问题 (#4775)

优化

  • WebUI 整体 UI 效果优化
  • 部分 Dialog 标题样式统一

What's Changed (EN)

New Features

  • Introduce CronJob system with one-time tasks and enhanced dashboard management
  • Add theme customization with primary & secondary color options
  • Add computer-use runtime config for skills sandbox execution (#4831)
  • Add edit button to persona selector dialog (#4826)
  • Add trace logging toggle and configuration UI (#4822)
  • Add proactive-messaging capability with cron-tool trigger
  • Implement SubAgent orchestrator with configurable tool-management policies
  • Support resolving sandbox file paths and auto-download when necessary
  • Add embedded image & audio styles in MessagePartsRenderer
  • Introduce i18n foundation
  • Persist agent-interaction history
  • Add user notifications for file-download success/removal

Bug Fixes

  • Improve ghost-plugin detection accuracy
  • Add error handling to prevent ghost-plugin crashes
  • Prevent skills bundle from overwriting existing files
  • Fix skills bundle unzip failure inside sandbox
  • Fix MCP tools being filtered when specific plugin set configured (#4825)
  • Merge ChatUI persona pop-up into default persona (#4824)
  • Fix reasoning block style
  • Add missing comma in truncate_and_compress hint
  • Fix frontend still showing success message (#4768)
  • Fix unable to rename MCP server (#4766)
  • Remove leftover sandbox runtime handling in skill upload (#4798)
  • Fix handler module path construction (#4776)
  • Fix skill-like tool invocation error (#4775)

Improvements

  • Runtime hints & refined UI in skills management
  • Performance and UX improvements on cron-job page
  • General WebUI performance boost
  • Group tools by plugin in dropdown
  • Consistent dialog titles with padding and text styles
  • Code formatting unified (ruff format)
  • Bump version to 4.13.2

Others

  • Remove obsolete reminder code
  • Extract main-agent module for better architecture
  • Merge AstrBot_skill branch changes

Contributor details

  • feat: trace by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4747
  • fix: Fixed a bug where the front end still displayed a success messag… by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/4768
  • fix: skills-like tool error by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4775
  • fix(context): append 'main' to module_part for handler module path by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4776
  • chore: bump version to 4.13.2 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4782
  • fix(mcp): cannot rename MCP Server by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/4766
  • fix(skills): remove sandbox runtime handling from skill upload process by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4798
  • feat: Proactive Agents and Subagents Orchestrator by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/4697
  • fix: merge chatui pop-up prompt into chatui default persona and improve chatui persona handle by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4824
  • feat: add trace settings management and UI for enabling/disabling trace logging by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4822
  • feat: add edit button to persona selector dialog by @Copilot in https://github.com/AstrBotDevs/AstrBot/pull/4826
  • fix: MCP tools being filtered out when a specific plugin set is configured in the / WebUI修复 MCP 工具在插件过滤时被意外过滤的问题 by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/4825
  • feat: add computer use runtime configuration and handling for skills execution by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4831
  • docs: revise README.md for clarity and feature updates by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4839
  • fix: missing 2 required positional arguments: 'filter1' and 'filter2' by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4840
  • fix: add error handling to avoid ghost plugins 添加错误处理以避免幽灵插件 by @VanillaNahida in https://github.com/AstrBotDevs/AstrBot/pull/4836

New Contributors

  • @idiotsj made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4825
  • @VanillaNahida made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4836

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.13.1...v4.14.0

v4.14.3 Breaking risk
Breaking changes
  • Skill Runtime related options require re‑configuration after updating from previous versions.
Notable features
  • Experimental Future Tasks (cron‑job) system for proactive agent actions
  • Experimental SubAgent orchestrator with configurable tool policies
  • Direct image/file push capability via tool calls
Full changelog

What's Changed

hotfix of v4.14.0

hotfix

  • 修复 on_llm_request 钩子可能无法应用效果的问题
  • event.request_llm() 过时导致的群聊上下文感知-主动回复功能可能不可用的问题

What's Changed - BIG AND BEAUTIFUL VERSION

如果在之前版本使用了 Skill,这次更新之后需要重新配置 Skill Runtime 相关选项。

新增

  • 🔥 新增未来任务系统(Future Tasks)。给 AstrBot 布置的未来任务,让 AstrBot 能够在某一时刻自动唤醒,帮你完成任务。详见 主动任务 。(实验性) (#4697)
  • 🔥 新增子代理(SubAgent)编排器。(实验性)(#4697)
  • 🔥 AstrBot 目前可以直接通过调用 tool 将图片 / 文件推送给用户,大大提高交互效果。
  • 新增 Computer Use 运行时配置,以融合 Skill 和 Sandbox 配置 (#4831)
  • 新增主题自定义功能,可设置主色与辅色
  • 支持在配置页下人格对话框的编辑人格 (#4826)
  • 支持开关 “追踪” 功能;支持在系统配置中设置是否将日志写入 log 文件 (#4822)

修复

  • ‼️ 修复近期版本引入的 missing 2 required positional arguments: 'filter1' and 'filter2' 相关报错问题 。
  • ‼️ 修复 ChatUI 图片、思考等显示异常问题。
  • ‼️ 修复 Skill 上传到 Sandbox 后未自动解压导致 Agent 无法读取的问题。
  • ‼️ 修复配置特定插件集时 MCP 工具被过滤的问题 (#4825)
  • ‼️ 移除 ChatUI 自带的让 LLM 最后提出问题的 prompt (#4824)
  • ‼️ 修复 WebUI 在上传 Skill 失败后仍显示成功消息的 bug (#4768)
  • 修复 MCP 服务器无法重命名的问题 (#4766)
  • 修复插件的 tool 无法在 WebUI 管理行为中看到来源的问题 (#4776)
  • ‼️ 修复 skill-like 的 tool 模式下,调用 tool 失败的问题 (#4775)

优化

  • WebUI 整体 UI 效果优化
  • 部分 Dialog 标题样式统一

What's Changed (EN)

New Features

  • Introduce CronJob system with one-time tasks and enhanced dashboard management
  • Add theme customization with primary & secondary color options
  • Add computer-use runtime config for skills sandbox execution (#4831)
  • Add edit button to persona selector dialog (#4826)
  • Add trace logging toggle and configuration UI (#4822)
  • Add proactive-messaging capability with cron-tool trigger
  • Implement SubAgent orchestrator with configurable tool-management policies
  • Support resolving sandbox file paths and auto-download when necessary
  • Add embedded image & audio styles in MessagePartsRenderer
  • Introduce i18n foundation
  • Persist agent-interaction history
  • Add user notifications for file-download success/removal

Bug Fixes

  • Improve ghost-plugin detection accuracy
  • Add error handling to prevent ghost-plugin crashes
  • Prevent skills bundle from overwriting existing files
  • Fix skills bundle unzip failure inside sandbox
  • Fix MCP tools being filtered when specific plugin set configured (#4825)
  • Merge ChatUI persona pop-up into default persona (#4824)
  • Fix reasoning block style
  • Add missing comma in truncate_and_compress hint
  • Fix frontend still showing success message (#4768)
  • Fix unable to rename MCP server (#4766)
  • Remove leftover sandbox runtime handling in skill upload (#4798)
  • Fix handler module path construction (#4776)
  • Fix skill-like tool invocation error (#4775)

Improvements

  • Runtime hints & refined UI in skills management
  • Performance and UX improvements on cron-job page
  • General WebUI performance boost
  • Group tools by plugin in dropdown
  • Consistent dialog titles with padding and text styles
  • Code formatting unified (ruff format)
  • Bump version to 4.13.2

Others

  • Remove obsolete reminder code
  • Extract main-agent module for better architecture
  • Merge AstrBot_skill branch changes

Contributor details

  • feat: trace by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4747
  • fix: Fixed a bug where the front end still displayed a success messag… by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/4768
  • fix: skills-like tool error by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4775
  • fix(context): append 'main' to module_part for handler module path by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4776
  • chore: bump version to 4.13.2 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4782
  • fix(mcp): cannot rename MCP Server by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/4766
  • fix(skills): remove sandbox runtime handling from skill upload process by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4798
  • feat: Proactive Agents and Subagents Orchestrator by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/4697
  • fix: merge chatui pop-up prompt into chatui default persona and improve chatui persona handle by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4824
  • feat: add trace settings management and UI for enabling/disabling trace logging by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4822
  • feat: add edit button to persona selector dialog by @Copilot in https://github.com/AstrBotDevs/AstrBot/pull/4826
  • fix: MCP tools being filtered out when a specific plugin set is configured in the / WebUI修复 MCP 工具在插件过滤时被意外过滤的问题 by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/4825
  • feat: add computer use runtime configuration and handling for skills execution by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4831
  • docs: revise README.md for clarity and feature updates by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4839
  • fix: missing 2 required positional arguments: 'filter1' and 'filter2' by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4840
  • fix: add error handling to avoid ghost plugins 添加错误处理以避免幽灵插件 by @VanillaNahida in https://github.com/AstrBotDevs/AstrBot/pull/4836

New Contributors

  • @idiotsj made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4825
  • @VanillaNahida made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4836

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.13.1...v4.14.0

v4.14.2 Bug fix
Notable features
  • Added debug hint to console page and localization files
Full changelog

What's Changed

新增

  • 控制台页面新增调试提示和本地化文件 (#4852)

修复

  • 修复插件热重载时平台适配器未清理导致注册冲突的问题 (#4859)

其他

  • 更新 ruff 版本至 0.15.0
  • 新增 robots.txt (#4847)

What's Changed (EN)

New Features

  • Add debug hint to console page and localization files (#4852)

Bug Fixes

  • Fix platform adapter not being cleaned up during plugin hot reload, causing registration conflicts (#4859)

Others

  • Update ruff version to 0.15.0
  • Add robots.txt (#4847)

What's Changed

  • chore(seo): create robots.txt by @IGCrystal-A in https://github.com/AstrBotDevs/AstrBot/pull/4847
  • feat: debug hint in console by @Sjshi763 in https://github.com/AstrBotDevs/AstrBot/pull/4852
  • fix: 修复插件热重载时平台适配器未清理导致注册冲突的问题 by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/4859

New Contributors

  • @Sjshi763 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4852

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.14.1...v4.14.2

v4.14.1 Breaking risk
Breaking changes
  • Skill Runtime related options require re‑configuration after updating from v4.14.0.
Notable features
  • Future Tasks (experimental) – schedule proactive tasks for AstrBot.
  • SubAgent orchestrator (experimental).
  • Direct image/file push tool for enhanced user interaction.
Full changelog

What's Changed - BIG AND BEAUTIFUL VERSION

hotfix of v4.14.0

fixes:

  • event.request_llm() 过时导致的群聊上下文感知-主动回复功能可能不可用的问题

如果在之前版本使用了 Skill,这次更新之后需要重新配置 Skill Runtime 相关选项。

新增

  • 🔥 新增未来任务系统(Future Tasks)。给 AstrBot 布置的未来任务,让 AstrBot 能够在某一时刻自动唤醒,帮你完成任务。详见 主动任务 。(实验性) (#4697)
  • 🔥 新增子代理(SubAgent)编排器。(实验性)(#4697)
  • 🔥 AstrBot 目前可以直接通过调用 tool 将图片 / 文件推送给用户,大大提高交互效果。
  • 新增 Computer Use 运行时配置,以融合 Skill 和 Sandbox 配置 (#4831)
  • 新增主题自定义功能,可设置主色与辅色
  • 支持在配置页下人格对话框的编辑人格 (#4826)
  • 支持开关 “追踪” 功能;支持在系统配置中设置是否将日志写入 log 文件 (#4822)

修复

  • ‼️ 修复近期版本引入的 missing 2 required positional arguments: 'filter1' and 'filter2' 相关报错问题 。
  • ‼️ 修复 ChatUI 图片、思考等显示异常问题。
  • ‼️ 修复 Skill 上传到 Sandbox 后未自动解压导致 Agent 无法读取的问题。
  • ‼️ 修复配置特定插件集时 MCP 工具被过滤的问题 (#4825)
  • ‼️ 移除 ChatUI 自带的让 LLM 最后提出问题的 prompt (#4824)
  • ‼️ 修复 WebUI 在上传 Skill 失败后仍显示成功消息的 bug (#4768)
  • 修复 MCP 服务器无法重命名的问题 (#4766)
  • 修复插件的 tool 无法在 WebUI 管理行为中看到来源的问题 (#4776)
  • ‼️ 修复 skill-like 的 tool 模式下,调用 tool 失败的问题 (#4775)

优化

  • WebUI 整体 UI 效果优化
  • 部分 Dialog 标题样式统一

What's Changed (EN)

New Features

  • Introduce CronJob system with one-time tasks and enhanced dashboard management
  • Add theme customization with primary & secondary color options
  • Add computer-use runtime config for skills sandbox execution (#4831)
  • Add edit button to persona selector dialog (#4826)
  • Add trace logging toggle and configuration UI (#4822)
  • Add proactive-messaging capability with cron-tool trigger
  • Implement SubAgent orchestrator with configurable tool-management policies
  • Support resolving sandbox file paths and auto-download when necessary
  • Add embedded image & audio styles in MessagePartsRenderer
  • Introduce i18n foundation
  • Persist agent-interaction history
  • Add user notifications for file-download success/removal

Bug Fixes

  • Improve ghost-plugin detection accuracy
  • Add error handling to prevent ghost-plugin crashes
  • Prevent skills bundle from overwriting existing files
  • Fix skills bundle unzip failure inside sandbox
  • Fix MCP tools being filtered when specific plugin set configured (#4825)
  • Merge ChatUI persona pop-up into default persona (#4824)
  • Fix reasoning block style
  • Add missing comma in truncate_and_compress hint
  • Fix frontend still showing success message (#4768)
  • Fix unable to rename MCP server (#4766)
  • Remove leftover sandbox runtime handling in skill upload (#4798)
  • Fix handler module path construction (#4776)
  • Fix skill-like tool invocation error (#4775)

Improvements

  • Runtime hints & refined UI in skills management
  • Performance and UX improvements on cron-job page
  • General WebUI performance boost
  • Group tools by plugin in dropdown
  • Consistent dialog titles with padding and text styles
  • Code formatting unified (ruff format)
  • Bump version to 4.13.2

Others

  • Remove obsolete reminder code
  • Extract main-agent module for better architecture
  • Merge AstrBot_skill branch changes

Contributor details

  • feat: trace by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4747
  • fix: Fixed a bug where the front end still displayed a success messag… by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/4768
  • fix: skills-like tool error by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4775
  • fix(context): append 'main' to module_part for handler module path by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4776
  • chore: bump version to 4.13.2 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4782
  • fix(mcp): cannot rename MCP Server by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/4766
  • fix(skills): remove sandbox runtime handling from skill upload process by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4798
  • feat: Proactive Agents and Subagents Orchestrator by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/4697
  • fix: merge chatui pop-up prompt into chatui default persona and improve chatui persona handle by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4824
  • feat: add trace settings management and UI for enabling/disabling trace logging by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4822
  • feat: add edit button to persona selector dialog by @Copilot in https://github.com/AstrBotDevs/AstrBot/pull/4826
  • fix: MCP tools being filtered out when a specific plugin set is configured in the / WebUI修复 MCP 工具在插件过滤时被意外过滤的问题 by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/4825
  • feat: add computer use runtime configuration and handling for skills execution by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4831
  • docs: revise README.md for clarity and feature updates by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4839
  • fix: missing 2 required positional arguments: 'filter1' and 'filter2' by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4840
  • fix: add error handling to avoid ghost plugins 添加错误处理以避免幽灵插件 by @VanillaNahida in https://github.com/AstrBotDevs/AstrBot/pull/4836

New Contributors

  • @idiotsj made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4825
  • @VanillaNahida made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4836

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.13.1...v4.14.0

v4.14.0 Breaking risk
Breaking changes
  • Skill Runtime related options require re‑configuration after updating to this version.
Notable features
  • Future Tasks (experimental) – schedule proactive agent actions
  • SubAgent orchestrator (experimental)
  • Direct tool calls for pushing images/files to users
Full changelog

What's Changed - BIG AND BEAUTIFUL VERSION

如果在之前版本使用了 Skill,这次更新之后需要重新配置 Skill Runtime 相关选项。

新增

  • 🔥 新增未来任务系统(Future Tasks)。给 AstrBot 布置的未来任务,让 AstrBot 能够在某一时刻自动唤醒,帮你完成任务。详见 主动任务 。(实验性) (#4697)
  • 🔥 新增子代理(SubAgent)编排器。(实验性)(#4697)
  • 🔥 AstrBot 目前可以直接通过调用 tool 将图片 / 文件推送给用户,大大提高交互效果。
  • 新增 Computer Use 运行时配置,以融合 Skill 和 Sandbox 配置 (#4831)
  • 新增主题自定义功能,可设置主色与辅色
  • 支持在配置页下人格对话框的编辑人格 (#4826)
  • 支持开关 “追踪” 功能;支持在系统配置中设置是否将日志写入 log 文件 (#4822)

修复

  • ‼️ 修复近期版本引入的 missing 2 required positional arguments: 'filter1' and 'filter2' 相关报错问题 。
  • ‼️ 修复 ChatUI 图片、思考等显示异常问题。
  • ‼️ 修复 Skill 上传到 Sandbox 后未自动解压导致 Agent 无法读取的问题。
  • ‼️ 修复配置特定插件集时 MCP 工具被过滤的问题 (#4825)
  • ‼️ 移除 ChatUI 自带的让 LLM 最后提出问题的 prompt (#4824)
  • ‼️ 修复 WebUI 在上传 Skill 失败后仍显示成功消息的 bug (#4768)
  • 修复 MCP 服务器无法重命名的问题 (#4766)
  • 修复插件的 tool 无法在 WebUI 管理行为中看到来源的问题 (#4776)
  • ‼️ 修复 skill-like 的 tool 模式下,调用 tool 失败的问题 (#4775)

优化

  • WebUI 整体 UI 效果优化
  • 部分 Dialog 标题样式统一

What's Changed (EN)

New Features

  • Introduce CronJob system with one-time tasks and enhanced dashboard management
  • Add theme customization with primary & secondary color options
  • Add computer-use runtime config for skills sandbox execution (#4831)
  • Add edit button to persona selector dialog (#4826)
  • Add trace logging toggle and configuration UI (#4822)
  • Add proactive-messaging capability with cron-tool trigger
  • Implement SubAgent orchestrator with configurable tool-management policies
  • Support resolving sandbox file paths and auto-download when necessary
  • Add embedded image & audio styles in MessagePartsRenderer
  • Introduce i18n foundation
  • Persist agent-interaction history
  • Add user notifications for file-download success/removal

Bug Fixes

  • Improve ghost-plugin detection accuracy
  • Add error handling to prevent ghost-plugin crashes
  • Prevent skills bundle from overwriting existing files
  • Fix skills bundle unzip failure inside sandbox
  • Fix MCP tools being filtered when specific plugin set configured (#4825)
  • Merge ChatUI persona pop-up into default persona (#4824)
  • Fix reasoning block style
  • Add missing comma in truncate_and_compress hint
  • Fix frontend still showing success message (#4768)
  • Fix unable to rename MCP server (#4766)
  • Remove leftover sandbox runtime handling in skill upload (#4798)
  • Fix handler module path construction (#4776)
  • Fix skill-like tool invocation error (#4775)

Improvements

  • Runtime hints & refined UI in skills management
  • Performance and UX improvements on cron-job page
  • General WebUI performance boost
  • Group tools by plugin in dropdown
  • Consistent dialog titles with padding and text styles
  • Code formatting unified (ruff format)
  • Bump version to 4.13.2

Others

  • Remove obsolete reminder code
  • Extract main-agent module for better architecture
  • Merge AstrBot_skill branch changes

Contributor details

  • feat: trace by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4747
  • fix: Fixed a bug where the front end still displayed a success messag… by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/4768
  • fix: skills-like tool error by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4775
  • fix(context): append 'main' to module_part for handler module path by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4776
  • chore: bump version to 4.13.2 by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4782
  • fix(mcp): cannot rename MCP Server by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/4766
  • fix(skills): remove sandbox runtime handling from skill upload process by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4798
  • feat: Proactive Agents and Subagents Orchestrator by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/4697
  • fix: merge chatui pop-up prompt into chatui default persona and improve chatui persona handle by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4824
  • feat: add trace settings management and UI for enabling/disabling trace logging by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4822
  • feat: add edit button to persona selector dialog by @Copilot in https://github.com/AstrBotDevs/AstrBot/pull/4826
  • fix: MCP tools being filtered out when a specific plugin set is configured in the / WebUI修复 MCP 工具在插件过滤时被意外过滤的问题 by @idiotsj in https://github.com/AstrBotDevs/AstrBot/pull/4825
  • feat: add computer use runtime configuration and handling for skills execution by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4831
  • docs: revise README.md for clarity and feature updates by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4839
  • fix: missing 2 required positional arguments: 'filter1' and 'filter2' by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4840
  • fix: add error handling to avoid ghost plugins 添加错误处理以避免幽灵插件 by @VanillaNahida in https://github.com/AstrBotDevs/AstrBot/pull/4836

New Contributors

  • @idiotsj made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4825
  • @VanillaNahida made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4836

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.13.1...v4.14.0

v4.13.2 Bug fix

Fixed WebUI incorrectly showing a success message after a failed skills upload.

Full changelog

What's Changed

fixes

  • feat(chat): feat: trace and log file config (#4747)
  • fix: WebUI shows success message when skills upload failed (#4768)
  • fix: cannot use tools when using skills-like tool schema mode (#4775)
  • fix(context): llm tools' origin in WebUI displayed unknown (#4776)
v4.13.1 Bug fix

Fixed ensuring the `updated_at` database field is set via a lambda expression.

Full changelog

What's Changed

fixes

  • feat(chat): refactor message rendering and introduce ToolCallItem component
  • fix(db): using lambda expression to ensure updated_at field (#4730)
  • fix(skills): update SANDBOX_SKILLS_ROOT path to use relative directory

What's Changed

  • fix(db): using lambda expression to ensure updated_at field by @SXP-Simon in https://github.com/AstrBotDevs/AstrBot/pull/4730

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.13.0...v4.13.1

v4.13.0 Bug fix
Notable features
  • Anthropic Skills import and usage support
  • Skill-like Tool Schema with two‑stage calling to reduce context bloat
  • Provider API keys configurable via environment variables
Full changelog

What's Changed

新功能

  • 支持 Anthropic Skills 导入和使用。参见 Skills
  • 支持新的 Tool Schema 模式:Skill-like。通过两阶段调用来减少 Tool 过多的情况下,占用过多上下文的问题。
  • 支持通过环境变量配置提供商 API Key。(#4696)
  • 支持插件的上传文件功能配置项类型 file (#4539)

修复

  • Gemini API 部分情况下工具无限循环调用 (#4686)
  • 修复 WebUI GitHub 代理选择器问题及卸载插件后出现的错误 (#4724)

优化

  • 默认不在终端显示 WebUI API 访问日志 (#4661)
  • 增加插件管理页面“更新所有插件”按钮的确认对话框,防止误点击 (#4658)

Update Log

New Features

  • Anthropic Skills Support: Added support for importing and using Anthropic Skills. See the Skills Documentation for details.
  • Skill-like Tool Schema: Introduced a new "Skill-like" schema for tools. This uses a two-stage calling process to reduce context bloat when managing a large number of tools.
  • Environment Variable API Keys: Support for configuring provider API keys via environment variables (GitHub #4696).
  • File Upload Config: Added a file configuration type for plugin file upload functionality (GitHub #4539).

Bug Fixes

  • Gemini Tool Loops: Fixed an issue where the Gemini API could enter an infinite tool-calling loop (GitHub #4686).
  • WebUI Stability: Resolved issues with the GitHub proxy selector and errors occurring after uninstalling plugins (GitHub #4724).

Optimizations

  • Console Logs: WebUI API access logs are now hidden by default in the terminal (GitHub #4661).
  • Accidental Click Protection: Added a confirmation dialog for the "Update All Plugins" button in the management interface (GitHub #4658).

Details

  • feat: add confirmation dialog for update all plugins button to preven… by @tooplick in https://github.com/AstrBotDevs/AstrBot/pull/4658
  • feat: add configurable Dashboard API access log toggle by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/4661
  • fix: repetition tool calls in gemini models by @xunxiing in https://github.com/AstrBotDevs/AstrBot/pull/4686
  • feat: resolve provider api keys from env by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4696
  • feat: add file upload to plugin config by @xunxiing in https://github.com/AstrBotDevs/AstrBot/pull/4539
  • feat: support anthropic skills by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4715
  • fix: webui github proxy selector and bugs after uninstalling plugins by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4724
  • feat(core): supports Anthropic-skills-like tool call mode by @vmoranv in https://github.com/AstrBotDevs/AstrBot/pull/4681

New Contributors

  • @tooplick made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4658
  • @xunxiing made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4686

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.12.4...v4.13.0

v4.12.4 Breaking risk
Breaking changes
  • Removed deprecated `tool` command
Notable features
  • ChatUI file drag‑and‑drop upload
  • Persona folder for advanced persona management with hierarchical organization (db)
  • Genie TTS support
Full changelog

What's Changed

新功能

  • 为 ChatUI 添加文件拖拽上传功能 (#4583)
  • 实现人格文件夹以进行高级人格管理 (#4443)
  • 添加人格文件夹管理以支持层级组织 (db)
  • 支持 Genie TTS

修复

  • 增强提供商选择错误处理和日志记录,避免出现 Provider 不是 Provider 类型 的错误 (#4654)
  • aiocqhttp 适配器中的 Markdown KeyError 或 UnboundLocalError 问题 (#4656)
  • 确保 providers 中的 embedding 维度作为整数返回 (#4547)
  • 钉钉流式响应问题 (#4590)
  • 提供商选择按钮被长模型名称遮挡的问题 (#4631)
  • 更新 web_search_tavily 处理,避免在非 ChatUI 平台出现信息引用 (#4633)

性能优化

  • T2I 模板编辑器预览 (#4574)

杂项

  • 移除已弃用的 tool 命令

What's Changed

  • fix: ensure embedding dimensions are returned as integers in providers by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4547
  • perf: T2I template editor preview by @IGCrystal-A in https://github.com/AstrBotDevs/AstrBot/pull/4574
  • Feature/chat drag upload by @Clhikari in https://github.com/AstrBotDevs/AstrBot/pull/4583
  • perf: streaming response for DingTalk by @jiangman202506 in https://github.com/AstrBotDevs/AstrBot/pull/4590
  • feat: implement persona folder for advanced persona management by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/4443
  • feat: AstrBot Live Chat Mode on ChatUI by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4534
  • Fix provider selector button hidden by long model names by @Copilot in https://github.com/AstrBotDevs/AstrBot/pull/4631
  • fix: update web_search_tavily handling for webchat platform by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4633
  • fix: enhance provider selection error handling and logging by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4654
  • fix: markdown keyerror or unbound error in aiocqhttp adapter by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4656

New Contributors

  • @Clhikari made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4583
  • @jiangman202506 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4590

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.12.3...v4.12.4

v4.12.3 Bug fix
Notable features
  • Optimized ChatUI default System Message
  • Added `on_using_llm_tool` and `on_llm_tool_respond` event hooks for tool usage
  • Improved Tavily web search rendering in ChatUI with inline references
Full changelog

What's Changed

  • fix: 只跳过 AstrBot 预设的位于开头的 System Message,防止一些非预期行为。
  • feat: 优化 ChatUI 默认的 System Message
  • feat: 新增 tool 调用时 on_using_llm_tool、tool 调用后 on_llm_tool_respond 的事件钩子。
  • feat: 优化 ChatUI 对 Tavily 网页搜索工具的渲染,支持内联搜索引用、引用网页。

hotfix of 4.12.2

  • fix: tool call error in some cases
v4.12.2 Bug fix
Notable features
  • Optimized ChatUI default System Message
  • Added `on_using_llm_tool` and `on_llm_tool_respond` event hooks for tool calls
  • Improved Tavily web search rendering in ChatUI with inline references
Full changelog

What's Changed

  • fix: 只跳过 AstrBot 预设的位于开头的 System Message,防止一些非预期行为。
  • feat: 优化 ChatUI 默认的 System Message
  • feat: 新增 tool 调用时 on_using_llm_tool、tool 调用后 on_llm_tool_respond 的事件钩子。
  • feat: 优化 ChatUI 对 Tavily 网页搜索工具的渲染,支持内联搜索引用、引用网页。
v4.12.1 Bug fix
Notable features
  • AstrBot Agent sandbox environment (improved code interpreter)
  • ChatUI project management support
  • Custom rule batch processing
Full changelog

What's Changed

hotfix of v4.12.0

fix: 修复会话隔离功能失效的问题。

新增

  • AstrBot Agent 沙箱环境(改进的代码解释器) (#4449),详见文档
  • ChatUI 支持项目管理 (#4477)
  • 自定义规则支持批量处理。

修复

  • 发送 OpenAI 风格的 image_url 导致 Anthropic 返回 400 无效标签错误 (#4444)
  • ChatUI 标题显示问题 (#4486)
  • 确保 ChatUI 消息流顺序正确 (#4487)
  • 从 Telegram 和 Discord 平台命令注册中排除已禁用的命令 (#4485)

优化

  • 优化工具调用相关的提示词
  • 标准化 Context 类文档格式 (#4436)

What's Changed

  • fix: sending OpenAI-style image_url causes Anthropic 400 invalid tag error by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/4444
  • feat: chatui project by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4477
  • docs: standardize Context class documentation formatting by @Li-shi-ling in https://github.com/AstrBotDevs/AstrBot/pull/4436
  • fix: chatui title by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4486
  • fix: ensure message stream order by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4487
  • fix:exclude disabled commands from platform command registration by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/4485
  • feat: astrbot agent sandbox env(improved code interpreter) by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4449
  • feat: add batch operation functionality for session management by @Luna-channel in https://github.com/AstrBotDevs/AstrBot/pull/4194
  • fix: unique session not working by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4490

New Contributors

  • @Luna-channel made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4194

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.11.4...v4.12.1

v4.12.0 Bug fix
Notable features
  • AstrBot agent sandbox environment with improved code interpreter
  • ChatUI project management support
  • Custom rules batch processing
Full changelog

What's Changed

新增

  • AstrBot 代理沙箱环境(改进的代码解释器) (#4449),详见文档
  • ChatUI 支持项目管理 (#4477)
  • 自定义规则支持批量处理。

修复

  • 发送 OpenAI 风格的 image_url 导致 Anthropic 返回 400 无效标签错误 (#4444)
  • ChatUI 标题显示问题 (#4486)
  • 确保 ChatUI 消息流顺序正确 (#4487)
  • 从 Telegram 和 Discord 平台命令注册中排除已禁用的命令 (#4485)

优化

  • 优化工具调用相关的提示词
  • 标准化 Context 类文档格式 (#4436)
v4.11.4 Bug fix
Notable features
  • Added EULA
  • Enhance reply functionality to support selected text quoting
  • Append version number tag to WARN and ERROR level logs
Full changelog

What's Changed

Fixes

  • detect image MIME type from binary data for Anthropic API (#4426)
  • correct duplicate word in agent logger warning (#4390)
  • sannitize llm context by modalities (#4367)
  • fix list config being saved as [""] instead of [] after deletion (#4401)

Improvements

  • Added EULA.
  • enhance reply functionality to support selected text quoting (#4387)
  • ensure atomic creation of knowledge base with proper cleanup on failure (#4406)
  • add null check for plugin list in config to fix empty list issue (#4392)
  • add image placeholder for non-vision models to fix no response in private chat (#4411)
  • append version number tag to WARN and ERROR level logs (#4388)
  • optimize plugin readme markdown rendering and remove redundant code (#4415)
  • sanitize invalid platform IDs on load (#4432)
  • LLM healthy mode (#4431)

Details

  • feat/chatui quote text by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4387
  • fix: ensure atomic creation of knowledge base with proper cleanup on failure by @Li-shi-ling in https://github.com/AstrBotDevs/AstrBot/pull/4406
  • fix(webui): fix unexpected expansion of all rows in tool table by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/4366
  • fix: when session_id including ":" by @stevessr in https://github.com/AstrBotDevs/AstrBot/pull/4380
  • fix: add null check for plugin list in config to fix empty list issue by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/4392
  • fix(core): correct duplicate word in agent logger warning by @letr007 in https://github.com/AstrBotDevs/AstrBot/pull/4390
  • fix: add image placeholder for non-vision models to fix no response in private chat by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/4411
  • feat(context): sanitize llm context by modalities by @Futureppo in https://github.com/AstrBotDevs/AstrBot/pull/4367
  • fix (#4297): fix list config being saved as [""] instead of [] after deletion by @NayukiChiba in https://github.com/AstrBotDevs/AstrBot/pull/4401
  • feat(log): append version number tag to WARN and ERROR level logs by @ocetars in https://github.com/AstrBotDevs/AstrBot/pull/4388
  • fix: detect image MIME type from binary data for Anthropic API by @KBVsent in https://github.com/AstrBotDevs/AstrBot/pull/4426
  • fix(webui): optimize markdown rendering and remove redundant code by @clown145 in https://github.com/AstrBotDevs/AstrBot/pull/4415
  • feat(safety): LLM healthy mode by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4431
  • Sanitize invalid platform IDs on load and add UI validation by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4432

New Contributors

  • @Li-shi-ling made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4406
  • @stevessr made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4380
  • @NayukiChiba made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4401
  • @KBVsent made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4426

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.11.2...v4.11.3

v4.11.3 Bug fix
Notable features
  • Enhance reply functionality to support selected text quoting
  • Ensure atomic knowledge base creation with cleanup on failure
  • Add image placeholder for non‑vision models in private chat
Full changelog

What's Changed

Fixes

  • detect image MIME type from binary data for Anthropic API (#4426)
  • correct duplicate word in agent logger warning (#4390)
  • sannitize llm context by modalities (#4367)
  • fix list config being saved as [""] instead of [] after deletion (#4401)

Improvements

  • enhance reply functionality to support selected text quoting (#4387)
  • ensure atomic creation of knowledge base with proper cleanup on failure (#4406)
  • add null check for plugin list in config to fix empty list issue (#4392)
  • add image placeholder for non-vision models to fix no response in private chat (#4411)
  • append version number tag to WARN and ERROR level logs (#4388)
  • optimize plugin readme markdown rendering and remove redundant code (#4415)
  • sanitize invalid platform IDs on load (#4432)
  • LLM healthy mode (#4431)
v4.11.2 Bug fix
Notable features
  • Plugin marketplace search matches display names
Full changelog

What's Changed

Features

  • feat: supports to display plugin CHANGELOG.md (#4337)

Fixes

  • fix: conversation was still saved to the context after stop_event (#4345)
  • fix: on_waiting_llm_request hook did not check message validity (#4349)
    fix(webui): maintain international consistency of the 'repo' button (#4358)

Improvements

  • plugin marketplace search supports matching display names. (#4332)
v4.11.1 Bug fix
Notable features
  • Context automatic compression feature via configuration file
  • `on_waiting_llm_request` event hook added
  • WebUI now supports force updating plugins
Full changelog

What's Changed

hotfix of v4.11.0

修复:

  1. 修复: 部分情况下选择提供商的时候出现”暂无可用提供商的问题“,即使实际上已经配置了模型(提供商)。
  2. 优化:提供商源 ID、提供商 ID 和模型 ID 的提示信息,帮助用户更好理解各个 ID 的含义。

新增

  • 支持上下文自动压缩功能。入口:配置文件 -> 上下文管理策略 -> 超出模型上下文窗口时的处理方式。详情请查看: 自动上下文压缩 (#4322)
  • 新增 on_waiting_llm_request 事件钩子 (#4319)
  • WebUI 支持强制更新插件 (#4293)
  • 社区已提供适用于 Matrix 平台的适配器插件

修复

  • 修复微信公众号中由于 msg.id 数据类型不匹配导致的重试失败问题 (#4292)
  • 修复调用 TTS 命令时出现的数据库锁定错误 (#4313)
  • 修复 Anthropic 提供商中 token 用量始终为 0 的问题 (#4328)

优化

  • 完善共享组件的国际化支持 (#4327)
  • 优化下载大型备份文件时的稳定性,减少失败情况 (#4329)

What's Changed

  • Fix: 修复微信公众号 msg.id 类型不匹配导致重试失败 (#1679) by @YukiRa1n in https://github.com/AstrBotDevs/AstrBot/pull/4292
  • feat(webui): supports force update plugins by @clown145 in https://github.com/AstrBotDevs/AstrBot/pull/4293
  • fix: database is locked error when invoking tts command by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4313
  • ci(stale): Increase the operations-per-run limit for stale actions by @ocetars in https://github.com/AstrBotDevs/AstrBot/pull/4256
  • feat:加入on_waiting_llm_request钩子 by @advent259141 in https://github.com/AstrBotDevs/AstrBot/pull/4319
  • fix(dashboard): complete i18n support for shared components by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/4327
  • fix: token usage is always 0 in anthropic source by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4328
  • feat: context compressor by @kawayiYokami and @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4322
  • feat(webui): enable Range request support for backup downloads by @RC-CHN in https://github.com/AstrBotDevs/AstrBot/pull/4329

New Contributors

  • @clown145 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4293

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.10.6...v4.11.1

v4.11.0 New feature
Notable features
  • Context auto‑compression feature configurable under '上下文管理策略' → '超出模型上下文窗口时的处理方式'
  • `on_waiting_llm_request` event hook added
  • WebUI now supports forced plugin updates
Full changelog

What's Changed

新增

  • 支持上下文自动压缩功能。入口:配置文件 -> 上下文管理策略 -> 超出模型上下文窗口时的处理方式。详情请查看: 自动上下文压缩 (#4322)
  • 新增 on_waiting_llm_request 事件钩子 (#4319)
  • WebUI 支持强制更新插件 (#4293)
  • 社区已提供适用于 Matrix 平台的适配器插件

修复

  • 修复微信公众号中由于 msg.id 数据类型不匹配导致的重试失败问题 (#4292)
  • 修复调用 TTS 命令时出现的数据库锁定错误 (#4313)
  • 修复 Anthropic 提供商中 token 用量始终为 0 的问题 (#4328)

优化

  • 完善共享组件的国际化支持 (#4327)
  • 优化下载大型备份文件时的稳定性,减少失败情况 (#4329)
v4.10.6 Bug fix
Notable features
  • WebUI plugin page remembers view type (list/card) using localStorage
  • Bot adapter config supports Shell Globbing expressions
Full changelog

What's Changed

hotfix of v4.10.4

fix:

  1. ‼️ 部分情况下使用 OpenAI 接口报错与 reasoning_content 有关的问题;

feat:

  1. WebUI 已安装插件页支持记忆视图类型(列表/卡片),列表视图显示插件的人类友好名称和 logo。
  2. 机器人适配器配置规则,支持使用 Shell Globbing 表达式。

What's Changed

  • feat: use shell globbing to match umop config router by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4270
  • fix: reasoning content inject for openai api by @tjc6666666666666 in https://github.com/AstrBotDevs/AstrBot/pull/4284
  • perf: list view mode toggle with localStorage support in ExtensionPage by @Soulter in https://github.com/AstrBotDevs/AstrBot/pull/4288

New Contributors

  • @tjc6666666666666 made their first contribution in https://github.com/AstrBotDevs/AstrBot/pull/4284

Full Changelog: https://github.com/AstrBotDevs/AstrBot/compare/v4.10.5...v4.10.6

Beta — feedback welcome: [email protected]