> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensor9.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bedrock (LLM inference)

> Bedrock (LLM inference) APIs with Cloud Adapter.

This page describes how Bedrock (LLM inference) maps to services in the environment where the application runs. Some profiles adapt origin API calls; others translate infrastructure or document target-native behavior.

## Supported environments

| Environment        | Mapping        |
| ------------------ | -------------- |
| Azure              | API            |
| DigitalOcean       | API            |
| Google Cloud       | API            |
| OCI                | API            |
| Private Kubernetes | API            |
| Scaleway           | Infrastructure |

API means the profile adapts origin API behavior. Infrastructure means the profile changes provisioned resources or documents a target-native alternative without promising an origin API endpoint. Check the operation and capability tables for the behavior your application depends on.

## How the targets compare

Each row compares a capability of Bedrock (LLM inference) with its adaptation on each target.
A dash means this profile does not state the capability for that target.

### Cloud Adapter

| Capability                                                                                 | Bedrock (LLM inference)                                                                      | Azure, DigitalOcean, Google Cloud, OCI, and Private Kubernetes · vLLM / Ollama | Azure · Azure RAI Content Filter Policy | Google Cloud · Vertex AI - Gemini | Google Cloud · Vertex AI - Claude | Google Cloud · Vertex AI - Llama | OCI · OCI Generative AI | Scaleway                                                      |
| ------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | --------------------------------------- | --------------------------------- | --------------------------------- | -------------------------------- | ----------------------- | ------------------------------------------------------------- |
| API coverage                                                                               | full                                                                                         | high                                                                           | partial                                 | high                              | high                              | high                             | high                    | partial                                                       |
| An on-demand API becomes provisioned capacity · a cost and capacity change, not a footnote | pay per token; AWS owns the capacity                                                         | -                                                                              | -                                       | -                                 | -                                 | -                                | -                       | a dedicated node you pay for whether or not it serves a token |
| A Bedrock model id does not name a Scaleway model · and the build will not guess           | anthropic.claude-*, amazon.titan-*                                                           | -                                                                              | -                                       | -                                 | -                                 | -                                | -                       | a model you choose from Scaleway's catalogue                  |
| Guardrails and knowledge bases have no analog here · unlike on GCP                         | aws\_bedrock\_guardrail content filters; aws\_bedrockagent\_knowledge\_base retrieval stores | -                                                                              | -                                       | -                                 | -                                 | -                                | -                       | nothing                                                       |
| What serves your traffic right now · the in-cluster tier                                   | the Bedrock runtime API on AWS-owned capacity                                                | -                                                                              | -                                       | -                                 | -                                 | -                                | -                       | vLLM or Ollama on your Kapsule nodes                          |

## On Azure, DigitalOcean, Google Cloud, OCI, and Private Kubernetes

### vLLM / Ollama

| Capability        | Area                   | Support      | Operations | Notes                                                                                                                                            |
| ----------------- | ---------------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| InvokeInlineAgent | Inline agent           | Partial      | -          | One chat turn per call; tool execution returns to the application. A bedrock-agent-runtime operation, distinct from the bedrock-runtime surface. |
| Bedrock agents    | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                                              |
| Knowledge Bases   | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                                              |

| Operation                     | Area                          | Support   | Depth      | Notes                                                                                              |
| ----------------------------- | ----------------------------- | --------- | ---------- | -------------------------------------------------------------------------------------------------- |
| InvokeModel                   | Native model body             | Partial   | Most usage | Claude-native request bodies only, translated to the target model API.                             |
| InvokeModelWithResponseStream | Native model body (streaming) | Partial   | Most usage | Claude-native request bodies only, translated to the target model API.                             |
| CountTokens                   | Tokenization                  | Partial   | Most usage | Counts locally with tiktoken; the estimate may differ from the selected model's billing tokenizer. |
| Converse                      | Unified chat                  | Supported | Common     | Chat and streaming.                                                                                |
| ConverseStream                | Unified chat (streaming)      | Supported | Common     | Chat and streaming.                                                                                |

#### How it works

Tensor9 runs an **adapter** alongside your application and points the AWS SDK's Bedrock endpoint to it. The adapter translates Bedrock requests for a **model running in the customer's cluster**. Your application keeps its code and SDK, including Bedrock request formats, streaming events, and error codes.

The model runs on the customer's hardware, served by a standard open model server in their Kubernetes cluster. There is no external model service, no API key, and no prompt or response ever leaves the cluster. The server speaks an OpenAI-style interface, so the adapter maps the conversation the same way it does for any OpenAI-compatible service.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gU2VsZi1ob3N0ZWQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoYiIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iNDYiIHdpZHRoPSIzNTgiIGhlaWdodD0iMTE4IiByeD0iMTQiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSIzMCIgeT0iNjQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiM5NGEzYjgiPk9OIEFXUyBUT0RBWTwvdGV4dD4KPHJlY3QgeD0iMzAiIHk9IjgwIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iOTAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMi41cHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+QmVkcm9jayBTREs8L3RleHQ+CjxsaW5lIHgxPSIxNTAiIHkxPSIxMTMiIHgyPSIyMTAiIHkyPSIxMTMiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYikiLz4KPHRleHQgeD0iMTgxIiB5PSIxMDQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmb250LXNpemU6OC41cHgiPkJlZHJvY2sgQVBJPC90ZXh0Pgo8cmVjdCB4PSIyMTQiIHk9IjgwIiB3aWR0aD0iMTQ4IiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMjg4IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTEuNXB4Ij5BbWF6b24gQmVkcm9jazwvdGV4dD4KPHRleHQgeD0iMjg4IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5BV1MtbWFuYWdlZDwvdGV4dD4KPGxpbmUgeDE9IjQxOCIgeTE9IjQwIiB4Mj0iNDE4IiB5Mj0iMTYwIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS40Ii8+CjxyZWN0IHg9IjQ2MiIgeT0iNDYiIHdpZHRoPSIzNjIiIGhlaWdodD0iMTE4IiByeD0iMTQiIGZpbGw9IiNmOGZhZmMiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSI0NzYiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMDQ3ODU3Ij5JTiBUSEUgVEFSR0VUIENMVVNURVI8L3RleHQ+CjxyZWN0IHg9IjQ3NCIgeT0iODAiIHdpZHRoPSI5MiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjUyMCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI1MjAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDU5NjY5Ij5zYW1lIFNESzwvdGV4dD4KPGxpbmUgeDE9IjU2NiIgeTE9IjExMyIgeDI9IjU5MCIgeTI9IjExMyIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI1OTQiIHk9Ijc2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9Ijc0IiByeD0iMTEiIGZpbGw9IiNlY2ZkZjUiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjQ5IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNjQ5IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnNlcnZpY2U8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNzA0IiB5MT0iMTEzIiB4Mj0iNzI4IiB5Mj0iMTEzIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+CjxyZWN0IHg9IjczMiIgeT0iODAiIHdpZHRoPSI5MCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijc3NyIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEwLjVweCI+U2VsZi1ob3N0ZWQ8L3RleHQ+Cjx0ZXh0IHg9Ijc3NyIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+aW4gY2x1c3RlcjwvdGV4dD4KPC9zdmc+" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from Self-hosted." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gU2VsZi1ob3N0ZWQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoYiIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iNDYiIHdpZHRoPSIzNTgiIGhlaWdodD0iMTE4IiByeD0iMTQiIGZpbGw9IiMxYTI2MzEiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIvPgo8dGV4dCB4PSIzMCIgeT0iNjQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTRhM2I4Ij5PTiBBV1MgVE9EQVk8L3RleHQ+CjxyZWN0IHg9IjMwIiB5PSI4MCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPkJlZHJvY2sgU0RLPC90ZXh0Pgo8bGluZSB4MT0iMTUwIiB5MT0iMTEzIiB4Mj0iMjEwIiB5Mj0iMTEzIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+Cjx0ZXh0IHg9IjE4MSIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkODsgZm9udC1zaXplOjguNXB4Ij5CZWRyb2NrIEFQSTwvdGV4dD4KPHJlY3QgeD0iMjE0IiB5PSI4MCIgd2lkdGg9IjE0OCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI4OCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjExLjVweCI+QW1hem9uIEJlZHJvY2s8L3RleHQ+Cjx0ZXh0IHg9IjI4OCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+QVdTLW1hbmFnZWQ8L3RleHQ+CjxsaW5lIHgxPSI0MTgiIHkxPSI0MCIgeDI9IjQxOCIgeTI9IjE2MCIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8cmVjdCB4PSI0NjIiIHk9IjQ2IiB3aWR0aD0iMzYyIiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iNDc2IiB5PSI2NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6ICM5MGRlYzgiPklOIFRIRSBUQVJHRVQgQ0xVU1RFUjwvdGV4dD4KPHJlY3QgeD0iNDc0IiB5PSI4MCIgd2lkdGg9IjkyIiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNTIwIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTJweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjUyMCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzYiPnNhbWUgU0RLPC90ZXh0Pgo8bGluZSB4MT0iNTY2IiB5MT0iMTEzIiB4Mj0iNTkwIiB5Mj0iMTEzIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+CjxyZWN0IHg9IjU5NCIgeT0iNzYiIHdpZHRoPSIxMTAiIGhlaWdodD0iNzQiIHJ4PSIxMSIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI2NDkiIHk9IjEwMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0Pgo8dGV4dCB4PSI2NDkiIHk9IjExNyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjOCI+c2VydmljZTwvdGV4dD4KPHRleHQgeD0iNjQ5IiB5PSIxMzEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPmFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI3MDQiIHkxPSIxMTMiIHgyPSI3MjgiIHkyPSIxMTMiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYikiLz4KPHJlY3QgeD0iNzMyIiB5PSI4MCIgd2lkdGg9IjkwIiBoZWlnaHQ9IjY2IiByeD0iMTEiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzc3IiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTAuNXB4Ij5TZWxmLWhvc3RlZDwvdGV4dD4KPHRleHQgeD0iNzc3IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5pbiBjbHVzdGVyPC90ZXh0Pgo8L3N2Zz4=" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from Self-hosted." />
</div>

<p className="t9-caption">The SDK calls the Tensor9 adapter, which sends requests to the configured model service.</p>

#### How a conversation maps

A Bedrock chat request is a list of turns, an optional system instruction, and inference settings. The adapter preserves every turn, the system instruction, and the token limit, temperature, top-p, and stop settings. One Bedrock setting, top-k, has no equivalent in the OpenAI-style interface, so it is dropped rather than treated as an error.

