Releases: AstrBotDevs/AstrBot
Releases · AstrBotDevs/AstrBot
v4.22.0
What's Changed
新增
- 新增个人微信接入能力(微信官方提供)。详见 个人微信接入(#6777)
- 新增图片压缩能力,支持图片尺寸、JPEG 质量限制。(#6794)
- 新增 WebUI 已安装插件置顶与拖拽重排能力。(#6776)
优化
修复
- Telegram 适配器改为导入
Forbidden,替代已弃用的Unauthorized(兼容性修正)。(#6769) - 处理 OpenAI Provider 中
token usage metrics为None时的异常场景。(#6788) - 保留全部
CallToolResult的content项,避免工具调用上下文内容丢失。(#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
UnauthorizedwithForbidden.(#6769) - Handled
Nonevalues in OpenAI providertoken usage metrics.(#6788) - Kept all
CallToolResult.contentitems 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
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_type中StrEnum到(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.mdfiles toSKILL.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
StrEnumto(str, Enum)inkook_typefor 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_timeoutto subagent handsoff/cron/background tasks and increased default timeout to 120 seconds. - Fixed
skills-likere-query missingextra_user_content_partscausing image caption not injected. - Rejected follow-up messages after
/stoprequest. - Interrupted subagent tool waits on stop.
- Preserved
PATHEXTfor stdio MCP servers on Windows. - Added automatic restart for Telegram polling loop on failure.
- Fixed follow-up persistence logic after
/stoptrigger. - 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
400for 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_agentdecoratorNameError. - Fixed subagent lookup failure when using default persona.
- Fixed reading skills on Windows.
- Fixed multiline frontmatter parsing in
SKILL.md. - Fixed SQLite
database is lockedwith 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...
v4.20.1
What's Changed
新增
优化
- 优化 UMO 处理兼容性。(#5996)
- 重构
_extract_session_id,改进聊天类型分支处理。(#5775) - 优化聊天组件行为,使用
shiki进行代码块渲染。(#6286) - 优化 WebUI 主题配色与视觉体验。(#6263)
- 优化 OneBot @ 组件后处理,避免消息文本解析空格问题。(#6238)
修复
- 修复创建新 Provider 后未同步
providers_config的问题。(#6388) - 修复 API 返回
null choices时的TypeError。(#6313) - 修复 QQ Webhook 重试回调重复触发的问题。(#6320)
- 修复流式模式下
delta为None导致工具调用时报错的问题。(#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_idfor chat type handling (#5775). - Improved chat component behavior and uses
shikifor 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_configsync after creating new providers (#6388). - Fixed
TypeErrorwhen API returns null choices (#6313). - Fixed repeated QQ webhook retry callbacks (#6320).
- Fixed tool-calling streaming null
deltahandling to preventAttributeError(#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
ValueErrorin retry loop when removing an already removed API key (#6193). - Updated startup command to
astrbot runacross 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
rainyunbackup/access documentation (#6427). - Updated
package.mdand 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
What's Changed
新增
优化
修复
- 修复 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_whitespaceparameter 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
- @Jzjerry made their first contribution in #6031
- @shudorcl made their first contribution in #6048
- @DOHEX made their first contribution in #6044
- @orbisai0security made their first contribution in #6093
- @stablegenius49 made their first contribution in #6091
- @seoeaa made their first contribution in #6081
- @2ndelement made their first contribution in #6131
Full Changelog: v4.19.5...v4.20.0
v4.19.5
What's Changed
新增
优化
- 启动时后台加载 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-docsintoAstrBotDevs/AstrBot(#5960).
v4.19.4
v4.19.3
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_quote与reply_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_baseconfiguration (#5911). - Fixed searching installed plugins by display name in extensions (#5806, #5811).
- Fixed image-only responses not applying
reply_with_quoteandreply_with_mention(#5219). - Fixed
RegexFilterusingre.matchinstead ofre.searchfor 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
- @ChuwuYo made their first contribution in #5811
- @windycold made their first contribution in #5911
- @JasonOA888 made their first contribution in #5913
Full Changelog: v4.19.2...v4.19.3
v4.19.2
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_MODEenvironment 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
/modelcommand 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_stepconfig 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
- @WintryWind7 made their first contribution in #5580
- @pandyzhou made their first contribution in #5578
- @w31r4 made their first contribution in #5028
- @catDforD made their first contribution in #5670
- @L-1ngg made their first contribution in #5676
- @miaoxutao123 made their first contribution in #5677
Full Changelog: https://github.com/AstrBotDevs/Ast...
v4.18.3
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
useExtensionPagecomposable 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_idbeing 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
- @realquantumcookie made their first contribution in #5389
- @CCCCCCTV made their first contribution in #5430
Full Changelog: v4.18.2...v4.18.3
v4.18.2
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)。
优化
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
changelogsdirectory 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
- @a61995987 made their first contribution in #5348
- @hanbings made their first contribution in #5352
- @tangsenfei made their first contribution in #5376
- @PyuraMazo made their first contribution in #5331
- @Axi404 made their first contribution in #5399
Full Changelog: v4.18.1...v4.18.2