·
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)
- 移除
lxml与beautifulsoup4依赖,降低安装体积与依赖复杂度。(#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
lxmlandbeautifulsoup4dependencies 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
sendMessageDraft400 spam caused by empty text. (#7398) - Fixed a
KeyErrorin Telegram command collection when a plugin handler is missing fromstar_map. (#7405) - Cleaned up QQ Official WebSocket shutdown handling. (#7395)
- Removed the unsupported
idfield from Gemini FunctionResponse payloads. (#7386) - Fixed empty model output handling that could misfire when using Gemini. (#7377)
- Skipped
FunctionCallingConfigwhen 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
faissimports 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_knowledgebasein 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
contentto 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
- @No-22-Github made their first contribution in #7048
- @WenqiOfficial made their first contribution in #7247
- @Thelia-Lzr made their first contribution in #7279
- @kaixinyujue made their first contribution in #7202
- @SoloLevelingAI made their first contribution in #7054
- @richard950825-sys made their first contribution in #7278
- @KagurazakaNyaa made their first contribution in #7369
- @Aster-amellus made their first contribution in #7400
- @michealmachine made their first contribution in #7405
- @kaiisfree made their first contribution in #7386
- @2doright made their first contribution in #7448
- @MinaraAgent made their first contribution in #6505
Full Changelog: v4.22.2...v4.23.0-beta.1