The model your application names is not necessarily the model that runs. The customer chooses which model the in-cluster server hosts when the Cloud Adapter deployment is deployed, and the adapter routes every request to it.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIEluLWNsdXN0ZXIgbW9kZWwsIHRoZW4gY29udmVydHMgdGhlIHJlcGx5IHRvIEJlZHJvY2sgZm9ybWF0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaG0iIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5CZWRyb2NrIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnR1cm5zICsgc3lzdGVtIGluc3RydWN0aW9uPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+dG9rZW4gbGltaXQsIHRlbXBlcmF0dXJlLDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50b3AtcCwgc3RvcDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5tb2RlbCBuYW1lPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzA0IiB5PSI2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5Jbi1jbHVzdGVyIG1vZGVsPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+bmF0aXZlIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5yZXBseTogdGV4dCBvciBhIHRvb2wgY2FsbCw8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c3RvcCByZWFzb24sIHRva2VuIGNvdW50czwvdGV4dD4KPC9zdmc+" alt="The adapter translates a Bedrock conversation and its supported settings into a request for In-cluster model, then converts the reply to Bedrock format." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIEluLWNsdXN0ZXIgbW9kZWwsIHRoZW4gY29udmVydHMgdGhlIHJlcGx5IHRvIEJlZHJvY2sgZm9ybWF0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaG0iIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5CZWRyb2NrIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnR1cm5zICsgc3lzdGVtIGluc3RydWN0aW9uPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+dG9rZW4gbGltaXQsIHRlbXBlcmF0dXJlLDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij50b3AtcCwgc3RvcDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij5tb2RlbCBuYW1lPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzA0IiB5PSI2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5Jbi1jbHVzdGVyIG1vZGVsPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+bmF0aXZlIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5yZXBseTogdGV4dCBvciBhIHRvb2wgY2FsbCw8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+c3RvcCByZWFzb24sIHRva2VuIGNvdW50czwvdGV4dD4KPC9zdmc+" alt="The adapter translates a Bedrock conversation and its supported settings into a request for In-cluster model, then converts the reply to Bedrock format." />
</div>

<p className="t9-caption">The adapter sends the conversation to the model selected at deployment. Supported inference settings are listed in the text.</p>

#### Tool use and streaming

If your application uses Bedrock tool use (letting the model call functions you declare), the service adapter handles the full round trip where the served model supports it: the model can request a tool call, your application runs it, and the result feeds back into the next turn. The adapter translates between the Bedrock and OpenAI-style representations of tool calls so your application does not have to.

Streaming behaves the same as on Bedrock. As the model produces output, the adapter delivers the same incremental events your SDK already expects.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTEuNXB4Ij5Jbi1jbHVzdGVyIG1vZGVsPC90ZXh0Pgo8dGV4dCB4PSI3MTEiIHk9IjUyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6OS41cHgiPnZpYSB0aGUgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjYyIiB4Mj0iMTI1IiB5Mj0iMjAwIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPGxpbmUgeDE9IjcxMSIgeTE9IjYyIiB4Mj0iNzExIiB5Mj0iMjAwIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPHRleHQgeD0iNDE4IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPjEmIzE2MDsmIzE2MDtjaGF0IHJlcXVlc3QgZGVjbGFyaW5nIHlvdXIgdG9vbHM8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSI5MCIgeDI9IjcwNyIgeTI9IjkwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+MiYjMTYwOyYjMTYwO3RoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lIG9mIHRoZW08L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxMjAiIHgyPSIxMjkiIHkyPSIxMjAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj4zJiMxNjA7JiMxNjA7eW91ciBhcHAgcnVucyB0aGUgdG9vbCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0PC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iMTUwIiB4Mj0iNzA3IiB5Mj0iMTUwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+NCYjMTYwOyYjMTYwO3RoZSBmaW5hbCBhbnN3ZXI8L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxODAiIHgyPSIxMjkiIHkyPSIxODAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPC9zdmc+" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTEuNXB4Ij5Jbi1jbHVzdGVyIG1vZGVsPC90ZXh0Pgo8dGV4dCB4PSI3MTEiIHk9IjUyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6OS41cHgiPnZpYSB0aGUgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjYyIiB4Mj0iMTI1IiB5Mj0iMjAwIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPGxpbmUgeDE9IjcxMSIgeTE9IjYyIiB4Mj0iNzExIiB5Mj0iMjAwIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPHRleHQgeD0iNDE4IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPjEmIzE2MDsmIzE2MDtjaGF0IHJlcXVlc3QgZGVjbGFyaW5nIHlvdXIgdG9vbHM8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSI5MCIgeDI9IjcwNyIgeTI9IjkwIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+MiYjMTYwOyYjMTYwO3RoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lIG9mIHRoZW08L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxMjAiIHgyPSIxMjkiIHkyPSIxMjAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij4zJiMxNjA7JiMxNjA7eW91ciBhcHAgcnVucyB0aGUgdG9vbCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0PC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iMTUwIiB4Mj0iNzA3IiB5Mj0iMTUwIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+NCYjMTYwOyYjMTYwO3RoZSBmaW5hbCBhbnN3ZXI8L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxODAiIHgyPSIxMjkiIHkyPSIxODAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPC9zdmc+" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />
</div>

<p className="t9-caption">The application executes tool calls and returns their results. During streaming, the adapter sends these as Bedrock events.</p>

#### Limitations

△ Where Bedrock and a self-hosted model differ

* **The top-k setting is dropped.** The OpenAI-style interface has no equivalent, so a request that sets it still succeeds, without that control applied.
* **Capabilities depend on the model you run.** Tool use, context length, and quality are set by the open model the customer hosts, not by Bedrock. Choose a model that supports what your application needs.
* **Capacity is the customer's to provide.** Throughput is bounded by the GPUs the customer allocates to the server; there is no elastic managed backend behind it.
* **Text inputs only.** Image and document content are not served on this path.
* **Managed Bedrock features are not served.** Agents, Knowledge Bases, and guardrails configured as a service return a clear error rather than a silent or partial result.

#### Other considerations

**Migration.** Bedrock inference stores no conversation state in the service. Changing the model service requires configuration changes, with no stored inference data to transfer.

**Operations.** The customer runs the model server: choosing the model, provisioning the GPUs, and keeping it available. Tensor9 injects the adapter and points it at that server.

**Capacity and cost.** Throughput and cost are the customer's own hardware, sized for the workload.

## On Azure

### Azure RAI Content Filter Policy

#### Inference through an Azure model deployment

The Max inference path uses the Tensor9 OpenAI-compatible backend to serve supported Bedrock text-chat requests from an Azure model deployment. Configure the deployment endpoint, API version and API-key or Entra bearer authentication. The backend translates messages, tool calls, stop reasons and streaming fragments between Bedrock and Chat Completions.

The application's Bedrock SDK keeps its supported request and response formats. Model behavior still differs: test prompts, tool schemas, refusals and partial-stream failures against the selected model. The OpenAI path has no `top_k` field; that setting is omitted. Native model-body support remains limited to the body formats listed in the inference profile.

#### Content filtering and retrieval

A declared guardrail maps to an Azure responsible-AI content policy on the cognitive account. Attach the policy to the deployment that serves requests. Azure categories and thresholds differ from Bedrock's, so compare allow/block outcomes using representative content.

A knowledge base maps to Azure AI Search infrastructure. Load the corpus, configure ingestion, chunking and embeddings, and connect retrieval results to model requests. Creating the search service does not populate an index or provide the Bedrock Retrieve API.

#### Deployment and validation

Configure the model endpoint and its credentials separately from the content policy and search service. Check network access, model deployment availability and permissions for inference and retrieval. Test the complete application path, including a denied request, a tool call and cancellation of a stream.

Managed Bedrock agents are outside this mapping. An application that depends on an agent runtime needs an explicit target implementation; neither a content policy nor a search index supplies that runtime.

## On Google Cloud

### Vertex AI - Gemini

| Capability        | Area                   | Support      | Operations | Notes                                                                                                                     |
| ----------------- | ---------------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| InvokeInlineAgent | Inline agent           | Partial      | -          | One chat turn per call with return-control. A bedrock-agent-runtime operation, distinct from the bedrock-runtime surface. |
| Bedrock agents    | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                       |
| Knowledge Bases   | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                       |

| Operation                     | Area                          | Support   | Depth      | Notes                                                  |
| ----------------------------- | ----------------------------- | --------- | ---------- | ------------------------------------------------------ |
| InvokeModel                   | Native model body             | Partial   | Most usage | Claude-native request bodies only.                     |
| InvokeModelWithResponseStream | Native model body (streaming) | Partial   | Most usage | Claude-native request bodies only.                     |
| CountTokens                   | Tokenization                  | Partial   | Most usage | Uses Vertex countTokens for the selected Gemini model. |
| Converse                      | Unified chat                  | Supported | Common     | Chat, streaming, and tool use.                         |
| ConverseStream                | Unified chat (streaming)      | Supported | Common     | Chat, streaming, and tool use.                         |

#### How it works

Tensor9 runs an **adapter** alongside your application and points the AWS SDK's Bedrock endpoint to it. The adapter translates Bedrock requests for **Google Vertex AI Gemini**. Your application keeps its code and SDK, including Bedrock request formats, streaming events, and error codes.

