English ← MyDocs

客户端 SDK

用于使用 Claude API 进行开发的官方 SDK,支持 Python、TypeScript、Java、Go、Ruby、C#、PHP 和命令行。


Anthropic 提供多语言的官方客户端 SDK,以便更轻松地使用 Claude API。每个 SDK 都提供符合语言习惯的接口、类型安全,以及对流式传输、重试和错误处理等功能的内置支持。

Info

完整的 API 规范请参阅 API 参考

快速安装

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最低版本
Python3.9+
TypeScript4.9+ (Node.js 20+)
Java8+
Go1.23+
Ruby3.2.0+
C#.NET Standard 2.0+
PHP8.1.0+

GitHub 仓库