Google Cloud의 Claude

Google Cloud의 Claude (Claude on Google Cloud)

Anthropic의 Claude 모델은 Google Cloud의 Agent Platform을 통해 사용할 수 있어요. Agent Platform에서 Claude에 접근하는 API는 Messages API와 거의 동일하고, 요청 형식에 두 가지 주요 차이가 있어요. model은 요청 본문에 전달하지 않고 Google Cloud 엔드포인트 URL에 지정하며, anthropic_version은 요청 본문에 전달하고(헤더가 아니라) 반드시 vertex-2023-10-16로 설정해야 해요.

출처: 문서

본문

Anthropic의 Claude 모델은 Google Cloud의 Agent Platform을 통해 사용할 수 있어요.

Agent Platform에서 Claude에 접근하는 API는 Messages API와 거의 동일하며, 요청 형식에 두 가지 주요 차이가 있어요:

  • Agent Platform에서는 model이 요청 본문에 전달되지 않아요. 대신 Google Cloud 엔드포인트 URL에 지정돼요.
  • Agent Platform에서는 anthropic_version이 요청 본문에 전달되고(헤더가 아니라) 반드시 vertex-2023-10-16으로 설정되어야 해요.

Agent Platform은 또한 Anthropic 공식 클라이언트 SDK로 지원돼요. 이 가이드는 Anthropic 클라이언트 SDK 중 하나로 Agent Platform의 Claude에 요청하는 방법을 안내해요.

이 가이드는 Agent Platform을 사용할 수 있는 Google Cloud 프로젝트가 이미 있다고 가정해요. 필요한 설정과 전체 연습은 Agent Platform의 Anthropic Claude 모델을 참고하세요.

Agent Platform 접근용 SDK 설치하기

먼저 원하는 언어의 Anthropic 클라이언트 SDK를 설치하세요.

```bash pip install -U "anthropic[vertex]" ``` ```bash npm install @anthropic-ai/vertex-sdk ``` ```bash dotnet add package Anthropic.Vertex ``` ```bash go get github.com/anthropics/anthropic-sdk-go ``` ```groovy Gradle implementation("com.anthropic:anthropic-java:2.65.0") implementation("com.anthropic:anthropic-java-vertex:2.65.0") ```
  ```xml Maven
  <dependency>
      <groupId>com.anthropic</groupId>
      <artifactId>anthropic-java</artifactId>
      <version>2.65.0</version>
  </dependency>
  <dependency>
      <groupId>com.anthropic</groupId>
      <artifactId>anthropic-java-vertex</artifactId>
      <version>2.65.0</version>
  </dependency>
  ```

  ```java Java
  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;
  import com.anthropic.vertex.backends.VertexBackend;

  void main() {
      AnthropicClient client = AnthropicOkHttpClient.builder()
          .backend(VertexBackend.fromEnv())
          .build();

      MessageCreateParams params = MessageCreateParams.builder()
          .model(Model.CLAUDE_OPUS_5_5)
          .maxTokens(1024L)
          .addUserMessage("What is the capital of France?")
          .build();

      Message response = client.messages().create(params);
      response.content().stream()
          .flatMap(block -> block.text().stream())
          .forEach(textBlock -> IO.println(textBlock.text()));
  }
  ```
</CodeGroup>
```bash composer require anthropic-ai/sdk google/auth ``` ```bash # Gemfile gem "anthropic" gem "googleauth" ```

Agent Platform 접근하기

모델 가용성

Anthropic 모델 가용성은 지역에 따라 다르다는 점에 주의하세요. Model Garden에서 "Claude"를 검색하거나 Anthropic Claude 모델로 가서 최신 정보를 확인하세요.

API 모델 ID

수명 주기 용어(Deprecated, Retired)는 모델 폐기에서 정의돼요. 파트너 운영 플랫폼의 수명 주기 날짜는 파트너가 정하며 Claude API 일정과 다를 수 있어요. Agent Platform에서 어떤 모델의 현재 퇴역 날짜는 Google Cloud의 Agent Platform Claude 모델 문서를 참고하세요.