Gemini runs in the customer's Google Cloud project. The adapter authenticates with the Cloud Adapter deployment's Google Cloud identity; it needs no API key.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gR2VtaW5pLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ2IiB3aWR0aD0iMzU4IiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojOTRhM2I4Ij5PTiBBV1MgVE9EQVk8L3RleHQ+CjxyZWN0IHg9IjMwIiB5PSI4MCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPkJlZHJvY2sgU0RLPC90ZXh0Pgo8bGluZSB4MT0iMTUwIiB5MT0iMTEzIiB4Mj0iMjEwIiB5Mj0iMTEzIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+Cjx0ZXh0IHg9IjE4MSIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjguNXB4Ij5CZWRyb2NrIEFQSTwvdGV4dD4KPHJlY3QgeD0iMjE0IiB5PSI4MCIgd2lkdGg9IjE0OCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI4OCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExLjVweCI+QW1hem9uIEJlZHJvY2s8L3RleHQ+Cjx0ZXh0IHg9IjI4OCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+QVdTLW1hbmFnZWQ8L3RleHQ+CjxsaW5lIHgxPSI0MTgiIHkxPSI0MCIgeDI9IjQxOCIgeTI9IjE2MCIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8cmVjdCB4PSI0NjIiIHk9IjQ2IiB3aWR0aD0iMzYyIiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iNDc2IiB5PSI2NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+T04gR09PR0xFIENMT1VEPC90ZXh0Pgo8cmVjdCB4PSI0NzQiIHk9IjgwIiB3aWR0aD0iOTIiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iNTIwIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA1OTY2OSI+c2FtZSBTREs8L3RleHQ+CjxsaW5lIHgxPSI1NjYiIHkxPSIxMTMiIHgyPSI1OTAiIHkyPSIxMTMiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYikiLz4KPHJlY3QgeD0iNTk0IiB5PSI3NiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI3NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjY0OSIgeT0iMTAyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlPC90ZXh0Pgo8dGV4dCB4PSI2NDkiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+YWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjcwNCIgeTE9IjExMyIgeDI9IjcyOCIgeTI9IjExMyIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI3MzIiIHk9IjgwIiB3aWR0aD0iOTAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3NzciIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMC41cHgiPkdlbWluaTwvdGV4dD4KPHRleHQgeD0iNzc3IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5WZXJ0ZXggQUk8L3RleHQ+Cjwvc3ZnPg==" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from Gemini." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gR2VtaW5pLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ2IiB3aWR0aD0iMzU4IiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzk0YTNiOCI+T04gQVdTIFRPREFZPC90ZXh0Pgo8cmVjdCB4PSIzMCIgeT0iODAiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI5MCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5CZWRyb2NrIFNESzwvdGV4dD4KPGxpbmUgeDE9IjE1MCIgeTE9IjExMyIgeDI9IjIxMCIgeTI9IjExMyIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8dGV4dCB4PSIxODEiIHk9IjEwNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4LjVweCI+QmVkcm9jayBBUEk8L3RleHQ+CjxyZWN0IHg9IjIxNCIgeT0iODAiIHdpZHRoPSIxNDgiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyODgiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMS41cHgiPkFtYXpvbiBCZWRyb2NrPC90ZXh0Pgo8dGV4dCB4PSIyODgiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPkFXUy1tYW5hZ2VkPC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iNDAiIHgyPSI0MTgiIHkyPSIxNjAiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHJlY3QgeD0iNDYyIiB5PSI0NiIgd2lkdGg9IjM2MiIgaGVpZ2h0PSIxMTgiIHJ4PSIxNCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjQ3NiIgeT0iNjQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5PTiBHT09HTEUgQ0xPVUQ8L3RleHQ+CjxyZWN0IHg9IjQ3NCIgeT0iODAiIHdpZHRoPSI5MiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjUyMCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEycHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI1MjAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM2Ij5zYW1lIFNESzwvdGV4dD4KPGxpbmUgeDE9IjU2NiIgeTE9IjExMyIgeDI9IjU5MCIgeTI9IjExMyIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI1OTQiIHk9Ijc2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9Ijc0IiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjQ5IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNjQ5IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPnNlcnZpY2U8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNzA0IiB5MT0iMTEzIiB4Mj0iNzI4IiB5Mj0iMTEzIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+CjxyZWN0IHg9IjczMiIgeT0iODAiIHdpZHRoPSI5MCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijc3NyIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEwLjVweCI+R2VtaW5pPC90ZXh0Pgo8dGV4dCB4PSI3NzciIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPlZlcnRleCBBSTwvdGV4dD4KPC9zdmc+" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from Gemini." />
</div>

<p className="t9-caption">The SDK calls the Tensor9 adapter, which sends requests to the configured model service.</p>

#### How a conversation maps

A Bedrock chat request is a list of turns, an optional system instruction, and inference settings. The adapter maps all of it across: every turn, the system instruction, and the token limit, temperature, top-p, top-k, and stop settings are preserved.

Gemini's request and response shape differs from Bedrock's more than most targets do. The service adapter absorbs those differences so your application still sees a normal Bedrock conversation. The model your application names is not necessarily the model that runs; the customer chooses which Gemini model serves the traffic when the Cloud Adapter deployment is deployed. Because a Gemini model produces every response, the generated content (its wording, its reasoning, and its model-specific strengths) is Gemini's, and will differ from the Bedrock model your application named. The Bedrock interface around it stays identical: the request shapes, the streaming events, and the error codes are unchanged.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIEdlbWluaSwgdGhlbiBjb252ZXJ0cyB0aGUgcmVwbHkgdG8gQmVkcm9jayBmb3JtYXQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFobSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iMzQiIHdpZHRoPSIyMzYiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTM0IiB5PSI2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMi41cHgiPkJlZHJvY2sgY2hhdCByZXF1ZXN0PC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+dHVybnMgKyBzeXN0ZW0gaW5zdHJ1Y3Rpb248L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50b2tlbiBsaW1pdCwgdGVtcGVyYXR1cmUsPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnRvcC1wLCBzdG9wPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPm1vZGVsIG5hbWU8L3RleHQ+CjxsaW5lIHgxPSIyNTIiIHkxPSI3NCIgeDI9IjMxNCIgeTI9Ijc0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxsaW5lIHgxPSIzMTgiIHkxPSIxMjgiIHgyPSIyNTYiIHkyPSIxMjgiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FobSkiLz4KPHJlY3QgeD0iMzE4IiB5PSI1NCIgd2lkdGg9IjIwNCIgaGVpZ2h0PSI4OCIgcng9IjEyIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPmFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI1MjIiIHkxPSI3NCIgeDI9IjU4NCIgeTI9Ijc0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxsaW5lIHgxPSI1ODgiIHkxPSIxMjgiIHgyPSI1MjYiIHkyPSIxMjgiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FobSkiLz4KPHJlY3QgeD0iNTg4IiB5PSIzNCIgd2lkdGg9IjIzMiIgaGVpZ2h0PSIxMjgiIHJ4PSIxMiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MDQiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPkdlbWluaTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSI4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPm5hdGl2ZSBjaGF0IHJlcXVlc3Q8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTE4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+cmVwbHk6IHRleHQgb3IgYSB0b29sIGNhbGwsPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9IjEzNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnN0b3AgcmVhc29uLCB0b2tlbiBjb3VudHM8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter translates a Bedrock conversation and its supported settings into a request for Gemini, then converts the reply to Bedrock format." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIEdlbWluaSwgdGhlbiBjb252ZXJ0cyB0aGUgcmVwbHkgdG8gQmVkcm9jayBmb3JtYXQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFobSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iMzQiIHdpZHRoPSIyMzYiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTM0IiB5PSI2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMi41cHgiPkJlZHJvY2sgY2hhdCByZXF1ZXN0PC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+dHVybnMgKyBzeXN0ZW0gaW5zdHJ1Y3Rpb248L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij50b2tlbiBsaW1pdCwgdGVtcGVyYXR1cmUsPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnRvcC1wLCBzdG9wPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPm1vZGVsIG5hbWU8L3RleHQ+CjxsaW5lIHgxPSIyNTIiIHkxPSI3NCIgeDI9IjMxNCIgeTI9Ijc0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxsaW5lIHgxPSIzMTgiIHkxPSIxMjgiIHgyPSIyNTYiIHkyPSIxMjgiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FobSkiLz4KPHJlY3QgeD0iMzE4IiB5PSI1NCIgd2lkdGg9IjIwNCIgaGVpZ2h0PSI4OCIgcng9IjEyIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPmFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI1MjIiIHkxPSI3NCIgeDI9IjU4NCIgeTI9Ijc0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxsaW5lIHgxPSI1ODgiIHkxPSIxMjgiIHgyPSI1MjYiIHkyPSIxMjgiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FobSkiLz4KPHJlY3QgeD0iNTg4IiB5PSIzNCIgd2lkdGg9IjIzMiIgaGVpZ2h0PSIxMjgiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MDQiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEycHgiPkdlbWluaTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSI4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPm5hdGl2ZSBjaGF0IHJlcXVlc3Q8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTE4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+cmVwbHk6IHRleHQgb3IgYSB0b29sIGNhbGwsPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9IjEzNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnN0b3AgcmVhc29uLCB0b2tlbiBjb3VudHM8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter translates a Bedrock conversation and its supported settings into a request for Gemini, then converts the reply to Bedrock format." />
</div>

<p className="t9-caption">The adapter sends the conversation to the model selected at deployment. Supported inference settings are listed in the text.</p>

#### Tool use and streaming

If your application uses Bedrock tool use (letting the model call functions you declare), the service adapter supports the full round trip: the model can request a tool call, your application runs it, and the result feeds back into the next turn. Gemini identifies a tool call by the function's name rather than by a call id, so the adapter keeps the calls straight when the model calls the same tool more than once in a turn.

Streaming behaves the same as on Bedrock. As the model produces output, the adapter delivers the same incremental events your SDK already expects, including tool calls.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTEuNXB4Ij5HZW1pbmk8L3RleHQ+Cjx0ZXh0IHg9IjcxMSIgeT0iNTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZTo5LjVweCI+dmlhIHRoZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iNjIiIHgyPSIxMjUiIHkyPSIyMDAiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjQgNCIvPgo8bGluZSB4MT0iNzExIiB5MT0iNjIiIHgyPSI3MTEiIHkyPSIyMDAiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjQgNCIvPgo8dGV4dCB4PSI0MTgiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+MSYjMTYwOyYjMTYwO2NoYXQgcmVxdWVzdCBkZWNsYXJpbmcgeW91ciB0b29sczwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjkwIiB4Mj0iNzA3IiB5Mj0iOTAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj4yJiMxNjA7JiMxNjA7dGhlIG1vZGVsIGFza3MgdG8gY2FsbCBvbmUgb2YgdGhlbTwvdGV4dD4KPGxpbmUgeDE9IjcxMSIgeTE9IjEyMCIgeDI9IjEyOSIgeTI9IjEyMCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWh0KSIvPgo8dGV4dCB4PSI0MTgiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPjMmIzE2MDsmIzE2MDt5b3VyIGFwcCBydW5zIHRoZSB0b29sIGFuZCByZXR1cm5zIHRoZSByZXN1bHQ8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSIxNTAiIHgyPSI3MDciIHkyPSIxNTAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj40JiMxNjA7JiMxNjA7dGhlIGZpbmFsIGFuc3dlcjwvdGV4dD4KPGxpbmUgeDE9IjcxMSIgeTE9IjE4MCIgeDI9IjEyOSIgeTI9IjE4MCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWh0KSIvPgo8L3N2Zz4=" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTEuNXB4Ij5HZW1pbmk8L3RleHQ+Cjx0ZXh0IHg9IjcxMSIgeT0iNTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+dmlhIHRoZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iNjIiIHgyPSIxMjUiIHkyPSIyMDAiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjQgNCIvPgo8bGluZSB4MT0iNzExIiB5MT0iNjIiIHgyPSI3MTEiIHkyPSIyMDAiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjQgNCIvPgo8dGV4dCB4PSI0MTgiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+MSYjMTYwOyYjMTYwO2NoYXQgcmVxdWVzdCBkZWNsYXJpbmcgeW91ciB0b29sczwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjkwIiB4Mj0iNzA3IiB5Mj0iOTAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij4yJiMxNjA7JiMxNjA7dGhlIG1vZGVsIGFza3MgdG8gY2FsbCBvbmUgb2YgdGhlbTwvdGV4dD4KPGxpbmUgeDE9IjcxMSIgeTE9IjEyMCIgeDI9IjEyOSIgeTI9IjEyMCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWh0KSIvPgo8dGV4dCB4PSI0MTgiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPjMmIzE2MDsmIzE2MDt5b3VyIGFwcCBydW5zIHRoZSB0b29sIGFuZCByZXR1cm5zIHRoZSByZXN1bHQ8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSIxNTAiIHgyPSI3MDciIHkyPSIxNTAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij40JiMxNjA7JiMxNjA7dGhlIGZpbmFsIGFuc3dlcjwvdGV4dD4KPGxpbmUgeDE9IjcxMSIgeTE9IjE4MCIgeDI9IjEyOSIgeTI9IjE4MCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWh0KSIvPgo8L3N2Zz4=" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />
</div>

