> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS Bedrock

> Use AWS Bedrock foundation models with Agno agents.

Use AWS Bedrock to access various foundation models on AWS. Manage your access to models [on the portal](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/model-catalog).

See all the [AWS Bedrock foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html). Not all Bedrock models support all features. See the [supported features for each model](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html).

We recommend experimenting to find the best-suited model for your use case. Here are some general recommendations:

* For a Mistral model with generally good performance, look at `mistral.mistral-large-2402-v1:0`.
* For Amazon Nova models, use `amazon.nova-pro-v1:0` for general-purpose tasks.
* For Claude models, see our [Claude integration](https://agno-v2.mintlify.site/models/providers/cloud/aws-claude/overview.md).

## Installation

```bash theme={null}
uv pip install -U boto3 agno
```

> [!NOTE]
>
> For async support with AWS Bedrock, you need to install `aioboto3`:
>
> ```bash theme={null}
> uv pip install aioboto3
> ```

## Authentication

AWS Bedrock supports three authentication methods:

### Method 1: Access Key and Secret Key (Recommended)

Set your `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_REGION` environment variables.

Get your keys from [here](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/home).

```bash Mac theme={null}
export AWS_ACCESS_KEY_ID=***
export AWS_SECRET_ACCESS_KEY=***
export AWS_REGION=***
```

```bash Windows theme={null}
setx AWS_ACCESS_KEY_ID ***
setx AWS_SECRET_ACCESS_KEY ***
setx AWS_REGION ***
```

Or pass them directly to the model:

```python theme={null}
from agno.agent import Agent
from agno.models.aws import AwsBedrock

agent = Agent(
    model=AwsBedrock(
        id="mistral.mistral-large-2402-v1:0",
        aws_access_key_id="your-access-key",
        aws_secret_access_key="your-secret-key",
        aws_region="us-east-1"
    )
)
```

### Method 2: SSO Authentication

Use SSO authentication by leveraging your current AWS profile's authentication:

```python theme={null}
from agno.agent import Agent
from agno.models.aws import AwsBedrock

agent = Agent(
    model=AwsBedrock(
        id="mistral.mistral-large-2402-v1:0",
        aws_sso_auth=True,
        aws_region="us-east-1"
    )
)
```

### Method 3: Boto3 Session

Use a pre-configured boto3 Session for advanced authentication scenarios (including SSO, role assumption, etc.):

```python theme={null}
from boto3.session import Session
from agno.agent import Agent
from agno.models.aws import AwsBedrock

# Create a boto3 session with your preferred authentication
session = Session(
    aws_access_key_id="your-access-key",
    aws_secret_access_key="your-secret-key",
    region_name="us-east-1"
)

agent = Agent(
    model=AwsBedrock(
        id="mistral.mistral-large-2402-v1:0",
        session=session
    )
)
```

> [!NOTE]
>
> The authentication methods are checked in this order: Session → SSO → Access Key/Secret Key. The first available method will be used.

## Example

Use `AwsBedrock` with your `Agent`:

```python agent.py theme={null}
from agno.agent import Agent
from agno.models.aws import AwsBedrock

agent = Agent(
    model=AwsBedrock(id="mistral.mistral-large-2402-v1:0"),
    markdown=True
)

# Print the response on the terminal
agent.print_response("Share a 2 sentence horror story.")
```

> [!NOTE]
>
> View more examples [here](https://agno-v2.mintlify.site/models/providers/cloud/aws-bedrock/usage/basic-stream.md).

## Parameters

| Parameter | Type | Default | Description |
| - | - | - | - |
| `id` | `str` | `"mistral.mistral-small-2402-v1:0"` | The specific model ID used for generating responses. |
| `name` | `str` | `"AwsBedrock"` | The name identifier for the model. |
| `provider` | `str` | `"AwsBedrock"` | The provider of the model. |
| `aws_access_key_id` | `Optional[str]` | `None` | The AWS access key ID for authentication. Can also be set via `AWS_ACCESS_KEY_ID` environment variable. |
| `aws_secret_access_key` | `Optional[str]` | `None` | The AWS secret access key for authentication. Can also be set via `AWS_SECRET_ACCESS_KEY` environment variable. |
| `aws_session_token` | `Optional[str]` | `None` | The AWS session token for temporary credentials. Can also be set via `AWS_SESSION_TOKEN` environment variable. |
| `aws_region` | `Optional[str]` | `None` | The AWS region to use for API requests. Can also be set via `AWS_REGION` environment variable. |
| `session` | `Optional[Session]` | `None` | A boto3 Session object for advanced authentication scenarios (SSO, role assumption, etc.). |
| `aws_sso_auth` | `Optional[bool]` | `False` | Removes the need for an access and secret access key by leveraging the current profile's authentication. |
| `max_tokens` | `Optional[int]` | `None` | The maximum number of tokens to generate in the response. |
| `temperature` | `Optional[float]` | `None` | The sampling temperature to use. Higher values like 0.8 make the output more random, while lower values like 0.2 make it more focused and deterministic. |
| `top_p` | `Optional[float]` | `None` | The nucleus sampling parameter. The model considers the results of the tokens with top\_p probability mass. |
| `stop_sequences` | `Optional[List[str]]` | `None` | A list of sequences where the API will stop generating further tokens. |
| `request_params` | `Optional[Dict[str, Any]]` | `None` | Additional parameters for the request, provided as a dictionary. |
| `append_trailing_user_message` | `Optional[bool]` | `None` | Append a trailing user message when the conversation ends with an assistant message. The default depends on whether the model supports assistant message prefill. |
| `trailing_user_message_content` | `str` | `"continue"` | Content of the appended trailing user message. |
| `client` | `Optional[AwsClient]` | `None` | A pre-configured AWS client instance. |

`AwsBedrock` is a subclass of the [Model](https://agno-v2.mintlify.site/reference/models/model.md) class and has access to the same params.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.