agentscope-ai / agentscope-ai/agentscope-java

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

未关闭
#872 2 条评论 2 个 reaction 已指派 0 人 在 GitHub 查看
area/ext/spring-boot enhancement
主要语言
Java
星标
5.6k
派生
1.3k
平均合并
4 天 12 小时
30 天内合并 PR
77

描述

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

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。