<p className="t9-caption">The application executes tool calls and returns their results. During streaming, the adapter sends these as Bedrock events.</p>

#### Limitations

△ Where Bedrock and Vertex Gemini differ

* **Reasoning uses part of the token budget.** Gemini 2.5 spends part of the token limit on internal reasoning before it produces visible text, so allow enough tokens for both reasoning and visible output.
* **The organization must allow access to generative models.** Some Google Cloud organizations allow generative models only through a dedicated service identity, not an interactive user login. a Cloud Adapter deployment uses its own service identity, which must have the required access before deployment.
* **Text inputs only.** Image and document content are not served on this path.
* **Managed Bedrock features are not served.** Agents, Knowledge Bases, and guardrails configured as a service return a clear error rather than a silent or partial result.

#### Other considerations

**Migration.** Bedrock inference stores no conversation state in the service. Changing the model service requires configuration changes, with no stored inference data to transfer.

**Operations.** The customer owns the Vertex AI service in their Google Cloud: which models are enabled, the quotas, and the regions.

**Capacity and cost.** Token pricing and throughput are Vertex AI's, not Bedrock's.

### Vertex AI - Claude

| Capability        | Area                   | Support      | Operations | Notes                                                                                                                     |
| ----------------- | ---------------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| InvokeInlineAgent | Inline agent           | Partial      | -          | One chat turn per call with return-control. A bedrock-agent-runtime operation, distinct from the bedrock-runtime surface. |
| Bedrock agents    | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                       |
| Knowledge Bases   | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                       |

| Operation                     | Area                          | Support   | Depth      | Notes                                                                                               |
| ----------------------------- | ----------------------------- | --------- | ---------- | --------------------------------------------------------------------------------------------------- |
| InvokeModel                   | Native model body             | Partial   | Most usage | Claude-native request bodies only.                                                                  |
| InvokeModelWithResponseStream | Native model body (streaming) | Partial   | Most usage | Claude-native request bodies only.                                                                  |
| CountTokens                   | Tokenization                  | Partial   | Most usage | Uses the selected Anthropic endpoint's token-count operation; model and hosting restrictions apply. |
| Converse                      | Unified chat                  | Supported | Common     | Chat, streaming, and tool use.                                                                      |
| ConverseStream                | Unified chat (streaming)      | Supported | Common     | Chat, streaming, and tool use.                                                                      |

#### How it works

Tensor9 runs an **adapter** alongside your application and points the AWS SDK's Bedrock endpoint to it. The adapter translates Bedrock requests for **Anthropic's Claude on Google Vertex AI**. Your application keeps its code and SDK, including Bedrock request formats, streaming events, and error codes.

This runs Claude inside Google Cloud, with no API key: the Cloud Adapter deployment authenticates with its Google Cloud identity. Bedrock and Claude use similar chat APIs, so the adapter preserves the conversation and settings described below. Prompts stay in Google Cloud.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gQ2xhdWRlLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ2IiB3aWR0aD0iMzU4IiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojOTRhM2I4Ij5PTiBBV1MgVE9EQVk8L3RleHQ+CjxyZWN0IHg9IjMwIiB5PSI4MCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPkJlZHJvY2sgU0RLPC90ZXh0Pgo8bGluZSB4MT0iMTUwIiB5MT0iMTEzIiB4Mj0iMjEwIiB5Mj0iMTEzIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+Cjx0ZXh0IHg9IjE4MSIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjguNXB4Ij5CZWRyb2NrIEFQSTwvdGV4dD4KPHJlY3QgeD0iMjE0IiB5PSI4MCIgd2lkdGg9IjE0OCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI4OCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExLjVweCI+QW1hem9uIEJlZHJvY2s8L3RleHQ+Cjx0ZXh0IHg9IjI4OCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+QVdTLW1hbmFnZWQ8L3RleHQ+CjxsaW5lIHgxPSI0MTgiIHkxPSI0MCIgeDI9IjQxOCIgeTI9IjE2MCIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8cmVjdCB4PSI0NjIiIHk9IjQ2IiB3aWR0aD0iMzYyIiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iNDc2IiB5PSI2NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+T04gR09PR0xFIENMT1VEPC90ZXh0Pgo8cmVjdCB4PSI0NzQiIHk9IjgwIiB3aWR0aD0iOTIiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iNTIwIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA1OTY2OSI+c2FtZSBTREs8L3RleHQ+CjxsaW5lIHgxPSI1NjYiIHkxPSIxMTMiIHgyPSI1OTAiIHkyPSIxMTMiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYikiLz4KPHJlY3QgeD0iNTk0IiB5PSI3NiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI3NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjY0OSIgeT0iMTAyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlPC90ZXh0Pgo8dGV4dCB4PSI2NDkiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+YWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjcwNCIgeTE9IjExMyIgeDI9IjcyOCIgeTI9IjExMyIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI3MzIiIHk9IjgwIiB3aWR0aD0iOTAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3NzciIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMC41cHgiPkNsYXVkZTwvdGV4dD4KPHRleHQgeD0iNzc3IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5WZXJ0ZXggQUk8L3RleHQ+Cjwvc3ZnPg==" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from Claude." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gQ2xhdWRlLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ2IiB3aWR0aD0iMzU4IiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzk0YTNiOCI+T04gQVdTIFRPREFZPC90ZXh0Pgo8cmVjdCB4PSIzMCIgeT0iODAiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI5MCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5CZWRyb2NrIFNESzwvdGV4dD4KPGxpbmUgeDE9IjE1MCIgeTE9IjExMyIgeDI9IjIxMCIgeTI9IjExMyIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8dGV4dCB4PSIxODEiIHk9IjEwNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4LjVweCI+QmVkcm9jayBBUEk8L3RleHQ+CjxyZWN0IHg9IjIxNCIgeT0iODAiIHdpZHRoPSIxNDgiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyODgiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMS41cHgiPkFtYXpvbiBCZWRyb2NrPC90ZXh0Pgo8dGV4dCB4PSIyODgiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPkFXUy1tYW5hZ2VkPC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iNDAiIHgyPSI0MTgiIHkyPSIxNjAiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHJlY3QgeD0iNDYyIiB5PSI0NiIgd2lkdGg9IjM2MiIgaGVpZ2h0PSIxMTgiIHJ4PSIxNCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjQ3NiIgeT0iNjQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5PTiBHT09HTEUgQ0xPVUQ8L3RleHQ+CjxyZWN0IHg9IjQ3NCIgeT0iODAiIHdpZHRoPSI5MiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjUyMCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEycHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI1MjAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM2Ij5zYW1lIFNESzwvdGV4dD4KPGxpbmUgeDE9IjU2NiIgeTE9IjExMyIgeDI9IjU5MCIgeTI9IjExMyIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI1OTQiIHk9Ijc2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9Ijc0IiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjQ5IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNjQ5IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPnNlcnZpY2U8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNzA0IiB5MT0iMTEzIiB4Mj0iNzI4IiB5Mj0iMTEzIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+CjxyZWN0IHg9IjczMiIgeT0iODAiIHdpZHRoPSI5MCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijc3NyIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEwLjVweCI+Q2xhdWRlPC90ZXh0Pgo8dGV4dCB4PSI3NzciIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPlZlcnRleCBBSTwvdGV4dD4KPC9zdmc+" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from Claude." />
</div>

<p className="t9-caption">The SDK calls the Tensor9 adapter, which sends requests to the configured model service.</p>

#### How a conversation maps

A Bedrock chat request is a list of turns, an optional system instruction, and inference settings. Because the two chat APIs share a shape, the adapter forwards all of it almost unchanged: every turn, the system instruction, and the token limit, temperature, top-p, stop, and top-k settings are preserved.

The model your application names is not necessarily the model that runs. The customer chooses which Claude model on Vertex serves the traffic when the Cloud Adapter deployment is deployed, and the adapter routes every request to it.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIENsYXVkZSBvbiBWZXJ0ZXgsIHRoZW4gY29udmVydHMgdGhlIHJlcGx5IHRvIEJlZHJvY2sgZm9ybWF0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaG0iIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5CZWRyb2NrIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnR1cm5zICsgc3lzdGVtIGluc3RydWN0aW9uPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+dG9rZW4gbGltaXQsIHRlbXBlcmF0dXJlLDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50b3AtcCwgc3RvcDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5tb2RlbCBuYW1lPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzA0IiB5PSI2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5DbGF1ZGUgb24gVmVydGV4PC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+bmF0aXZlIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5yZXBseTogdGV4dCBvciBhIHRvb2wgY2FsbCw8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c3RvcCByZWFzb24sIHRva2VuIGNvdW50czwvdGV4dD4KPC9zdmc+" alt="The adapter translates a Bedrock conversation and its supported settings into a request for Claude on Vertex, then converts the reply to Bedrock format." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIENsYXVkZSBvbiBWZXJ0ZXgsIHRoZW4gY29udmVydHMgdGhlIHJlcGx5IHRvIEJlZHJvY2sgZm9ybWF0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaG0iIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5CZWRyb2NrIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnR1cm5zICsgc3lzdGVtIGluc3RydWN0aW9uPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+dG9rZW4gbGltaXQsIHRlbXBlcmF0dXJlLDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij50b3AtcCwgc3RvcDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij5tb2RlbCBuYW1lPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzA0IiB5PSI2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5DbGF1ZGUgb24gVmVydGV4PC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+bmF0aXZlIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5yZXBseTogdGV4dCBvciBhIHRvb2wgY2FsbCw8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+c3RvcCByZWFzb24sIHRva2VuIGNvdW50czwvdGV4dD4KPC9zdmc+" alt="The adapter translates a Bedrock conversation and its supported settings into a request for Claude on Vertex, then converts the reply to Bedrock format." />
</div>

