- Newest
- Most votes
- Most comments
You're facing a common issue with streaming responses from Bedrock Agents. Let me clarify a few points about the current functionality:
First, to use streaming with Bedrock Agents, you need to use the streamingConfigurations parameter in the invoke_agent call, not just setting streamFinalResponse to true. This parameter is available in recent versions of boto3 (check that you're using at least version 1.35.99).
For the IAM permissions, you're on the right track - the agent execution role does need the bedrock:InvokeModelWithResponseStream permission for the configured agent model.
When using guardrails with streaming, you can also configure the applyGuardrailInterval in the StreamingConfigurations to control how often guardrail checks are applied to outgoing response characters.
However, there's an important limitation to be aware of: the InvokeAgent API has internal throttling limits that aren't exposed in the Service Quotas console. Even at low request rates, you might hit per-second or burst limits depending on your agent configuration.
For your Lambda setup, ensure you've also added a resource-based policy statement on the Lambda function that allows Bedrock to invoke it:
- The principal should be
bedrock.amazonaws.com - The source ARN should be your Bedrock Agent's ARN
- The action should be
lambda:InvokeFunction
If you're still experiencing issues after implementing these configurations, consider implementing retries with exponential backoff and jitter to handle potential throttling exceptions.
Sources
able to use streamingConfigurations in AgentsforBedrockRuntime invoke_agent boto3 sdk | AWS re:Post
InvokeAgent - Amazon Bedrock
Bedrock Agent InvokeAgent API throttling despite Service Quota increase | AWS re:Post
Error when Bedrock agent invoke lambda | AWS re:Post
Invoke an agent from your application - Amazon Bedrock
Relevant content
- AWS OFFICIALUpdated 7 months ago
- AWS OFFICIALUpdated 7 months ago
- AWS OFFICIALUpdated 2 years ago

Bedrock Agents (InvokeAgent) currently buffer responses and don’t support true streaming, so streaming only works with direct model invocation, not agents.