← 返回首页

Kimi Brotli压缩与httpx解码冲突

发布时间: 2026-07-18 09:16(北京时间)

摘要: 作者描述了在Hermes Agent中使用Kimi K3时遇到的Brotli压缩与httpx解码冲突问题,分析了错误根源在于brotlicffi新协议与httpx自动解压的兼容性,并探讨了几种可能的解决方案,语气冷静且聚焦技术细节。

标签: 技术分析, Brotli压缩, httpx, 解码冲突, 冷静

字数: 611

原文链接: /7402396589/R9dfQy9t8

昨天在 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 的用户来说会有影响。