<p className="t9-caption">The adapter sends the conversation to the model selected at deployment. Supported inference settings are listed in the text.</p>

#### Tool use and streaming

If your application uses Bedrock tool use (letting the model call functions you declare), the service adapter handles the full round trip: the model can request a tool call, your application runs it, and the result feeds back into the next turn. Because the two chat APIs represent tool calls the same way, this maps directly.

Streaming behaves the same as on Bedrock. As the model produces output, the adapter delivers the same incremental events your SDK already expects, including partial tool calls.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTEuNXB4Ij5DbGF1ZGUgb24gVmVydGV4PC90ZXh0Pgo8dGV4dCB4PSI3MTEiIHk9IjUyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6OS41cHgiPnZpYSB0aGUgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjYyIiB4Mj0iMTI1IiB5Mj0iMjAwIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPGxpbmUgeDE9IjcxMSIgeTE9IjYyIiB4Mj0iNzExIiB5Mj0iMjAwIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPHRleHQgeD0iNDE4IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPjEmIzE2MDsmIzE2MDtjaGF0IHJlcXVlc3QgZGVjbGFyaW5nIHlvdXIgdG9vbHM8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSI5MCIgeDI9IjcwNyIgeTI9IjkwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+MiYjMTYwOyYjMTYwO3RoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lIG9mIHRoZW08L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxMjAiIHgyPSIxMjkiIHkyPSIxMjAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj4zJiMxNjA7JiMxNjA7eW91ciBhcHAgcnVucyB0aGUgdG9vbCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0PC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iMTUwIiB4Mj0iNzA3IiB5Mj0iMTUwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+NCYjMTYwOyYjMTYwO3RoZSBmaW5hbCBhbnN3ZXI8L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxODAiIHgyPSIxMjkiIHkyPSIxODAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPC9zdmc+" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTEuNXB4Ij5DbGF1ZGUgb24gVmVydGV4PC90ZXh0Pgo8dGV4dCB4PSI3MTEiIHk9IjUyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6OS41cHgiPnZpYSB0aGUgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjYyIiB4Mj0iMTI1IiB5Mj0iMjAwIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPGxpbmUgeDE9IjcxMSIgeTE9IjYyIiB4Mj0iNzExIiB5Mj0iMjAwIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPHRleHQgeD0iNDE4IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPjEmIzE2MDsmIzE2MDtjaGF0IHJlcXVlc3QgZGVjbGFyaW5nIHlvdXIgdG9vbHM8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSI5MCIgeDI9IjcwNyIgeTI9IjkwIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+MiYjMTYwOyYjMTYwO3RoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lIG9mIHRoZW08L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxMjAiIHgyPSIxMjkiIHkyPSIxMjAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij4zJiMxNjA7JiMxNjA7eW91ciBhcHAgcnVucyB0aGUgdG9vbCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0PC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iMTUwIiB4Mj0iNzA3IiB5Mj0iMTUwIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+NCYjMTYwOyYjMTYwO3RoZSBmaW5hbCBhbnN3ZXI8L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxODAiIHgyPSIxMjkiIHkyPSIxODAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPC9zdmc+" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />
</div>

<p className="t9-caption">The application executes tool calls and returns their results. During streaming, the adapter sends these as Bedrock events.</p>

#### Limitations

△ Where Bedrock and Claude on Vertex differ

* **Claude must be enabled in the project.** Claude on Vertex AI is offered in specific Google Cloud regions and must be turned on for the project before it can serve traffic. This is a one-time setup when the Cloud Adapter deployment is deployed.
* **Text inputs only.** Image and document content are not served on this path.
* **Managed Bedrock features are not served.** Agents, Knowledge Bases, and guardrails configured as a service return a clear error rather than a silent or partial result.

#### Other considerations

**Migration.** Bedrock inference stores no conversation state in the service. Changing the model service requires configuration changes, with no stored inference data to transfer.

**Operations.** The customer owns the Vertex AI service in their Google Cloud, including enabling Claude, the regions, and the quotas.

**Capacity and cost.** Token pricing and throughput are Vertex AI's, not Bedrock's.

### Vertex AI - Llama

| Capability        | Area                   | Support      | Operations | Notes                                                                                                                     |
| ----------------- | ---------------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| InvokeInlineAgent | Inline agent           | Partial      | -          | One chat turn per call with return-control. A bedrock-agent-runtime operation, distinct from the bedrock-runtime surface. |
| Bedrock agents    | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                       |
| Knowledge Bases   | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                       |

| Operation                     | Area                          | Support   | Depth      | Notes                                                                                              |
| ----------------------------- | ----------------------------- | --------- | ---------- | -------------------------------------------------------------------------------------------------- |
| InvokeModel                   | Native model body             | Partial   | Most usage | Claude-native request bodies only.                                                                 |
| InvokeModelWithResponseStream | Native model body (streaming) | Partial   | Most usage | Claude-native request bodies only.                                                                 |
| CountTokens                   | Tokenization                  | Partial   | Most usage | Counts locally with tiktoken; the estimate may differ from the selected model's billing tokenizer. |
| Converse                      | Unified chat                  | Supported | Common     | Chat, streaming, and tool use.                                                                     |
| ConverseStream                | Unified chat (streaming)      | Supported | Common     | Chat, streaming, and tool use.                                                                     |

#### How it works

Tensor9 runs an **adapter** alongside your application and points the AWS SDK's Bedrock endpoint to it. The adapter translates Bedrock requests for **open models on Google Vertex AI**, including Llama. Your application keeps its code and SDK, including Bedrock request formats, streaming events, and error codes.

This runs in Google Cloud, with no API key: the Cloud Adapter deployment authenticates with its Google Cloud identity. Vertex offers these open models through an OpenAI-style interface, so the adapter maps the conversation the same way it does for any OpenAI-compatible service.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gT3BlbiBMTE1zLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ2IiB3aWR0aD0iMzU4IiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojOTRhM2I4Ij5PTiBBV1MgVE9EQVk8L3RleHQ+CjxyZWN0IHg9IjMwIiB5PSI4MCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPkJlZHJvY2sgU0RLPC90ZXh0Pgo8bGluZSB4MT0iMTUwIiB5MT0iMTEzIiB4Mj0iMjEwIiB5Mj0iMTEzIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+Cjx0ZXh0IHg9IjE4MSIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjguNXB4Ij5CZWRyb2NrIEFQSTwvdGV4dD4KPHJlY3QgeD0iMjE0IiB5PSI4MCIgd2lkdGg9IjE0OCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI4OCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExLjVweCI+QW1hem9uIEJlZHJvY2s8L3RleHQ+Cjx0ZXh0IHg9IjI4OCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+QVdTLW1hbmFnZWQ8L3RleHQ+CjxsaW5lIHgxPSI0MTgiIHkxPSI0MCIgeDI9IjQxOCIgeTI9IjE2MCIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8cmVjdCB4PSI0NjIiIHk9IjQ2IiB3aWR0aD0iMzYyIiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iNDc2IiB5PSI2NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+T04gR09PR0xFIENMT1VEPC90ZXh0Pgo8cmVjdCB4PSI0NzQiIHk9IjgwIiB3aWR0aD0iOTIiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iNTIwIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA1OTY2OSI+c2FtZSBTREs8L3RleHQ+CjxsaW5lIHgxPSI1NjYiIHkxPSIxMTMiIHgyPSI1OTAiIHkyPSIxMTMiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYikiLz4KPHJlY3QgeD0iNTk0IiB5PSI3NiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI3NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjY0OSIgeT0iMTAyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlPC90ZXh0Pgo8dGV4dCB4PSI2NDkiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+YWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjcwNCIgeTE9IjExMyIgeDI9IjcyOCIgeTI9IjExMyIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI3MzIiIHk9IjgwIiB3aWR0aD0iOTAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3NzciIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMC41cHgiPk9wZW4gTExNczwvdGV4dD4KPHRleHQgeD0iNzc3IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5vbiBWZXJ0ZXg8L3RleHQ+Cjwvc3ZnPg==" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from Open LLMs." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gT3BlbiBMTE1zLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ2IiB3aWR0aD0iMzU4IiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzk0YTNiOCI+T04gQVdTIFRPREFZPC90ZXh0Pgo8cmVjdCB4PSIzMCIgeT0iODAiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI5MCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5CZWRyb2NrIFNESzwvdGV4dD4KPGxpbmUgeDE9IjE1MCIgeTE9IjExMyIgeDI9IjIxMCIgeTI9IjExMyIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8dGV4dCB4PSIxODEiIHk9IjEwNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4LjVweCI+QmVkcm9jayBBUEk8L3RleHQ+CjxyZWN0IHg9IjIxNCIgeT0iODAiIHdpZHRoPSIxNDgiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyODgiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMS41cHgiPkFtYXpvbiBCZWRyb2NrPC90ZXh0Pgo8dGV4dCB4PSIyODgiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPkFXUy1tYW5hZ2VkPC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iNDAiIHgyPSI0MTgiIHkyPSIxNjAiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHJlY3QgeD0iNDYyIiB5PSI0NiIgd2lkdGg9IjM2MiIgaGVpZ2h0PSIxMTgiIHJ4PSIxNCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjQ3NiIgeT0iNjQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5PTiBHT09HTEUgQ0xPVUQ8L3RleHQ+CjxyZWN0IHg9IjQ3NCIgeT0iODAiIHdpZHRoPSI5MiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjUyMCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEycHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI1MjAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM2Ij5zYW1lIFNESzwvdGV4dD4KPGxpbmUgeDE9IjU2NiIgeTE9IjExMyIgeDI9IjU5MCIgeTI9IjExMyIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI1OTQiIHk9Ijc2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9Ijc0IiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjQ5IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNjQ5IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPnNlcnZpY2U8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNzA0IiB5MT0iMTEzIiB4Mj0iNzI4IiB5Mj0iMTEzIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+CjxyZWN0IHg9IjczMiIgeT0iODAiIHdpZHRoPSI5MCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijc3NyIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEwLjVweCI+T3BlbiBMTE1zPC90ZXh0Pgo8dGV4dCB4PSI3NzciIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPm9uIFZlcnRleDwvdGV4dD4KPC9zdmc+" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from Open LLMs." />
</div>

<p className="t9-caption">The SDK calls the Tensor9 adapter, which sends requests to the configured model service.</p>

#### How a conversation maps

A Bedrock chat request is a list of turns, an optional system instruction, and inference settings. The adapter preserves every turn, the system instruction, and the token limit, temperature, top-p, and stop settings. One Bedrock setting, top-k, has no equivalent in the OpenAI-style interface these models use, so it is dropped rather than treated as an error.

The model your application names is not necessarily the model that runs. The customer chooses which Vertex open model serves the traffic when the Cloud Adapter deployment is deployed.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIE9wZW4gbW9kZWwsIHRoZW4gY29udmVydHMgdGhlIHJlcGx5IHRvIEJlZHJvY2sgZm9ybWF0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaG0iIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5CZWRyb2NrIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnR1cm5zICsgc3lzdGVtIGluc3RydWN0aW9uPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+dG9rZW4gbGltaXQsIHRlbXBlcmF0dXJlLDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50b3AtcCwgc3RvcDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5tb2RlbCBuYW1lPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iI2VjZmRmNSIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzA0IiB5PSI2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5PcGVuIG1vZGVsPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+bmF0aXZlIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5yZXBseTogdGV4dCBvciBhIHRvb2wgY2FsbCw8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c3RvcCByZWFzb24sIHRva2VuIGNvdW50czwvdGV4dD4KPC9zdmc+" alt="The adapter translates a Bedrock conversation and its supported settings into a request for Open model, then converts the reply to Bedrock format." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIE9wZW4gbW9kZWwsIHRoZW4gY29udmVydHMgdGhlIHJlcGx5IHRvIEJlZHJvY2sgZm9ybWF0LiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaG0iIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5CZWRyb2NrIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnR1cm5zICsgc3lzdGVtIGluc3RydWN0aW9uPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+dG9rZW4gbGltaXQsIHRlbXBlcmF0dXJlLDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij50b3AtcCwgc3RvcDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij5tb2RlbCBuYW1lPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iMzE4IiB5MT0iMTI4IiB4Mj0iMjU2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgZmlsbD0iIzFhMzEyNiIgc3Ryb2tlPSIjMDU5NjY5IiBzdHJva2Utd2lkdGg9IjEuNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzkwZGVjODsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhtKSIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iNzA0IiB5PSI2MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMnB4Ij5PcGVuIG1vZGVsPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijg0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+bmF0aXZlIGNoYXQgcmVxdWVzdDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5yZXBseTogdGV4dCBvciBhIHRvb2wgY2FsbCw8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTM1IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+c3RvcCByZWFzb24sIHRva2VuIGNvdW50czwvdGV4dD4KPC9zdmc+" alt="The adapter translates a Bedrock conversation and its supported settings into a request for Open model, then converts the reply to Bedrock format." />
</div>

<p className="t9-caption">The adapter sends the conversation to the model selected at deployment. Supported inference settings are listed in the text.</p>

#### Tool use and streaming

If your application uses Bedrock tool use (letting the model call functions you declare), the service adapter handles the full round trip where the served model supports it: the model can request a tool call, your application runs it, and the result feeds back into the next turn. The adapter translates between the Bedrock and OpenAI-style representations of tool calls so your application does not have to.

Streaming behaves the same as on Bedrock. As the model produces output, the adapter delivers the same incremental events your SDK already expects.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTEuNXB4Ij5PcGVuIG1vZGVsPC90ZXh0Pgo8dGV4dCB4PSI3MTEiIHk9IjUyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6OS41cHgiPnZpYSB0aGUgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjYyIiB4Mj0iMTI1IiB5Mj0iMjAwIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPGxpbmUgeDE9IjcxMSIgeTE9IjYyIiB4Mj0iNzExIiB5Mj0iMjAwIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPHRleHQgeD0iNDE4IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPjEmIzE2MDsmIzE2MDtjaGF0IHJlcXVlc3QgZGVjbGFyaW5nIHlvdXIgdG9vbHM8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSI5MCIgeDI9IjcwNyIgeTI9IjkwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+MiYjMTYwOyYjMTYwO3RoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lIG9mIHRoZW08L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxMjAiIHgyPSIxMjkiIHkyPSIxMjAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj4zJiMxNjA7JiMxNjA7eW91ciBhcHAgcnVucyB0aGUgdG9vbCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0PC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iMTUwIiB4Mj0iNzA3IiB5Mj0iMTUwIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+NCYjMTYwOyYjMTYwO3RoZSBmaW5hbCBhbnN3ZXI8L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxODAiIHgyPSIxMjkiIHkyPSIxODAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPC9zdmc+" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTEuNXB4Ij5PcGVuIG1vZGVsPC90ZXh0Pgo8dGV4dCB4PSI3MTEiIHk9IjUyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6OS41cHgiPnZpYSB0aGUgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjYyIiB4Mj0iMTI1IiB5Mj0iMjAwIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPGxpbmUgeDE9IjcxMSIgeTE9IjYyIiB4Mj0iNzExIiB5Mj0iMjAwIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtZGFzaGFycmF5PSI0IDQiLz4KPHRleHQgeD0iNDE4IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPjEmIzE2MDsmIzE2MDtjaGF0IHJlcXVlc3QgZGVjbGFyaW5nIHlvdXIgdG9vbHM8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSI5MCIgeDI9IjcwNyIgeTI9IjkwIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+MiYjMTYwOyYjMTYwO3RoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lIG9mIHRoZW08L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxMjAiIHgyPSIxMjkiIHkyPSIxMjAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij4zJiMxNjA7JiMxNjA7eW91ciBhcHAgcnVucyB0aGUgdG9vbCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0PC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iMTUwIiB4Mj0iNzA3IiB5Mj0iMTUwIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaHQpIi8+Cjx0ZXh0IHg9IjQxOCIgeT0iMTcyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+NCYjMTYwOyYjMTYwO3RoZSBmaW5hbCBhbnN3ZXI8L3RleHQ+CjxsaW5lIHgxPSI3MTEiIHkxPSIxODAiIHgyPSIxMjkiIHkyPSIxODAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPC9zdmc+" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />
</div>

<p className="t9-caption">The application executes tool calls and returns their results. During streaming, the adapter sends these as Bedrock events.</p>

#### Limitations

△ Where Bedrock and Vertex open models differ

* **The top-k setting is dropped.** The OpenAI-style interface has no equivalent, so a request that sets it still succeeds, without that control applied.
* **Capabilities vary by model.** Tool use is available only for models that support it; a plain chat model serves text conversations without it.
* **Model availability is set by Vertex.** Which open models are offered, and in which regions, is decided by Google Vertex AI. The customer picks one that is available where the Cloud Adapter deployment runs.
* **Text inputs only.** Image and document content are not served on this path.
* **Managed Bedrock features are not served.** Agents, Knowledge Bases, and guardrails configured as a service return a clear error rather than a silent or partial result.

#### Other considerations

**Migration.** Bedrock inference stores no conversation state in the service. Changing the model service requires configuration changes, with no stored inference data to transfer.

**Operations.** The customer owns the Vertex AI service in their Google Cloud, including which models are enabled and the quotas.

**Capacity and cost.** Token pricing and throughput are Vertex AI's, not Bedrock's.

## On OCI

### OCI Generative AI

| Capability        | Area                   | Support      | Operations | Notes                                                                                                                     |
| ----------------- | ---------------------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| InvokeInlineAgent | Inline agent           | Partial      | -          | One chat turn per call with return-control. A bedrock-agent-runtime operation, distinct from the bedrock-runtime surface. |
| Bedrock agents    | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                       |
| Knowledge Bases   | Managed (out of scope) | Out of scope | -          | Managed Bedrock feature; the adapter returns a real Bedrock error rather than partially serving it.                       |

| Operation                     | Area                          | Support   | Depth      | Notes                                                                                                           |
| ----------------------------- | ----------------------------- | --------- | ---------- | --------------------------------------------------------------------------------------------------------------- |
| InvokeModel                   | Native model body             | Partial   | Most usage | Claude-native request bodies only.                                                                              |
| InvokeModelWithResponseStream | Native model body (streaming) | Partial   | Most usage | Claude-native request bodies only.                                                                              |
| CountTokens                   | Tokenization                  | Partial   | Most usage | Token-count fidelity depends on the selected model and tokenizer; compare estimates with target-reported usage. |
| Converse                      | Unified chat                  | Supported | Common     | Chat, streaming, and tool use.                                                                                  |
| ConverseStream                | Unified chat (streaming)      | Supported | Common     | Chat, streaming, and tool use.                                                                                  |

#### How it works

Tensor9 runs an **adapter** alongside your application and points the AWS SDK's Bedrock endpoint to it. The adapter translates Bedrock requests for **OCI Generative AI**. Your application keeps its code and SDK, including Bedrock request formats, streaming events, and error codes.

