Skip to content

[Feature]: 支持使用 Spring WebClient 替代 OkHttp 作为可选 HTTP 传输实现 #872

@liujing882001

Description

@liujing882001

描述(Description)

当前 AgentScope Java SDK 在内部使用 OkHttpTransport 作为默认的 HTTP 客户端来调用模型 API,这导致:

用户必须在项目中显式引入 okhttp3 依赖,否则会出现 NoClassDefFoundError: okhttp3.MediaType。

在 Spring WebFlux/Reactor 环境下,OkHttp 与 SSE/流式输出的长连接集成不够原生,容易出现连接重置或超时问题,尤其是输出量较大时。

希望 SDK 能增加一个可选的 WebClientTransport,允许用户在 Spring 项目中使用原生的 WebClient 替代 OkHttp,实现更好的反应式流式处理和连接稳定性。
复现步骤(Steps to Reproduce)

创建 Spring Boot + WebFlux 项目

使用 DashScopeChatModel.builder().stream(true).build() 进行流式调用

移除项目中的 OkHttp3 依赖

启动服务,会出现以下错误:

Caused by: java.lang.NoClassDefFoundError: okhttp3/MediaType
at io.agentscope.core.model.transport.OkHttpTransport.(OkHttpTransport.java:65)

期望结果(Expected Behavior)

提供可选的 WebClientTransport,与 Spring WebFlux/Reactor 原生集成
避免必须引入 OkHttp3 依赖
保证流式 SSE 的稳定性和连接持续性

实际结果(Actual Behavior)

当前 SDK 强制依赖 OkHttp
在 WebFlux 流式场景中,输出量大时容易出现连接被重置或超时问题

环境信息(Environment)

AgentScope Java SDK 版本:x1.0.9

Spring Boot 版本:3.x.x

Java 版本:17+

系统:Windows/Linux

额外信息(Additional Context)
已验证:在通用 Java 项目中 OkHttp 不会出现此类问题,主要在 WebFlux 长连接流式场景中
如果可以支持 WebClient,将大大提升 Spring 项目的兼容性与稳定性

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    In progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions