Releases: Ayleovelle/astrbot_plugin_volcengine_asr
v2.2.2 - ?? on_llm_request ?? req ??
v2.2.2 - ?? on_llm_request ?? req ??
????
- ?? AstrBot v4.24.2 ??
on_llm_request??????event??VolcengineAsrPlugin.apply_voice_prompt_template()???req??????TypeError???? apply_voice_prompt_template()??req=None??????????????event.extras??provider_request/request/req/llm_request???- ?????
ProviderRequest????????????????????volcengine_asr_llm_prompt_applied??????? dict ?? provider request ??? - ?????? 2.2.0 ? ASR?ffmpeg?LivingMemory?agent ????????????
????
v2.2.1 ??????? main?? GitHub ??? immutable release ??????????????????? v2.2.2 Release ???
??
py -3 -m pytest tests\test_helpers.py tests\test_voice_workflow.py -q?98 passedpy -3 -m py_compile astrbot_plugin_volcengine_asr\main.py tests\test_voice_workflow.py scripts\build_release_zip.pypy -3 scripts\build_release_zip.py
??
astrbot_plugin_volcengine_asr.zip- SHA256?
25E568A39ABF99C47E05F5F178F305F8334A5DC20DFFE4539BEC2A8E04360CB0
v2.2.0
v2.2.0 正式版
这是由 2.1.12-pr2 LivingMemory 实测适配版本整理升格的正式版。
关键更新
- 将实验版本号正式升为 2.2.0,同步插件元数据、主 README 与插件内 README。
- 保留并正式化 LivingMemory 适配保护:兼容 event.get_message_str() 以及 provider content part 对象形态,减少 'dict' object has no attribute ... 一类跨插件上下文错误。
- 测试服 WebChat Record -> 火山 ASR -> LLM -> LivingMemory conversation 链路已通过。
- 本地回归:scripts/run_local_iteration_tests.py 通过 95 项。
安装包
- 文件:�strbot_plugin_volcengine_asr.zip
- SHA256:$sha256
本版本仍建议在 AstrBot / NapCat Docker 场景中确认共享卷、Record 文件可读性与 ffmpeg 状态。LivingMemory 适配结果来自指定测试环境,其他模型、上下文长度或插件组合下仍建议先做小流量验证。
v2.1.12-pr2.2
v2.1.12-pr2.2
这是 v2.1.12-pr2 的发布附件补发 tag。插件包内版本仍为 2.1.12-pr2。
原因:v2.1.12-pr2 与 v2.1.12-pr2.1 在附件上传前被 GitHub 标记为 immutable release,不能再补传附件,因此本 tag 使用 draft-first 流程重新发布同一提交的正式 zip 包。
主要变更
- 修复部分插件通过 stale get_message_str() 读取消息时拿不到 ASR 注入文本的问题。
- 保留 provider content part 对象形态,降低与依赖 model_dump_for_context() 的插件发生兼容错误的风险。
- 补充 LivingMemory 适配与 provider request 清理相关测试。
验证
- py -3 -m pytest tests/test_helpers.py tests/test_voice_workflow.py
- 95 passed
- 测试服 WebChat Record -> 火山 ASR -> LLM -> LivingMemory conversation 实测通过。
附件
- astrbot_plugin_volcengine_asr.zip
- SHA256: 1090284DD58654A61FA0933B3F7EC793017D6869C3E184250347EBB534E5B1B9
v2.1.12-pr2.1
v2.1.12-pr2.1
这是 �2.1.12-pr2 的发布附件补发 tag。插件包内版本仍为 2.1.12-pr2。
原因:�2.1.12-pr2 release 在附件上传前被 GitHub 标记为 immutable,删除后同 tag 仍不能重建 release,因此使用 �2.1.12-pr2.1 补发同一提交的正式 zip 包。
主要变更
- 修复部分插件通过 stale get_message_str() 读取消息时拿不到 ASR 注入文本的问题。
- 保留 provider content part 对象形态,降低与依赖 model_dump_for_context() 的插件发生兼容错误的风险。
- 补充 LivingMemory 适配与 provider request 清理相关测试。
验证
- py -3 -m pytest tests/test_helpers.py tests/test_voice_workflow.py
- 95 passed
- 测试服 WebChat Record -> 火山 ASR -> LLM -> LivingMemory conversation 实测通过。
附件
- astrbot_plugin_volcengine_asr.zip
- SHA256: 1090284DD58654A61FA0933B3F7EC793017D6869C3E184250347EBB534E5B1B9
v2.1.12
v2.1.12 - 修复 AstrBot 上传安装包目录结构
主要变更
- 修复 Release zip 顶层平铺
CHANGELOG.md、main.py、metadata.yaml时,AstrBot v4.24.2 上传安装器可能报[Errno 20] Not a directory: .../CHANGELOG.md的问题。 - Release zip 现在固定以
astrbot_plugin_volcengine_asr/作为唯一顶层目录,插件文件放在该目录内,兼容 AstrBot 的updator.unzip_file()解压逻辑。 scripts/build_release_zip.py和旧_pack.py均改为生成单目录包裹结构,并校验 zip 第一项、顶层目录、必需文件和内置ffmpeg可执行权限。- README 同步修正上传安装说明:WebUI 上传 Release zip 要用单目录包裹结构;仓库安装仍使用仓库根目录的轻量入口文件。
- 新增回归测试锁定 Release zip 结构,避免后续又打出平铺包。
- 本版本不改变
v2.1.11的 ASR、ffmpeg、ProviderRequest 活对象保护、agent 缓存清理和情绪权重接口逻辑。
SHA256
6b318095bed00868f115c49e91ce2c82bb080fca5892bf1db8caf167f5aeabd0
v2.1.11
v2.1.11
修复 AstrBot v4.24.2 agent request 阶段缓存残留导致的两类问题:
Error occurred while processing agent request: not a valid file: xxx.amr'dict' object has no attribute 'model_dump_for_context'
主要变化
event.extras/message_obj.extras中的request、req、llm_request等 ProviderRequest 别名会被原地净化,不再被跳过。- 带
model_dump_for_context()的 AstrBot 请求对象会被识别并保留对象身份,避免被序列化成普通dict写回缓存。 run_context支持 dict/mapping 形态清理,扩展cached_content、cached_messages、history、input_messages、conversation、session等缓存字段。- 普通 URL、普通
files/path和普通 extras 会继续保留;只有确认含音频引用、Record或.amr/.silk等音频痕迹时才净化。
验证
py -3 -m py_compile astrbot_plugin_volcengine_asr\\main.py tests\\test_voice_workflow.py tests\\test_helpers.py- 手动加载
tests.conftest后执行 70 条零参数回归:全部通过。
安装提醒
请下载本 Release 附件里的 astrbot_plugin_volcengine_asr.zip,不要使用 GitHub 自动生成的 Source code zip。
v2.1.10
v2.1.10 - ?? v2.1.9 ????? immutable release ?
v2.1.10 ???????? v2.1.9 ? agent ?????? run_context ??????? GitHub ????? v2.1.9 Release ?? immutable release ???????? Release ????? zip ?????????????? v2.1.10?
????
- ??
v2.1.9?on_agent_begin?????run_context.messages?stage_data?cache?payload???????? - ?? extras / run_context ????? record/audio/file/path ?????????????????????
- ??
ProviderRequest????????????run_context.event? - ??????????
astrbot_plugin_volcengine_asr.zip????? GitHub ????? Source code zip?
??
py -3 -m py_compile astrbot_plugin_volcengine_asr\main.py tests\test_voice_workflow.py tests\test_helpers.py- ???? 66 ????????????
- ?? Release zip ?????
metadata.yaml??2.1.10?bin/linux-x86_64/ffmpeg?ffmpeg ???0o100755? - ??? AstrBot v4.24.2 ?????????????
2.1.9?????????????
SHA256: dc947032015788be4d65bc8029105779e9187378c6fa1012a5d700ef141f1b26
v2.1.7
v2.1.7 - 加固异形缓存 Record 发现
v2.1.7 是 v2.1.6 修复内容的正常发布版,用新 tag 绕开 GitHub immutable release 导致 v2.1.6 无法补传资产的问题。运行时主链路与 v2.1.6 一致。
修复内容
_find_records()现在会额外扫描event.extras、message_obj.extras、_extras、extra以及常见request/input/messages/content缓存字段,避免异形适配器缓存里的Record(file="xxx.amr")漏进官方 agent 后段。- 主消息链替换仍不改写 extras 缓存,只在识别与残留清理阶段读取这些缓存,降低对 AstrBot / 其它插件私有数据的破坏风险。
- README / CHANGELOG 同步说明:
preprocess_stage的Voice processing failed: not a valid file: xxx.amr仍属于 AstrBot 官方前置预处理阶段,插件侧只能处理后段可接管的 Record 残留。
校验
py -3 -m py_compile .\main.py .\astrbot_plugin_volcengine_asr\main.py- 手动加载
tests.conftest后运行tests.test_helpers与tests.test_voice_workflow:共 59 个测试通过 scripts\build_release_zip.py已校验 zip 内bin/linux-x86_64/ffmpeg为0o100755
下载
astrbot_plugin_volcengine_asr.zip- SHA256: 43fd23d388b2c34267bb485846ef85099088d21e5ba863791b9a65de72c48465
v2.1.5
v2.1.5 - Docker / NapCat / 官方预处理排障增强
这次发布不改变语音识别主链路,重点增强排障可见性,帮助区分三类问题:
preprocess_stage warning = AstrBot 官方预处理在插件之前读不到 Record 文件
agent_sub_stages error = 官方 agent 后续仍扫到旧 Record
本插件 ffmpeg 失败 = 插件自己的转码链路无法启动或转码失败
主要变更
/volc_asr_status增加插件版本、仓库地址和官方preprocess_stage责任边界提示。- README 在常见问题中新增
preprocess_stage 提示 Voice processing failed: not a valid file: xxx.amr排障章节。 - 文档说明 Ubuntu 宝塔面板 Docker / NapCat / OneBot 场景下,
xxx.amr可能只是 NapCat 容器临时文件名或 OneBot file id,不一定是 AstrBot 容器内真实路径。 - 文档补充官方 STT 配置、
platform_settings.path_mapping、Docker 共享卷、NapCatget_record与插件submit_mode=base64的推荐排查顺序。
重要说明
AstrBot v4.24.2 的官方 PreProcessStage 会在插件 handler 之前尝试处理 Record:
event.get_messages()
-> 找到 Record
-> component.convert_to_file_path()
-> ensure_wav(original_path)
-> 写回 component.file / component.path
所以,如果关闭本插件后仍看到:
[preprocess_stage.stage:81]: Voice processing failed: not a valid file: xxx.amr
这不是本插件 ffmpeg 没启动,也不是火山 ASR 失败,而是 AstrBot 官方前置预处理读不到 NapCat / OneBot 的裸语音文件引用。
v2.1.4 已经修复插件开启后官方 agent 后续继续扫旧 Record 的问题。v2.1.5 进一步把这个责任边界写入 README 和状态命令,便于部署在 Docker 中时判断问题属于哪一层。
建议配置
如果不使用 AstrBot 官方 STT,请检查:
{
"provider_stt_settings": {
"enable": false,
"provider_id": ""
}
}插件侧建议保持:
submit_mode = base64
enable_transcode = true
prefer_bundled_ffmpeg = true
若 NapCat 和 AstrBot 分别运行在不同容器,建议让两边共享同一个数据目录,例如都能访问 /AstrBot/data。
验证
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版本为2.1.5,并包含repo
v2.1.4
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
ProcessStageyield 干净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