Files
AstrBot/changelogs/v4.21.0.md
2026-03-22 02:00:28 +08:00

110 lines
8.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## What's Changed
### 新增
- 为插件市场新增分类筛选并优化界面组件。([#6762](https://github.com/AstrBotDevs/AstrBot/pull/6762)
- 新增 Kimi Coding Plan Provider兼容 Anthropic API[#6559](https://github.com/AstrBotDevs/AstrBot/pull/6559)
- 统一并重命名 `skill.md` 文件为 `SKILL.md`。([#6757](https://github.com/AstrBotDevs/AstrBot/pull/6757)
- 新增 Ollama 关闭思考模式开关。([#5941](https://github.com/AstrBotDevs/AstrBot/pull/5941)
- 新增小米 MiMo TTS 与 STT Provider。[#6643](https://github.com/AstrBotDevs/AstrBot/pull/6643)
- 新增多模态上下文 token 计数能力(图片、音频与思维链)。([#6596](https://github.com/AstrBotDevs/AstrBot/pull/6596)
- 新增按元信息名称安装插件并校验可导入标识符。([#6530](https://github.com/AstrBotDevs/AstrBot/pull/6530)
### 优化
- 降低 `kook_type``StrEnum``(str, Enum)` 以兼容旧版本 Python。[#6512](https://github.com/AstrBotDevs/AstrBot/pull/6512)
- 优化 WebChat 消息处理:提前保存消息并增强流式补全。([#6698](https://github.com/AstrBotDevs/AstrBot/pull/6698)
- 优化 Dashboard 中移动端 persona 选择器布局。([#5907](https://github.com/AstrBotDevs/AstrBot/pull/5907)
- 优化 Dashboard减少 MDI icon font 范围并自托管 Google Fonts。[#6532](https://github.com/AstrBotDevs/AstrBot/pull/6532)
- 使用 Pydantic 重构 KOOK 适配器数据模型以提升消息结构解析与校验性能。([#5719](https://github.com/AstrBotDevs/AstrBot/pull/5719)
- 调整文档术语与表达(“消息平台”改为“机器人”等)并优化更新说明文字。([#6568](https://github.com/AstrBotDevs/AstrBot/pull/6568)
### 修复
- 修复 web search tools 中被禁用系统函数时未正确生效的问题。([#6584](https://github.com/AstrBotDevs/AstrBot/pull/6584)
- 跳过空的知识库嵌入批次,避免不必要计算。([#6106](https://github.com/AstrBotDevs/AstrBot/pull/6106)
- 修复 Feishu opus 文件在 Whisper API STT 场景下未正确转换的问题。([#6078](https://github.com/AstrBotDevs/AstrBot/pull/6078)
- 修复 Lark 在工具调用中断时卡片创建与重续流程。([#6743](https://github.com/AstrBotDevs/AstrBot/pull/6743)
- 修复 Windows 环境下 skill 文件编码兼容问题。([#6058](https://github.com/AstrBotDevs/AstrBot/pull/6058)
- 修复 WebChat 单独渲染的 HTML 回复被错误显示的问题。([#6074](https://github.com/AstrBotDevs/AstrBot/pull/6074)
- 修复 Gemini 数组 schema 缺少 `items` 字段的问题。([#6051](https://github.com/AstrBotDevs/AstrBot/pull/6051)
- 修复 skills 使用硬编码工作区路径的问题,改为使用缓存中的真实沙箱路径。([#6331](https://github.com/AstrBotDevs/AstrBot/pull/6331)
- 修复 subagent 工具调用超时传递,修正 `tool_call_timeout` 并将默认超时从 60 秒提升到 120 秒。([#6713](https://github.com/AstrBotDevs/AstrBot/pull/6713)
- 修复 `skills-like` 下缺失 `extra_user_content_parts` 时未注入图片说明的问题。([#6710](https://github.com/AstrBotDevs/AstrBot/pull/6710)
- 修复 `/stop` 后继续处理后续 follow-up 消息的问题。([#6704](https://github.com/AstrBotDevs/AstrBot/pull/6704)
- 修复核心流程在 stop 时中断子代理工具等待的行为。([#5850](https://github.com/AstrBotDevs/AstrBot/pull/5850)
- 修复 Windows 平台 stdio MCP 服务 `PATHEXT` 丢失的问题。([#5822](https://github.com/AstrBotDevs/AstrBot/pull/5822)
- 修复 Telegram 轮询重启机制,失败时自动恢复循环。([#6648](https://github.com/AstrBotDevs/AstrBot/pull/6648)
- 修复 `/stop` 后 follow-up 状态未清理导致后续触发继续运行的问题。([#6656](https://github.com/AstrBotDevs/AstrBot/pull/6656)
- 修复 OpenAI 配置日志,改进代理与 API Base 的可读性与排障能力。([#6669](https://github.com/AstrBotDevs/AstrBot/pull/6669)
- 修复长工具调用中截断逻辑误删唯一 user 消息的问题。([#6198](https://github.com/AstrBotDevs/AstrBot/pull/6198)
- 修复截断器移除唯一用户消息导致部分 provider 返回 `400` 的问题。([#6581](https://github.com/AstrBotDevs/AstrBot/pull/6581)
- 修复 ID 白名单为空时提示文案不清晰的问题。([#6611](https://github.com/AstrBotDevs/AstrBot/pull/6611)
- 修复 MoonshotAI 官方 API 下 OpenAI token usage 缺失问题。([#6618](https://github.com/AstrBotDevs/AstrBot/pull/6618)
- 提升 Wecom AI Bot 流式可读性与速度(限流处理),改善卡顿与显示体验。([#6610](https://github.com/AstrBotDevs/AstrBot/pull/6610)
- 修复 Wecom 长连接回复消失的问题。([#6606](https://github.com/AstrBotDevs/AstrBot/pull/6606)
- 修复 Windows 打包运行时 pip/native 构建环境配置问题。([#6575](https://github.com/AstrBotDevs/AstrBot/pull/6575)
- 修复仅在显式配置时传递 embedding `dimensions`,避免无效参数干扰。([#6432](https://github.com/AstrBotDevs/AstrBot/pull/6432)
- 修复 `register_agent` 装饰器导致的 `NameError`。([#5765](https://github.com/AstrBotDevs/AstrBot/pull/5765)
- 修复默认 persona 场景下的 subagent 查询失败问题。([#5672](https://github.com/AstrBotDevs/AstrBot/pull/5672)
- 修复 Windows 下 skill 读取失败问题。([#6490](https://github.com/AstrBotDevs/AstrBot/pull/6490)
- 修复 `SKILL.md` 多行 frontmatter 解析问题。([#6460](https://github.com/AstrBotDevs/AstrBot/pull/6460)
- 修复 SQLite `database is locked` 问题,新增繁忙超时处理。([#6474](https://github.com/AstrBotDevs/AstrBot/pull/6474)
- 修复工作流限制仅允许上游仓库触发的报错场景。([#6531](https://github.com/AstrBotDevs/AstrBot/pull/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.