Introducing the AWS Guidance for Multi-Agent Orchestration using Amazon Bedrock AgentCore
A single AI agent can answer a question, but real customer journeys need several agents working together. This post introduces the Guidance for Multi-Agent Orchestration using Amazon Bedrock AgentCore, a deployable solution that pairs a supervisor agent with specialized sub-agents on serverless AgentCore infrastructure. It covers session isolation, end-to-end identity, shared memory, MCP-based tool access, and observability, so builders can focus on agent logic instead of infrastructure
Generative AI has moved past the single chatbot. Teams now build agentic systems where one agent plans the work, hands tasks to others, calls tools, remembers context, and puts together an answer. Customer support is a common example. One conversation can include an order status check, a troubleshooting question, a personalized product recommendation, and an inventory lookup, and each of those is a different domain with its own data, tools, and prompts.
Splitting this work across specialized agents can improve accuracy, keeps prompts focused, and lets each agent use a model sized for its job. It also raises hard engineering questions. Where do the agents run, and how are user sessions isolated? How does user identity travel safely from the frontend through the supervisor to every sub-agent and tool? How does the system remember what a customer said last week? How do you see which agent did what when something goes wrong?
To help with this, AWS offers the Guidance for Multi-Agent Orchestration on AWS , part of the AWS Solutions Library . It includes several orchestration patterns. This post covers the Amazon Bedrock AgentCore implementation, which uses AgentCore's managed Runtime, Memory, Gateway, Identity, and Observability together with the open-source Strands Agents SDK. It's written for developers, architects, and engineers who want a starting point for taking multi-agent systems to production on AWS.
The Multi-Agent Challenge: Why Managed Orchestration Matters
Multi-agent architectures help, but building one from scratch creates a predictable set of problems:
- Infrastructure overhead: Each agent needs a place to run, scale, and recover. Teams often build container clusters, autoscaling policies, and load balancers for every agent before they write any agent logic.
- Session isolation and security: Agents act on customer data. Without strong isolation, one user's context could leak into another user's session. Each hop (frontend to supervisor, supervisor to sub-agent, sub-agent to tool) is another trust boundary to secure.
- Identity propagation: The supervisor knows who the user is, but sub-agents and backend tools need that identity too. If the LLM carries the user ID through a prompt, a hallucination can cause data from the wrong customer to be returned.
- Context and memory: Customers expect the system to remember what they said earlier in the conversation and in past ones. Building short-term and long-term memory, including extracting facts and preferences, takes a lot of custom work.
- Tool integration sprawl: Each agent needs access to APIs, databases, and Lambda functions. Without a standard interface, every integration is custom glue code.
- Observability gaps: When a supervisor delegates to four sub-agents and each calls several tools, debugging without end-to-end tracing is mostly guesswork.
Together, these problems slow teams down and keep promising agent prototypes from reaching production. A managed agent platform addresses them by handling runtime, memory, identity, tools, and observability as shared capabilities.
AWS Guidance for Multi-Agent Orchestration using Amazon Bedrock AgentCore
AWS Guidance provides prescriptive technical expertise, reference architectures, best practices, and deployable code samples to speed up cloud solutions. This Guidance gives you a ready-to-deploy solution that shows how to build, secure, and run a multi-agent system end to end.
It's built on two parts:
- Amazon Bedrock AgentCore: A secure, serverless runtime for deploying and scaling AI agents with any open-source framework or model. AgentCore runs each user session in its own dedicated microVM, scales to thousands of sessions in seconds, and works with leading identity providers. Its managed services (Runtime, Memory, Gateway, Identity, and Observability) replace infrastructure that teams would otherwise build and run themselves.
- Strands Agents SDK: An open-source, model-driven framework for building agents in Python with minimal code. Strands integrates directly with AgentCore. For example,
AgentCoreMemorySessionManagerconnects memory without custom code, and the "Agents as Tools" pattern lets a supervisor call sub-agents the way it would call functions.
Deployment uses the AWS CDK (TypeScript), and a single script provisions the infrastructure, agents, knowledge bases, and frontend. You get more than sample agent code. You get a complete reference implementation that combines security, memory, tools, and monitoring, which saves the work of wiring these together yourself.
Use Case: Intelligent Customer Support
The Guidance shows these capabilities through a retail customer support assistant. A Supervisor Agent coordinates four specialized sub-agents:
Agent | Responsibility |
|---|---|
Supervisor Agent | Central orchestrator. Analyzes intent, delegates tasks, and combines the responses |
Order Management Agent | Order status, shipment tracking, and inventory queries |
Product Recommendation Agent | Product search and recommendations across sponsored and organic results |
Personalization Agent | Recommendations based on customer profile and browsing history |
Troubleshooting Agent | Step-by-step technical support using FAQs and troubleshooting guides |
Architecture Overview
At the core of the architecture is a Supervisor Agent running on Amazon Bedrock AgentCore Runtime. It routes each customer request to the right specialist, and each specialist runs in its own AgentCore Runtime. All agents are built with Strands, packaged as ARM64 containers in Amazon ECR, and deployed as separate runtimes, so each one scales and is secured independently.

