Overview
AWSBedrockLLMService provides access to Amazon’s foundation models including Anthropic Claude and Amazon Nova, with streaming responses, function calling, and multimodal capabilities through Amazon’s managed AI service for enterprise-grade LLM deployment.
AWS Bedrock LLM API Reference
Pipecat’s API methods for AWS Bedrock integration
Example Implementation
Complete example with function calling
AWS Bedrock Documentation
Official AWS Bedrock documentation and features
AWS Console
Access foundation models and manage IAM
Installation
To use AWS Bedrock services, install the required dependencies:Prerequisites
AWS Account Setup
Before using AWS Bedrock LLM services, you need:- AWS Account: Sign up at AWS Console
- IAM User: Create an IAM user with Amazon Bedrock permissions
- Model Access: Request access to foundation models in your AWS region
- Credentials: Set up AWS access keys and region configuration
Required Environment Variables
AWS_ACCESS_KEY_ID: Your AWS access key IDAWS_SECRET_ACCESS_KEY: Your AWS secret access keyAWS_SESSION_TOKEN: Session token (if using temporary credentials)AWS_REGION: AWS region (defaults to “us-east-1”)
Configuration
Deprecated since 0.0.105, removed in 2.0.0. Use
settings=AWSBedrockLLMService.Settings(...) instead.AWS access key ID. If
None, falls back to environment variables and the
default botocore credential chain (instance profiles, IRSA, ECS task roles,
SSO, etc.). Temporary credentials from the chain are renewed automatically
before they expire.AWS region for the Bedrock service. If
None, uses the AWS_REGION
environment variable, defaulting to "us-east-1".Runtime-configurable model settings. See Settings below.
Deprecated since 0.0.105, removed in 2.0.0. Use
settings=AWSBedrockLLMService.Settings(...) instead.List of strings that stop generation when encountered. Deprecated in
v0.0.105. Use
settings=AWSBedrockLLMService.Settings(stop_sequences=...)
instead.Custom botocore client configuration. If
None, uses defaults with 5-minute
connect/read timeouts and 3 retry attempts.Request timeout in seconds. Used when
retry_on_timeout is enabled to
determine when to retry.Whether to retry the request once if it times out. The retry attempt has no
timeout limit.
Settings
Runtime-configurable settings passed via thesettings constructor argument using AWSBedrockLLMService.Settings(...). These can be updated mid-conversation with LLMUpdateSettingsFrame. See Service Settings for details.
None values are omitted from the inference config, letting the Bedrock API
use its own defaults. Only parameters that are explicitly set are included in
the request. This avoids conflicts with models that don’t allow certain
parameter combinations (e.g., temperature and top_p together).Usage
Basic Setup
With Custom Settings
Updating Settings at Runtime
Model settings can be changed mid-conversation usingLLMUpdateSettingsFrame:
Notes
- No-op tool handling: AWS Bedrock requires at least one tool to be defined when tool content exists in the conversation. The service automatically adds a placeholder tool when needed to prevent API errors.
- Model-specific parameters: Some models (e.g., Claude Sonnet 4.5) don’t allow certain parameter combinations. The service only includes explicitly set parameters in the inference config to avoid conflicts.
- Reasoning content: Reasoning that a model returns, such as Claude with extended thinking or Nova 2 with reasoning enabled, is emitted as
LLMThoughtStartFrame,LLMThoughtTextFrame, andLLMThoughtEndFrame. Signed reasoning from Claude is kept in the context and sent back on later turns, so Claude keeps its reasoning across tool calls. Amazon Nova (v1) models write<thinking>...</thinking>into the answer text; a block at the start of the response, or of any text the model writes between tool calls, is emitted as thought frames and isn’t sent to TTS. - Retry behavior: When
retry_on_timeout=True, the first attempt uses theretry_timeout_secstimeout. If it times out, a second attempt is made with no timeout limit. - System instruction precedence: If both the
system_instructionsetting and an initial system message in the context are set,system_instructiontakes precedence, the context system message isn’t sent, and a warning is logged.
Event Handlers
AWSBedrockLLMService supports the following event handlers, inherited from LLMService: