github AstrBotDevs/AstrBot v4.23.0

12 hours ago
  • 更新日志(简体中文)
  • Changelog(English)

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

New Contributors

Full Changelog: v4.22.2...v4.23.0

Don't miss a new AstrBot release

NewReleases is sending notifications on new releases.