OCI Generative AI hosts two families of chat models: an OpenAI-style family (Llama, Grok, Gemini, and the gpt-oss models) and the Cohere Command family. Each family expects a slightly different request shape. The adapter picks the right shape for whichever model the customer has configured, passes the conversation through, and translates the reply back into a normal Bedrock response.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gT0NJIEdlbkFJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ2IiB3aWR0aD0iMzU4IiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojOTRhM2I4Ij5PTiBBV1MgVE9EQVk8L3RleHQ+CjxyZWN0IHg9IjMwIiB5PSI4MCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjkwIiB5PSIxMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPkJlZHJvY2sgU0RLPC90ZXh0Pgo8bGluZSB4MT0iMTUwIiB5MT0iMTEzIiB4Mj0iMjEwIiB5Mj0iMTEzIiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+Cjx0ZXh0IHg9IjE4MSIgeT0iMTA0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZm9udC1zaXplOjguNXB4Ij5CZWRyb2NrIEFQSTwvdGV4dD4KPHJlY3QgeD0iMjE0IiB5PSI4MCIgd2lkdGg9IjE0OCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjI4OCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExLjVweCI+QW1hem9uIEJlZHJvY2s8L3RleHQ+Cjx0ZXh0IHg9IjI4OCIgeT0iMTI4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+QVdTLW1hbmFnZWQ8L3RleHQ+CjxsaW5lIHgxPSI0MTgiIHkxPSI0MCIgeDI9IjQxOCIgeTI9IjE2MCIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNCIvPgo8cmVjdCB4PSI0NjIiIHk9IjQ2IiB3aWR0aD0iMzYyIiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjZjhmYWZjIiBzdHJva2U9IiNjYmQ1ZTEiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iNDc2IiB5PSI2NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+T04gT0NJIENMT1VEPC90ZXh0Pgo8cmVjdCB4PSI0NzQiIHk9IjgwIiB3aWR0aD0iOTIiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI1MjAiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iNTIwIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2MDAgMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA1OTY2OSI+c2FtZSBTREs8L3RleHQ+CjxsaW5lIHgxPSI1NjYiIHkxPSIxMTMiIHgyPSI1OTAiIHkyPSIxMTMiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYikiLz4KPHJlY3QgeD0iNTk0IiB5PSI3NiIgd2lkdGg9IjExMCIgaGVpZ2h0PSI3NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjY0OSIgeT0iMTAyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTE3IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlPC90ZXh0Pgo8dGV4dCB4PSI2NDkiIHk9IjEzMSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+YWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjcwNCIgeTE9IjExMyIgeDI9IjcyOCIgeTI9IjExMyIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI3MzIiIHk9IjgwIiB3aWR0aD0iOTAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3NzciIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMC41cHgiPk9DSSBHZW5BSTwvdGV4dD4KPHRleHQgeD0iNzc3IiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5PQ0kncyBtb2RlbHM8L3RleHQ+Cjwvc3ZnPg==" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from OCI GenAI." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTgwIiB2aWV3Qm94PSIwIDAgODM2IDE4MCIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJCZWZvcmU6IG9uIEFXUyB0aGUgYXBwbGljYXRpb24ncyBCZWRyb2NrIFNESyBjYWxscyBBbWF6b24gQmVkcm9jay4gQWZ0ZXI6IGluIHRoZSB0YXJnZXQgY2xvdWQgdGhlIHNhbWUgYXBwbGljYXRpb24gYW5kIFNESyBjYWxsIGEgVGVuc29yOSBhZGFwdGVyLCB3aGljaCBzZXJ2ZXMgdGhlIEJlZHJvY2sgQVBJIGZyb20gT0NJIEdlbkFJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGIiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgZmlsbD0iIzk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjQ2IiB3aWR0aD0iMzU4IiBoZWlnaHQ9IjExOCIgcng9IjE0IiBmaWxsPSIjMWEyNjMxIiBzdHJva2U9IiMzZDRmNjYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiLz4KPHRleHQgeD0iMzAiIHk9IjY0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDogIzk0YTNiOCI+T04gQVdTIFRPREFZPC90ZXh0Pgo8cmVjdCB4PSIzMCIgeT0iODAiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI5MCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEyLjVweCI+WW91ciBhcHA8L3RleHQ+Cjx0ZXh0IHg9IjkwIiB5PSIxMjgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij5CZWRyb2NrIFNESzwvdGV4dD4KPGxpbmUgeDE9IjE1MCIgeTE9IjExMyIgeDI9IjIxMCIgeTI9IjExMyIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8dGV4dCB4PSIxODEiIHk9IjEwNCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDg7IGZvbnQtc2l6ZTo4LjVweCI+QmVkcm9jayBBUEk8L3RleHQ+CjxyZWN0IHg9IjIxNCIgeT0iODAiIHdpZHRoPSIxNDgiIGhlaWdodD0iNjYiIHJ4PSIxMSIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSIyODgiIHk9IjExMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMS41cHgiPkFtYXpvbiBCZWRyb2NrPC90ZXh0Pgo8dGV4dCB4PSIyODgiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPkFXUy1tYW5hZ2VkPC90ZXh0Pgo8bGluZSB4MT0iNDE4IiB5MT0iNDAiIHgyPSI0MTgiIHkyPSIxNjAiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQiLz4KPHJlY3QgeD0iNDYyIiB5PSI0NiIgd2lkdGg9IjM2MiIgaGVpZ2h0PSIxMTgiIHJ4PSIxNCIgZmlsbD0iIzFhMjYzMSIgc3Ryb2tlPSIjM2Q0ZjY2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1Ii8+Cjx0ZXh0IHg9IjQ3NiIgeT0iNjQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiAjOTBkZWM4Ij5PTiBPQ0kgQ0xPVUQ8L3RleHQ+CjxyZWN0IHg9IjQ3NCIgeT0iODAiIHdpZHRoPSI5MiIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjUyMCIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEycHgiPllvdXIgYXBwPC90ZXh0Pgo8dGV4dCB4PSI1MjAiIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDYwMCAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM2Ij5zYW1lIFNESzwvdGV4dD4KPGxpbmUgeDE9IjU2NiIgeTE9IjExMyIgeDI9IjU5MCIgeTI9IjExMyIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhiKSIvPgo8cmVjdCB4PSI1OTQiIHk9Ijc2IiB3aWR0aD0iMTEwIiBoZWlnaHQ9Ijc0IiByeD0iMTEiIGZpbGw9IiMxYTMxMjYiIHN0cm9rZT0iIzA1OTY2OSIgc3Ryb2tlLXdpZHRoPSIxLjciLz4KPHRleHQgeD0iNjQ5IiB5PSIxMDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNjQ5IiB5PSIxMTciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPnNlcnZpY2U8L3RleHQ+Cjx0ZXh0IHg9IjY0OSIgeT0iMTMxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4Ij5hZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNzA0IiB5MT0iMTEzIiB4Mj0iNzI4IiB5Mj0iMTEzIiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGIpIi8+CjxyZWN0IHg9IjczMiIgeT0iODAiIHdpZHRoPSI5MCIgaGVpZ2h0PSI2NiIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9Ijc3NyIgeT0iMTEwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEwLjVweCI+T0NJIEdlbkFJPC90ZXh0Pgo8dGV4dCB4PSI3NzciIHk9IjEyOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPk9DSSdzIG1vZGVsczwvdGV4dD4KPC9zdmc+" alt="Before: on AWS the application's Bedrock SDK calls Amazon Bedrock. After: in the target cloud the same application and SDK call a Tensor9 adapter, which serves the Bedrock API from OCI GenAI." />
</div>

<p className="t9-caption">The SDK calls the Tensor9 adapter, which sends requests to the configured model service.</p>

#### How a conversation maps

A Bedrock chat request is a list of turns, an optional system instruction, and inference settings. The adapter forwards all of it: every turn, the system instruction, and the token limit, temperature, top-p, top-k, and stop settings are preserved, so the model sees the same conversation it would on AWS.

The model your application names in the request is not necessarily the model that runs. The customer chooses which OCI model serves the traffic when the Cloud Adapter deployment is deployed, and the adapter routes every request to it.

Authentication is keyless. The adapter signs each request with the Cloud Adapter deployment's own OCI identity, so there is no API key or static secret to manage. The account that is billed is fixed when the Cloud Adapter deployment is deployed and cannot be changed by a request.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIE9DSSBHZW5BSSwgdGhlbiBjb252ZXJ0cyB0aGUgcmVwbHkgdG8gQmVkcm9jayBmb3JtYXQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFobSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iMzQiIHdpZHRoPSIyMzYiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiNmZmYiIHN0cm9rZT0iI2UyZThmMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTM0IiB5PSI2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMi41cHgiPkJlZHJvY2sgY2hhdCByZXF1ZXN0PC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+dHVybnMgKyBzeXN0ZW0gaW5zdHJ1Y3Rpb248L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50b2tlbiBsaW1pdCwgdGVtcGVyYXR1cmUsPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnRvcC1wLCBzdG9wPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPm1vZGVsIG5hbWU8L3RleHQ+CjxsaW5lIHgxPSIyNTIiIHkxPSI3NCIgeDI9IjMxNCIgeTI9Ijc0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxsaW5lIHgxPSIzMTgiIHkxPSIxMjgiIHgyPSIyNTYiIHkyPSIxMjgiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FobSkiLz4KPHJlY3QgeD0iMzE4IiB5PSI1NCIgd2lkdGg9IjIwNCIgaGVpZ2h0PSI4OCIgcng9IjEyIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPmFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI1MjIiIHkxPSI3NCIgeDI9IjU4NCIgeTI9Ijc0IiBzdHJva2U9IiM5NGEzYjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxsaW5lIHgxPSI1ODgiIHkxPSIxMjgiIHgyPSI1MjYiIHkyPSIxMjgiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FobSkiLz4KPHJlY3QgeD0iNTg4IiB5PSIzNCIgd2lkdGg9IjIzMiIgaGVpZ2h0PSIxMjgiIHJ4PSIxMiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZTJlOGYwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MDQiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEycHgiPk9DSSBHZW5BSTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSI4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPm5hdGl2ZSBjaGF0IHJlcXVlc3Q8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTE4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+cmVwbHk6IHRleHQgb3IgYSB0b29sIGNhbGwsPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9IjEzNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnN0b3AgcmVhc29uLCB0b2tlbiBjb3VudHM8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter translates a Bedrock conversation and its supported settings into a request for OCI GenAI, then converts the reply to Bedrock format." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgYWRhcHRlciB0cmFuc2xhdGVzIGEgQmVkcm9jayBjb252ZXJzYXRpb24gYW5kIGl0cyBzdXBwb3J0ZWQgc2V0dGluZ3MgaW50byBhIHJlcXVlc3QgZm9yIE9DSSBHZW5BSSwgdGhlbiBjb252ZXJ0cyB0aGUgcmVwbHkgdG8gQmVkcm9jayBmb3JtYXQuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFobSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBmaWxsPSIjOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iMzQiIHdpZHRoPSIyMzYiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiMyNjI2MjYiIHN0cm9rZT0iIzNkNGU2NiIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KPHRleHQgeD0iMTM0IiB5PSI2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNlZDg7IGZvbnQtc2l6ZToxMi41cHgiPkJlZHJvY2sgY2hhdCByZXF1ZXN0PC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+dHVybnMgKyBzeXN0ZW0gaW5zdHJ1Y3Rpb248L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZmQ4Ij50b2tlbiBsaW1pdCwgdGVtcGVyYXR1cmUsPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnRvcC1wLCBzdG9wPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPm1vZGVsIG5hbWU8L3RleHQ+CjxsaW5lIHgxPSIyNTIiIHkxPSI3NCIgeDI9IjMxNCIgeTI9Ijc0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxsaW5lIHgxPSIzMTgiIHkxPSIxMjgiIHgyPSIyNTYiIHkyPSIxMjgiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FobSkiLz4KPHJlY3QgeD0iMzE4IiB5PSI1NCIgd2lkdGg9IjIwNCIgaGVpZ2h0PSI4OCIgcng9IjEyIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS43Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzgiPmFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI1MjIiIHkxPSI3NCIgeDI9IjU4NCIgeTI9Ijc0IiBzdHJva2U9IiM0MTRlNjIiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaG0pIi8+CjxsaW5lIHgxPSI1ODgiIHkxPSIxMjgiIHgyPSI1MjYiIHkyPSIxMjgiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FobSkiLz4KPHJlY3QgeD0iNTg4IiB5PSIzNCIgd2lkdGg9IjIzMiIgaGVpZ2h0PSIxMjgiIHJ4PSIxMiIgZmlsbD0iIzI2MjYyNiIgc3Ryb2tlPSIjM2Q0ZTY2IiBzdHJva2Utd2lkdGg9IjEuNSIvPgo8dGV4dCB4PSI3MDQiIHk9IjYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2VkODsgZm9udC1zaXplOjEycHgiPk9DSSBHZW5BSTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSI4NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPm5hdGl2ZSBjaGF0IHJlcXVlc3Q8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iMTE4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2M5Y2ZkOCI+cmVwbHk6IHRleHQgb3IgYSB0b29sIGNhbGwsPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9IjEzNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNjOWNmZDgiPnN0b3AgcmVhc29uLCB0b2tlbiBjb3VudHM8L3RleHQ+Cjwvc3ZnPg==" alt="The adapter translates a Bedrock conversation and its supported settings into a request for OCI GenAI, then converts the reply to Bedrock format." />
</div>