Request Flow and AWS Service Integration
A typical request goes through the architecture like this:
- User access and authentication: The user opens the React web application through Amazon CloudFront, which is protected by AWS WAF and serves static content from an Amazon S3 bucket. Amazon Cognito authenticates the user and issues a JWT bearer token.
- Direct-to-runtime streaming: The frontend sends requests with the JWT straight to the AgentCore Runtime endpoint for the Supervisor Agent, using Server-Sent Events (SSE) to stream responses in near real time. No API gateway or Lambda proxy sits in between.
- Token validation: AgentCore Runtime validates the JWT against Cognito's OIDC discovery endpoint before the request reaches the Supervisor Agent container.
- Supervisor orchestration: The Supervisor Agent (Strands, using Claude Sonnet 4.5 on Amazon Bedrock) extracts the user identity from the JWT, looks up the
customer_idfrom the user's Cognito attributes, loads conversation context from AgentCore Memory, analyzes the query, and decides which sub-agent or sub-agents to call.
- Sub-agent invocation: The supervisor calls each sub-agent through the Strands "Agents as Tools" pattern. Each call passes:
- The same JWT in the Authorization header, which the sub-agent's Runtime validates again
- The
customer_idin the payload, set by code rather than by the LLM, so data isolation doesn't depend on model output
- Domain processing: Each sub-agent (running Claude Haiku 4.5 for lower cost and faster responses) handles its part of the task:
- Order Management: Queries orders and inventory through AgentCore Gateway tools
- Product Recommendation: Searches sponsored and organic product catalogs through Gateway
- Personalization: Retrieves the customer profile and browsing history from an Amazon Bedrock Knowledge Base using RAG
- Troubleshooting: Retrieves FAQs, troubleshooting guides, and warranty information from a Knowledge Base using RAG
- Tool access through MCP: Each specialist has its own AgentCore Gateway, which exposes AWS Lambda functions as Model Context Protocol (MCP) endpoints. The Gateway validates the JWT again before it runs any tool.
- Knowledge retrieval: Knowledge Bases use Amazon Titan Text Embeddings v2 and Amazon OpenSearch Serverless vector collections for semantic search.
- Response aggregation: Sub-agents return results to the supervisor, which combines them into one answer, stores the interaction in AgentCore Memory, and streams the answer back to the user over SSE.
- Observability: AgentCore Observability records agent performance, conversation flows, tool usage, and error rates using OpenTelemetry. Amazon CloudWatch stores detailed execution traces for debugging and tuning.
This design relies on managed services throughout. CloudFront and WAF handle edge delivery and protection, Cognito handles identity, AgentCore Runtime provides isolated serverless compute, AgentCore Memory keeps context, AgentCore Gateway standardizes tool access, Bedrock and Knowledge Bases provide models and retrieval, and CloudWatch provides visibility. AWS Systems Manager Parameter Store holds runtime configuration, and AWS KMS encrypts the S3 buckets.
Key Features and Benefits
Deploying the Guidance for Multi-Agent Orchestration using Amazon Bedrock AgentCore gives builders the following benefits:
Serverless, Isolated Agent Runtime
Benefit: You run production agents without managing servers, clusters, or autoscaling, and each user session is strongly isolated.
How: AgentCore Runtime hosts each agent as a containerized runtime and gives every user session its own dedicated microVM. Runtimes scale to thousands of concurrent sessions in seconds, and you pay for active runtime. Because every agent has its own runtime, you can update, scale, or replace one specialist without touching the others.
End-to-End Identity and Per-Hop Validation
Benefit: User identity is verified at every service boundary, so each sub-agent and tool validates the user's token before acting.
How:
- JWT validated at every hop: AgentCore Runtime (supervisor and each sub-agent) and AgentCore Gateway each validate the Cognito-issued JWT independently.
- Same token, whole chain: One JWT is passed through the entire call chain, so you can confirm the user's identity at any point by decoding it.
- Programmatic data isolation:
customer_idis passed in the payload by code, not inferred by the LLM. The model never decides which customer's data gets queried.
- Edge protection: AWS WAF with AWS Managed Rules protects the CloudFront distribution, and KMS encrypts the S3 data buckets.
Managed Short-Term and Long-Term Memory
Benefit: Agents remember context within a conversation and learn customer facts and preferences across sessions, with no memory pipeline for you to build.
How: AgentCore Memory uses two tiers:
- Short-term memory (STM) stores the current session's conversation history automatically.
- Long-term memory (LTM) extracts facts and preferences in the background using semantic, summary, and user-preference strategies, and retrieves them later with semantic search.
Strands'
AgentCoreMemorySessionManager connects this up. The Guidance uses one deliberate pattern: the supervisor retrieves LTM centrally and adds it to its context in <user_context> blocks. The Personalization and Troubleshooting agents keep their own STM and add to the shared memory resource, and the Order Management and Product Recommendation agents run without memory. You can change this, for example by letting sub-agents read LTM directly for more independent behavior.Standardized Tool Access with MCP
Benefit: Existing APIs and Lambda functions become agent-ready tools without custom integration code.
How: AgentCore Gateway turns Lambda functions into MCP endpoints. The Guidance deploys eight of them across the specialists' Gateways (inventory, orders, customer database, browsing knowledge base, organic products, sponsored products, knowledge base query, and coordination). Any MCP-compatible agent can find and call these tools, and the Gateway enforces JWT authentication on every call.
Flexible Orchestration Patterns
Benefit: You start with a proven supervisor pattern and can move to more advanced coordination as needs change.
How: The Guidance uses the Strands "Agents as Tools" pattern, where the supervisor calls specialists like functions and combines their outputs. AgentCore also supports the Agent-to-Agent (A2A) protocol natively, which opens up other Strands multi-agent patterns such as Graph, Swarm, and Workflow.
Right-Sized Models for Cost and Latency
Benefit: You get strong reasoning where it matters and keep per-request costs down.
How: The supervisor uses Claude Sonnet 4.5 (US inference profile) for intent analysis and orchestration. The four sub-agents use Claude Haiku 4.5 (global cross-Region inference profile) for fast, inexpensive domain work. You can swap models per agent by changing configuration.
Built-In Observability
Benefit: You can see what every agent reasoned, which tools it called, and what memory it retrieved, all in one timeline.
How: AgentCore Observability sends OpenTelemetry traces to Amazon CloudWatch, including the CloudWatch GenAI Observability dashboard, which you enable with a one-time CloudWatch Transaction Search setup. The Guidance also includes a
show_agent_logs.py script that filters out verbose telemetry and shows user messages, agent reasoning, tool calls with parameters, and accumulated long-term memories in order.Simplified AWS Deployment
Benefit: You go from
git clone to a working multi-agent application with one command.How: The AWS CDK defines all seven stacks.
deploy-complete-system.sh builds the agents, bootstraps CDK, deploys the stacks in the right order, configures and uploads the frontend, invalidates the CloudFront cache, sets up runtime authorization, and creates test users. An integration test suite validates the deployment.The table below summarizes the main features and the components that provide them:
Feature Area | Specific Capability | How It's Enabled (AWS Service / Framework Feature) |
|---|---|---|
Runtime | Serverless agent hosting with per-session microVM isolation | Amazon Bedrock AgentCore Runtime |
Orchestration | Supervisor + specialist delegation | Strands "Agents as Tools" pattern |
Orchestration | Graph, Swarm, Workflow patterns | AgentCore native A2A protocol + Strands |
Security | User authentication | Amazon Cognito (JWT) + AgentCore Identity |
Security | Per-hop token validation | AgentCore Runtime + AgentCore Gateway |
Security | Programmatic data isolation | customer_id passed in payload, not by the LLM |
Security | Edge and data protection | AWS WAF, Amazon CloudFront, AWS KMS |
Memory | Session context (STM) | AgentCore Memory + AgentCoreMemorySessionManager |
Memory | Cross-session facts and preferences (LTM) | AgentCore Memory semantic, summary, user-preference strategies |
Tools | APIs and Lambda functions as MCP tools | AgentCore Gateway + AWS Lambda |
Knowledge | RAG over profiles, FAQs, and guides | Amazon Bedrock Knowledge Bases + OpenSearch Serverless |
Models | Reasoning + cost-efficient specialists | Claude Sonnet 4.5 (supervisor), Claude Haiku 4.5 (sub-agents) |
User Experience | Real-time streaming responses | Server-Sent Events direct to AgentCore Runtime |
Observability | Distributed tracing and metrics | AgentCore Observability (OpenTelemetry) + Amazon CloudWatch |
Deployment | Infrastructure as code | AWS CDK (TypeScript) + one-command deploy script |
Getting Started: Deploying Your Multi-Agent System
This section gives a high-level overview of deploying the Guidance.
Disclaimer: This walkthrough is based on the GitHub repository documentation available at the time of writing. Always check the official repository for current instructions. Deploying this solution incurs costs for the AWS resources used. As an AWS Guidance sample, support is best effort through the repository's GitHub Issues.
Prerequisites
Make sure you have the following before you start:
- An AWS account with IAM permissions to create AgentCore resources (runtimes, memory, gateways), Bedrock Knowledge Bases, OpenSearch Serverless collections, Cognito user pools, S3, CloudFront, WAF, Lambda, ECR, KMS, IAM roles, Parameter Store, and CloudWatch Logs.
- Amazon Bedrock model access for the models the agents use. By default, these are
amazon.titan-embed-text-v2:0for Knowledge Base embeddings,us.anthropic.claude-sonnet-4-5-20250929-v1:0for the supervisor, andglobal.anthropic.claude-haiku-4-5-20251001-v1:0for the sub-agents. You can change the model for any agent in its configuration. If you use a global inference profile, enable cross-Region inference for it.
- Enough service quotas for 5 AgentCore runtimes, 2 Knowledge Bases, 2 OpenSearch Serverless collections, and 1 Cognito user pool.
- Node.js v22.x, AWS CDK CLI v2.220.0+, Python 3.13, AWS CLI v2, Docker, and Git.
- A supported Region where AgentCore is available. At publication, that's us-east-1 or us-west-2.
Step 1: Clone the Repository
git clone https://github.com/aws-solutions-library-samples/guidance-for-multi-agent-orchestration-using-bedrock-agentcore-on-aws.gitcd guidance-for-multi-agent-orchestration-using-bedrock-agentcore-on-awsStep 2: Deploy the Complete System
One script handles the infrastructure, agents, and frontend:
cd infrastructure./deploy-complete-system.sh [PROFILE] [REGION]
# Examples./deploy-complete-system.sh # AWS CLI defaults./deploy-complete-system.sh my-profile # specific profile./deploy-complete-system.sh my-profile us-west-2 # specific profile + regionThe script deploys these stacks in order:
Stack | What It Creates |
|---|---|
KnowledgeBaseStack | OpenSearch Serverless collections and Bedrock Knowledge Bases |
CustomerSupportAssistantStack | Supervisor agent runtime, Cognito, AgentCore Memory |
PersonalizationAgentStack | Personalization agent runtime and Gateway |
OrderManagementAgentStack | Order Management agent runtime and Gateway |
ProductRecommendationAgentStack | Product Recommendation agent runtime and Gateway |
TroubleshootingAgentStack | Troubleshooting agent runtime and Gateway |
FrontendStack-{region} | S3, CloudFront, WAF (always deployed in us-east-1) |
Tip: AgentCore Runtime runs on ARM64, so agent images are built for ARM64. On Apple Silicon or AWS Graviton, the first deployment takes about 20–25 minutes. On x86 machines, Docker emulation increases that to about 30–35 minutes. Later deployments take 10–15 minutes thanks to cached image layers.
Step 3: Verify and Access
When the script finishes, it prints a deployment summary (also saved to
infrastructure/deployment-outputs.json ) with:- The CloudFront website URL
- Test user credentials and Cognito User Pool and Client IDs
- AgentCore Runtime ARNs for all five agents
- Knowledge Base IDs
- Ready-to-run log monitoring and integration test commands
Open the website URL, sign in as a test user (for example,
carlos_salazar@example.com ), and try a multi-turn conversation:User Says | What Happens Behind the Scenes |
|---|---|
"I ordered a ProMax Laptop recently. Can you check my order status?" | Supervisor → Order Management Agent looks up the customer's order |
"I returned it because it was overheating. What was wrong?" | Supervisor → Troubleshooting Agent queries the Knowledge Base |
"What other laptops would you recommend for me?" | Supervisor → Personalization Agent (profile) → Product Recommendation Agent |
"Is the UltraBook Air in stock?" | Supervisor → Order Management Agent checks inventory |
Sign in as different test users (gold, silver, bronze, and platinum tiers, with different preferences) to see how responses change with each customer profile.
Step 4: Observe the Agents at Work
Watch the orchestration as it happens:
# Supervisor agent (last 30 minutes, default)python3 scripts/show_agent_logs.py supervisor
# Personalization agent (last 60 minutes)python3 scripts/show_agent_logs.py personalization --minutes 60
# Others: order-management, product-recommendation, troubleshootingYou'll see the supervisor's reasoning and delegation decisions, sub-agents calling MCP tools with their parameters, and, after a few conversations, a LONG-TERM MEMORY ACCUMULATED section listing what the system has learned about the user.
For full validation, run the integration tests:
python3 tests/integration/00_setup/test_setup.py # first time onlypython3 tests/integration/run_all_tests.pyStep 5: Customize and Extend (Optional)
- Add specialized agents for billing, shipping, or returns.
- Connect your own data by replacing the sample catalog, customer database, and knowledge base content.
- Tune agent prompts in
agents/*/system_prompt.pyto match your brand voice.
- Adjust memory strategies in
lambda/memory-manager/index.py.
- Integrate your own identity provider in place of or alongside Cognito.
- Rebrand the frontend in
frontend/src/.
To remove resources when you're done, run
./cleanup.sh [PROFILE] from the infrastructure folder. You can delete everything or keep the Knowledge Base stack for a later deployment.Why This Guidance Matters for AWS Builders
Here's why this Guidance is useful for teams building on AWS:
- Faster path to production: Managed Runtime, Memory, Gateway, Identity, and Observability replace weeks of infrastructure work, so teams can focus on agent behavior and business logic.
- Security by design: Per-session microVM isolation, JWT validation at every hop, and programmatic customer scoping are built in, and they're hard to build well from scratch.
- Agents that remember: Managed short-term and long-term memory let agents use context from earlier conversations without a custom memory pipeline.
- Reusable tools: MCP endpoints through AgentCore Gateway turn existing Lambda functions and APIs into tools that any compatible agent can use.
- Room to grow: Framework- and model-agnostic runtimes, plus native A2A support, let you move from supervisor delegation to Graph, Swarm, or Workflow patterns as needs change.
- Operational confidence: End-to-end OpenTelemetry tracing in CloudWatch shows how agents reason and collaborate, which simplifies debugging and tuning.
This Guidance removes the infrastructure barriers that keep multi-agent prototypes from reaching production, so teams can deliver agentic experiences to customers sooner.
Conclusion: Build Smarter with Managed Multi-Agent Orchestration
Multi-agent systems are a practical way to handle complex, multi-step customer interactions, but only when the underlying infrastructure is secure, scalable, and observable. The Guidance for Multi-Agent Orchestration using Amazon Bedrock AgentCore provides that foundation. It combines AgentCore's managed services with the Strands Agents SDK in a ready-to-deploy, CDK-based reference architecture that you can adapt to your own domain.
Clone the repository , deploy it in 20 to 35 minutes, and start building multi-agent applications on AWS. To compare other orchestration approaches, such as the LangGraph implementation, see the full Guidance for Multi-Agent Orchestration on AWS .
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article