github AstrBotDevs/AstrBot v4.24.2

4 hours ago
  • 更新日志(简体中文)
  • Changelog(English)

我们将推出更好的 AstrBot 插件分享和管理平台,敬请期待!

What's Changed

新增

  • 新增插件自定义 WebUI 页面(Plugin Pages)能力,插件可通过 pages/ 目录和注册 Web 路由来向 Dashboard 暴露自定义页面。详见开发文档。(#5940
  • 新增插件国际化支持,插件可在 .astrbot-plugin/i18n 中提供多语言名称、描述和配置文本,Dashboard 组件会按当前语言解析展示。详见开发文档。(#7919
  • 新增插件技能支持,插件可通过 skills/ 提供 skills。(#7945)。详见开发文档。
  • 新增 extra_user_content_parts 临时内容标记,插件可使用 TextPart(...).mark_as_temp() 让追加内容只参与本轮 LLM 请求而不写入会话历史。(#7976)。详见插件开发文档。
  • 新增插件详情页、插件短描述、插件置顶,以及通过 AstrBot 官方插件存储下载插件的能力,改善插件安装与浏览体验。(#7896, #7918, #7930, #7931
  • 新增 fallback_max_context_tokens 配置,当模型元数据缺失且 max_context_tokens 为 0 时,可使用默认上下文窗口上限参与压缩判断。该值默认为 128k。(#7942
  • 支持在 WebUI Skills 页中查看并编辑技能文件。(#7903
  • 新增 CUA Computer Use 沙盒运行时,支持桌面 GUI、截图、键盘、鼠标、浏览器启动流程、前后台 Shell、文件回退处理与权限控制,并补充使用文档和测试。(#7828
  • 新增后台 Shell 命令执行、输出重定向和超时支持,并为 Python 工具增加 timeout 参数。(#7835, #7953
  • 新增 QQ 官方平台消息级 Markdown 控制能力。(#6980
  • 新增 Chat 与 Live Chat 路由的附件保存事件,前端可感知附件持久化结果。(#7869
  • 新增部署脚本,支持 Linux/macOS/WSL 与 Windows PowerShell 一键安装,并将脚本发布到 docs public 目录。(#7631

优化

  • 优化 Dashboard 扩展、知识库、MCP、技能和配置页面的布局、卡片样式、响应式表现与多语言文案。(#7903
  • 优化会话历史中的工具调用渲染,工具消息不再作为普通气泡直接进行 Markdown 渲染,而是聚合到对应 assistant 的工具卡片中,避免大工具结果导致页面卡顿。(#7937
  • 优化上下文管理与压缩策略,包括截断算法、用户消息删除问题修复、PPIO 上下文长度错误识别,以及配置界面对执行顺序的说明。(#7888, #7920
  • 优化 Provider 模型添加逻辑、模型启用开关持久化、Provider 测试失败提示,以及默认 Provider 缺失或无效时的启动警告。(#7865, #7498, #7934
  • 优化 send_message_to_user 在安全模式、cron 主动任务和无完整 session 格式场景下的提示与容错,并为 cron payload 增加 session 信息。(#7907, #7911
  • 优化 list+options 配置项,改用 v-autocomplete 并缓存候选项,改善长列表选择体验。(#7884, #7885
  • 优化命令与工具描述显示,WebUI 中被截断的描述现在可通过 tooltip 查看。(#7838
  • 优化指标统计、日志可读性、知识库文档、系统提示词文档,以及 AGENTS.md 中的 pre-commit 开发说明。(#7838, #7962

修复

  • 修复 send_message_to_user 可被普通用户指定任意 session 发送消息的安全问题;普通用户只能发送到当前会话,管理员仍可指定 session。(#7822, #7824
  • 修复 T2I 文本模板渲染回归,恢复原始文本渲染,默认注入 Shiki runtime,并调整内置模板和 WebUI 预览。(#7789
  • 修复 IME 输入法组合状态下按 Enter 会误发送聊天的问题。(#7845
  • 修复 Anthropic 并行工具结果合并、自定义请求头和 system prompt 兼容性,避免多 httpx 安装导致 client 类型不匹配,并使用列表格式 system 参数提升代理兼容性。(#7875, #7587
  • 修复 OpenAI Provider 的 http_client 与 SDK httpx 类型兼容问题。(#7773
  • 修复 stop_event() 后后续 handler 仍继续执行,以及 clear_result() 导致停止状态被重置的问题。(#7900, #7922
  • 修复 system_promptNone 时注入人格或 skills prompt 会报错的问题。(#7880
  • 修复 Shipyard Neo 沙盒就绪检测和优雅清理,避免未就绪时继续运行或关闭流程异常。(#7881
  • 修复桌面端插件安装并发问题,安装过程现在受核心锁保护。(#7872
  • 修复 QQ 官方私聊主动推送在缺少缓存 msg_id 时跳过发送的问题,同时保留群聊缓存校验。(#7904, #7914
  • 修复微信客服文件消息支持,并移除企业微信文件消息占位文本。(#7923
  • 修复钉钉 SDK 任务异常退出或连接超时后无法自动重连的问题。(#7924
  • 修复 PowerShell 安装脚本 BOM、部署脚本路径、.gitignore 与公开目录同步问题。
  • 修复工具调用 tool_choice 相关调试问题,暂时注释该参数以规避部分 Provider 不兼容。(#7853, #7856, #7862

What's Changed (EN)

New Features

  • Added the CUA Computer Use sandbox runtime with desktop GUI, screenshots, keyboard, mouse, browser startup flow, foreground/background shell support, filesystem fallbacks, permission handling, docs, and tests. (#7828)
  • Added Plugin Pages, allowing plugins to expose Dashboard pages through a pages/ directory with asset authentication, bridge script, back-button behavior, docs, and security tests. (#5940)
  • Added plugin internationalization support through .astrbot-plugin/i18n, including localized names, descriptions, config text, Dashboard integration, docs, and tests. (#7919)
  • Added plugin-provided skills with synchronization, metadata enrichment, plugin detail display, and configuration-aware filtering. (#7945)
  • Added the plugin detail page, plugin short descriptions, plugin pinning, and support for downloading plugins from AstrBot official plugin storage. (#7896, #7918, #7930, #7931)
  • Added background shell command execution with output redirection and timeout support, and added a timeout parameter to the Python tool. (#7835, #7953)
  • Added fallback_max_context_tokens, used when model metadata is missing and max_context_tokens is set to 0. (#7942)
  • Added message-level Markdown control for QQ Official. (#6980)
  • Added attachment saved events for Chat and Live Chat routes. (#7869)
  • Added Linux/macOS/WSL and Windows PowerShell deployment scripts, published through the docs public directory. (#7631)
  • Added temporary extra_user_content_parts; plugins can use TextPart(...).mark_as_temp() to include content in the current LLM request without persisting it into conversation history. (#7976)

Improvements

  • Improved the Dashboard extension, knowledge base, MCP, skills, and config pages with better layouts, card styles, responsiveness, translations, and skill-file editing in WebUI. (#7903)
  • Improved tool rendering in conversation history by grouping tool messages into the assistant tool card instead of rendering large tool results as normal Markdown bubbles. (#7937)
  • Improved context management and compression, including truncation behavior, user-message retention, PPIO context-length error detection, and clearer UI copy for execution order. (#7888, #7920)
  • Improved Provider model adding logic, model enable-toggle persistence, failed provider-test feedback, and startup warnings for missing or invalid default providers. (#7865, #7498, #7934)
  • Improved send_message_to_user prompts and tolerance in safety mode, cron proactive tasks, and incomplete session formats; cron payloads now include session information. (#7907, #7911)
  • Improved list+options config fields by switching to v-autocomplete and memoizing select items for better long-list selection. (#7884, #7885)
  • Improved truncated command and tool descriptions in WebUI by adding tooltip access. (#7838)
  • Improved metrics, log clarity, knowledge base docs, system prompt docs, and AGENTS.md pre-commit setup guidance. (#7838, #7962)

Bug Fixes

  • Fixed a security issue where normal users could ask send_message_to_user to send messages to arbitrary sessions; normal users are now restricted to the current session while admins can still target other sessions. (#7822, #7824)
  • Fixed T2I text template rendering by restoring raw text rendering, injecting Shiki runtime by default, and updating built-in templates and preview behavior. (#7789)
  • Fixed Enter key handling during IME composition in chat input. (#7845)
  • Fixed Anthropic parallel tool-result merging, custom headers, and system prompt compatibility by using default_headers and list-format system prompts. (#7875, #7587)
  • Fixed OpenAI Provider http_client compatibility with SDK httpx. (#7773)
  • Fixed stop_event() allowing later handlers to continue, and fixed stop-state reset caused by clear_result(). (#7900, #7922)
  • Fixed persona and skills prompt injection when system_prompt is None. (#7880)
  • Fixed Shipyard Neo readiness gating and graceful sandbox cleanup. (#7881)
  • Fixed concurrent desktop plugin installation by protecting installs with the core lock. (#7872)
  • Fixed QQ Official private proactive push being skipped when cached msg_id is missing, while preserving group-message cache validation. (#7904, #7914)
  • Fixed WeChat kefu file messages and removed the WeCom file-message placeholder. (#7923)
  • Fixed DingTalk reconnect failures after SDK task exits or connection timeouts. (#7924)
  • Fixed the PowerShell install script BOM, deploy script paths, .gitignore, and public-directory sync issues.
  • Fixed provider incompatibilities around tool_choice by temporarily commenting out the parameter for debugging. (#7853, #7856, #7862)

What's Changed

  • fix: restore T2I text template rendering by @camera-2018 in #7789
  • feat: add message-level markdown control for QQ Official platform by @KBVsent in #6980
  • docs: add pre-commit setup guide to AGENTS.md by @Soulter in #7838
  • fix: prevent IME enter from sending chat by @zouyonghe in #7845
  • feat: add CUA computer-use sandbox support by @zouyonghe in #7828
  • feat: add one-line deploy script (deploy-cli.sh) by @EterUltimate in #7631
  • chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.3 in the github-actions group by @dependabot[bot] in #7857
  • feat: add attachment saved event handling in chat and live chat routes by @Soulter in #7869
  • fix: Protect desktop plugin installs with core lock by @zouyonghe in #7872
  • feat(shell): add background command execution with output redirection and timeout support by @Soulter in #7835
  • fix: merge anthropic parallel tool results by @daniel5u in #7875
  • fix(provider): persist model enable toggle by @ACAne0320 in #7865
  • fix(core): restrict send_message_to_user to current session (security fix #7822) by @Soulter in #7824
  • fix(shipyard-neo): add readiness gate and graceful sandbox cleanup by @RC-CHN in #7881
  • fix: warn when default chat provider is unset by @s11IM in #7498
  • fix(dashboard): use v-autocomplete for list+options config field (#7884) by @10knamesmore in #7885
  • feat: add PluginDetailPage component for detailed plugin information display by @Soulter in #7896
  • fix: stop_event() 后续 handler 仍然执行 by @Blueteemo in #7900
  • fix: align OpenAI http_client with SDK httpx by @bugkeep in #7773
  • perf: improve ui and supports edit skills file in webui by @Soulter in #7903
  • feat: re-implement plugin pinning functionality for extensions by @Soulter in #7918
  • fix: guard against None system_prompt in _ensure_persona_and_skills by @LIghtJUNction in #7880
  • feat: Implement plugin internationalization support by @Soulter in #7919
  • fix(#7904): QQ官方私聊主动推送不再因缺少缓存 msg_id 而跳过发送 by @NayukiChiba in #7914
  • feat: supports to download plugins via astrbot official plugin storage by @Soulter in #7930
  • feat: add short description support for plugin by @Soulter in #7931
  • fix: prevent stop_event() state from being reset by clear_result() by @lingyun14beta in #7922
  • fix: 优化上下文管理策略 UI 文案,明确执行顺序 by @Blueteemo in #7920
  • fix: avoid success toast on failed provider test by @Fronut in #7934
  • feat: add fallback_max_context_tokens config for context compression by @Pleiades1726 in #7942
  • fix: handle PPIO platform context-length error messages by @leonforcode in #7888
  • fix: 支持微信客服文件消息 by @AstralSolipsism in #7923
  • fix(provider): fix Anthropic custom headers and system prompt compatibility by @PinkYuDeer in #7587
  • fix(#7907): send_message_to_user cron 场景下 session 容错 by @NayukiChiba in #7911
  • perf: tool rendering in conversation page by @10knamesmore in #7937
  • feat: add python tool timeout param by @Fronut in #7953
  • fix: 钉钉连接超时后自动重连失败 by @Blueteemo in #7924
  • feat: supports plugin to add skills by @Soulter in #7945
  • feat: supports plugin to register custom pages (webui) by @lxfight in #5940
  • feat: add temporary extra user content parts by @Soulter in #7976

New Contributors

Full Changelog: v4.23.6...v4.24.1

Don't miss a new AstrBot release

NewReleases is sending notifications on new releases.