客户端 SDK
用于使用 Claude API 进行开发的官方 SDK,支持 Python、TypeScript、Java、Go、Ruby、C#、PHP 和命令行。
Anthropic 提供多语言的官方客户端 SDK,以便更轻松地使用 Claude API。每个 SDK 都提供符合语言习惯的接口、类型安全,以及对流式传输、重试和错误处理等功能的内置支持。
Info
完整的 API 规范请参阅 API 参考。
CLI
Shell 脚本、类型化标志、响应转换
Python
同步和异步客户端、Pydantic 模型
TypeScript
Node.js、Deno、Bun 和浏览器支持
Java
Builder 模式、CompletableFuture 异步
Go
基于 Context 的取消、函数式选项
Ruby
Sorbet 类型、流式传输辅助工具
C#
.NET Standard 2.0+、IChatClient 集成
PHP
值对象、Builder 模式
快速安装
brew install anthropics/tap/ant
pip install anthropic
npm install @anthropic-ai/sdk
dotnet add package Anthropic
go get github.com/anthropics/anthropic-sdk-go
implementation("com.anthropic:anthropic-java:2.33.0")
<dependency>
<groupId>com.anthropic</groupId>
<artifactId>anthropic-java</artifactId>
<version>2.33.0</version>
</dependency>
composer require anthropic-ai/sdk
bundle add anthropic
快速开始
ant messages create \
--model claude-opus-4-7 \
--max-tokens 1024 \
--message '{role: user, content: "Hello, Claude"}' \
--transform content
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(message.content)
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const message = await client.messages.create({
model: "claude-opus-4-7",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello, Claude" }]
});
console.log(message.content);
using Anthropic;
using Anthropic.Models.Messages;
var client = new AnthropicClient();
var message = await client.Messages.Create(new MessageCreateParams
{
Model = "claude-opus-4-7",
MaxTokens = 1024,
Messages = [new() { Role = Role.User, Content = "Hello, Claude" }]
});
Console.WriteLine(message.Content);
package main
import (
"context"
"fmt"
"log"
"github.com/anthropics/anthropic-sdk-go"
)
func main() {
client := anthropic.NewClient()
message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
Model: anthropic.ModelClaudeOpus4_7,
MaxTokens: 1024,
Messages: []anthropic.MessageParam{
anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, Claude")),
},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(message.Content)
}
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.Message;
import com.anthropic.models.messages.MessageCreateParams;
import com.anthropic.models.messages.Model;
public class Main {
public static void main(String[] args) {
AnthropicClient client = AnthropicOkHttpClient.fromEnv();
MessageCreateParams params = MessageCreateParams.builder()
.model(Model.CLAUDE_OPUS_4_7)
.maxTokens(1024L)
.addUserMessage("Hello, Claude")
.build();
Message message = client.messages().create(params);
System.out.println(message.content());
}
}
<?php
use Anthropic\Client;
$client = new Client(apiKey: getenv('ANTHROPIC_API_KEY'));
$message = $client->messages->create(
model: 'claude-opus-4-7',
maxTokens: 1024,
messages: [
['role' => 'user', 'content' => 'Hello, Claude']
],
);
echo $message->content[0]->text;
client = Anthropic::Client.new
message = client.messages.create(
model: "claude-opus-4-7",
max_tokens: 1024,
messages: [
{ role: "user", content: "Hello, Claude" }
]
)
puts message.content
平台支持
SDK 支持以下平台:
| 平台 | 说明 |
|---|---|
| Claude API | 直接连接 Claude API 端点 |
| Claude Platform on AWS | 在 AWS 基础设施上使用 Anthropic 运营的 Claude |
| Microsoft Foundry | 在 Microsoft Azure 上使用 Anthropic 运营的 Claude |
| Amazon Bedrock | 通过 Bedrock API 使用合作伙伴运营的 Claude |
| Vertex AI | 通过 Google Cloud 使用合作伙伴运营的 Claude |
平台支持因语言而异。请参阅各 SDK 页面了解平台特定的设置说明和可用性。
Beta 功能
使用任何 SDK 中的 beta 命名空间访问 beta 功能:
ant beta:messages create \
--model claude-opus-4-7 \
--max-tokens 1024 \
--message '{role: user, content: "Hello"}' \
--beta feature-name
message = client.beta.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
betas=["feature-name"],
)
const message = await client.beta.messages.create({
model: "claude-opus-4-7",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
betas: ["feature-name"]
});
var message = await client.Beta.Messages.Create(new MessageCreateParams
{
Model = "claude-opus-4-7",
MaxTokens = 1024,
Messages = [new() { Role = Role.User, Content = "Hello" }],
Betas = ["feature-name"],
});
message, _ := client.Beta.Messages.New(context.Background(), anthropic.BetaMessageNewParams{
Model: anthropic.ModelClaudeOpus4_7,
MaxTokens: 1024,
Messages: []anthropic.BetaMessageParam{
anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Hello")),
},
Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBeta("feature-name")},
})
fmt.Println(message)
import com.anthropic.models.beta.messages.MessageCreateParams;
import com.anthropic.models.messages.Model;
MessageCreateParams params = MessageCreateParams.builder()
.model(Model.CLAUDE_OPUS_4_7)
.maxTokens(1024L)
.addUserMessage("Hello")
.addBeta("feature-name")
.build();
client.beta().messages().create(params);
$message = $client->beta->messages->create(
model: 'claude-opus-4-7',
maxTokens: 1024,
messages: [['role' => 'user', 'content' => 'Hello']],
betas: ['feature-name'],
);
message = client.beta.messages.create(
model: "claude-opus-4-7",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
betas: ["feature-name"]
)
可用的 beta 功能请参阅 Beta 请求头。
系统要求
| SDK | 最低版本 |
|---|---|
| Python | 3.9+ |
| TypeScript | 4.9+ (Node.js 20+) |
| Java | 8+ |
| Go | 1.23+ |
| Ruby | 3.2.0+ |
| C# | .NET Standard 2.0+ |
| PHP | 8.1.0+ |