Skip to content

v2.1.4

Choose a tag to compare

@Ayleovelle Ayleovelle released this 06 May 12:24
· 31 commits to main since this release
Immutable release. Only release title and notes can be modified.

v2.1.4 - AstrBot 更新器与官方 agent 兼容修复

这次发布修复两个 AstrBot 侧交接问题。

第一,修复 AstrBot 插件页更新时报错:

Plugin astrbot_plugin_volcengine_asr does not specify a repository URL.

第二,修复官方 agent 在插件成功识别后仍可能按旧 Record(file="xxx.amr") 消息链重新构造请求,并继续报:

Error occurred while processing agent: not a valid file: xxx.amr

问题原因

旧版本发布包里的 metadata.yaml 写着:

repo: ""

因此 AstrBot 更新器不知道应该从哪个 GitHub 仓库检查和拉取新版。这个问题不影响 ASR 运行逻辑,但会影响 AstrBot WebUI 插件页里的“更新”功能。

另外,AstrBot 官方 ProcessStage 对插件 handler 返回的 ProviderRequest 有专门处理:如果插件直接 yield ProviderRequest,官方 agent 会使用这个请求;如果没有显式 yield,后续默认 LLM 流程可能继续从 event.message_obj.message 构造请求,并再次扫描旧 Record

主要修复

  • 根目录 metadata.yaml 补充:
repo: "https://github.com/Ayleovelle/astrbot_plugin_volcengine_asr"
  • 发布包目录 astrbot_plugin_volcengine_asr/metadata.yaml 同步补充同一仓库地址。
  • 版本升级到 2.1.4,重新构建 Release zip。
  • README 和 CHANGELOG 补充更新器排障说明。
  • 成功识别和未听清注入路径现在会直接向 AstrBot ProcessStage yield 干净 ProviderRequest
  • 写入 provider_request 后会调用 event.should_call_llm(True),避免默认 LLM 流程在插件提供请求之后再次重入。

关于 preprocess_stage 的 warning

你可能仍会看到类似:

[preprocess_stage.stage:81]: Voice processing failed: not a valid file: xxx.amr

这条 warning 来自 AstrBot 官方预处理阶段,发生在插件 handler 之前;即使关闭本插件,官方预处理也会尝试把 Record(file="xxx.amr") 当本地文件转换。这个 warning 不代表本插件 ffmpeg 没启动。

本版本重点解决的是插件开启后不应再继续进入 agent_sub_stages 的旧 Record 媒体扫描。如果你希望连 preprocess warning 也消失,需要关闭 AstrBot 官方 STT/语音预处理,或让 OneBot/NapCat 提供官方预处理可读取的真实语音文件路径。

升级建议

如果你已经安装的是 2.1.3 或更早版本,并且 AstrBot 更新时报这个错误,请先手动下载并上传本页面附件:

astrbot_plugin_volcengine_asr.zip

安装 2.1.4 后,插件元数据里就会带上仓库地址,后续 AstrBot 插件页更新器才能正常找到仓库。

运行逻辑说明

本版本不改变以下核心 ASR 运行逻辑:

  • QQ / NapCat AMR 语音取回
  • OneBot get_record 兜底
  • ffmpeg 转码链路
  • 干净 ProviderRequest 注入
  • LivingMemory 友好两阶段注入
  • 情绪判断 LLM

验证

  • python3 -m py_compile main.py astrbot_plugin_volcengine_asr/main.py tests/conftest.py tests/test_helpers.py tests/test_voice_workflow.py
  • 手动测试 runner:manual tests passed: 58
  • _conf_schema.json 双份 JSON 校验通过
  • README / CHANGELOG / metadata / schema 双份同步校验通过
  • Release zip 构建通过,包内 metadata.yaml 已包含 repo