Skip to content

Releases: AstrBotDevs/AstrBot

v4.25.1

17 May 07:05

Choose a tag to compare

What's Changed

优化

  • 个人微信和钉钉扫码创建成功后,平台配置 ID 会自动追加随机 4 位小写字母后缀,例如 _abcd,降低多个扫码创建配置之间的 ID 冲突概率。

修复

  • 修复 WebUI 全局字体栈未完整覆盖西里尔文字场景的问题,改善俄文等多语言文本显示效果。(#8205

What's Changed (EN)

Improvements

  • Personal WeChat and DingTalk QR setup now append a random four-letter lowercase suffix to the generated platform config ID, such as _abcd, reducing ID conflicts across multiple scan-created configs.

Bug Fixes

  • Fixed the WebUI global font-family stack so Cyrillic text and other multilingual content render more consistently. (#8205)

v4.25.0

15 May 17:42

Choose a tag to compare

What's Changed

修复

  • 修复 Tencent SILK 音频带 \x02 前缀时未被识别,导致后续 ffmpeg 转换失败的问题。(#8009
  • 修复个人微信媒体消息发送失败时错误未向上暴露的问题。(#8175
  • 修复 Claude API 对无参数工具返回 None 参数时工具调用失败的问题。(#8136
  • 修复 register_platform_adapter_typeregister_permission_type 未正确透传 **kwargs 的问题。(#8141
  • 修复 MiniMax TTS timber weight 配置为空或非法 JSON 时可能导致初始化崩溃的问题。

新功能

  • 新增 Ollama Embedding 与 NVIDIA NIM Embedding 提供商适配器。(#8104
  • 新增飞书扫码一键创建能力。(#8191
  • 新增钉钉扫码一键创建能力。(#8198
  • 新增个人微信创建时扫码登录流程,选择个人微信后直接在创建弹窗中显示二维码,登录成功后再保存机器人配置。(#8196

优化

  • 优化个人微信登录态处理:当接口返回 session timeout 时清理旧登录态,避免继续高频请求失效会话。(#8196
  • 优化 AMR 音频转换质量,并复用通用音频转换逻辑简化 Opus 转换实现。(#8153
  • 优化 WebUI 资源选择逻辑:当 data/dist 中的 Dashboard 版本旧于当前核心版本时,优先使用随包内置的 Dashboard,避免旧前端资源造成兼容问题。(#8172
  • Dashboard 新增 Noto Sans 字体支持,改善西里尔文字等多语言文本显示效果。(#8015
  • 优化控制台自动滚动状态同步,刷新后能正确恢复并同步到日志显示组件。(#8186
  • 更新飞书、钉钉、个人微信平台文档,补充扫码创建 / 登录说明、飞书权限开通提醒,以及个人微信新版创建流程。
  • 更新 AI 插件开发文档,明确 context.register_llm_tool() 已弃用,并补充 LLM Tool docstring 参数解析要求。(#8178

What's Changed (EN)

New Features

  • Added one-click QR setup for Feishu / Lark. When creating a bot, users can choose Feishu China or Lark Global, scan the QR code, and automatically fill app_id, app_secret, and domain settings. AstrBot also fetches the bot name for the generated config ID display. (#8191)
  • Added one-click QR setup for DingTalk. Users can create or bind a DingTalk app by scanning a QR code, automatically filling ClientID and ClientSecret, while manual setup remains available. (#8198)
  • Added QR login during Personal WeChat bot creation. The creation dialog now shows the login QR code directly and allows saving after login succeeds. (#8196)
  • Added Ollama Embedding and NVIDIA NIM Embedding provider adapters. (#8104)

Improvements

  • Improved Personal WeChat login-state handling by clearing stale login state when the API reports session timeout, avoiding repeated requests against an invalid session. (#8196)
  • Improved AMR audio conversion quality and simplified Opus conversion by reusing the shared audio conversion path. (#8153)
  • Improved WebUI asset selection: when data/dist contains a Dashboard older than the current core version, AstrBot now prefers the bundled Dashboard to avoid stale frontend compatibility issues. (#8172)
  • Added Noto Sans support to the Dashboard for better Cyrillic and multilingual text rendering. (#8015)
  • Improved console auto-scroll state synchronization so the restored preference is applied to the log display component after refresh. (#8186)
  • Updated Feishu / Lark, DingTalk, and Personal WeChat platform docs with QR setup / login instructions, Feishu permission reminders, and the new Personal WeChat creation flow.
  • Updated the AI plugin development guide to clarify that context.register_llm_tool() is deprecated and to document the required LLM Tool docstring argument format. (#8178)

Bug Fixes

  • Fixed Tencent SILK audio with a leading \x02 byte not being detected, which could cause ffmpeg conversion failures. (#8009)
  • Fixed Personal WeChat media send failures not being surfaced properly. (#8175)
  • Fixed tool calls failing when the Claude API returns None arguments for no-parameter tools. (#8136)
  • Fixed register_platform_adapter_type and register_permission_type not forwarding **kwargs correctly. (#8141)
  • Fixed MiniMax TTS initialization crashes when timber weight config is empty or invalid JSON.

v4.24.5

13 May 17:19

Choose a tag to compare

What's Changed

优化

  • Dashboard 更新流程新增两阶段下载进度,升级项目时会先下载 WebUI,再下载项目代码,并在界面中展示每个阶段的进度。
  • 新增更新后重启等待体验:WebUI 会在更新前记录 AstrBot 启动时间,更新完成后展示正在重启状态,并轮询启动时间变化后自动刷新页面。
  • 新增 ASTRBOT_DASHBOARD_INITIAL_PASSWORD 环境变量,可为首次生成的 Dashboard 密码指定初始值。
  • astrbot init 现在会识别 ASTRBOT_DASHBOARD_INITIAL_PASSWORD,并在初始化阶段创建 data/cmd_config.json 写入哈希后的初始密码,便于自动化部署。
  • 优化 Dashboard 更新项目弹窗,减少对用户无用的信息,保留独立更新 WebUI 到最新版本的兜底入口,并将其收起到高级设置中。
  • 优化 Release 列表加载状态和预发布版本提示逻辑:Release 未加载完成时显示表格 loading,第一页没有预发布版本时不再显示提醒。
  • 优化升级后旧版 Dashboard 密码登录失败时的提示,引导用户参考 FAQ 处理升级后密码正确但无法登录的情况。
  • 更新 FAQ 文档,补充升级后密码正确但无法登录时可删除 data/dist 后重启 AstrBot 的处理方案。

修复

  • 修复 Shipyard Neo 在显式配置 profile 时可能未正确尊重该配置的问题。(#8167
  • 修复 message_tools 在目标路径不存在时未抛出异常并阻止消息发送的问题。(#8149

What's Changed (EN)

Improvements

  • Added two-stage download progress to the Dashboard update flow. Project upgrades now download the WebUI first, then the core project code, with per-stage progress shown in the UI.
  • Added a restart-waiting experience after updates. The WebUI records AstrBot's start time before updating, shows a restarting state after the update completes, polls for a changed start time, and refreshes automatically.
  • Added the ASTRBOT_DASHBOARD_INITIAL_PASSWORD environment variable to specify the first generated Dashboard password.
  • astrbot init now recognizes ASTRBOT_DASHBOARD_INITIAL_PASSWORD and creates data/cmd_config.json during initialization with the hashed initial password, making automated deployments easier.
  • Improved the Dashboard project update dialog by hiding low-value details, keeping the standalone WebUI update fallback, and moving it under Advanced Settings.
  • Improved Release list loading and prerelease notices: the table now shows a loading state before releases are loaded, and the prerelease warning is hidden when the first page has no prerelease entries.
  • Improved the login failure message for legacy Dashboard password upgrade cases, guiding users to the FAQ when a correct password no longer works after upgrading.
  • Updated the FAQ with recovery steps for upgrade cases where the correct password cannot log in: delete data/dist and restart AstrBot.

Bug Fixes

  • Fixed Shipyard Neo so explicit profile configuration is respected. (#8167)
  • Fixed message_tools so missing target paths raise an exception and block message sending. (#8149)

v4.24.4

12 May 17:49

Choose a tag to compare

What's Changed

优化

  • 强化 Dashboard 登录与密码安全:首次启动生成强随机初始密码,密码存储升级为 PBKDF2,保留旧版 MD5 兼容升级流程,并在需要时引导用户完成安全升级。(#7338
  • 增强插件页面国际化能力,插件页面、扩展页和相关 Dashboard 文案可更好地按当前语言展示。(#7998
  • 新增 WebUI 指标开关配置 disable_metrics,可在 Dashboard 中关闭指标统计。(#7946
  • 新增控制台自动滚动开关持久化,刷新页面后保留用户选择。(#8024
  • 新增思考内容与最终回复之间的视觉分隔,提升消息阅读体验。(#8059
  • 优化插件安装、备份恢复与路径冲突处理,增加自愈逻辑并减少临时目录残留和错误追踪误报。(#7737, #8148
  • 优化 Windows 更新器 zip 根目录归一化与 Python 工具编码处理,提升 Windows 环境兼容性。(#8019
  • 优化 CUA 文件上传逻辑,改用原生文件接口处理上传。(#8069
  • 优化 CUA 空闲沙盒会话过期能力,并在 Dashboard 暴露 CUA idle timeout 配置。(#8074, #8075
  • 优化 Gemini Provider,使其使用受管理的 httpx client。(#8112
  • 优化 Dashboard 移动端布局、控制台日志级别对齐,以及列表项操作按钮显示逻辑。(#7988, #8081

修复

  • 修复知识库在空 prompt 下仍触发检索的问题。(#8073
  • 修复 Discord 命令同步达到配额时会影响平台启动的问题。(#8061
  • 修复 GitHub fallback 下载 URL 中资源文件名错误的问题。(#8046
  • 修复文件夹重命名后父级关系丢失的问题。(#7974
  • 修复配置缺失 websearch_firecrawl_key,以及百度搜索关闭时仍显示 key 字段的问题。(#8012, #7992
  • 修复 T2I 模板内容未校验可能导致 Jinja2 SSTI 注入的问题。(#8077
  • 修复贡献者图片数量上限、API Key 文档示例、插件发布 16MB 限制说明、README 徽章和多处插件开发文档错误。(#8000, #7977, #8108, #8079, #7979, #8001, #8129, #8166

What's Changed (EN)

New Features

  • Added plugin changelogs and a plugin update system, allowing plugin detail pages to show version update information and supporting a more complete plugin update flow.
  • Enhanced plugin page internationalization so plugin pages, extension views, and related Dashboard copy can better follow the current language. (#7998)
  • Added the disable_metrics WebUI config option to disable metrics collection from the Dashboard. (#7946)
  • Added persisted console auto-scroll preference. (#8024)
  • Added a visual separator between thinking content and the final response. (#8059)
  • Added idle expiration for CUA sandbox sessions and exposed the CUA idle timeout setting in the Dashboard. (#8074, #8075)

Improvements

  • Strengthened Dashboard authentication and password security: initial passwords are generated randomly, password storage is upgraded to PBKDF2, legacy MD5 compatibility is preserved for upgrades, and users are guided through security upgrades when required. (#7338)
  • Improved plugin installation, backup restore, and path-conflict handling with self-healing behavior and fewer temporary-directory leftovers or false error reports. (#7737, #8148)
  • Improved Windows updater zip-root normalization and Python tool encoding handling for better Windows compatibility. (#8019)
  • Improved CUA uploads by using native file interfaces. (#8069)
  • Improved the Gemini Provider to use a managed httpx client. (#8112)
  • Improved Dashboard mobile layout, console log-level alignment, and list-item action-button visibility. (#7988, #8081)

Bug Fixes

  • Fixed missing validation for T2I template content that could allow Jinja2 SSTI injection. (#8077)
  • Fixed knowledge base retrieval being triggered for blank prompts. (#8073)
  • Fixed Discord startup being interrupted by command quota handling. (#8061)
  • Fixed incorrect asset filenames in GitHub fallback download URLs. (#8046)
  • Fixed folder parent relationships being lost on rename. (#7974)
  • Fixed missing websearch_firecrawl_key in the default config and hidden Baidu web-search keys when disabled. (#8012, #7992)
  • Fixed contributor image limits, API Key examples, plugin publishing size-limit docs, README badges, and multiple plugin development guide issues. (#8000, #7977, #8108, #8079, #7979, #8001, #8129, #8166)

What's Changed

  • fix(docs): 修复文档中的多处错误,包括死链、拼写错误、步骤编号等 by @lingyun14beta in #7979
  • feat: enhance plugin page internationalization by @Soulter in #7998
  • fix: encoding issue in windows when using python tool by @elecvoid243 in #7995
  • fix: update contributors image max count to 300 by @Blueteemo in #8000
  • fix: resolve path conflicts and improve self-healing during backup restore and plugin installation by @SXP-Simon in #7737
  • fix: preserve folder parent and description on rename by @Fronut in #7974
  • fix(config): add missing websearch_firecrawl_key to DEFAULT_CONFIG by @Midwich in #8012
  • fix(config): hide Baidu web search key when disabled by @RhoninSeiei in #7992
  • Fix typo in API Key environment variable example by @168SDTH in #7977
  • feat: 增加 WebUI 配置选项禁用匿名使用统计 by @Blueteemo in #7946
  • feat(console): persist auto-scroll toggle state in localStorage by @RC-CHN in #8024
  • fix windows updater zip root path normalization by @zouyonghe in #8019
  • fix(core): use correct asset filename in GitHub fallback download URL by @RC-CHN in #8046
  • feat: add visual separator between thinking content and response by @Pleiades1726 in #8059
  • fix(cua): use native file interfaces for uploads by @zouyonghe in #8069
  • fix: skip KB retrieval for blank prompts by @he-yufeng in #8073
  • feat(cua): expire idle sandbox sessions by @zouyonghe in #8074
  • fix(config): expose cua idle timeout in dashboard by @zouyonghe in #8075
  • fix(t2i): validate template content to prevent Jinja2 SSTI injection by @RC-CHN in #8077
  • docs: update Trendshift badge to AstrBotDevs repo (#21369) for all README languages by @Pleiades1726 in #8079
  • Fix(ui): always show actions btn instead of on hover in OutlinedActionListItem by @M1LKT in #8081
  • docs: add 16MB size limit note for plugin publishing by @Pleiades1726 in #8108
  • chore(deps): bump pnpm/action-setup from 6.0.3 to 6.0.5 in the github-actions group by @dependabot[bot] in #8004
  • fix(docs):多份文档汉译英并整理 by @lingyun14beta in #8001
  • fix: fix console log level alignment and mobile layout issue by @lingyun14beta in #7988
  • fix(provider): force Gemini chat client to use managed httpx client by @zouyonghe in #8112
  • fix(star): 修复重复安装插件时临时目录未清理及错误追踪误报问题 by @NayukiChiba in #8148
  • Updat...
Read more

v4.24.2

03 May 16:24

Choose a tag to compare

我们将推出更好的 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...
Read more

v4.24.1

03 May 15:03

Choose a tag to compare

我们将推出更好的 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...
Read more

v4.23.6

27 Apr 05:09

Choose a tag to compare

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

New Contributors

Full Changelog: v4.23.5...v4.23.6

v4.23.5

23 Apr 14:40

Choose a tag to compare

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

New Contributors

Full Changelog: v4.23.2...v4.23.5

v4.23.2

19 Apr 09:52

Choose a tag to compare

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

New Contributors

Read more

v4.23.1

13 Apr 15:42

Choose a tag to compare

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](https://github.com/AstrBotDevs/AstrBot/comm...
Read more