---
title: Google Cloud의 Claude
url: https://platform.claude.com/docs/ko/build-with-claude/claude-on-vertex-ai
description: Anthropic의 Claude 모델은 [Google Cloud's Agent Platform](https://cloud.google.com/vertex-ai)을 통해 사용할 수 있습니다.
---

Google Cloud's Agent Platform에서 Claude에 접근하기 위한 API는 [Messages API](https://platform.claude.com/docs/ko/api/messages/create)와 거의 동일하지만, 요청 형식에서 두 가지 주요 차이점이 있습니다:

* Agent Platform에서는 `model`이 요청 본문에 전달되지 않습니다. 대신 Google Cloud 엔드포인트 URL에 지정됩니다.
* Agent Platform에서는 `anthropic_version`이 (헤더가 아닌) 요청 본문에 전달되며, 값은 `vertex-2023-10-16`으로 설정되어야 합니다.

Agent Platform은 Anthropic의 공식 [클라이언트 SDK](https://platform.claude.com/docs/ko/cli-sdks-libraries/overview)에서도 지원됩니다. 이 가이드는 Anthropic의 클라이언트 SDK 중 하나를 사용하여 Agent Platform에서 Claude에 요청하는 방법을 안내합니다.

이 가이드는 Agent Platform을 사용할 수 있는 Google Cloud 프로젝트가 이미 있다고 가정합니다. 필요한 설정과 전체 안내에 대한 자세한 내용은 [Anthropic Claude models on Agent Platform](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/partner-models/claude)을 참조하세요.

## Agent Platform 액세스를 위한 SDK 설치

먼저 원하는 언어에 맞는 Anthropic의 [클라이언트 SDK](https://platform.claude.com/docs/ko/cli-sdks-libraries/overview)를 설치하세요.

<Tabs>
  <Tab title="Python">
    ```bash
    pip install -U "anthropic[vertex]"
    ```
  </Tab>

  <Tab title="TypeScript">
    ```bash
    npm install @anthropic-ai/vertex-sdk
    ```
  </Tab>

  <Tab title="C#">
    ```bash
    dotnet add package Anthropic.Vertex
    ```
  </Tab>

  <Tab title="Go">
    ```bash
    go get github.com/anthropics/anthropic-sdk-go
    ```
  </Tab>

  <Tab title="Java">
    <CodeGroup exclude="shell, python, typescript, csharp, go, php, ruby">
      ```groovy Gradle
      implementation("com.anthropic:anthropic-java:2.73.0")
      implementation("com.anthropic:anthropic-java-vertex:2.73.0")
      ```

      ```xml Maven
      <dependency>
          <groupId>com.anthropic</groupId>
          <artifactId>anthropic-java</artifactId>
          <version>2.73.0</version>
      </dependency>
      <dependency>
          <groupId>com.anthropic</groupId>
          <artifactId>anthropic-java-vertex</artifactId>
          <version>2.73.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;
      import com.google.auth.oauth2.GoogleCredentials;

      void main() throws Exception {
          AnthropicClient client = AnthropicOkHttpClient.builder()
              .backend(
                  VertexBackend.builder()
                      .googleCredentials(GoogleCredentials.getApplicationDefault())
                      .region("global")
                      .project("MY_PROJECT_ID")
                      .build()
              )
              .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>
  </Tab>

  <Tab title="PHP">
    ```bash
    composer require anthropic-ai/sdk google/auth
    ```
  </Tab>

  <Tab title="Ruby">
    ```bash
    # Gemfile
    gem "anthropic"
    gem "googleauth"
    ```
  </Tab>
</Tabs>

## Agent Platform 접근

### 모델 가용성

Anthropic 모델 가용성은 지역에 따라 다릅니다. [Model Garden](https://cloud.google.com/model-garden)에서 "Claude"를 검색하거나 [Anthropic Claude models](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/partner-models/claude)로 이동하여 최신 정보를 확인하세요.

#### API 모델 ID

수명 주기 용어(Deprecated, Retired)는 [모델 지원 중단](https://platform.claude.com/docs/ko/about-claude/model-deprecations)에 정의되어 있습니다. 파트너가 운영하는 플랫폼의 수명 주기 날짜는 파트너가 설정하며 Claude API 일정과 다를 수 있습니다. Agent Platform에서 모델의 현재 종료 날짜는 [Google Cloud's documentation for Claude models on Agent Platform](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/partner-models/claude)을 참조하세요.

| Model                                                                                                 | Agent Platform API model ID  |
| :---------------------------------------------------------------------------------------------------- | :--------------------------- |
| Claude Fable 5.1                                                                                      | `claude-fable-5-1`           |
| Claude Mythos 5.1 ([limited availability](https://support.claude.com/en/articles/14604842))           | `claude-mythos-5-1`          |
| Claude Fable 5                                                                                        | `claude-fable-5`             |
| Claude Mythos 5 ([limited availability](https://support.claude.com/en/articles/14604842))             | `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](https://platform.claude.com/docs/ko/about-claude/model-deprecations))   | `claude-opus-4-1@20250805`   |
| Claude Opus 4 ([deprecated](https://platform.claude.com/docs/ko/about-claude/model-deprecations))     | `claude-opus-4@20250514`     |
| Claude Sonnet 5.5                                                                                     | `claude-sonnet-5-5`          |
| Claude Sonnet 5                                                                                       | `claude-sonnet-5`            |
| Claude Sonnet 4.6                                                                                     | `claude-sonnet-4-6`          |
| Claude Sonnet 4.5 ([deprecated](https://platform.claude.com/docs/ko/about-claude/model-deprecations)) | `claude-sonnet-4-5@20250929` |
| Claude Sonnet 4 ([deprecated](https://platform.claude.com/docs/ko/about-claude/model-deprecations))   | `claude-sonnet-4@20250514`   |
| Claude Haiku 5.5                                                                                      | `claude-haiku-5-5`           |
| Claude Haiku 4.5                                                                                      | `claude-haiku-4-5@20251001`  |
| Claude Haiku 3.5 ([deprecated](https://platform.claude.com/docs/ko/about-claude/model-deprecations))  | `claude-3-5-haiku@20241022`  |

<Tip>
  최신 Claude 모델로 업그레이드하시나요? Claude Code에서 `/claude-api migrate`를 실행하면 코드베이스 전체에 모델 ID 교체 및 호환성이 깨지는 매개변수 변경 사항을 적용할 수 있습니다. 이 스킬은 코드가 대상으로 하는 클라우드 플랫폼을 감지하고 해당 플랫폼에 맞게 모델 ID 형식과 기능 변경 사항을 조정합니다. [최신 Claude 모델로 마이그레이션하기](https://platform.claude.com/docs/ko/agents-and-tools/agent-skills/claude-api-skill#migrating-to-a-newer-claude-model)를 참조하세요.
</Tip>

### 요청 보내기

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

다음 예제는 Agent Platform의 Claude에서 텍스트를 생성하는 방법을 보여줍니다:

<CodeGroup exclude="shell:CLI">
  ```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 $(gcloud 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
    }'
  ```

  <CodeGroupItem language="CLI">
    `ant` CLI는 Agent Platform을 지원하지 않습니다.
  </CodeGroupItem>

  ```python Python
  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)
  ```

  ```typescript TypeScript
  import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";

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

  // 표준 `google-auth-library` 흐름을 거칩니다.
  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));
  ```

  ```csharp C#
  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);
  ```

  ```go Go
  import (
  	"context"
  	"fmt"

  	"github.com/anthropics/anthropic-sdk-go"
  	"github.com/anthropics/anthropic-sdk-go/vertex"
  )
  // ...
  	// 기본 Google Cloud 자격 증명을 사용합니다
  	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)
  ```

  ```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;
  import com.google.auth.oauth2.GoogleCredentials;

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

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

      IO.println(message);
  }
  ```

  ```php PHP
  <?php

  use Anthropic\Vertex;

  $client = Vertex\Client::fromEnvironment(
      region: '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;
  ```

  ```ruby Ruby
  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
  ```
</CodeGroup>

자세한 내용은 [클라이언트 SDK](https://platform.claude.com/docs/ko/cli-sdks-libraries/overview)와 공식 [Agent Platform 문서](https://cloud.google.com/vertex-ai/docs)를 참조하세요.

Claude는 [Amazon Bedrock](https://platform.claude.com/docs/ko/build-with-claude/claude-in-amazon-bedrock), [Claude Platform on AWS](https://platform.claude.com/docs/ko/build-with-claude/claude-platform-on-aws), [Microsoft Foundry](https://platform.claude.com/docs/ko/build-with-claude/claude-in-microsoft-foundry)를 통해서도 사용할 수 있습니다.

## 데이터 보존

이 제품의 데이터 처리는 Google Cloud에 의해 관리됩니다. 자세한 내용은 [Agent Platform and zero data retention](https://cloud.google.com/vertex-ai/generative-ai/docs/data-governance)을 참조하세요.

## 활동 로깅

Agent Platform은 사용과 관련된 프롬프트 및 완성을 로깅할 수 있는 [요청-응답 로깅 서비스](https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/request-response-logging)를 제공합니다.

Anthropic은 활동을 이해하고 잠재적인 오용을 조사하기 위해 최소 30일 롤링 기준으로 활동을 로깅할 것을 권장합니다.

<Note>
  이 서비스를 켜도 Google이나 Anthropic이 귀하의 콘텐츠에 접근할 수 있는 권한이 부여되지는 않습니다.
</Note>

## 기능 지원

Google Cloud 가용성이 포함된 전체 기능 목록은 [기능 개요](https://platform.claude.com/docs/ko/build-with-claude/overview)를 참조하세요.

### 지원되는 주요 기능

* [Messages API](https://platform.claude.com/docs/ko/api/messages/create)
* [프롬프트 캐싱](https://platform.claude.com/docs/ko/build-with-claude/prompt-caching)
* [사고](https://platform.claude.com/docs/ko/build-with-claude/thinking)
* [도구 사용](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/overview), [Bash 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/bash-tool), [브라우저 사용 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/browser-use-tool), [컴퓨터 사용 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/computer-use-tool), [메모리 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/memory-tool), [텍스트 편집기 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/text-editor-tool) 포함
* [웹 검색 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/web-search-tool)
* [인용](https://platform.claude.com/docs/ko/build-with-claude/citations)
* [구조화된 출력](https://platform.claude.com/docs/ko/build-with-claude/structured-outputs)

### 지원되지 않는 기능

* 입력 소스(이미지 및 문서용 URL 소스, Files API)
* 서버 측 도구(코드 실행, 웹 가져오기, 어드바이저)
* 에이전트 인프라(Agent Skills, MCP 커넥터, 프로그래밍 방식 도구 호출)
* API 엔드포인트(Message Batches, Models, Admin, Compliance, Usage and Cost)
* Claude Managed Agents
* 서버 측 폴백([`fallbacks` 매개변수](https://platform.claude.com/docs/ko/build-with-claude/refusals-and-fallback#server-side-fallback); 대신 [클라이언트 측 폴백 패턴](https://platform.claude.com/docs/ko/build-with-claude/refusals-and-fallback#client-side-fallback)을 사용하세요)

### 컨텍스트 윈도우

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.5, Claude Sonnet 5, Claude Sonnet 4.6 및 Claude Haiku 5.5 모델은 Agent Platform에서 [1M 토큰 "context window"(컨텍스트 윈도우)](https://platform.claude.com/docs/ko/build-with-claude/context-windows)를 제공합니다. Sonnet 4.5(지원 중단) 및 Sonnet 4(지원 중단)를 포함한 다른 Claude 모델은 200k 토큰 컨텍스트 윈도우를 제공합니다.

Agent Platform은 요청 페이로드를 30MB로 제한합니다. 대용량 문서나 많은 이미지를 보낼 때는 토큰 한도보다 먼저 이 한도에 도달할 수 있습니다.

## 글로벌, 멀티 리전 및 리전 엔드포인트

Agent Platform은 세 가지 엔드포인트 유형을 제공합니다:

* **"Global endpoint"(글로벌 엔드포인트):** 최대 가용성을 위한 동적 라우팅
* **"Multi-region endpoint"(멀티 리전 엔드포인트):** 높은 가용성과 함께 "data residency"(데이터 레지던시)를 위해 지리적 영역(예: 미국 또는 유럽 연합) 내에서 동적 라우팅
* **"Regional endpoint"(리전 엔드포인트):** 특정 지리적 리전을 통한 데이터 라우팅 보장

리전 및 멀티 리전 엔드포인트에는 글로벌 엔드포인트 대비 10%의 가격 프리미엄이 적용됩니다.

<Note>
  이는 Claude Sonnet 4.5(지원 중단) 및 향후 모델에만 적용됩니다. 이전 모델(Claude Sonnet 4(지원 중단), Opus 4(지원 중단) 및 그 이전 모델)은 기존 가격 구조를 유지합니다.
</Note>

### 각 옵션을 사용해야 하는 경우

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

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

**멀티 리전 엔드포인트:**

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

**리전 엔드포인트:**

* 특정 지리적 리전을 통해 트래픽 라우팅
* 단일 리전 데이터 레지던시, 엄격한 규정 준수 요구 사항 또는 프로비저닝된 처리량에 필요
* 종량제 및 프로비저닝된 처리량 모두 지원
* 10% 가격 프리미엄은 전용 리전 용량에 대한 인프라 비용을 반영

### 구현

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

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

<CodeGroup exclude="shell:CLI">
  ```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 $(gcloud 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
    }'
  ```

  <CodeGroupItem language="CLI">
    `ant` CLI는 Agent Platform을 지원하지 않습니다.
  </CodeGroupItem>

  ```python Python
  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)
  ```

  ```typescript TypeScript
  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));
  ```

  ```csharp C#
  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);
  ```

  ```go Go
  import (
  	"context"
  	"fmt"

  	"github.com/anthropics/anthropic-sdk-go"
  	"github.com/anthropics/anthropic-sdk-go/vertex"
  )
  // ...
  	// 기본 Google Cloud 자격 증명을 사용합니다
  	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)
  ```

  ```java Java
  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 {
      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 PHP
  <?php

  use Anthropic\Vertex;

  $client = Vertex\Client::fromEnvironment(
      region: '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;
  ```

  ```ruby Ruby
  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
  ```
</CodeGroup>

**멀티 리전 엔드포인트 사용:**

`region` 매개변수를 멀티 리전 식별자로 설정하세요. 미국은 `"us"`, 유럽 연합은 `"eu"`입니다. SDK는 해당 멀티 리전 엔드포인트(`https://aiplatform.us.rep.googleapis.com` 또는 `https://aiplatform.eu.rep.googleapis.com`)로 요청을 라우팅하며, 이 엔드포인트는 해당 지역 내의 리전 간에 트래픽을 동적으로 분산합니다.

<CodeGroup exclude="shell:CLI">
  ```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 $(gcloud 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
    }'
  ```

  <CodeGroupItem language="CLI">
    `ant` CLI는 Agent Platform을 지원하지 않습니다.
  </CodeGroupItem>

  ```python Python
  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)
  ```

  ```typescript TypeScript
  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));
  ```

  ```csharp C#
  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);
  ```

  ```go Go
  import (
  	"context"
  	"fmt"

  	"github.com/anthropics/anthropic-sdk-go"
  	"github.com/anthropics/anthropic-sdk-go/vertex"
  )
  // ...
  	// 다중 리전 식별자: "us" 또는 "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)
  ```

  ```java Java
  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 {
      // 다중 리전 식별자: "us" 또는 "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 PHP
  <?php

  use Anthropic\Vertex;

  $client = Vertex\Client::fromEnvironment(
      region: '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;
  ```

  ```ruby Ruby
  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
  ```
</CodeGroup>

**리전 엔드포인트 사용:**

`"us-east5"` 또는 `"europe-west1"`과 같은 특정 리전을 지정하세요:

<CodeGroup exclude="shell:CLI">
  ```bash cURL
  # 특정 리전 엔드포인트는 Claude Sonnet 4.6 이하 모델을 지원하며, 최신 모델은 글로벌 또는 멀티 리전 엔드포인트를 사용합니다
  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 $(gcloud 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
    }'
  ```

  <CodeGroupItem language="CLI">
    `ant` CLI는 Agent Platform을 지원하지 않습니다.
  </CodeGroupItem>

  ```python Python
  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(
      # 특정 리전 엔드포인트는 Claude Sonnet 4.6 이하 모델을 지원하며, 최신 모델은 글로벌 또는 멀티 리전 엔드포인트를 사용합니다
      model="claude-sonnet-4-6",
      max_tokens=100,
      messages=[
          {
              "role": "user",
              "content": "Hey Claude!",
          }
      ],
  )
  print(message)
  ```

  ```typescript TypeScript
  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({
    // 특정 리전 엔드포인트는 Claude Sonnet 4.6 이하 모델을 지원하며, 최신 모델은 글로벌 또는 멀티 리전 엔드포인트를 사용합니다
    model: "claude-sonnet-4-6",
    max_tokens: 100,
    messages: [
      {
        role: "user",
        content: "Hey Claude!"
      }
    ]
  });
  console.log(JSON.stringify(result, null, 2));
  ```

  ```csharp C#
  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
  {
      // 특정 리전 엔드포인트는 Claude Sonnet 4.6 및 이전 모델을 지원하며, 최신 모델은 글로벌 또는 멀티 리전 엔드포인트를 사용합니다
      Model = Model.ClaudeSonnet4_6,
      MaxTokens = 100,
      Messages = [new() { Role = Role.User, Content = "Hey Claude!" }]
  };

  var message = await client.Messages.Create(parameters);
  Console.WriteLine(message);
  ```

  ```go Go
  import (
  	"context"
  	"fmt"

  	"github.com/anthropics/anthropic-sdk-go"
  	"github.com/anthropics/anthropic-sdk-go/vertex"
  )
  // ...
  	// 특정 리전 지정
  	client := anthropic.NewClient(
  		vertex.WithGoogleAuth(context.Background(), "us-east5", "MY_PROJECT_ID"),
  	)

  	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
  		// 특정 리전 엔드포인트는 Claude Sonnet 4.6 이하를 지원하며, 최신 모델은 글로벌 또는 멀티 리전 엔드포인트를 사용합니다
  		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)
  ```

  ```java Java
  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 {
      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()
                  // 특정 리전 엔드포인트는 Claude Sonnet 4.6 이하를 지원하며, 최신 모델은 글로벌 또는 멀티 리전 엔드포인트를 사용합니다
                  .model(Model.CLAUDE_SONNET_4_6)
                  .maxTokens(100)
                  .addUserMessage("Hey Claude!")
                  .build()
          );

      IO.println(message);
  }
  ```

  ```php PHP
  <?php

  use Anthropic\Vertex;

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

  $message = $client->messages->create(
      maxTokens: 100,
      messages: [
          ['role' => 'user', 'content' => 'Hey Claude!']
      ],
      // 특정 리전 엔드포인트는 Claude Sonnet 4.6 이하 모델을 지원하며, 최신 모델은 글로벌 또는 멀티 리전 엔드포인트를 사용합니다
      model: 'claude-sonnet-4-6',
  );
  echo $message->content[0]->text;
  ```

  ```ruby Ruby
  require "anthropic"

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

  message = client.messages.create(
    # 특정 리전 엔드포인트는 Claude Sonnet 4.6 이하를 지원하며, 최신 모델은 글로벌 또는 멀티 리전 엔드포인트를 사용합니다
    model: "claude-sonnet-4-6",
    max_tokens: 100,
    messages: [{role: "user", content: "Hey Claude!"}]
  )

  puts message.content.first.text
  ```
</CodeGroup>

<Note>
  Claude Mythos Preview는 Agent Platform에서 초대받은 고객에게 제공되는 연구 프리뷰입니다. 자세한 내용은 [Project Glasswing](https://anthropic.com/glasswing)을 참조하세요.
</Note>

## 추가 리소스

* **Agent Platform 가격:** [Generative AI pricing on cloud.google.com](https://cloud.google.com/vertex-ai/generative-ai/pricing)
* **Claude 모델 문서:** [Claude on Agent Platform](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/partner-models/claude)
* **Google 블로그 게시물:** [Global endpoint for Claude models](https://cloud.google.com/blog/products/ai-machine-learning/global-endpoint-for-claude-models-generally-available-on-vertex-ai)
* **Anthropic 가격 세부 정보:** [클라우드 플랫폼 가격](https://platform.claude.com/docs/ko/about-claude/pricing#cloud-platform-pricing)