모델 Agent Platform API 모델 ID
Claude Fable 5.1 claude-fable-5-1
Claude Mythos 5.1 (제한적 가용성) claude-mythos-5-1
Claude Fable 5 claude-fable-5
Claude Mythos 5 (제한적 가용성) claude-mythos-5
Claude Opus 5.5 claude-opus-5-5
Claude Opus 5 claude-opus-5
Claude Opus 4.8 claude-opus-4-8
Claude Opus 4.7 claude-opus-4-7
Claude Opus 4.6 claude-opus-4-6
Claude Opus 4.5 claude-opus-4-5@20251101
Claude Opus 4.1 (deprecated) claude-opus-4-1@20250805
Claude Opus 4 (deprecated) claude-opus-4@20250514
Claude Sonnet 5 claude-sonnet-5
Claude Sonnet 4.6 claude-sonnet-4-6
Claude Sonnet 4.5 claude-sonnet-4-5@20250929
Claude Sonnet 4 (deprecated) claude-sonnet-4@20250514
Claude Haiku 4.5 claude-haiku-4-5@20251001
Claude Haiku 3.5 (deprecated) claude-3-5-haiku@20241022

: 더 새로운 Claude 모델로 업그레이드하시나요? Claude Code에서 /claude-api migrate를 실행해 코드베이스 전반에 모델 ID 교체와 호환성이 깨지는 매개변수 변경을 적용하세요. 이 스킬은 코드가 대상으로 하는 클라우드 플랫폼을 감지해 그 플랫폼에 맞게 모델 ID 형식과 기능 변경을 조정해요. 더 새로운 Claude 모델로 마이그레이션을 참고하세요.

요청 만들기

요청을 실행하기 전에 Google Cloud로 인증하기 위해 gcloud auth application-default login을 실행해야 할 수 있어요.

다음 예시는 Agent Platform에서 Claude로 텍스트를 생성하는 방법을 보여줘요:

```bash cURL MODEL_ID=claude-opus-5-5 PROJECT_ID=MY_PROJECT_ID

curl https://aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/global/publishers/anthropic/models/${MODEL_ID}:rawPredict
-H "Authorization: Bearer *** auth print-access-token)"
-H "Content-Type: application/json"
-d '{ "anthropic_version": "vertex-2023-10-16", "messages": [{"role": "user", "content": "Hey Claude!"}], "max_tokens": 100 }'


```bash CLI
# The ant CLI does not support Agent Platform.
from anthropic import AnthropicVertex

project_id = "MY_PROJECT_ID"
region = "global"

client = AnthropicVertex(project_id=project_id, region=region)

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=100,
    messages=[
        {
            "role": "user",
            "content": "Hey Claude!",
        }
    ],
)
print(message)
import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";

const projectId = "MY_PROJECT_ID";
const region = "global";

// Goes through the standard `google-auth-library` flow.
const client = new AnthropicVertex({
  projectId,
  region
});

const result = await client.messages.create({
  model: "claude-opus-5-5",
  max_tokens: 100,
  messages: [
    {
      role: "user",
      content: "Hey Claude!"
    }
  ]
});
console.log(JSON.stringify(result, null, 2));
using Anthropic.Models.Messages;
using Anthropic.Vertex;

var projectId = "MY_PROJECT_ID";
var region = "global";

var client = new AnthropicVertexClient(new AnthropicVertexCredentials(region, projectId));

var parameters = new MessageCreateParams
{
    Model = Model.ClaudeOpus5_5,
    MaxTokens = 100,
    Messages = [new() { Role = Role.User, Content = "Hey Claude!" }]
};

var message = await client.Messages.Create(parameters);
Console.WriteLine(message);
import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/vertex"
)
// ...
	// Uses default Google Cloud credentials
	client := anthropic.NewClient(
		vertex.WithGoogleAuth(context.Background(), "global", "MY_PROJECT_ID"),
	)

	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
		Model:     anthropic.ModelClaudeOpus5_5,
		MaxTokens: 100,
		Messages: []anthropic.MessageParam{
			anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
		},
	})
	if err != nil {
		panic(err)
	}
	fmt.Printf("%+v\n", message)
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;
import com.anthropic.vertex.backends.VertexBackend;

void main() {
    // Uses default Google Cloud credentials
    AnthropicClient client = AnthropicOkHttpClient.builder()
        .backend(VertexBackend.fromEnv())
        .build();

    Message message = client
        .messages()
        .create(
            MessageCreateParams.builder()
                .model(Model.CLAUDE_OPUS_5_5)
                .maxTokens(100)
                .addUserMessage("Hey Claude!")
                .build()
        );

    IO.println(message);
}
<?php

use Anthropic\Vertex;

$client = Vertex\Client::fromEnvironment(
    location: 'global',
    projectId: 'MY_PROJECT_ID',
);

$message = $client->messages->create(
    maxTokens: 100,
    messages: [
        ['role' => 'user', 'content' => 'Hey Claude!']
    ],
    model: 'claude-opus-5-5',
);
$textBlock = array_find($message->content, static fn ($block): bool => $block->type === 'text');
echo $textBlock->text;
require "anthropic"

client = Anthropic::VertexClient.new(
  region: "global",
  project_id: "MY_PROJECT_ID"
)

message = client.messages.create(
  model: "claude-opus-5-5",
  max_tokens: 100,
  messages: [{role: "user", content: "Hey Claude!"}]
)

puts message.content.find { it.type == :text }.text

자세한 내용은 클라이언트 SDK와 공식 Agent Platform 문서를 참고하세요.

Claude는 또한 Amazon Bedrock, Claude Platform on AWS, Microsoft Foundry를 통해서도 사용할 수 있어요.

데이터 보존 (Data retention)

이 제공의 데이터 처리는 Google Cloud가 규율해요. 자세한 내용은 Agent Platform과 제로 데이터 보존을 참고하세요.

활동 로깅 (Activity logging)

Agent Platform은 사용량과 관련된 프롬프트와 완료를 로깅할 수 있는 요청-응답 로깅 서비스를 제공해요.

Anthropic은 활동을 이해하고 잠재적 오용을 조사하기 위해 활동을 최소 30일 단위로 로깅할 것을 권장해요.

참고: 이 서비스를 켜도 Google이나 Anthropic이 당신의 콘텐츠에 접근할 수 없어요.

기능 지원 (Feature support)

Google Cloud 가용성이 있는 전체 기능 목록은 기능 개요를 참고하세요.

지원되는 기능 하이라이트

지원되지 않는 기능

  • 입력 소스(이미지·문서용 URL 소스, Files API)
  • 서버 측 도구(code execution, web fetch, advisor)
  • 에이전트 인프라(Agent Skills, MCP 커넥터, 프로그래매틱 도구 호출)
  • API 엔드포인트(Message Batches, Models, Admin, Compliance, Usage and Cost)
  • Claude Managed Agents
  • 서버 측 폴백(fallbacks 매개변수. 대신 클라이언트 측 폴백 패턴 사용)

컨텍스트 창 (Context window)

Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5, Claude Sonnet 4.6은 Agent Platform에서 1M 토큰 컨텍스트 창을 가져요. Sonnet 4.5와 Sonnet 4(deprecated)를 포함한 다른 Claude 모델은 200k 토큰 컨텍스트 창을 가져요.

Agent Platform은 요청 페이로드를 30MB로 제한해요. 큰 문서나 많은 이미지를 보낼 때는 토큰 한도 전에 이 한도에 도달할 수 있어요.

글로벌, 다중 지역, 지역 엔드포인트

Agent Platform은 세 가지 엔드포인트 유형을 제공해요:

  • 글로벌 엔드포인트 (Global endpoints): 최대 가용성을 위한 동적 라우팅
  • 다중 지역 엔드포인트 (Multi-region endpoints): 높은 가용성을 가진 데이터 레지던시를 위한 지리적 영역(예: 미국 또는 유럽 연합) 내 동적 라우팅
  • 지역 엔드포인트 (Regional endpoints): 특정 지리적 지역을 통한 보장된 데이터 라우팅

지역 및 다중 지역 엔드포인트는 글로벌 엔드포인트보다 10% 가격 프리미엄을 지녀요.

참고: 이는 Claude Sonnet 4.5와 이후 모델에 적용돼요. 오래된 모델(Claude Sonnet 4(deprecated), Opus 4(deprecated) 등 이전)은 기존 가격 구조를 유지해요.

각 옵션을 언제 사용할지

글로벌 엔드포인트 (권장):

  • 최대 가용성과 업타임 제공
  • 용량이 있는 지역으로 요청을 동적으로 라우팅
  • 가격 프리미엄 없음
  • 데이터 레지던시가 유연한 애플리케이션에 최적
  • 종량제 트래픽만 지원(프로비저닝된 처리량은 지역 엔드포인트 필요)

다중 지역 엔드포인트:

  • 지리적 영역 내 지역에 걸쳐 요청을 동적으로 라우팅(현재 useu)
  • 넓은 지리 내에서 데이터 레지던시가 필요하지만 단일 지역보다 높은 가용성을 원할 때 유용
  • 글로벌 엔드포인트보다 10% 가격 프리미엄
  • 종량제 트래픽만 지원(프로비저닝된 처리량은 지역 엔드포인트 필요)

