Releases: AstrBotDevs/AstrBot
Release list
v4.27.4
4.27.4 - 2026-08-20
The struggle itself toward the heights is enough to fill a man's heart. One must imagine Sisyphus happy.
走向高处的挣扎本身就足以填满一个人的心灵。我们必须想象西西弗斯是幸福的。
Added
- Displayed plugin update times in marketplace details. (#9690)
- Logged the effective Windows local runtime shell to simplify environment diagnosis. (#9648)
Fixed
- Fixed an issue where single preference reads could preload the entire preferences table in some cases, causing excessive memory and database overhead. (#9747)
- Included JSON cards in group-chat context and added an LLM metadata fallback endpoint. (#9655, #9725)
- Detected audio formats from file contents and converted Telegram audio files into Record components. (#9612, #9702)
- Kept the chat sidebar accessible at medium viewport widths and adapted trace colors to the active Dashboard theme. (#9698, #9688)
- Preserved the Dashboard password while
password_change_requiredis set. (#9665) - Separated reasoning metadata from provider configuration. (#9699)
- Removed the 10-file limit for knowledge-base uploads. (#9701)
- Accepted synced Weixin Kefu messages that omit
open_kfidinstead of failing webhook processing.
Maintenance
- Migrated statistics and Misskey visibility handling away from deprecated interfaces. (#9658, #9674)
- Added plugin attribution guidance and corrected the self-hosted text-to-image setup documentation. (#9720)
- Updated the CodeQL GitHub Action. (#9721)
中文
新增
修复
- 修复部分情况下读取单个偏好设置时会预加载整张偏好设置表,导致内存与数据库开销过高的问题。 (#9747)
- 将 JSON 卡片纳入群聊上下文,并为 LLM 元数据增加回退接口。 (#9655, #9725)
- 根据文件内容识别音频格式,并将 Telegram 音频文件转换为 Record 组件。 (#9612, #9702)
- 确保中等宽度视口下聊天侧边栏仍可访问,并使 Dashboard 链路追踪颜色适配当前主题。 (#9698, #9688)
- 在设置
password_change_required时保留 Dashboard 密码,不再意外轮换。 (#9665) - 将推理元数据与供应商配置分离。 (#9699)
- 移除知识库每次最多上传 10 个文件的限制。 (#9701)
- 微信客服同步消息缺少
open_kfid时不再导致 Webhook 处理失败。
维护
v4.27.3
[4.27.3] - 2026-08-13
E quindi uscimmo a riveder le stelle.
我们从那儿走出去,重新见到了群星。
Added
- AstrBot Desktop now uses passwordless sessions and opens the WebUI directly without requiring a login. (#9585)
- Added the effective AstrBot time to settings and made cron jobs inherit the configured timezone. (#9579, #9581)
- Expanded WebChat drag-and-drop uploads to the whole chat area. (#9564)
- Added a one-click option to restore plugin configuration defaults. (#9599)
- Added PowerShell 7 support for the Windows local shell. (#9622)
- Added download-count sorting to the plugin marketplace. (#9570)
- Added chunked file uploads for QQ Official to support large files more reliably. (#9646)
- Used favicons as the default plugin icon and improved dark-theme text contrast. (#9547, #9643)
Changed
- Migrated SharedPreferences and configuration preference access to asynchronous, non-blocking paths, improving performance in affected flows and reducing the risk of apparent freezes and deadlocks. (#9582, #9584, #9649)
- Stabilized knowledge base document search, distinguished loading failures from empty results, restored complete retrieval results, and supported UUID fallback when resolving knowledge bases by name. (#9577, #9578, #9618, #9636)
- Refreshed in-memory provider configuration after deletion and synchronized plugin Skill state across the Dashboard. (#9568, #9596)
- Prevented transient project sessions from appearing in ChatUI and restored missing WebChat sessions. (#9587, #9607)
- Sanitized MCP tool names for LLM APIs and treated empty configuration schemas as having no configurable items. (#9534, #9619)
- Warned when an explicitly configured WebUI distribution is stale. (#9518)
- Recorded agent end times before publishing statistics and cancelled stopped agent runs immediately. (#9597, #9602)
- Used static thumbnails for animated Telegram stickers and converted Telegram video notes into video components. (#9610, #9627)
- Propagated QQ media upload failures instead of silently continuing. (#9644)
Maintenance
- Updated grouped GitHub Actions dependencies, improved pipeline scheduler typing, and stabilized OpenAI HTTP client tests. (#9620, #9621)
中文
新增
- AstrBot 桌面端实行免登录机制,无需登录即可直接进入 WebUI。 (#9585)
- Windows 本地 Shell 新增 PowerShell 7 支持。 (#9622)
- QQ 官方机器人新增分片文件上传,修复大文件无法正常发送的问题。 (#9646)
- 将 WebChat 拖放上传区域扩展至整个聊天区域。 (#9564)
- 新增一键恢复插件配置默认值的功能。 (#9599)
- 在设置中展示 AstrBot 的实际生效时间,并使定时任务继承已配置的时区。 (#9579, #9581)
- 插件市场新增按下载量排序。 (#9570)
- 使用 favicon 作为插件默认图标,并改善深色主题的文字对比度。 (#9547, #9643)
修复
- 提升了一部分性能,减少潜在假死和死锁情况(将 SharedPreferences 与配置偏好访问迁移到异步、非阻塞路径)。 (#9582, #9584, #9649)
- 稳定知识库文档搜索,区分加载失败与空结果,恢复完整检索结果,并在按名称查找知识库时支持 UUID 回退。 (#9577, #9578, #9618, #9636)
- 删除提供商配置后刷新内存状态,并同步 Dashboard 中的插件 Skill 状态。 (#9568, #9596)
- 防止临时项目会话出现在 ChatUI 会话列表中,并恢复缺失的 WebChat 会话。 (#9587, #9607)
- 清理发送给 LLM API 的 MCP 工具名称,并将空配置 Schema 正确视为无配置项。 (#9534, #9619)
- 显式配置的 WebUI 发行文件过期时给出警告。 (#9518)
- 在发布统计前记录 Agent 结束时间,并立即取消已停止的 Agent 运行。 (#9597, #9602)
- Telegram 动态贴纸改用静态缩略图,并将 Telegram 视频留言转换为视频组件。 (#9610, #9627)
- QQ 媒体上传失败时正确向上传递错误,不再静默继续。 (#9644)
维护
- AstrBot 桌面端使用 Cloudflare R2 作为更新源。
- 更新 GitHub Actions 依赖组,完善流水线调度器类型标注,并稳定 OpenAI HTTP 客户端测试。 (#9620, #9621)
What's Changed
- fix: inherit configured timezone for cron jobs by @RC-CHN in #9579
- feat: show effective AstrBot time in settings by @RC-CHN in #9581
- Refactor/remove sync shared preferences by @RC-CHN in #9582
- refactor: migrate config preferences to async by @RC-CHN in #9584
- feat: support passwordless desktop sessions by @Soulter in #9585
- fix(kb): stabilize document search behavior by @lxfight in #9577
- fix: use favicon as default plugin icon by @wcqqq1214 in #9547
- feat: expand webchat drag-and-drop upload to the whole chat area by @wcqqq1214 in #9564
- fix(kb): distinguish loading errors from empty states by @lxfight in #9578
- fix: refresh in-memory provider config after deleting provider by @Enterpr1se0 in #9568
- fix: prevent transient project session in ChatUI session list by @wcqqq1214 in #9587
- fix: sanitize MCP tool names for LLM API by @wcqqq1214 in #9534
- fix: warn when an explicitly configured WebUI dist is stale by @JosephTian876 in #9518
- fix: sync plugin skill state across the dashboard by @Soulter in #9596
- fix: capture agent end_time before emitting agent_stats by @wcqqq1214 in #9597
- feat(webui): add plugin config default reset by @Soulter in #9599
- fix: cancel stopped agent runs immediately by @Soulter in #9602
- fix(kb): restore complete knowledge base retrieval results by @lxfight in #9618
- fix(telegram): use static thumbnail for animated stickers by @Trainingcqy in #9610
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #9620
- fix: treat empty config schema as no config items by @wcqqq1214 in #9619
- refactor(core): add type hints to pipeline scheduler by @PersonalViolet in #9621
- fix: convert Telegram video notes into a Video component by @Trainingcqy in #9627
- fix: restore missing WebChat sessions by @Alchuang22-dev in #9607
- feat: support PowerShell 7 for Windows local shell by @wcqqq1214 in #9622
- feat: add download-count sorting to plugin marketplace by @Sisyphbaous-DT-Project in #9570
- fix: improve dark theme text contrast by @Soulter in #9643
- fix(qq_official): propagate QQ media upload failures by @Soulter in #9644
- feat(qqofficial): add chunked file uploads by @Soulter in #9646
- fix(kb): support UUID fallback in get_kb_by_name and warn on missing KBs by @lxfight in #9636
- fix: prevent SharedPreferences deadlocks by @Soulter in #9649
- chore: bump version to 4.27.3 by @Soulter in #9650
New Contributors
- @JosephTian876 made their first contribution in #9518
- @Alchuang22-dev made their first contribution in #9607
Full Changelog: v4.27.2...v4.27.3
v4.27.2
4.27.2 - 2026-08-05
Fixed
- Accepted dashboard session tokens from case-insensitive Bearer authorization headers when downloading backups. (#9525)
- Simplified capability lists by removing redundant source badges and refined welcome card borders. (#9541)
- Used the current AstrBot favicon on the dashboard login page. (#9537)
- Fixed related display issues in the AstrBot Desktop WebUI.
Maintenance
- Isolated administrator API key configuration in the test suite. (#9539)
- Updated the CodeQL, Docker login, and stale GitHub Actions. (#9532)
- Split bug report and feature request templates into English and Chinese versions, added archive upload support for reproductions, and removed an unsupported attachment type. (#9536, #9544)
中文
修复
- 下载备份时支持从不区分大小写的 Bearer 授权请求头读取 Dashboard 会话令牌。 (#9525)
- 移除能力列表中冗余的来源标签,并优化欢迎页卡片边框样式。 (#9541)
- Dashboard 登录页改用当前 AstrBot favicon。 (#9537)
- 修复 AstrBot Desktop 端 WebUI 的相关显示问题。
维护
v4.27.1
4.27.1 - 2026-08-02
Per aspera ad astra.
Added
-
Added
-y/--yestoastrbot initso unattended deployments can skip the installation confirmation prompt. (#9514) -
Added an independent stateless Responses API provider for OpenAI-compatible endpoints, including OpenAI and DeepSeek templates, full-history replay for reasoning and tool calls, and Responses API as the default for new xAI providers. (#9515)
-
Added persistent group message history with configurable retention, normalized storage, and an LLM tool for searching and retrieving messages from the current group. (#9465)
-
Added managed local shell sessions with incremental output, stdin writes, interruption, termination, timeouts, and lifecycle cleanup; Windows sessions now use PowerShell and line-oriented programs support explicit line writes. (#9470, #9471, #9501)
-
Added a unified extension and persona management experience with shared capability selectors, routed plugin workspaces, and clearer MCP server, tool, and Skill provenance and status. (#9499)
-
Added built-in
skill-creator,documents,pdf, andspreadsheetsSkills for creating reusable Skills and working with office documents, PDFs, and spreadsheets. -
Added installation and updates for plugins hosted in generic HTTP(S), SSH, and SCP-style Git repositories. (#9493)
-
Converted ChatUI pastes longer than 10,000 characters into text attachments. (#9496)
-
Added sensitive API key sub-scopes for administrator chat access and administrator configuration changes, plus generated scope-to-endpoint reference documentation. (#9503)
Changed
- Improved knowledge base retrieval quality with normalized dense/sparse relative-score fusion and source-document diversification. (#9455)
- Enriched knowledge base embeddings with document context and preserved heading paths. (#9457)
- Centralized core, dashboard, and plugin update flows behind a safer updater architecture with package and metadata verification. (#9493)
- Formalized existing deprecated APIs with runtime warnings and corrected the OpenAI tool-call conversion method name while retaining a backward-compatible alias. (#9468, #9469)
- Refined the Skills cards, persona management, extension workspace, and project chat composer layouts.
- Used compact timestamp-based transient filenames and clearer workspace-relative path guidance to reduce tool path token usage. (#9505)
- Returned concise plain-text results for completed local shell commands while retaining managed-session metadata for active commands. (#9507)
Fixed
-
Included the built-in
skill-creator,documents,pdf, andspreadsheetsSkills announced in v4.27.0 in source and Docker distributions, with read-only preset discovery and local override support. (#9517) -
Corrected capability chip colors in dark mode.
-
Deferred the BM25 dependency import so AstrBot can start and use FTS5 retrieval on CPUs incompatible with the installed NumPy build. (#9435)
-
Made knowledge base rank fusion deterministic and surfaced vLLM rerank response failures. (#9454)
-
Preserved ChatUI streaming response tails and prevented QQ Official streaming buffers from losing leading characters. (#9439, #9444)
-
Localized future task timestamps with the system timezone. (#9462)
-
Isolated managed local shell sessions by sender, while allowing conversation administrators to manage sessions in their conversation. (#9479)
-
Hardened API key authorization boundaries for administrator identities, sensitive configuration, and project workspace paths. (#9503)
-
Persisted terminal tool calls, results, and trusted token usage when no assistant response is produced. (#9500)
-
Prevented expanded ChatUI composers, replies, and attachments from overlapping the latest messages. (#9496)
-
Removed the double scrollbar from the mobile plugin configuration dialog. (#9491)
-
Recreated the tool image cache directory after storage cleanup so new images can still be saved. (#9490)
-
Kept outbound TTS and QQ Official audio available until global temporary-file cleanup so asynchronous downloads do not fail. (#9506)
Documentation
- Added QQ community groups 15 and 16 to the community documentation.
Maintenance
-
Kept Responses API test fixtures compatible with the latest OpenAI SDK token-usage schema.
-
Removed an unused tool image cleanup path in favor of the global temporary-directory cleaner. (#9504)
中文
新增
-
为
astrbot init新增-y/--yes选项,便于无人值守部署跳过安装确认提示。 (#9514) -
新增独立、无状态的 OpenAI 兼容 Responses API 供应商,提供 OpenAI 和 DeepSeek 模板,支持完整重放推理与工具调用历史,并将 Responses API 设为新建 xAI 供应商的默认接口。 (#9515)
-
新增可配置保留数量的群消息历史持久化能力,支持标准化存储,并提供供 LLM 搜索和读取当前群历史消息的工具。 (#9465)
-
新增本地托管 Shell 会话,支持增量输出、标准输入、打断、终止、超时和生命周期清理;Windows 会话改用 PowerShell,并支持显式按行写入。 (#9470, #9471, #9501)
-
统一扩展与人格管理体验,提供共享的能力选择器、路由化插件工作区,以及更清晰的 MCP 服务、工具和 Skill 来源与状态展示。 (#9499)
-
新增内置的
skill-creator、documents、pdf和spreadsheetsSkills,支持创建可复用 Skill,以及处理办公文档、PDF 和电子表格。 -
支持从通用 HTTP(S)、SSH 和 SCP 风格 Git 仓库安装和更新插件。 (#9493)
-
ChatUI 粘贴超过 10,000 字符的文本时,自动转换为文本附件。 (#9496)
-
新增管理员聊天访问和管理员配置修改的敏感 API Key 子权限,并生成权限到接口的参考文档。 (#9503)
变更
- 通过归一化稠密/稀疏相对分数融合和来源文档去重,提升知识库检索质量。 (#9455)
- 使用文档上下文增强知识库 Embedding,并保留标题层级路径。 (#9457)
- 将核心、Dashboard 和插件更新流程统一到更安全的更新架构中,并增加安装包与元数据校验。 (#9493)
- 为已有废弃 API 增加运行时警告,修正 OpenAI 工具调用转换方法名,同时保留向后兼容别名。 (#9468, #9469)
- 优化 Skill 卡片、人格管理、扩展工作区和项目聊天输入区的布局。
- 使用紧凑的时间戳临时文件名并明确工作区相对路径指引,减少工具路径占用的 Token。 (#9505)
- 对已完成的本地 Shell 命令返回精简纯文本结果,对运行中的命令继续保留托管会话元数据。 (#9507)
修复
-
将 v4.27.0 公告中的内置
skill-creator、documents、pdf和spreadsheetsSkills 实际加入源码与 Docker 发行版,支持作为只读预置能力自动发现,并允许同名本地 Skill 覆盖。 (#9517) -
修正深色模式下的能力标签颜色。
-
延迟导入 BM25 依赖,使安装的 NumPy 与 CPU 不兼容时,AstrBot 仍可启动并使用 FTS5 检索。 (#9435)
-
确保知识库排名融合结果稳定,并正确暴露 vLLM 重排序响应错误。 (#9454)
-
使用系统时区处理未来任务时间。 (#9462)
-
按发送者隔离本地托管 Shell 会话,同时允许会话管理员管理所在会话中的 Shell 会话。 (#9479)
-
加固 API Key 对管理员身份、敏感配置和项目工作区路径的授权边界。 (#9503)
-
在没有助手回复时,仍持久化终端工具调用、结果和可信 Token 用量。 (#9500)
-
避免展开后的 ChatUI 输入区、回复和附件遮挡最新消息。 (#9496)
-
移除移动端插件配置弹窗中的双重滚动条。 (#9491)
-
存储清理后自动重建工具图片缓存目录,确保仍可保存新图片。 (#9490)
-
将 TTS 和 QQ 官方机器人出站音频保留到全局临时文件清理,避免异步下载失败。 (#9506)
文档
- 在社区文档中新增 QQ 群 15 和 16。
维护
-
使 Responses API 测试数据兼容最新 OpenAI SDK 的 Token 用量结构。
-
移除未使用的工具图片独立清理逻辑,统一交由全局临时目录清理器管理。 (#9504)
What's Changed
- fix: lazily import BM25 dependency by @Soulter in #9435
- fix: preserve streaming response tail by @wcqqq1214 in #9439
- feat: implement group message history persistence and retrieval features by @Soulter in #9465
- refactor: formalize deprecation markings with @deprecated decorators by @RC-CHN in #9468
- refactor: rename LLMResponse.to_openai_to_calls_model to to_openai_tool_calls_model by @RC-CHN in #9469
- feat: add managed local shell sessions by @Soulter in #9470
- feat: use PowerShell for Windows local shell by @Soulter in #9471
- fix: localize future task times by @wcqqq1214 in #9462
- perf: enrich knowledge base embeddings with document context by @lxfight in #9457
- fix: correct knowledge base ranking behavior by @lxfight in #9454
- fix(qqofficial): prevent leading char loss in streaming buffer by @OWWZO in #9444
- fix: isolate local shell sessions by sender by @Soulter in #9479
- refactor: simplify updater architecture by @Soulter in #9493
- fix: improve ChatUI composer behavior by @Soulter in #9496
- feat: unify extension and persona management by @Soulter in #9499
- fix: support line writes for managed shell sessions by @Soulter in #9501
- fix: harden API key scope boundaries by @Soulter in #9503
- fix: persist terminal tool history and token usage by @xiaoxuan010 in #9500
- fix: resolve double scrollbar in plugin config dialog by @Rain-0x01-39 in #9491
- refactor: remove unused tool image cleanup by @Soulter in #9504
- fix(core): recreate tool image cache directory after cleanup by @piexian in #9490
- refactor: reduce path token usage by @Soulter in #9505
- fix: simplify completed shell command output by @Soulter in #9507
- fix: defer cleanup of outbound audio files by @Soulter in #9506
- perf: improve knowledge base retrieval quality by @lxfight in #9455
- chore: bump version to 4.27.0 by @Soulter in #9509
- feat: add yes option to init command by @Soulter in #9514
- feat: add stateless Responses API provider by @Soulter in #9515
- feat: add built-in skill creator and document skills by @Soulter in #9517
- chore: bump version to 4.27.1 by @Soulter in #9520
New Contributors
- @OWWZO made their first contribution in #9444
- @xiaoxuan010 made their first contribution in #9500...
v4.27.0
4.27.0 - 2026-08-02
Per aspera ad astra.
Added
- Added persistent group message history with configurable retention, normalized storage, and an LLM tool for searching and retrieving messages from the current group. (#9465)
- Added managed local shell sessions with incremental output, stdin writes, interruption, termination, timeouts, and lifecycle cleanup; Windows sessions now use PowerShell and line-oriented programs support explicit line writes. (#9470, #9471, #9501)
- Added a unified extension and persona management experience with shared capability selectors, routed plugin workspaces, and clearer MCP server, tool, and Skill provenance and status. (#9499)
- Added built-in
skill-creator,documents,pdf, andspreadsheetsSkills for creating reusable Skills and working with office documents, PDFs, and spreadsheets. - Added installation and updates for plugins hosted in generic HTTP(S), SSH, and SCP-style Git repositories. (#9493)
- Converted ChatUI pastes longer than 10,000 characters into text attachments. (#9496)
- Added sensitive API key sub-scopes for administrator chat access and administrator configuration changes, plus generated scope-to-endpoint reference documentation. (#9503)
Changed
- Improved knowledge base retrieval quality with normalized dense/sparse relative-score fusion and source-document diversification. (#9455)
- Enriched knowledge base embeddings with document context and preserved heading paths. (#9457)
- Centralized core, dashboard, and plugin update flows behind a safer updater architecture with package and metadata verification. (#9493)
- Formalized existing deprecated APIs with runtime warnings and corrected the OpenAI tool-call conversion method name while retaining a backward-compatible alias. (#9468, #9469)
- Refined the Skills cards, persona management, extension workspace, and project chat composer layouts.
- Used compact timestamp-based transient filenames and clearer workspace-relative path guidance to reduce tool path token usage. (#9505)
- Returned concise plain-text results for completed local shell commands while retaining managed-session metadata for active commands. (#9507)
Fixed
- Deferred the BM25 dependency import so AstrBot can start and use FTS5 retrieval on CPUs incompatible with the installed NumPy build. (#9435)
- Made knowledge base rank fusion deterministic and surfaced vLLM rerank response failures. (#9454)
- Preserved ChatUI streaming response tails and prevented QQ Official streaming buffers from losing leading characters. (#9439, #9444)
- Localized future task timestamps with the system timezone. (#9462)
- Isolated managed local shell sessions by sender, while allowing conversation administrators to manage sessions in their conversation. (#9479)
- Hardened API key authorization boundaries for administrator identities, sensitive configuration, and project workspace paths. (#9503)
- Persisted terminal tool calls, results, and trusted token usage when no assistant response is produced. (#9500)
- Prevented expanded ChatUI composers, replies, and attachments from overlapping the latest messages. (#9496)
- Removed the double scrollbar from the mobile plugin configuration dialog. (#9491)
- Recreated the tool image cache directory after storage cleanup so new images can still be saved. (#9490)
- Kept outbound TTS and QQ Official audio available until global temporary-file cleanup so asynchronous downloads do not fail. (#9506)
Documentation
- Added QQ community groups 15 and 16 to the community documentation.
Maintenance
- Removed an unused tool image cleanup path in favor of the global temporary-directory cleaner. (#9504)
中文
新增
- 新增可配置保留数量的群消息历史持久化能力,支持标准化存储,并提供供 LLM 搜索和读取当前群历史消息的工具。 (#9465)
- 新增本地托管 Shell 会话,支持增量输出、标准输入、打断、终止、超时和生命周期清理;Windows 会话改用 PowerShell,并支持显式按行写入。 (#9470, #9471, #9501)
- 统一扩展与人格管理体验,提供共享的能力选择器、路由化插件工作区,以及更清晰的 MCP 服务、工具和 Skill 来源与状态展示。 (#9499)
- 新增内置的
skill-creator、documents、pdf和spreadsheetsSkills,支持创建可复用 Skill,以及处理办公文档、PDF 和电子表格。 - 支持从通用 HTTP(S)、SSH 和 SCP 风格 Git 仓库安装和更新插件。 (#9493)
- ChatUI 粘贴超过 10,000 字符的文本时,自动转换为文本附件。 (#9496)
- 新增管理员聊天访问和管理员配置修改的敏感 API Key 子权限,并生成权限到接口的参考文档。 (#9503)
变更
- 通过归一化稠密/稀疏相对分数融合和来源文档去重,提升知识库检索质量。 (#9455)
- 使用文档上下文增强知识库 Embedding,并保留标题层级路径。 (#9457)
- 将核心、Dashboard 和插件更新流程统一到更安全的更新架构中,并增加安装包与元数据校验。 (#9493)
- 为已有废弃 API 增加运行时警告,修正 OpenAI 工具调用转换方法名,同时保留向后兼容别名。 (#9468, #9469)
- 优化 Skill 卡片、人格管理、扩展工作区和项目聊天输入区的布局。
- 使用紧凑的时间戳临时文件名并明确工作区相对路径指引,减少工具路径占用的 Token。 (#9505)
- 对已完成的本地 Shell 命令返回精简纯文本结果,对运行中的命令继续保留托管会话元数据。 (#9507)
修复
- 延迟导入 BM25 依赖,使安装的 NumPy 与 CPU 不兼容时,AstrBot 仍可启动并使用 FTS5 检索。 (#9435)
- 确保知识库排名融合结果稳定,并正确暴露 vLLM 重排序响应错误。 (#9454)
- 保留 ChatUI 流式响应末尾内容,并避免 QQ 官方机器人流式缓冲丢失开头字符。 (#9439, #9444)
- 使用系统时区处理未来任务时间。 (#9462)
- 按发送者隔离本地托管 Shell 会话,同时允许会话管理员管理所在会话中的 Shell 会话。 (#9479)
- 加固 API Key 对管理员身份、敏感配置和项目工作区路径的授权边界。 (#9503)
- 在没有助手回复时,仍持久化终端工具调用、结果和可信 Token 用量。 (#9500)
- 避免展开后的 ChatUI 输入区、回复和附件遮挡最新消息。 (#9496)
- 移除移动端插件配置弹窗中的双重滚动条。 (#9491)
- 存储清理后自动重建工具图片缓存目录,确保仍可保存新图片。 (#9490)
- 将 TTS 和 QQ 官方机器人出站音频保留到全局临时文件清理,避免异步下载失败。 (#9506)
文档
- 在社区文档中新增 QQ 群 15 和 16。
维护
- 移除未使用的工具图片独立清理逻辑,统一交由全局临时目录清理器管理。 (#9504)
What's Changed
- fix: lazily import BM25 dependency by @Soulter in #9435
- fix: preserve streaming response tail by @wcqqq1214 in #9439
- feat: implement group message history persistence and retrieval features by @Soulter in #9465
- refactor: formalize deprecation markings with @deprecated decorators by @RC-CHN in #9468
- refactor: rename LLMResponse.to_openai_to_calls_model to to_openai_tool_calls_model by @RC-CHN in #9469
- feat: add managed local shell sessions by @Soulter in #9470
- feat: use PowerShell for Windows local shell by @Soulter in #9471
- fix: localize future task times by @wcqqq1214 in #9462
- perf: enrich knowledge base embeddings with document context by @lxfight in #9457
- fix: correct knowledge base ranking behavior by @lxfight in #9454
- fix(qqofficial): prevent leading char loss in streaming buffer by @OWWZO in #9444
- fix: isolate local shell sessions by sender by @Soulter in #9479
- refactor: simplify updater architecture by @Soulter in #9493
- fix: improve ChatUI composer behavior by @Soulter in #9496
- feat: unify extension and persona management by @Soulter in #9499
- fix: support line writes for managed shell sessions by @Soulter in #9501
- fix: harden API key scope boundaries by @Soulter in #9503
- fix: persist terminal tool history and token usage by @xiaoxuan010 in #9500
- fix: resolve double scrollbar in plugin config dialog by @Rain-0x01-39 in #9491
- refactor: remove unused tool image cleanup by @Soulter in #9504
- fix(core): recreate tool image cache directory after cleanup by @piexian in #9490
- refactor: reduce path token usage by @Soulter in #9505
- fix: simplify completed shell command output by @Soulter in #9507
- fix: defer cleanup of outbound audio files by @Soulter in #9506
- perf: improve knowledge base retrieval quality by @lxfight in #9455
- chore: bump version to 4.27.0 by @Soulter in #9509
New Contributors
- @OWWZO made their first contribution in #9444
- @xiaoxuan010 made their first contribution in #9500
Full Changelog: v4.26.8...v4.27.0
v4.26.8
4.26.8 - 2026-07-28
Il faut cultiver notre jardin.
我们必须耕种自己的花园。
We have launched brand-new plugin market: AstrBot Cloud. Plugin Developers and users can use this platform to upload, manage and explore AstrBot plugins. Plugins data from AstrBot WebUI will be redirect into this market. For more details please read: AstrBot Docs | Plugin Publish
我们已经发布全新的插件市场系统 AstrBot Cloud,插件开发者和用户可以前往该平台上传、管理和浏览插件。AstrBot WebUI 内的插件市场的数据将从该平台同步。详情请前往 AstrBot 文档 | 插件发布。
Added
- Added per-plugin log level controls to the dashboard and plugin API. (#9342)
- Added model configuration support for the FishAudio TTS provider. (#9381)
- Added platform log categorization and a console toggle for hiding user chat entries. (#9165)
- Added a DashScope embedding provider with multimodal model support. (#9137)
- Added a workspace file browser to ChatUI (projects only). (#9432)
Changed
- Honored partial reply quotes in Telegram messages. (#9236)
- Reported process CPU usage without blocking the event loop. (#9367)
- Added the default value mapping for dictionary configuration fields. (#9414)
Fixed
- Fixed FAISS access on Windows paths containing non-ASCII characters, restored lazy imports to prevent startup hangs, and rejected invalid dimensions for new indexes. (#8323, #9350, #9385)
- Refreshed timestamps while holding the relevant lock and decoupled cron scheduler state from database synchronization so persistent jobs always load. (#9349, #9419)
- Preserved checkpoints after failed LLM requests, maintained embedding batch result order, and used the current provider when regenerating messages. (#9358, #9359, #9241, #9402)
- Checked quoted text for content safety, respected zero-valued forward parser limits, and removed trailing separators from message outlines. (#9232, #9394, #9390)
- Resolved Tavily date-filter conflicts, nested OpenAI completion choices, and Bailian rerank protocol incompatibilities. (#9234, #9386, #9413)
- Handled DingTalk command errors and rich-text mentions, returned correct WebChat image MIME types, and corrected Discord slash command validation. (#9389, #9319, #9411)
- Displayed plugin configuration save progress, prevented accidental persona dialog closure, removed duplicate scrollbars, and prevented local plugin uploads from hanging. (#9327, #9238, #9382, #9406)
- Improved conversation list performance and prevented stale asynchronous updates. (#9226)
- Updated the default MiMo TTS model to
mimo-v2.5-tts. (#9428) - Ignored system proxy variables when no proxy is configured, preventing local API requests from being intercepted. (#8897)
- Preserved per-knowledge-base sparse retrieval ranks during rank fusion to avoid distorted ordering across independent FTS5 indexes. (#9426)
- Guarded C extension reloads to prevent process crashes. (#9148)
Documentation
- Updated the README banners and recommended the official QQ bot integration.
- Added a Windows Docker Desktop deployment guide. (#9339)
- Expanded the English and Chinese plugin publishing guides. (#9415)
Maintenance
- Updated grouped GitHub Actions dependencies and
docker/login-action. (#9333, #9416) - Pinned Ruff to 0.15.22. (#9369)
- Prevented updater path tests from creating stray directories. (#9376)
中文
新增
- 在控制台和插件 API 中新增按插件调整日志级别的能力。 (#9342)
- 为 FishAudio TTS 提供商新增模型配置支持。 (#9381)
- 新增平台日志分类,以及在控制台中隐藏用户聊天记录的开关。 (#9165)
- 新增支持多模态模型的 DashScope Embedding 提供商。 (#9137)
- 为 ChatUI 新增工作区文件浏览器(仅限项目)。 (#9432)
变更
修复
- 修复 Windows 非 ASCII 路径下的 FAISS 读写,恢复延迟导入以避免启动卡死,并拒绝为新索引配置无效维度。 (#8323, #9350, #9385)
- 在持锁期间刷新时间戳,并解耦 Cron 调度器状态与数据库同步状态,确保始终加载持久化任务。 (#9349, #9419)
- 在 LLM 请求失败后保留检查点,维持嵌入批处理结果顺序,并在重新生成消息时使用当前提供商。 (#9358, #9359, #9241, #9402)
- 对引用文本执行内容安全检查,正确处理值为零的转发解析限制,并移除消息概要末尾的分隔符。 (#9232, #9394, #9390)
- 修复 Tavily 日期筛选参数冲突、嵌套 OpenAI completion choices 以及百炼重排序协议兼容问题。 (#9234, #9386, #9413)
- 修复钉钉命令错误与富文本提及处理、WebChat 图片 MIME 类型以及 Discord 斜杠命令名称校验。 (#9389, #9319, #9411)
- 显示插件配置保存进度,避免误关人格编辑弹窗,移除重复滚动条,并防止本地插件上传卡住。 (#9327, #9238, #9382, #9406)
- 提升会话列表性能,并避免异步请求产生陈旧更新。 (#9226)
- 将 MiMo TTS 默认模型更新为
mimo-v2.5-tts。 (#9428) - 未配置代理时忽略系统代理变量,避免本地 API 请求被拦截。 (#8897)
- 在排名融合时保留各知识库的稀疏检索排名,避免独立 FTS5 索引之间的结果顺序失真。 (#9426)
- 为 C 扩展重载增加保护,避免进程崩溃。 (#9148)
文档
维护
v4.26.7
4.26.7 - 2026-07-18
What can be shown cannot be said.
能够被呈现的,不必诉诸言语。
Added
- Added ChatUI inline interactive GenUI support. (#8712)
- Added streaming agent statistics after each LLM call. (#9260)
- Added a rerank provider for Text Embeddings Inference (TEI). (#9274)
- Added configurable embedding dimension send modes. (#9245)
Changed
- Streamlined and simplified the WebUI sidebar. (#9233, #9313)
- Made configuration snapshot saves asynchronous and revision-aware to avoid blocking event loops and overwriting newer state. (#9300)
- Optimized repeated tool call detection by comparing tool names and arguments. (#9311)
- Translated core logs into English. (#9318)
Fixed
- Prioritized the configured context limit when one is available. (#9263)
- Removed unsaved provider sources locally when they are deleted. (#9264)
- Corrected Skills download archive filenames for versioned skill names. (#9270)
- Added a catch-all exception handler for dashboard API errors. (#9271)
- Compensated for partial knowledge base upload failures. (#9007, #9246)
- Removed duplicate platform logs from the dashboard. (#9291)
- Restored code block copying on insecure HTTP origins. (#9267)
- Handled ChatUI follow-up messages correctly. (#9309)
- Avoided a python-ripgrep crash on Python 3.14. (#9244)
- Prevented purpose explanations from appearing before every tool call.
- Hid the command tooltip while the suggestion panel is open. (#9312)
- Stopped matching plugin repository URLs as plugin names. (#9314)
- Accepted UTF-8 BOM markers in plugin schemas. (#9223)
- Made plugin handler binding idempotent to prevent duplicate
selfarguments. (#9316)
中文
新增
- ChatUI 支持内联可交互生成式 UI。(#8712)
- 支持在每次 LLM 调用后流式推送 Agent 统计信息。 (#9260)
- 新增 Text Embeddings Inference(TEI)重排序提供商。 (#9274)
- 新增可配置的嵌入维度发送模式。 (#9245)
变更
- 精简并简化 WebUI 侧边栏。 (#9233, #9313)
- 配置快照保存改为异步且具备版本感知,避免阻塞事件循环或覆盖较新的状态。 (#9300)
- 通过比较工具名称和参数,优化重复工具调用检测。 (#9311)
- 将核心日志翻译为英文。 (#9318)
修复
- 配置上下文上限后优先使用该值。 (#9263)
- 删除未保存的提供商来源时,同步从本地状态移除。 (#9264)
- 修正带版本号的 Skill 下载归档文件名。 (#9270)
- 补充 Dashboard API 兜底异常处理。 (#9271)
- 为知识库部分上传失败增加补偿处理。 (#9007, #9246)
- 移除 Dashboard 中重复的平台日志。 (#9291)
- 恢复非安全 HTTP 来源下的代码块复制功能。 (#9267)
- 正确处理 ChatUI 后续消息。 (#9309)
- 避免 python-ripgrep 在 Python 3.14 上崩溃。 (#9244)
- 避免在每次工具调用前都输出用途说明。
- 在建议面板打开时隐藏命令提示。 (#9312)
- 避免将插件仓库 URL 误匹配为插件名称。 (#9314)
- 支持解析带 UTF-8 BOM 标记的插件 Schema。 (#9223)
- 使插件处理器绑定具备幂等性,避免重复传入
self参数。 (#9316)
v4.26.6
4.26.6 - 2026-07-14
Added
- Added persona import and export in the WebUI. Exported personas intentionally exclude tools and Skills configuration. (#4532)
Changed
- Enabled ephemeral cache control for Anthropic providers to improve cache hit rates. (#9197)
- Refined README documentation and corrected the Satori and Mattermost tutorial links. (#9205)
- Updated grouped GitHub Actions dependencies. (#9170)
Fixed
- Validated dashboard account username updates. (#9175)
- Removed an unsupported
forceargument from LINE response parsing. (#9187) - Handled invalid response cleanup regular expressions without interrupting message delivery. (#9183)
- Fixed the mobile chat input freeze and multiline attachment button alignment. (#9202)
- Made ChatUI model selection theme-aware. (#9200)
- Corrected the i18n callback path to Settings General. (#9201)
- Returned appropriate HTTP errors when skill downloads fail. (#9213)
- Exempted WebChat from the friend wake prefix. (#9215)
- Handled
max_tokenscorrectly for NVIDIA MiniMax M3. (#9209) - Reported current context usage accurately in the token indicator. (#9255)
- Resumed active ChatUI streams after a page refresh. (#9259)
What's Changed
- fix: validate dashboard account username updates by @VectorPeak in #9175
- fix: remove unexpected force argument from get_json in astrbot\core\platform\sources\line\line_adapter.py" by @SpencerFang0617 in #9187
- fix: Added Try Except to Filter Handling by @CooperWang0912 in #9183
- fix(platform): correct tutorial links for satori and mattermost by @th-dd in #9205
- fix: resolve mobile chat input freeze and multiline attachment button alignment by @leafliber in #9202
- fix: make ChatUI model selection theme-aware by @wcqqq1214 in #9200
- fix: use ephemeral cache control mode in anthropic provider to increase cache hit rate by @911218sky in #9197
- chore(deps): bump the github-actions group with 4 updates by @dependabot[bot] in #9170
- fix(i18n): update platform callback path translation by @th-dd in #9201
- fix: return HTTP errors for failed skill downloads by @VectorPeak in #9213
- fix: exempt WebChat from friend wake prefix by @wcqqq1214 in #9215
- fix: handle max_tokens for NVIDIA MiniMax M3 by @Last-emo-boy in #9209
- fix: prevent the WebChat token ring from over-reporting context usage by @Fronut in #9255
- fix(group_chat_context): use .get() to avoid KeyError when config profile lacks image_caption_prompt by @tsaitang404 in #9216
- fix: resume ChatUI streams after refresh by @Soulter in #9259
- feat: import and export personas by @Sjshi763 in #4532
- chore: bump version to 4.26.6 by @Soulter in #9273
New Contributors
- @SpencerFang0617 made their first contribution in #9187
- @wcqqq1214 made their first contribution in #9200
- @Last-emo-boy made their first contribution in #9209
- @tsaitang404 made their first contribution in #9216
Full Changelog: v4.26.5...v4.26.6
v4.26.5
4.26.5 - 2026-07-07
Added
- Added support for setting a custom bot ID while creating a platform by scanning a QR code. (#9067)
- Added ChatUI project workspaces. (#9066)
- Added improved ChatUI attachment display. (#9134)
- Added malformed tool-call name sanitation in
ToolLoopAgentRunner. (#9144) - Added model metadata in selectors and a chat token usage indicator. (#9161)
- Added event-loop diagnostics and expanded diagnostics documentation. (#9168)
- Added documentation for cross-platform compatibility and Python version support.
- Added test coverage for POSIX file URI root preservation. (#8906)
Changed
- Log event-loop watchdog startup at the info level.
- Keep model metadata separate from providers. (#9161)
- Polish snackbar styling in the WebUI. (#9173)
Fixed
- Enabled only synced ModelScope MCP servers. (#9084)
- Improved MCP client startup and shutdown handling to avoid idle spinning and clean up on errors, timeouts, and cancellation. (#9070)
- Replaced fragile knowledge-base duplicate-name error matching with a pre-check. (#9121)
- Improved knowledge-base retrieval resilience on per-knowledge-base failures and rerank selection. (#9122)
- Cleaned up
KBMediarecords on document deletion and fixed knowledge-base stats updates. (#9120) - Aligned the knowledge-base CRUD API contract with
kb_name, canonical payload fields, and OpenAPI types. (#9000) - Constrained custom workspace paths and preserved absolute custom workspace paths.
- Improved web search API key failover.
- Enforced ownership when reading ChatUI sessions. (#9141)
- Secured project update temporary staging. (#9083)
- Improved QQ Official retry behavior when websocket send returns
None. (#8977) - Preserved QQ Official quoted message context. (#9164)
- Removed QQ Official reply IDs on proactive fallback so oversized passive replies can succeed via proactive sending. (#9169)
- Adapted MiMo STT to V2.5 models and rejected non-WAV audio payloads. (#9118)
- Serialized webchat history timestamps as UTC-aware ISO strings. (#9159)
- Synced plugin activation status on enable in the WebUI. (#9156)
- Exited MCP
anyiocontexts in the lifecycle task on disable. (#9132) - Fixed leaked SSE exit stack handling that could cause MCP epoll busy-wait. (#8307)
Commits
- feat(platform): 支持扫码创建时自定义机器人ID by @NayukiChiba in #9067
- fix: enable only synced ModelScope MCP servers by @VectorPeak in #9084
- feat: add ChatUI project workspaces by @Soulter in #9066
- fix: Improve MCP client startup and shutdown handling to prevent idle spinning when a server is disabled and ensure proper cleanup on errors, timeouts, and cancellation by @GlowingBrick in #9070
- fix(kb): replace fragile error string matching with pre-check for duplicate kb_name by @lxfight in #9121
- fix(kb): improve retrieval resilience on per-KB failure and rerank selection by @lxfight in #9122
- fix(kb): clean up KBMedia records on document delete, fix update_kb_stats by @lxfight in #9120
- fix: align knowledge base CRUD API contract with kb_name, canonical payload fields, and matching OpenAPI types by @lxfight in #9000
- fix(core): 修复 Tavily 其他5种search方法 API Key 和轮询失败未自动切换的问题 by @NayukiChiba in #8896
- feat: improve ChatUI attachment display by @Soulter in #9134
- fix: enforce ownership when reading ChatUI sessions by @VectorPeak in #9141
- fix: secure project update temp staging by @LIghtJUNction in #9083
- fix: Add retry handling to QQ Official websocket adapter when the send-message API returns None to mitigate transient failures by @shuiping233 in #8979
- fix: adapt MiMo STT to V2.5 models and reject non-WAV audio payloads by @tangtaizong666 in #9118
- test: cover POSIX file URI root preservation by @casama233 in #8906
- feat: add sanitation for malformed tool call names in ToolLoopAgentRunner by @Soulter in #9144
- feat: show model metadata in selectors by @Soulter in #9160
- fix: keep model metadata separate from providers by @Soulter in #9161
- fix: serialize webchat history timestamps as UTC-aware ISO strings by @leafliber in #9159
- feat: add chat token usage indicator by @Soulter in #9162
- fix(webui): sync plugin activation status on enable by @Koishi0425 in #9156
- fix: preserve qq official quoted message context by @Soulter in #9164
- fix: exit MCP anyio contexts in the lifecycle task on disable by @kldsjfas in #9132
- fix(mcp): attempt to fix epoll busy-wait caused by leaked SSE exit stack by @lingyun14beta in #8307
- fix: remove qq official reply id on proactive fallback by @Soulter in #9169
- feat: add event loop diagnostics by @Soulter in #9168
- style: polish snackbar appearance by @Soulter in #9173
- chore: bump version to 4.26.5 by @Soulter in #9174
New Contributors
- @GlowingBrick made their first contribution in #9070
- @tangtaizong666 made their first contribution in #9118
- @casama233 made their first contribution in #8906
- @Koishi0425 made their first contribution in #9156
- @kldsjfas made their first contribution in #9132
Full Changelog: v4.26.4...v4.26.5
v4.26.4
What's Changed
Fixes
- Return clear errors when
astrbot_file_read_toolreceives a directory path instead of reporting a misleading permission error (#9088) - Reduce markdown streaming lag (#9097)
- Resample and downmix WAV files for Tencent Silk encoding (#9100)
- Guard desktop-managed core restart (#9098)
- Update reboot logic (#9073)
- Fix Discord adapter command registration regex being too strict (#9102)
- Reject non-200 download responses (#9085)
- Fix WeCom webhook adapter returning JSON instead of plain text (#9107)
- Preserve raw webhook callback responses for unified webhook routes
- Skip
_unbind_pluginfor inactive plugins during specified plugin reload (#9096) - Apply fallback chat models to background wakeups (#9094)
Chinese
修复
- 修复企业微信、企业微信客服 Webhook、QQ 官方机器人 Webhook 无法正常校验的问题 (#9107)
- 当
astrbot_file_read_tool读取目录路径时返回明确错误,避免误报权限不足 (#9088) - 降低 Markdown 流式输出延迟 (#9097)
- 为腾讯系 IM Silk 编码重采样并下混 WAV 文件 (#9100)
- 保护由桌面端管理的核心重启流程 (#9098)
- 更新重启逻辑 (#9073)
- 修复 Discord 适配器注册命令正则过于严格的问题 (#9102)
- 拒绝非 200 状态码的下载响应 (#9085)
- 指定插件重载时,对未启用插件跳过
_unbind_plugin(#9096) - 后台唤醒主 Agent 时应用 fallback chat models (#9094)