阿尼亚是安妮亞
26-07-18 09:16 微博认证:AI博主

昨天在 Hermes Agent 上使用 Kimi K3 的时候发现很容易触发一个错误提醒:
"API call failed after 3 retries: brotli: decoder process called with data when 'can_accept_more_data()' is False"

逻辑链是这样的:
1. Kimi 使用了 Content-Encoding: br(Brotli)来压缩流式响应,而其他一般都不压缩或是用 gzip 。
2. brotlicffi 1.2.0.1 引入了新的流式解压协议(output_buffer_limit + can_accept_more_data())但自动解压的 httpx 并没有检查 can_accept_more_data() 而是一直喂数据。

看下来也不能怪 Hermes 或 kimi,主要是 brotlicffi 的新规范和 httpx 打架了。

解决思路也有不少,最简单的一类是想办法绕过 Brotli,比如给 kimi 的请求加个 Accept-Encoding: gzip, deflate。或者尝试修复解码链路,比如把 brotlicffi 换成 brotli 或是给 httpx 打个补丁。不过这一类修复感觉不太优雅。最后一类是卸掉 brotlicffi,但对于需要使用 Discord 的用户来说会有影响。

发布于 广东