请求超时改为空闲超时
- 日期:2026-07-16
- 提交:
fix(runtime): 将 request timeout 改为 provider 请求级 idle timeout - 版本:
0.11.1-alpha.4
本次更新修正了运行时语义。配置名称仍为 request_timeout_seconds,但含义已发生变化。
原设计存在的问题
原设计更接近"整轮对话/单次尝试最大时长",并且包含一些特殊逻辑:
- 整轮级软超时
- 权限审批打开时暂停超时计时
当遇到长回复、模型慢速推理,或审批停留较长时间时,行为不够直观。
当前语义
[runtime].request_timeout_seconds 现在是 单次 provider HTTP 请求的空闲超时(默认 120,范围 1..7200):
- 限制建立连接的等待时间
- 限制流式响应中相邻数据块之间的空闲间隔
- 收到数据后重置计时
- 不限制整轮对话的总时长 — 只要响应过程中持续有数据到达,就不会仅因为总时长超过 120 秒而中断请求
超时后仍进入现有重试流程;每次重试都会获得完整的全新空闲超时计时。取消路径保留原有的优雅处理逻辑。
配置说明见 config.toml · request_timeout_seconds。如果你之前为了支持长回复而将该值设置得很大,可以现在按照空闲超时语义重新评估:关键问题是"多久没有数据算作连接断开",而非"整轮对话最多允许运行多久"。