<p className="t9-caption">The adapter sends the conversation to the model selected at deployment. Supported inference settings are listed in the text.</p>

#### Tool use and streaming

If your application uses Bedrock tool use (letting the model call functions you declare), the service adapter handles the full round trip for the OpenAI-style model family: the model can request a tool call, your application runs it, and the result feeds back into the next turn.

Streaming behaves the same as on Bedrock. As the model produces output, the adapter delivers the same incremental events your SDK already expects, including partial tool calls. If the OCI model service reports an error partway through a stream, the adapter surfaces it as a normal error rather than a truncated response.

<div className="t9-diagram-scroll" role="region" aria-label="Scrollable diagram" tabIndex={0}>
  <img className="t9-diagram-light" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNlMmU4ZjAiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjZWNmZGY1IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTEuNXB4Ij5PQ0kgR2VuQUk8L3RleHQ+Cjx0ZXh0IHg9IjcxMSIgeT0iNTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZTo5LjVweCI+dmlhIHRoZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iNjIiIHgyPSIxMjUiIHkyPSIyMDAiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjQgNCIvPgo8bGluZSB4MT0iNzExIiB5MT0iNjIiIHgyPSI3MTEiIHkyPSIyMDAiIHN0cm9rZT0iI2NiZDVlMSIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjQgNCIvPgo8dGV4dCB4PSI0MTgiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+MSYjMTYwOyYjMTYwO2NoYXQgcmVxdWVzdCBkZWNsYXJpbmcgeW91ciB0b29sczwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjkwIiB4Mj0iNzA3IiB5Mj0iOTAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj4yJiMxNjA7JiMxNjA7dGhlIG1vZGVsIGFza3MgdG8gY2FsbCBvbmUgb2YgdGhlbTwvdGV4dD4KPGxpbmUgeDE9IjcxMSIgeTE9IjEyMCIgeDI9IjEyOSIgeTI9IjEyMCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWh0KSIvPgo8dGV4dCB4PSI0MTgiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPjMmIzE2MDsmIzE2MDt5b3VyIGFwcCBydW5zIHRoZSB0b29sIGFuZCByZXR1cm5zIHRoZSByZXN1bHQ8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSIxNTAiIHgyPSI3MDciIHkyPSIxNTAiIHN0cm9rZT0iIzk0YTNiOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj40JiMxNjA7JiMxNjA7dGhlIGZpbmFsIGFuc3dlcjwvdGV4dD4KPGxpbmUgeDE9IjcxMSIgeTE9IjE4MCIgeDI9IjEyOSIgeTI9IjE4MCIgc3Ryb2tlPSIjOTRhM2I4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWh0KSIvPgo8L3N2Zz4=" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />

  <img className="t9-diagram-dark" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjE2IiB2aWV3Qm94PSIwIDAgODM2IDIxNiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgdG9vbC11c2Ugcm91bmQgdHJpcDogeW91ciBhcHAgZGVjbGFyZXMgdG9vbHMsIHRoZSBtb2RlbCBhc2tzIHRvIGNhbGwgb25lLCB5b3VyIGFwcCBydW5zIGl0IGFuZCByZXR1cm5zIHRoZSByZXN1bHQsIGFuZCB0aGUgbW9kZWwgZ2l2ZXMgaXRzIGZpbmFsIGFuc3dlci4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWh0IiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIGZpbGw9IiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjQwIiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMjYyNjI2IiBzdHJva2U9IiMzZDRlNjYiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjEyNSIgeT0iNDUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjYzljZWQ4OyBmb250LXNpemU6MTIuNXB4Ij5Zb3VyIGFwcDwvdGV4dD4KPHJlY3QgeD0iNjI2IiB5PSIxOCIgd2lkdGg9IjE3MCIgaGVpZ2h0PSI0NCIgcng9IjExIiBmaWxsPSIjMWEzMTI2IiBzdHJva2U9IiMwNTk2NjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjx0ZXh0IHg9IjcxMSIgeT0iMzciIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTBkZWM4OyBmb250LXNpemU6MTEuNXB4Ij5PQ0kgR2VuQUk8L3RleHQ+Cjx0ZXh0IHg9IjcxMSIgeT0iNTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5MGRlYzg7IGZvbnQtc2l6ZTo5LjVweCI+dmlhIHRoZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iMTI1IiB5MT0iNjIiIHgyPSIxMjUiIHkyPSIyMDAiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjQgNCIvPgo8bGluZSB4MT0iNzExIiB5MT0iNjIiIHgyPSI3MTEiIHkyPSIyMDAiIHN0cm9rZT0iIzNkNGY2NiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1kYXNoYXJyYXk9IjQgNCIvPgo8dGV4dCB4PSI0MTgiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogI2M5Y2ZkOCI+MSYjMTYwOyYjMTYwO2NoYXQgcmVxdWVzdCBkZWNsYXJpbmcgeW91ciB0b29sczwvdGV4dD4KPGxpbmUgeDE9IjEyNSIgeTE9IjkwIiB4Mj0iNzA3IiB5Mj0iOTAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij4yJiMxNjA7JiMxNjA7dGhlIG1vZGVsIGFza3MgdG8gY2FsbCBvbmUgb2YgdGhlbTwvdGV4dD4KPGxpbmUgeDE9IjcxMSIgeTE9IjEyMCIgeDI9IjEyOSIgeTI9IjEyMCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWh0KSIvPgo8dGV4dCB4PSI0MTgiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICNjOWNmZDgiPjMmIzE2MDsmIzE2MDt5b3VyIGFwcCBydW5zIHRoZSB0b29sIGFuZCByZXR1cm5zIHRoZSByZXN1bHQ8L3RleHQ+CjxsaW5lIHgxPSIxMjUiIHkxPSIxNTAiIHgyPSI3MDciIHkyPSIxNTAiIHN0cm9rZT0iIzQxNGU2MiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FodCkiLz4KPHRleHQgeD0iNDE4IiB5PSIxNzIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjYzljZmQ4Ij40JiMxNjA7JiMxNjA7dGhlIGZpbmFsIGFuc3dlcjwvdGV4dD4KPGxpbmUgeDE9IjcxMSIgeTE9IjE4MCIgeDI9IjEyOSIgeTI9IjE4MCIgc3Ryb2tlPSIjNDE0ZTYyIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWh0KSIvPgo8L3N2Zz4=" alt="The tool-use round trip: your app declares tools, the model asks to call one, your app runs it and returns the result, and the model gives its final answer." />
</div>

<p className="t9-caption">The application executes tool calls and returns their results. During streaming, the adapter sends these as Bedrock events.</p>

#### Limitations

△ Where Bedrock and OCI Generative AI differ

* **Tool use is limited to the OpenAI-style family.** Tool use with the Cohere Command family is not supported.
* **Text inputs only.** Image and document inputs are not supported; the adapter serves text conversations and tool use.
* **Model availability is region-specific.** The Cohere Command family is offered on demand in a different OCI region than the OpenAI-style family, and a given model must be currently offered on demand in the Cloud Adapter deployment's region. Choose a model that is available where the Cloud Adapter deployment runs.
* **Managed Bedrock features are not served.** Agents, Knowledge Bases, and guardrails configured as a service return a clear error rather than a silent or partial result.

#### Other considerations

**Migration.** Bedrock inference stores no conversation state in the service. Changing the model service requires configuration changes, with no stored inference data to transfer.

**Operations.** The customer owns the OCI Generative AI service: which models are enabled, the quotas, and the availability in each region.

**Capacity and cost.** Token pricing and throughput are the OCI model's, not Bedrock's. Size the model choice for the workload the same way you would size any inference deployment.

## On Scaleway

### Scaleway Managed Inference

## Existing data and credentials

Selecting a backend does not copy existing data, credentials or access policies. Plan and verify migration separately before changing an application's endpoint. Do not assume an identifier, credential or encrypted value from the origin service works unchanged on the target.

## Configure, tune and debug

Start with [setup](/cloud-adapter/getting-started/overview) and [configuration](/cloud-adapter/configuration/overview). Use [tuning](/cloud-adapter/tuning/overview) to understand supported request tags, [debugging](/cloud-adapter/debugging/overview) to investigate a request, and [High Fidelity Cloud Emulators](/cloud-adapter/local-testing/overview) to validate a bounded reproduction.
