Skip to content

v4.23.0-beta.1

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Apr 13:54
· 13 commits to master since this release

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 #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

New Contributors

Full Changelog: v4.22.2...v4.23.0-beta.1