지역 엔드포인트:

  • 특정 지리적 지역을 통해 트래픽 라우팅
  • 단일 지역 데이터 레지던시, 엄격한 컴플라이언스 요구, 프로비저닝된 처리량에 필요
  • 종량제와 프로비저닝된 처리량 둘 다 지원
  • 10% 가격 프리미엄은 전용 지역 용량의 인프라 비용을 반영

구현

글로벌 엔드포인트 사용 (권장):

클라이언트를 초기화할 때 region 매개변수를 "global"로 설정하세요:

```bash cURL MODEL_ID=claude-opus-5-5 PROJECT_ID=MY_PROJECT_ID

curl https://aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/global/publishers/anthropic/models/${MODEL_ID}:rawPredict
-H "Authorization: Bearer *** auth print-access-token)"
-H "Content-Type: application/json"
-d '{ "anthropic_version": "vertex-2023-10-16", "messages": [{"role": "user", "content": "Hey Claude!"}], "max_tokens": 100 }'


```bash CLI
# The ant CLI does not support Agent Platform.
from anthropic import AnthropicVertex

project_id = "MY_PROJECT_ID"
region = "global"

client = AnthropicVertex(project_id=project_id, region=region)

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=100,
    messages=[
        {
            "role": "user",
            "content": "Hey Claude!",
        }
    ],
)
print(message)
import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";

const projectId = "MY_PROJECT_ID";
const region = "global";

const client = new AnthropicVertex({
  projectId,
  region
});

const result = await client.messages.create({
  model: "claude-opus-5-5",
  max_tokens: 100,
  messages: [
    {
      role: "user",
      content: "Hey Claude!"
    }
  ]
});
console.log(JSON.stringify(result, null, 2));
using Anthropic.Models.Messages;
using Anthropic.Vertex;

var projectId = "MY_PROJECT_ID";
var region = "global";

var client = new AnthropicVertexClient(new AnthropicVertexCredentials(region, projectId));

var parameters = new MessageCreateParams
{
    Model = Model.ClaudeOpus5_5,
    MaxTokens = 100,
    Messages = [new() { Role = Role.User, Content = "Hey Claude!" }]
};

var message = await client.Messages.Create(parameters);
Console.WriteLine(message);
import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/vertex"
)
// ...
	// Uses default Google Cloud credentials
	client := anthropic.NewClient(
		vertex.WithGoogleAuth(context.Background(), "global", "MY_PROJECT_ID"),
	)

	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
		Model:     anthropic.ModelClaudeOpus5_5,
		MaxTokens: 100,
		Messages: []anthropic.MessageParam{
			anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
		},
	})
	if err != nil {
		panic(err)
	}
	fmt.Printf("%+v\n", message)
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.MessageCreateParams;
import com.anthropic.models.messages.Model;
import com.anthropic.vertex.backends.VertexBackend;
import com.google.auth.oauth2.GoogleCredentials;

void main() throws Exception {
    // Uses default Google Cloud credentials
    AnthropicClient client = AnthropicOkHttpClient.builder()
        .backend(
            VertexBackend.builder()
                .googleCredentials(GoogleCredentials.getApplicationDefault())
                .region("global")
                .project("MY_PROJECT_ID")
                .build()
        )
        .build();

    var message = client
        .messages()
        .create(
            MessageCreateParams.builder()
                .model(Model.CLAUDE_OPUS_5_5)
                .maxTokens(100)
                .addUserMessage("Hey Claude!")
                .build()
        );

    IO.println(message);
}
<?php

use Anthropic\Vertex;

$client = Vertex\Client::fromEnvironment(
    location: 'global',
    projectId: 'MY_PROJECT_ID',
);

$message = $client->messages->create(
    maxTokens: 100,
    messages: [
        ['role' => 'user', 'content' => 'Hey Claude!']
    ],
    model: 'claude-opus-5-5',
);

$textBlock = array_find($message->content, static fn ($block): bool => $block->type === 'text');
echo $textBlock->text;
require "anthropic"

client = Anthropic::VertexClient.new(
  region: "global",
  project_id: "MY_PROJECT_ID"
)

message = client.messages.create(
  model: "claude-opus-5-5",
  max_tokens: 100,
  messages: [{role: "user", content: "Hey Claude!"}]
)

puts message.content.find { it.type == :text }.text

다중 지역 엔드포인트 사용:

region 매개변수를 다중 지역 식별자로 설정하세요. "us"(미국) 또는 "eu"(유럽 연합). SDK는 해당 다중 지역 엔드포인트(https://aiplatform.us.rep.googleapis.com 또는 https://aiplatform.eu.rep.googleapis.com)로 요청을 라우팅하고, 이는 그 지리 내 지역에 걸쳐 트래픽을 동적으로 균형 조정해요.

```bash cURL MODEL_ID=claude-opus-5-5 LOCATION=us # Multi-region identifier: "us" or "eu" PROJECT_ID=MY_PROJECT_ID

curl https://aiplatform.${LOCATION}.rep.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/anthropic/models/${MODEL_ID}:rawPredict
-H "Authorization: Bearer *** auth print-access-token)"
-H "Content-Type: application/json"
-d '{ "anthropic_version": "vertex-2023-10-16", "messages": [{"role": "user", "content": "Hey Claude!"}], "max_tokens": 100 }'


```bash CLI
# The ant CLI does not support Agent Platform.
from anthropic import AnthropicVertex

project_id = "MY_PROJECT_ID"
region = "us"  # Multi-region identifier: "us" or "eu"

client = AnthropicVertex(project_id=project_id, region=region)

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=100,
    messages=[
        {
            "role": "user",
            "content": "Hey Claude!",
        }
    ],
)
print(message)
import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";

const projectId = "MY_PROJECT_ID";
const region = "us"; // Multi-region identifier: "us" or "eu"

const client = new AnthropicVertex({
  projectId,
  region
});

const result = await client.messages.create({
  model: "claude-opus-5-5",
  max_tokens: 100,
  messages: [
    {
      role: "user",
      content: "Hey Claude!"
    }
  ]
});
console.log(JSON.stringify(result, null, 2));
using Anthropic.Models.Messages;
using Anthropic.Vertex;

var projectId = "MY_PROJECT_ID";
var region = "us"; // Multi-region identifier: "us" or "eu"

var client = new AnthropicVertexClient(new AnthropicVertexCredentials(region, projectId));

var parameters = new MessageCreateParams
{
    Model = Model.ClaudeOpus5_5,
    MaxTokens = 100,
    Messages = [new() { Role = Role.User, Content = "Hey Claude!" }]
};

var message = await client.Messages.Create(parameters);
Console.WriteLine(message);
import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/vertex"
)
// ...
	// Multi-region identifier: "us" or "eu"
	client := anthropic.NewClient(
		vertex.WithGoogleAuth(context.Background(), "us", "MY_PROJECT_ID"),
	)

	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
		Model:     anthropic.ModelClaudeOpus5_5,
		MaxTokens: 100,
		Messages: []anthropic.MessageParam{
			anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
		},
	})
	if err != nil {
		panic(err)
	}
	fmt.Printf("%+v\n", message)
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.MessageCreateParams;
import com.anthropic.models.messages.Model;
import com.anthropic.vertex.backends.VertexBackend;
import com.google.auth.oauth2.GoogleCredentials;

void main() throws Exception {
    // Multi-region identifier: "us" or "eu"
    AnthropicClient client = AnthropicOkHttpClient.builder()
        .backend(
            VertexBackend.builder()
                .googleCredentials(GoogleCredentials.getApplicationDefault())
                .region("us")
                .project("MY_PROJECT_ID")
                .build()
        )
        .build();

    var message = client
        .messages()
        .create(
            MessageCreateParams.builder()
                .model(Model.CLAUDE_OPUS_5_5)
                .maxTokens(100)
                .addUserMessage("Hey Claude!")
                .build()
        );

    IO.println(message);
}
<?php

use Anthropic\Vertex;

$client = Vertex\Client::fromEnvironment(
    location: 'us', // Multi-region identifier: "us" or "eu"
    projectId: 'MY_PROJECT_ID',
);

$message = $client->messages->create(
    maxTokens: 100,
    messages: [
        ['role' => 'user', 'content' => 'Hey Claude!']
    ],
    model: 'claude-opus-5-5',
);
$textBlock = array_find($message->content, static fn ($block): bool => $block->type === 'text');
echo $textBlock->text;
require "anthropic"

client = Anthropic::VertexClient.new(
  region: "us", # Multi-region identifier: "us" or "eu"
  project_id: "MY_PROJECT_ID"
)

message = client.messages.create(
  model: "claude-opus-5-5",
  max_tokens: 100,
  messages: [{role: "user", content: "Hey Claude!"}]
)

puts message.content.find { it.type == :text }.text

지역 엔드포인트 사용:

"us-east5""europe-west1" 같은 특정 지역을 지정하세요:

```bash cURL # Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints MODEL_ID=claude-sonnet-4-6 LOCATION=us-east5 # Specify a specific region PROJECT_ID=MY_PROJECT_ID

curl https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/anthropic/models/${MODEL_ID}:rawPredict
-H "Authorization: Bearer *** auth print-access-token)"
-H "Content-Type: application/json"
-d '{ "anthropic_version": "vertex-2023-10-16", "messages": [{"role": "user", "content": "Hey Claude!"}], "max_tokens": 100 }'


```bash CLI
# The ant CLI does not support Agent Platform.
from anthropic import AnthropicVertex

project_id = "MY_PROJECT_ID"
region = "us-east5"  # Specify a specific region

client = AnthropicVertex(project_id=project_id, region=region)

message = client.messages.create(
    # Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints
    model="claude-sonnet-4-6",
    max_tokens=100,
    messages=[
        {
            "role": "user",
            "content": "Hey Claude!",
        }
    ],
)
print(message)
import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";

const projectId = "MY_PROJECT_ID";
const region = "us-east5"; // Specify a specific region

const client = new AnthropicVertex({
  projectId,
  region
});

const result = await client.messages.create({
  // Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints
  model: "claude-sonnet-4-6",
  max_tokens: 100,
  messages: [
    {
      role: "user",
      content: "Hey Claude!"
    }
  ]
});
console.log(JSON.stringify(result, null, 2));
using Anthropic.Models.Messages;
using Anthropic.Vertex;

var projectId = "MY_PROJECT_ID";
var region = "us-east5"; // Specify a specific region

var client = new AnthropicVertexClient(new AnthropicVertexCredentials(region, projectId));

var parameters = new MessageCreateParams
{
    // Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints
    Model = Model.ClaudeSonnet4_6,
    MaxTokens = 100,
    Messages = [new() { Role = Role.User, Content = "Hey Claude!" }]
};

var message = await client.Messages.Create(parameters);
Console.WriteLine(message);
import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/vertex"
)
// ...
	// Specify a specific region
	client := anthropic.NewClient(
		vertex.WithGoogleAuth(context.Background(), "us-east5", "MY_PROJECT_ID"),
	)

	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
		// Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints
		Model:     anthropic.ModelClaudeSonnet4_6,
		MaxTokens: 100,
		Messages: []anthropic.MessageParam{
			anthropic.NewUserMessage(anthropic.NewTextBlock("Hey Claude!")),
		},
	})
	if err != nil {
		panic(err)
	}
	fmt.Printf("%+v\n", message)
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.MessageCreateParams;
import com.anthropic.models.messages.Model;
import com.anthropic.vertex.backends.VertexBackend;
import com.google.auth.oauth2.GoogleCredentials;

void main() throws Exception {
    // Uses default Google Cloud credentials with specific region
    AnthropicClient client = AnthropicOkHttpClient.builder()
        .backend(
            VertexBackend.builder()
                .googleCredentials(GoogleCredentials.getApplicationDefault())
                .region("us-east5") // Specify a specific region
                .project("MY_PROJECT_ID")
                .build()
        )
        .build();

    var message = client
        .messages()
        .create(
            MessageCreateParams.builder()
                // Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints
                .model(Model.CLAUDE_SONNET_4_6)
                .maxTokens(100)
                .addUserMessage("Hey Claude!")
                .build()
        );

    IO.println(message);
}
<?php

use Anthropic\Vertex;

$client = Vertex\Client::fromEnvironment(
    location: 'us-east5',
    projectId: 'MY_PROJECT_ID',
);

$message = $client->messages->create(
    maxTokens: 100,
    messages: [
        ['role' => 'user', 'content' => 'Hey Claude!']
    ],
    // Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints
    model: 'claude-sonnet-4-6',
);
echo $message->content[0]->text;
require "anthropic"

client = Anthropic::VertexClient.new(
  region: "us-east5", # Specify a specific region
  project_id: "MY_PROJECT_ID"
)

message = client.messages.create(
  # Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints
  model: "claude-sonnet-4-6",
  max_tokens: 100,
  messages: [{role: "user", content: "Hey Claude!"}]
)

puts message.content.first.text

참고: Claude Mythos Preview는 Agent Platform에서 초대받은 고객에게 제공되는 연구 미리보기예요. 자세한 내용은 Project Glasswing을 참고하세요.

추가 자료 (Additional resources)

더 알아보기 (Learn more)