Skip to content

[Feature] OpenAiCompatibleModelClient 支持 per-call timeout 配置,消费者不再需要装饰器补口 #357

Description

Paired: GitHub #357 ↔ GitCode #189

来自 agent-solution 仓 smartresearch-alpha(agent-core-java 0.1.16 消费者,真 LLM e2e 实测背景)。
涉及分支:930(0.1.16 血统)。

标题:[Feature] OpenAiCompatibleModelClient 支持 per-call timeout 配置,消费者不再需要装饰器补口

背景(agent-solution 仓 smartresearch-alpha 实测,agent-core-java 0.1.16)

  • ReActAgent.callModel 固定传 callTimeout = null;
  • OpenAiCompatibleModelClient.applyCallTimeout(call, null) 直接返回、不设 okhttp per-call 超时 ⇒ 单次模型调用无总时长上界;
  • ModelClientConfig.timeout 只进 read/write 超时(connect 另封 10s),不覆盖整次调用;
  • 0.1.15 曾有 DEFAULT_CALL_TIMEOUT_SECONDS = 180f 回落,0.1.16 删除——相邻版本行为不同,消费者不易察觉。

现状代价

smartresearch-alpha 被迫自造 CallTimeoutModel 装饰器(null → 1200s)把「无上界」变显式上界,且必须经 delegate.invoke 虚分发(super.invoke 直连会绕过链上其他装饰器,例如工具调用执法层的参数注入)。装饰器存在的唯一意义是补一个配置口。

请求

ModelClientConfig(或 ModelRequestConfig)暴露 per-call timeout 配置项,applyCallTimeout 消费之;默认行为二选一(维持 0.1.16 现状,或回落 0.1.15 语义——请维护方定,但请写进文档)。落地后消费者可删除装饰器整类。

开源先例

langgraph(TimeoutPolicy:run_timeout / idle_timeout 原生配置)、OpenAI codex(codex-rs 的 stream_idle_timeout_ms 等原生旋钮)、openclaw(turn 级超时原生配置)——主流 agent 框架均原生暴露 per-call / 节点超时配置,未见过「靠给客户端套装饰器注入超时」的形态。



(关联 #​188:本 issue 为其夹逼公式 min(per-call, remaining) 提供前置配置口;两者可独立评审、独立落地。)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions