anthropic-sdk-java
anthropics/anthropic-sdk-java加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Anthropic 官方 Java SDK,版本 2.71.0
2024年末,随着 Claude 3.5 系列模型在编程和推理能力上的全面超越,Anthropic 正式推出了面向企业开发者的多语言 SDK 生态——其中,**Java SDK(anthropic-sdk-java)**是生态中最具战略意义的一环。
原因很简单:全球财富500强中,超过80%的核心业务系统仍运行在 Java 之上。JVM 生态的银行、保险、电商、物流、政府系统构成了数字经济的基础骨架。这些系统要接入 AI 能力,最自然的方式不是重写为 Python,而是通过原生 Java 库直接集成。
anthropic-sdk-java 正是为此而生:由 Anthropic 官方维护,截至2026年10月已发布至 v2.71.0(平均每月2-3次迭代),Stars 382,贡献者30人,是目前 Java 生态中接入 Claude API 最规范、最完整的官方方案。
该 SDK 采用 Gradle 多模块设计,结构清晰:
| 模块 | 描述 | 依赖 |
|---|---|---|
anthropic-java-core | 核心 SDK 逻辑,纯 Java/Kotlin,不依赖特定 HTTP 客户端 | 无(平台无关) |
anthropic-java-client-okhttp | OkHttp HTTP 客户端实现 | OkHttp |
anthropic-java | 整合包,同时暴露同步/异步客户端 API | core + okhttp |
这种设计的精妙之处在于:核心逻辑与传输层解耦。企业可以基于 anthropic-java-core 自定义 HTTP 客户端实现,插入到已有的微服务网络层中,而不必引入额外的 OkHttp 依赖。
该 SDK 不只是调用标准 Claude API,还支持三大企业级云平台:
anthropic-java-bedrock):通过 AWS Mantle 后端接入,使用 AWS 默认凭证链(IAM Role、EC2 元数据等),无需管理 API Key,适合 AWS 原生环境anthropic-java-vertex):通过 Vertex Backend 接入,支持 Workload Identity Federation,适合 GKE/Vertex 环境anthropic-java-aws):企业级 Agent 平台集成,支持 MCP(MCP Tunnel)协议// 同步调用
AnthropicClient client = AnthropicOkHttpClient.fromEnv();
Message message = client.messages().create(params);
// 异步调用(返回 CompletableFuture)
CompletableFuture<Message> future = client.async().messages().create(params);
异步模式对企业微服务至关重要:在 Spring Boot、Quarkus 等框架中,非阻塞 IO 是高并发性能的核心保障。
SDK 所有请求参数均使用强类型 Builder 模式:
MessageCreateParams params = MessageCreateParams.builder()
.maxTokens(1024L)
.addUserMessage("Hello, Claude")
.model(Model.CLAUDE_OPUS_5_5)
.addBeta(AnthropicBeta.CONTEXT_MANAGEMENT_2025_06_27)
.build();
相比直接拼接 JSON 的方式,Builder 模式在编译期就能发现类型错误,配合 IDE 的自动补全,开发体验接近 Python SDK 的便利性。
SDK 内置指数退避重试机制(默认2次),对临时性网络错误和 5xx 响应自动恢复,降低了生产环境的故障率。超时时间可配置,支持长请求(streaming 场景)的特殊处理。
Claude 的核心能力之一是工具调用(Function Calling / Tool Use)。该 SDK 完整支持:
Anthropic 的新功能通常以 Beta 形式先发布(如 Context Management、Computer Use、MCP 等),SDK 通过 .beta() 方法提供独立入口,版本号与 API 版本对齐,企业可以渐进式采用新特性。
<dependency>
<groupId>com.anthropic</groupId>
<artifactId>anthropic-java</artifactId>
<version>2.71.0</version>
</dependency>
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
AnthropicClient client = AnthropicOkHttpClient.fromEnv(); // 自动读取 ANTHROPIC_API_KEY
MessageCreateParams params = MessageCreateParams.builder()
.maxTokens(1024L)
.addUserMessage("用一句话解释量子计算")
.model(Model.CLAUDE_OPUS_5_5)
.build();
Message message = client.messages().create(params);
System.out.println(message.content().get(0).text());
环境要求:仅需 Java 8+ 和一个 ANTHROPIC_API_KEY,无需任何基础设施配置。
这是 SDK,不是可以直接运行的 Web 服务。对于没有 Java 后端工程能力的小团队,门槛相对 Python SDK 更高——你需要有 Java/Maven 或 Gradle 项目基础。
完整引入 anthropic-java 会带入 OkHttp、Jackson 等依赖(约 5-10MB)。在极端追求轻量的场景下(Android 应用、Lambda 函数),需要考虑依赖体积。
虽然官方文档网站(platform.claude.com)提供了完整 API 参考,但示例代码以 JDK 25 compact 源码格式为主,与大多数企业的 JDK 8-17 代码风格有差异,需要一定翻译成本。
相比 Python SDK,Java SDK 的中文博客、StackOverflow 讨论极少。遇到问题时,排查路径主要依赖官方文档和 GitHub Issues,响应速度取决于社区活跃度。
anthropic-sdk-java 的出现,本质上解决了企业 AI 集成"最后一公里"问题:在 Spring Boot、Jakarta EE 应用中,直接 @Bean 注入 AnthropicClient,即可在任意 Service 中调用 Claude,方式与调用数据库、消息队列无异。
随着 Bedrock 和 Vertex 支持的完善,Java 企业可以用统一的 SDK 接口对接不同的 AI 后端:开发环境用标准 Anthropic API,生产环境按需切换到 AWS Bedrock 或 GCP Vertex。这种灵活性是 Python SDK 生态所不具备的。
该仓库自2024年11月创建,迄今已发布 71 个版本(平均每3-4天一个版本),CHANGELOG 显示几乎每次更新都紧跟 Anthropic API 的最新特性(从 Claude 3.5 到 Opus 5.5、从 Computer Use 到 MCP Tunnels),说明 Anthropic 对 Java 生态的战略优先级很高。
适合使用该 SDK 的场景:
不适合的场景:
| 维度 | 评分 | 说明 |
|---|---|---|
| 官方维护度 | ⭐⭐⭐⭐⭐ | Anthropic 官方,71个版本,高频迭代 |
| 类型安全 | ⭐⭐⭐⭐⭐ | 强类型 Builder,编译期检查 |
| 企业适配 | ⭐⭐⭐⭐⭐ | 多 Backend、异步、多云支持 |
| 上手难度 | ⭐⭐⭐ | 需要 Java 基础,略高于 Python |
| 文档质量 | ⭐⭐⭐ | API 文档完整,但示例偏向新版 JDK |
| 部署难度 | ⭐⭐ | 纯库依赖,./gradlew build 即可 |