Skip to content

Releases: AstrBotDevs/AstrBot

v4.22.0

22 Mar 09:36

Choose a tag to compare

What's Changed

新增

  • 新增个人微信接入能力(微信官方提供)。详见 个人微信接入#6777
  • 新增图片压缩能力,支持图片尺寸、JPEG 质量限制。(#6794
  • 新增 WebUI 已安装插件置顶与拖拽重排能力。(#6776

优化

  • 知识库为空时自动跳过检索,避免无效搜索调用。(#6750
  • 修复 frontmatter 转义换行符保留行为并更新相关测试与 CI 工作流(含文档与配置同步)。(#6783

修复

  • Telegram 适配器改为导入 Forbidden,替代已弃用的 Unauthorized(兼容性修正)。(#6769
  • 处理 OpenAI Provider 中 token usage metricsNone 时的异常场景。(#6788
  • 保留全部 CallToolResultcontent 项,避免工具调用上下文内容丢失。(#6149

What's Changed (EN)

New Features

  • Added WeChat personal account support, including QR-code driven setup, message flow refactor, and media handling improvements.(#6777
  • Added pinning and drag-sorting for installed WebUI plugins.(#6776
  • Added image compression with max-size handling and temporary-file lifecycle management for improved image efficiency.(#6794

Improvements

  • Skipped search execution when the entire knowledge base is empty.(#6750
  • Preserved escaped newlines in frontmatter, with related test and CI workflow updates.(#6783

Bug Fixes

  • Replaced deprecated Telegram adapter import of Unauthorized with Forbidden.(#6769
  • Handled None values in OpenAI provider token usage metrics.(#6788
  • Kept all CallToolResult.content items to prevent losing tool-call context.(#6149

What's Changed

  • feat: supports weixin personal account by @Soulter in #6777
  • fix(platform.tg_adapter): import Forbidden instead of deprecated Unauthorized (#6765) by @mzwing in #6769
  • feat: skip search when the entire knowledge base is empty by @Waterwzy in #6750
  • feat: fix preserve escaped newlines in frontmatter & update tests & ci workflows by @RC-CHN in #6783
  • Feat(webui): support pinning and dragging for installed plugins (#6649) by @M1LKT in #6776
  • fix: handle potential None values for token usage metrics in OpenAI provider by @Soulter in #6788
  • feat: supports image compressing (#6463) by @Soulter in #6794
  • fix: keep all CallToolResult content items by @tsubasakong in #6149

New Contributors

Full Changelog: v4.21.0...v4.22.0

v4.21.0

21 Mar 18:03

Choose a tag to compare

What's Changed

新增

  • 为插件市场新增分类筛选并优化界面组件。(#6762
  • 新增 Kimi Coding Plan Provider(兼容 Anthropic API)。(#6559
  • 统一并重命名 skill.md 文件为 SKILL.md。(#6757
  • 新增 Ollama 关闭思考模式开关。(#5941
  • 新增小米 MiMo TTS 与 STT Provider。(#6643
  • 新增多模态上下文 token 计数能力(图片、音频与思维链)。(#6596
  • 新增按元信息名称安装插件并校验可导入标识符。(#6530

优化

  • 降低 kook_typeStrEnum(str, Enum) 以兼容旧版本 Python。(#6512
  • 优化 WebChat 消息处理:提前保存消息并增强流式补全。(#6698
  • 优化 Dashboard 中移动端 persona 选择器布局。(#5907
  • 优化 Dashboard,减少 MDI icon font 范围并自托管 Google Fonts。(#6532
  • 使用 Pydantic 重构 KOOK 适配器数据模型以提升消息结构解析与校验性能。(#5719
  • 调整文档术语与表达(“消息平台”改为“机器人”等)并优化更新说明文字。(#6568

修复

  • 修复 web search tools 中被禁用系统函数时未正确生效的问题。(#6584
  • 跳过空的知识库嵌入批次,避免不必要计算。(#6106
  • 修复 Feishu opus 文件在 Whisper API STT 场景下未正确转换的问题。(#6078
  • 修复 Lark 在工具调用中断时卡片创建与重续流程。(#6743
  • 修复 Windows 环境下 skill 文件编码兼容问题。(#6058
  • 修复 WebChat 单独渲染的 HTML 回复被错误显示的问题。(#6074
  • 修复 Gemini 数组 schema 缺少 items 字段的问题。(#6051
  • 修复 skills 使用硬编码工作区路径的问题,改为使用缓存中的真实沙箱路径。(#6331
  • 修复 subagent 工具调用超时传递,修正 tool_call_timeout 并将默认超时从 60 秒提升到 120 秒。(#6713
  • 修复 skills-like 下缺失 extra_user_content_parts 时未注入图片说明的问题。(#6710
  • 修复 /stop 后继续处理后续 follow-up 消息的问题。(#6704
  • 修复核心流程在 stop 时中断子代理工具等待的行为。(#5850
  • 修复 Windows 平台 stdio MCP 服务 PATHEXT 丢失的问题。(#5822
  • 修复 Telegram 轮询重启机制,失败时自动恢复循环。(#6648
  • 修复 /stop 后 follow-up 状态未清理导致后续触发继续运行的问题。(#6656
  • 修复 OpenAI 配置日志,改进代理与 API Base 的可读性与排障能力。(#6669
  • 修复长工具调用中截断逻辑误删唯一 user 消息的问题。(#6198
  • 修复截断器移除唯一用户消息导致部分 provider 返回 400 的问题。(#6581
  • 修复 ID 白名单为空时提示文案不清晰的问题。(#6611
  • 修复 MoonshotAI 官方 API 下 OpenAI token usage 缺失问题。(#6618
  • 提升 Wecom AI Bot 流式可读性与速度(限流处理),改善卡顿与显示体验。(#6610
  • 修复 Wecom 长连接回复消失的问题。(#6606
  • 修复 Windows 打包运行时 pip/native 构建环境配置问题。(#6575
  • 修复仅在显式配置时传递 embedding dimensions,避免无效参数干扰。(#6432
  • 修复 register_agent 装饰器导致的 NameError。(#5765
  • 修复默认 persona 场景下的 subagent 查询失败问题。(#5672
  • 修复 Windows 下 skill 读取失败问题。(#6490
  • 修复 SKILL.md 多行 frontmatter 解析问题。(#6460
  • 修复 SQLite database is locked 问题,新增繁忙超时处理。(#6474
  • 修复工作流限制仅允许上游仓库触发的报错场景。(#6531

What's Changed (EN)

New Features

  • Added category filtering for market plugins and enhanced UI components.
  • Normalized and renamed skill.md files to SKILL.md.
  • Added a toggle to disable thinking mode in Ollama.
  • Added Xiaomi MiMo TTS & STT providers.
  • Added Kimi Coding Plan provider with Anthropic API compatibility.
  • Added context token counting support for multimodal content (images, audio, and chain-of-thought).
  • Added plugin installation by metadata name and validated importable identifiers.

Improvements

  • Refactored StrEnum to (str, Enum) in kook_type for backward compatibility.
  • Enhanced WebChat message handling with proactive saving and streaming completion.
  • Simplified dashboard persona selector layout for mobile screens.
  • Subset MDI icon font and self-hosted Google Fonts in dashboard.
  • Implemented Pydantic data models for KOOK adapter for better retrieval and schema validation.
  • Updated documentation wording for incomplete updates terminology.

Bug Fixes

  • Fixed disabled system functions in web search tools.
  • Skipped empty knowledge-base embedding batches.
  • Converted Feishu opus files for Whisper API STT.
  • Deferred Lark card creation and renewal on tool call break.
  • Added fallback for Windows skill file encodings.
  • Rendered standalone HTML replies as code in WebChat.
  • Ensured Gemini array schemas always include items.
  • Fixed skills path resolution to use cached sandbox path instead of hardcoded workspace root.
  • Passed tool_call_timeout to subagent handsoff/cron/background tasks and increased default timeout to 120 seconds.
  • Fixed skills-like re-query missing extra_user_content_parts causing image caption not injected.
  • Rejected follow-up messages after /stop request.
  • Interrupted subagent tool waits on stop.
  • Preserved PATHEXT for stdio MCP servers on Windows.
  • Added automatic restart for Telegram polling loop on failure.
  • Fixed follow-up persistence logic after /stop trigger.
  • Improved OpenAI proxy/API base logging.
  • Prevented truncation logic from removing the only user message in long tool-calling conversations.
  • Fixed truncation removing the only user message and returning 400 for some providers.
  • Updated ID whitelist empty-configuration hint wording.
  • Fixed token usage with MoonshotAI official API.
  • Improved Wecom AI Bot streaming readability and speed via throttling.
  • Prevented Wecom AI Bot long connection replies from disappearing.
  • Set packaged Windows runtime build env for pip native builds.
  • Only pass embedding dimensions when explicitly configured.
  • Fixed register_agent decorator NameError.
  • Fixed subagent lookup failure when using default persona.
  • Fixed reading skills on Windows.
  • Fixed multiline frontmatter parsing in SKILL.md.
  • Fixed SQLite database is locked with busy timeout.
  • Restricted workflows to upstream repo.

What's Changed

  • feat: localize session management group & interval method texts by @RC-CHN in #6471
  • fix: SQLite 'database is locked' under concurrent writes by @he-yufeng in #6474
  • fix: parse multiline frontmatter description in SKILL.md by @RhoninSeiei in #6460
  • chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #6461
  • chore: remove deprecated version field from compose.yml by @YuanyuanMa03 in #5495
  • fix: reading skills on Windows by @linzhengtian in #6490
  • fix: subagent create failure when using default persona by @whatevertogo in #5672
  • fix: register_agent decorator NameError by @whatevertogo in #5765
  • fix: only pass dimensions when explicitly configured in embedding config by @jnMetaCode in #6432
  • perf: Implement Pydantic data models for the KOOK adapter to enhance data retrieval and message schema validation by @shuiping233 in #5719
  • refactor: Downgrade StrEnum to (str, Enum) in kook_type for backward compatibility by @shuiping233 in #6512
  • feat: install plugin using metadata name and validate importable identifiers by @Soulter in #6530
  • fix: restrict workflows to upstream repo by @Raven95676 in #6531
  • Fix LLM always choosing FileDownloadTool instead of FileUploadTool by @he-yufeng in #6527
  • perf(dashboard): subset MDI icon font and self-host Google Fonts by @camera-2018 in #6532
  • 更改未完成更新的文档用词问题(多处“消息平台”已更名为“机器人”) by @nuomicici in #6568
  • fix: set packaged Windows runtime build env for pip native builds by @zouyonghe in #6575
  • feat (doc) : Add doc for shipyard-neo sandbox driver by @RC-CHN in #6590
  • docs(sandbox): clarify section references in guides by @RC-CHN in #6591
  • fix: prevent wecom ai bot long connection replies from disappearing by @shijianhuai in #6606
  • fix(wecom-aibot): significantly improve streaming readability and speed via add throttling by @Soulter in https://git...
Read more

v4.20.1

16 Mar 16:38

Choose a tag to compare

What's Changed

新增

  • 补充 MiniMax Provider。(#6318
  • 新增 WebUI ChatUI 页面的会话批量删除功能。(#6160
  • 新增 WebUI ChatUI 配置发送快捷键。(#6272

优化

  • 优化 UMO 处理兼容性。(#5996
  • 重构 _extract_session_id,改进聊天类型分支处理。(#5775
  • 优化聊天组件行为,使用 shiki 进行代码块渲染。(#6286
  • 优化 WebUI 主题配色与视觉体验。(#6263
  • 优化 OneBot @ 组件后处理,避免消息文本解析空格问题。(#6238

修复

  • 修复创建新 Provider 后未同步 providers_config 的问题。(#6388
  • 修复 API 返回 null choices 时的 TypeError。(#6313
  • 修复 QQ Webhook 重试回调重复触发的问题。(#6320
  • 修复流式模式下 deltaNone 导致工具调用时报错的问题。(#6365
  • 修复模型服务链接说明文字错误。(#6296
  • 修复 AI 在 tool-calling 模式设为 skills-like 时发送媒体失败的问题。(#6317
  • 修复 Telegram 适配器中 GIF 被错误转成静态图的问题。(#6329
  • 将 Provider 图标来源替换为 jsDelivr CDN 地址,修复部分环境下图标加载问题。(#6340
  • 修复 QQ 官方表情消息未解析为可读文本的问题。(#6355
  • 修复 WebChat 队列异常时流式结果页面崩溃的问题。(#6123
  • 修复子代理 handoff 工具在插件过滤时丢失的问题。(#6155
  • 修复 Cron 提示文案缺少空格及 utcnow() 的弃用警告问题。(#6192
  • 修复 WebUI 启动时 Sidebar hash 导航抖动/定位问题。(#6159
  • 修复启动重试过程中移除已移除 API Key 的 ValueError 报错。(#6193
  • 修复 README 启动命令引用更新为 astrbot run。(#6189
  • 修复 Plain.toDict()@ 提及场景下空白字符丢失的问题。(#6244
  • 修复 provider 依赖重复定义问题。(#6247
  • 修复 Telegram 中普通回复被误判为线程的处理问题。(#6174

其他

  • 调整 astrbot.service 及 CI 配置,升级 GitHub Actions 版本。

What's Changed (EN)

New Features

  • Added OpenRouter chat completion provider adapter with support for custom headers (#6436).
  • Added MiniMax provider (#6318).
  • Added batch conversation deletion in WebChat (#6160).
  • Added send shortcut settings and localization support for WebChat input (#6272).
  • Added local temporary directory binding in YAML config (#6191).

Improvements

  • Improved UMO processing compatibility (#5996).
  • Refactored _extract_session_id for chat type handling (#5775).
  • Improved chat component behavior and uses shiki for code-block rendering (#6286).
  • Improved WebUI theme color and visual behavior (#6263).
  • Improved OneBot @ component spacing handling (#6238).
  • Improved PR checklist validation and closure messaging.

Bug Fixes

  • Fixed missing providers_config sync after creating new providers (#6388).
  • Fixed TypeError when API returns null choices (#6313).
  • Fixed repeated QQ webhook retry callbacks (#6320).
  • Fixed tool-calling streaming null delta handling to prevent AttributeError (#6365).
  • Fixed model service link wording in docs/config (#6296).
  • Fixed AI media sending failure when tool-calling mode is set to skills-like (#6317).
  • Fixed GIF being sent as static image in Telegram adapter (#6329).
  • Replaced npm registry URLs with jsDelivr CDN for provider icons (#6340).
  • Fixed QQ official face message parsing to readable text (#6355).
  • Fixed WebChat stream-result crash on queue errors (#6123).
  • Preserved subagent handoff tools during plugin filtering (#6155).
  • Fixed cron prompt spacing and deprecated utcnow() usage (#6192).
  • Fixed unstable sidebar hash navigation on startup (#6159).
  • Fixed ValueError in retry loop when removing an already removed API key (#6193).
  • Updated startup command to astrbot run across READMEs (#6189).
  • Preserved whitespace in Plain.toDict() for @ mentions (#6244).
  • Removed duplicate dependencies entries (#6247).
  • Fixed Telegram normal reply being treated as topic thread (#6174).

Documentation

  • Updated rainyun backup/access documentation (#6427).
  • Updated package.md and platform docs, including Matrix and Wecom AI bot documentation.
  • Fixed Discord invite link in community docs.

Chores

  • Updated PR templates/checklist workflow, repository service config, and automated checks.
  • Refreshed repository automation and formatting maintenance, and removed obsolete changelog scripts.

v4.20.0

12 Mar 16:36

Choose a tag to compare

What's Changed

新增

  • 新增俄语翻译(#6081)。
  • QQ 官方 Bot 新增文件、语音、视频消息支持(含 WebSocket 模式)(#6063)。

优化

  • 优化 QQ 官方 Bot 的流式消息投递可靠性与主动媒体发送能力(#6131)。
  • 优化边界场景下 booter 选择逻辑与消息发送工具(#6064)。

修复

  • 修复 Dashboard README 对话框锚点导航失效(#6083)。
  • 优先使用具名 weekday 的 cron 示例,避免歧义(#6091)。
  • 修复插件市场安装后状态未及时刷新的问题(#6124)。
  • 修复插件依赖安装逻辑:仅安装缺失依赖(#6088)。
  • 移除 Telegram 适配器中已废弃的 normalize_whitespace 参数(#6044)。
  • 修复 Windows 本地 skill 文件读取问题(#6028)。
  • 修复 Discord pre-ack emoji 配置重启后不持久化的问题(#6031)。
  • 统一 WebUI 搜索框清空行为(#6017)。
  • 优化插件依赖自动安装流程与 Dashboard 安装体验(#5954)。

What's Changed (EN)

New Features

  • Added Russian translation support (#6081).
  • Added file, voice, and video message support for QQ Official Bot (including WebSocket mode) (#6063).

Improvements

  • Improved streaming message delivery reliability and proactive media sending for QQ Official API (#6131).
  • Optimized booter selection logic in edge cases and message sending tooling (#6064).

Bug Fixes

  • Fixed broken README dialog anchor navigation in the Dashboard (#6083).
  • Preferred named weekday cron examples to reduce ambiguity (#6091).
  • Fixed plugin market install-state refresh after installation (#6124).
  • Fixed plugin dependency installation logic to install only missing packages (#6088).
  • Removed deprecated normalize_whitespace parameter in the Telegram adapter (#6044).
  • Fixed local skill file reading issues on Windows (#6028).
  • Fixed Discord pre-ack emoji config not being persisted across restarts (#6031).
  • Unified WebUI search input clear behavior (#6017).
  • Improved plugin dependency auto-install flow and Dashboard installation experience (#5954).

What's Changed

  • fix: 插件依赖自动安装逻辑与 Dashboard 安装体验优化 by @zouyonghe in #5954
  • fix(webui): unify search input clear behavior by @Flartiny in #6017
  • fix: Persist Discord pre-ack emoji config across restart by adding missing default key by @Jzjerry in #6031
  • fix: improve Windows local skill file reading by @zouyonghe in #6028
  • feat: added support for file, voice, and video messages for QQ Official Bot (including WebSocket mode). by @Soulter in #6063
  • perf: optimize booter selection for edge cases and message sending tool by @Soulter in #6064
  • fix(docs): typo in docker.md & napcat.md by @shudorcl in #6048
  • fix(telegram): remove deprecated normalize_whitespace param from telegramify_markdown.markdownify calls by @DOHEX in #6044
  • fix: install only missing plugin dependencies by @zouyonghe in #6088
  • chore: update dependency and workflow versions by @zouyonghe in #6119
  • fix(extension): refresh plugin market install state after install by @letr007 in #6124
  • docs: 添加 Astrbook 和玖帕喵社区链接 by @advent259141 in #6135
  • [Security] Fix CRITICAL vulnerability: V-004 by @orbisai0security in #6093
  • fix: prefer named weekday cron examples by @stablegenius49 in #6091
  • fix(dashboard): restore README dialog anchor navigation by @stablegenius49 in #6083
  • feat: add Russian translation by @seoeaa in #6081
  • perf(QQ Official API): improve streaming message delivery reliability and proactive media sending by @2ndelement in #6131

New Contributors

Full Changelog: v4.19.5...v4.20.0

v4.19.5

10 Mar 16:19

Choose a tag to compare

What's Changed

新增

  • Lark 适配器支持 CardKit 流式输出(飞书)(#5777)。
  • WebUI 已安装插件列表新增筛选与排序功能 (#5923)。

优化

  • 启动时后台加载 MCP Server,不阻塞加载流程 (#5993)。

修复

  • 部分情况下 MCP 页报错 500 导致查看不了 MCP 服务器 (#5993)。
  • 修复 TTS Provider 测试:增加文件大小校验,并补充 MiniMax 空音频检测 (#5999)。
  • 修复前端切换到 Chat 后又回到 Welcome 时,页面切换配置未正确持久化的问题 (#5792)。
  • 修复 Azure TTS 不支持 84 位订阅密钥的问题 (#5813)。

文档

  • 文档仓库迁移:将 AstrBotDevs/AstrBot-docs 内容迁移至 AstrBotDevs/AstrBot (#5960)。

What's Changed (EN)

New Features

  • Added CardKit streaming output support for the Lark/Feishu adapter (#5777).
  • Added filtering and sorting for installed plugins in the WebUI (#5923).

Impprovement

  • MCP Server now loads in the background during startup without blocking the loading process (#5993).

Bug Fixes

  • Added file size validation in TTS provider tests and MiniMax empty-audio detection (#5999).
  • Fixed frontend state persistence when switching from Chat back to Welcome (#5792).
  • Fixed Azure TTS support for 84-character subscription keys (#5813).
  • Reverted the MCP stdio missing-command error wording change after the previous fix (#5992).

Documentation

  • Migrated documentation content from AstrBotDevs/AstrBot-docs into AstrBotDevs/AstrBot (#5960).

v4.19.4

09 Mar 03:16

Choose a tag to compare

What's Changed

新增

  • 企业微信智能机器人支持长连接模式。#5930

New

  • Wecom AI Bot supports long-connection mode(Websockets). #5930

v4.19.3

08 Mar 16:22

Choose a tag to compare

What's Changed

新增

  • 新增 Skills 批量上传能力 (#5804)。

修复

  • 修复 MCP Server 配置异常时可能导致崩溃的问题 (#5666, #5673)。
  • 修复钉钉适配器文本消息被忽略、无法主动发送文件的问题 (#5921)。
  • 修复钉钉适配器无法接收图片与文件的问题 (#5920)。
  • fix(provider): handle MiniMax ThinkingBlock when max_tokens reached (#5913)。
  • 修复 OpenRouter api_base 配置错误的问题 (#5911)。
  • 修复插件市场中按展示名搜索已安装插件不生效的问题 (#5806, #5811)。
  • 修复仅图片响应未应用 reply_with_quotereply_with_mention 的问题 (#5219)。
  • 修复 RegexFilter 使用 re.match 导致匹配范围不正确的问题 (#5368)。
  • 修复桌面运行环境检测依赖 frozen Python 的问题 (#5859)。
  • 修复通过“创建新配置”创建平台机器人后找不到 pipeline scheduler 的问题 (#5776)。

What's Changed (EN)

New Features

  • Added batch upload support for multiple skill ZIP files (#5804).

Bug Fixes

  • Fixed potential crash on malformed MCP server config (#5666, #5673).
  • Fixed DingTalk adapter issue where text messages were ignored and files could not be sent proactively (#5921).
  • Fixed DingTalk adapter issue where image and file messages could not be received (#5920).
  • Fixed incorrect OpenRouter api_base configuration (#5911).
  • Fixed searching installed plugins by display name in extensions (#5806, #5811).
  • Fixed image-only responses not applying reply_with_quote and reply_with_mention (#5219).
  • Fixed RegexFilter using re.match instead of re.search for expected matching behavior (#5368).
  • Fixed desktop runtime detection requiring frozen Python (#5859).
  • Fixed missing pipeline scheduler after creating a platform bot via "create new config" (#5776).
  • fix(provider): handle MiniMax ThinkingBlock when max_tokens reached (#5913)

What's Changed

  • test(skill_manager): update sandbox cache path expectations by @RC-CHN in #5706
  • fix: align aiocqhttp poke segment with onebot v11 by @whatevertogo in #5773
  • fix: pipeline scheduler not found after creating platform bot via using 'create new config' by @Soulter in #5776
  • fix: detect desktop runtime without frozen python by @zouyonghe in #5859
  • feat(skills): add batch upload functionality for multiple skill ZIP files by @whatevertogo in #5804
  • fix: use re.search instead of re.match in RegexFilter by @KBVsent in #5368
  • fix: apply reply_with_quote and reply_with_mention to image-only response by @KBVsent in #5219
  • fix(extension): support searching installed plugins by display name (#5806) by @ChuwuYo in #5811
  • correct openrouter api_base by @windycold in #5911
  • fix: cannot receive image, file in dingtalk by @Soulter in #5920
  • fix(dingtalk): text is ignored; cannot send file actively by @Soulter in #5921
  • fix: prevent crash on malformed MCP server config (#5666) by @Clhikari in #5673
  • fix: 修复 asyncio 事件循环相关问题 by @whatevertogo in #5774
  • fix(provider): handle MiniMax ThinkingBlock when max_tokens reached by @JasonOA888 in #5913

New Contributors

Full Changelog: v4.19.2...v4.19.3

v4.19.2

05 Mar 08:12

Choose a tag to compare

What's Changed

新增

  • 集成 KOOK 平台适配器 (#5658)。
  • 新增 Discord pre-react Emoji 支持 (#5609)。
  • 新增 Telegram 支持 sendMessageDraft 流式实时输出 API (#5726)
  • 支持在 Agent 运行时进行消息跟进能力,跟进的消息实时注入给 Agent (#5484)。
  • 集成 DeerFlow Agent Runner 并优化流式处理 (#5581)。
  • 新增 shell, ipython tool 中包含操作系统信息,提高 windows 下 tool call 成功率 (#5677)。
  • Sandbox 支持 Shipyard-neo - 支持 Skills 自迭代 (#5028)。
  • 新增 ChatUI WebSocket 传输模式选择,OpenAPI Chat API 支持 WebSocket 连接 (#5410)。
  • 支持 Persona 自定义报错回复消息与兜底逻辑 (#5547)。
  • 将 WebUI 静态文件打包至 wheel,并将 astrbot CLI 日志替换为英文 (#5665)。
  • 增强聊天界面与移动端响应式体验 (#5635)。
  • 优化插件失败处理逻辑与扩展列表交互体验 (#5535)。

修复

  • 修复 MCP 初始化超时参数关键字不匹配的问题 (#5743)。
  • 修复 MCP 工具竞态条件导致"completion 无法解析"错误 (#5534)。
  • 修复 LINE 适配器中非 HTTPS URL 直接透传的问题 (#5697)。
  • 修复 WebUI 侧边栏自定义状态不稳定的问题 (#5670)。
  • 修复 KOOK 适配器收到消息和心跳响应时输出多余调试日志的问题。
  • 修复 DEMO_MODE 环境变量未正确解析为布尔值的问题 (#5676)。
  • 修复子 Agent 无法正确接收本地图片(参考图)路径的问题 (#5579)。
  • 修复 /model 命令切换至不同 Provider 模型时产生误导性行为的问题 (#5578)。
  • 修复对话记录中 UTC 时区偏移未处理导致时间戳异常的问题 (#5580)。
  • 修复备份导入时重复平台统计数据导致异常的问题 (#5594)。
  • 修复 max_agent_step 配置未应用到子 Agent 的问题 (#5608)。
  • 修复插件列表排序和搜索过滤逻辑 (#5559)。
  • 修复 uv sync 时未要求 Node.js 环境的问题。

What's Changed (EN)

New Features

  • Integrated KOOK platform adapter (#5658).
  • Integrated DeerFlow Agent Runner with optimized streaming support (#5581).
  • feat(telegram): supports sendMessageDraft API (#5726)
  • Integrated Neo skill self-iteration capability with full lifecycle management (candidate, release, deletion) via Shipyard Neo sandbox (#5028).
  • Added Discord pre-ack emoji support (#5609).
  • Added WebSocket transport mode selection for the chat interface (#5410).
  • Added OS information to tool descriptions with unit test coverage (#5677).
  • Added follow-up message handling in ToolLoopAgentRunner (#5484).
  • Added support for persona custom error reply messages with fallback logic (#5547).
  • Bundled WebUI static files into the wheel package and replaced astrbot CLI logs with English (#5665).
  • Optimized async IO performance and added benchmark coverage (#5737).
  • Refactored API key creation and added unit tests for open API routes.
  • Improved error messaging for AI execution failures in agent runners.
  • Enhanced chat interface and mobile responsiveness (#5635).
  • Improved plugin failure handling and extension list UX (#5535).

Bug Fixes

  • Fixed MCP initialization timeout keyword mismatch (#5743).
  • Fixed MCP tools race condition causing completion 无法解析 error (#5534).
  • Fixed LINE adapter allowing non-HTTPS URLs to pass through directly (#5697).
  • Fixed unstable sidebar customization state in WebUI (#5670).
  • Fixed excessive debug logging in KOOK adapter for received messages and heartbeat responses.
  • Fixed DEMO_MODE environment variable not being parsed correctly as a boolean (#5676).
  • Fixed sub-agent failing to correctly receive local image (reference image) paths (#5579).
  • Fixed misleading behavior of the /model command when switching to a model from a different provider (#5578).
  • Fixed unhandled UTC timezone offset causing incorrect timestamps in conversation records (#5580).
  • Fixed backup import failure due to duplicate platform stats entries (#5594).
  • Fixed max_agent_step config not being applied to sub-agents (#5608).
  • Fixed plugin list sorting and search filtering logic (#5559).
  • Fixed missing Node.js environment requirement during uv sync.

What's Changed

  • Feat/ipv6 by @LIghtJUNction in #4898
  • feat: implement follow-up message handling in ToolLoopAgentRunner by @Soulter in #5484
  • feat: implement websockets transport mode selection for chat by @Soulter in #5410
  • 可选后端,实现前后端分离 by @LIghtJUNction in #4899
  • Revert "可选后端,实现前后端分离" by @LIghtJUNction in #5536
  • feat: improve plugin failure handling and extension list UX by @zouyonghe in #5535
  • feat: support persona custom error reply message with fallback by @zouyonghe in #5547
  • fix: add plugin sorting by name and improve search filtering logic by @Flartiny in #5559
  • test: add tests for star base class and config management by @whatevertogo in #5356
  • test: add comprehensive tests for core lifecycle and agent execution by @whatevertogo in #5357
  • feat: 集成 DeerFlow Agent Runner 并优化流式处理 by @zouyonghe in #5581
  • fix: resolve unhandled UTC timezone offset for timestamps in conversation records by @WintryWind7 in #5580
  • fix:修正子agent无法正确接收本地图片(参考图)路径的问题 by @a61995987 in #5579
  • fix: resolve /model command misleading behavior when switching to model from different provider by @pandyzhou in #5578
  • fix: harden backup import for duplicate platform stats by @Clhikari in #5594
  • feat: 接入 Shipyard Neo 自迭代 Skill 闭环与管理能力 by @w31r4 in #5028
  • feat: enhance chat interface and mobile responsiveness by @Soulter in #5635
  • fix: apply max_agent_step config to subagents by @Copilot in #5608
  • feat: add Discord pre-ack emoji support by @Copilot in #5609
  • Fix/fix: resolve MCP tools race condition causing 'completion 无法解析' error by @idiotsj in #5534
  • refactor: bundled webui static files into wheel and replace astrbot cli log with English by @Soulter in #5665
  • feat: integrates KOOK platform adapter by @shuiping233 in #5658
  • fix(dashboard): 自定义侧边栏中错误展开“更多功能”页面问题 (#5405) by @catDforD in #5670
  • fix: only allow HTTPS URLs to pass through directly in LINE adapter by @KBVsent in #5697
  • chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #5694
  • fix(core): correctly parse DEMO_MODE as boolean from env var. by @L-1ngg in #5676
  • feat: add OS information to tool descriptions and implement unit tests by @miaoxutao123 in #5677
  • unittest: 添加之前遗漏的kook_card_data.json by @shuiping233 in #5703

New Contributors

Full Changelog: https://github.com/AstrBotDevs/Ast...

Read more

v4.18.3

26 Feb 11:14

Choose a tag to compare

What's Changed

新增

  • 新增桌面端通用更新桥接能力,便于接入客户端内更新流程 (#5424)。

修复

  • 修复新增平台对话框中 Line 适配器未显示的问题。
  • 修复 Telegram 无法发送 Video 的问题 (#5430)。
  • 修复创建 embedding provider 时无法自动识别向量维度的问题 (#5442)。
  • 修复 QQ 官方平台发送媒体消息时 markdown 字段未清理的问题 (#5445)。
  • 修复上下文管理策略 -> 上下文截断时 tool call / response 配对丢失的问题 (#5417)。
  • 修复会话更新时 persona_id 被覆盖的问题,并增强 persona 解析逻辑。
  • 修复 WebUI 中 GitHub 代理地址显示异常的问题 (#5438)。
  • 修复设置页新建开发者 API Key 后复制失败的问题 (#5439)。
  • 修复 Telegram 语音消息格式与 OpenAI STT 兼容性问题(使用 OGG) (#5389)。

优化

  • 优化知识库检索流程,改为批量查询元数据,修复 N+1 查询性能问题 (#5463)。
  • 优化 Cron 未来任务执行的会话隔离能力,提升并发稳定性。
  • 优化 WebUI 插件页的交互。

What's Changed (EN)

New Features

  • Added useExtensionPage composable for unified plugin extension page state management.
  • Added a generic desktop app updater bridge to support in-app update workflows (#5424).

Bug Fixes

  • Fixed the Line adapter not appearing in the "Add Platform" dialog.
  • Fixed Telegram video sending issues (#5430).
  • Fixed Pyright static type checking errors (#5437).
  • Fixed embedding dimension auto-detection when creating embedding providers (#5442).
  • Fixed stale markdown fields when sending media messages via QQ Official Platform (#5445).
  • Fixed tool call/response pairing loss during context truncation (#5417).
  • Fixed persona_id being overwritten during conversation updates and improved persona resolution logic.
  • Fixed incorrect GitHub proxy display in WebUI (#5438).
  • Fixed API key copy failure after creating a new key in settings (#5439).
  • Fixed Telegram voice format compatibility with OpenAI STT by using OGG (#5389).

Improvements

  • Improved knowledge base retrieval by batching metadata queries to eliminate the N+1 query pattern (#5463).
  • Improved session isolation for future cron tasks to increase stability under concurrency.
  • Improved WebUI plugin page interactions.

What's Changed

  • fix: Telegram voice message format (OGG instead of WAV) causing issues with OpenAI STT API by @realquantumcookie in #5389
  • feat(dashboard): add generic desktop app updater bridge by @zouyonghe in #5424
  • fix(dashboard): 修复设置页新建 API Key 后复制失败问题 by @exynos967 in #5439
  • Fix: GitHub proxy not displaying correctly in WebUI by @letr007 in #5438
  • fix: ensure tool call/response pairing in context truncation by @Luna-channel in #5417
  • fix(persona): preserve conversation persona_id and unify session/conversation resolution by @Raven95676 in #5440
  • fix: clear markdown field when sending media messages via QQ Official Platform by @KBVsent in #5445
  • fix: cannot automatically get embedding dim when create embedding provider by @exynos967 in #5442
  • fix: pyright check by @Dt8333 in #5437
  • fix(telegram): cannot send video message (#2536) by @CCCCCCTV in #5430
  • perf: batch metadata query in KB retrieval to fix N+1 problem by @CAICAIIs in #5463
  • fix:fix the issue where incomplete cleanup of residual plugins occurs… by @Waterwzy in #5462
  • chore: fix UnsupportedDunder report in pyright by @Dt8333 in #5474
  • [bug]查看介入教程line前往错误界面的问题 by @Sjshi763 in #5479

New Contributors

Full Changelog: v4.18.2...v4.18.3

v4.18.2

24 Feb 14:50

Choose a tag to compare

What's Changed

新增

  • 新增 Agent 会话停止能力,并优化 stop 请求处理流程,支持 /stop 指令终止 Agent 运行并尽量不丢失已运行输出的结果。 (#5380)。
  • 新增 SubAgent 交接场景下的 computer-use 工具支持 (#5399)。
  • 新增 Agent 执行过程中展示工具调用结果的能力,提升执行过程可观测性 (#5388)。
  • 新增插件加载/卸载 Hook,扩展插件生命周期能力 (#5331)。
  • 新增插件加载失败后的热重载能力,提升插件开发与恢复效率 (#5334)。
  • 新增 SubAgent 图片 URL/本地路径输入支持 (#5348)。
  • 新增 Dashboard 发布跳转基础 URL 可配置项 (#5330)。

修复

  • 修复 Tavily 请求的硬编码 6 秒超时。
  • 修复 OneBot v11 适配器关闭之后仍然在连接的问题(#5412)。
  • 修复上下文会话中平台缺失时的日志处理,补充 warning 并改进排查信息。
  • 修复 embedding 维度未透传到 provider API 的问题 (#5411)。
  • 修复 File 组件处理逻辑并增强 OneBot 驱动层路径兼容性 (#5391)。
  • 修复 sandbox 文件传输工具缺少管理员权限校验的问题 (#5402)。
  • 修复 pipeline 与 from ... import * 引发的循环依赖问题 (#5353)。
  • 修复配置文件存在 UTF-8 BOM 时的解析问题 (#5376)。
  • 修复 ChatUI 复制回滚路径缺失与错误提示不清晰的问题 (#5352)。
  • 修复保留插件目录处理逻辑,避免插件目录行为异常 (#5369)。
  • 修复 ChatUI 文件消息段无法持久化的问题 (#5386)。
  • 修复 .dockerignore 误排除 changelogs 目录的问题。
  • 修复 aiohttp 版本过新导致 qq-botpy 报错的问题 (#5316)。

优化

  • 完成 SubAgent 编排页面国际化,补齐多语言支持 (#5400)。
  • 增补消息事件处理相关测试,并完善测试框架的 fixtures/mocks 覆盖 (#5355, #5354)。

What's Changed (EN)

New Features

  • Added computer-use tools support in sub-agent handoff scenarios (#5399).
  • Added support for displaying tool call results during agent execution for better observability (#5388).
  • Added plugin load/unload hooks to extend plugin lifecycle capabilities (#5331).
  • Added hot reload support when plugin loading fails, improving recovery during plugin development (#5334).
  • Added image URL/local path input support for sub-agents (#5348).
  • Added stop control for active agent sessions and improved stop request handling (#5380).
  • Added configurable base URL for dashboard release redirects (#5330).

Fixes

  • Fixed logging behavior when platform information is missing in context sessions, with clearer warning and diagnostics.
  • Fixed missing embedding dimensions being passed to provider APIs (#5411).
  • Fixed shutdown stability issues in the aiocqhttp adapter (#5412).
  • Fixed File component handling and improved path compatibility in the OneBot driver layer (#5391).
  • Fixed missing admin guard for sandbox file transfer tools (#5402).
  • Fixed circular import issues related to pipeline and from ... import * usage (#5353).
  • Fixed config parsing issues when files contain UTF-8 BOM (#5376).
  • Fixed missing copy rollback path and unclear error messaging in ChatUI (#5352).
  • Fixed reserved plugin directory handling to avoid abnormal plugin path behavior (#5369).
  • Fixed ChatUI file segment persistence issues (#5386).
  • Fixed accidental exclusion of the changelogs directory in .dockerignore.
  • Fixed compatibility issues caused by a hard-coded 6-second timeout in Tavily requests.
  • Fixed qq-botpy runtime errors caused by overly new aiohttp versions (#5316).

Improvements

  • Completed internationalization for the sub-agent orchestration page (#5400).
  • Added broader message-event test coverage and improved fixtures/mocks in the test framework (#5355, #5354).
  • Updated README content and applied repository-wide formatting cleanup (ruff format) (#5375).

What's Changed

  • fix: 修复 aiohttp 版本过新导致 qq-botpy 报错的问题 by @moemoli in #5316
  • feat(dashboard): make release redirect base URL configurable by @zouyonghe in #5330
  • feat: add stop functionality for active agent sessions and improve handling of stop requests by @Soulter in #5380
  • fix: chatui cannot persist file segment by @Soulter in #5386
  • fix(plugin): update plugin directory handling for reserved plugins by @Raven95676 in #5369
  • chore(README): updated with README.md by @SXP-Simon in #5375
  • feat: add image urls / paths support for subagents by @a61995987 in #5348
  • feat: add hot reload when failed to load plugins by @Waterwzy in #5334
  • fix(chatui): add copy rollback path and error message. by @hanbings in #5352
  • fix: 处理配置文件中的 UTF-8 BOM 编码问题 by @tangsenfei in #5376
  • feat: add plugin load&unload hook by @PyuraMazo in #5331
  • test: enhance test framework with comprehensive fixtures and mocks by @whatevertogo in #5354
  • test: add comprehensive tests for message event handling by @whatevertogo in #5355
  • feat: add support for showing tool call results in agent execution by @Soulter in #5388
  • fix: resolve pipeline and star import cycles by @whatevertogo in #5353
  • feat: enable computer-use tools for subagent handoff by @Axi404 in #5399
  • fix: enforce admin guard for sandbox file transfer tools by @Axi404 in #5402
  • fix(core): 优化 File 组件处理逻辑并增强 OneBot 驱动层路径兼容性 by @SXP-Simon in #5391
  • i18n(SubAgentPage): complete internationalization for subagent orchestration page by @SXP-Simon in #5400
  • fix(aiocqhttp): enhance shutdown process for aiocqhttp adapter by @Soulter in #5412
  • fix: 让 Embedding 维度配置真正生效 by @piexian in #5411

New Contributors

Full Changelog: v4.18.1...v4.18.2