描述(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 项目的兼容性与稳定性
描述(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 项目的兼容性与稳定性