A growing collection of sample projects demonstrating how to build, deploy, and run AI agents and related workloads with Amazon Bedrock AgentCore. Each sample shows a different framework, approach, feature etc.
The samples are organized as a learning path — start from the top to build foundational understanding, then progress to more advanced topics.
Before building agents, understand the Runtime interface itself. These "empty shell" samples implement the AgentCore HTTP contract without running an actual agent — perfect for learning the protocol in isolation.
| Sample | Framework | Language | IaC | Description |
|---|---|---|---|---|
| empty-shell-with-agentcore-sdk | AgentCore SDK | Python | Terraform | Minimal runtime using the bedrock-agentcore Python SDK. |
| empty-shell-with-fastapi | FastAPI | Python | Terraform | Implements the Runtime HTTP interface with FastAPI. |
| empty-shell-with-flask | Flask | Python | Terraform | Implements the Runtime HTTP interface with Flask. |
| empty-shell-with-expressjs | Express.js | Node.js | Terraform | Implements the Runtime HTTP interface with Express.js. |
With the Runtime interface understood, deploy actual agents. Start with a local agent, then move to cloud-deployed agents with observability.
| Sample | Framework | Language | IaC | Description |
|---|---|---|---|---|
| local-strands-agent | Strands | Python | -- | Local AI agent with custom tools — no cloud deployment needed. |
| simple-strands-agent | Strands | Python | Terraform | A simple Strands Agent deployed on AgentCore Runtime. |
| strands-agent-with-observability | Strands | Python | Terraform | Strands agent on AgentCore Runtime with full observability via OpenTelemetry, CloudWatch Logs/Traces, and Transactional Search. |
Add persistence and recall to your agents. Start with the memory fundamentals, then see how memory integrates into a deployed agent.
| Sample | Framework | Language | IaC | Description |
|---|---|---|---|---|
| memory-basics | -- | -- | Terraform | IaC and test scripts illustrating how AgentCore Memory works. No agent — memory only. |
| strands-agent-with-memory | Strands | Python | Terraform | Strands agent on AgentCore Runtime using AgentCore Memory for conversation history, semantic memories, summaries, and user preferences. |
Expose agents securely through managed MCP gateways. Progress from basic setup to authentication and request/response interception.
| Sample | Framework | Language | IaC | Description |
|---|---|---|---|---|
| gateway-basics | -- | -- | Terraform | AgentCore Gateway with MCP backed by Lambda functions. Covers resources, targets, observability, and CloudWatch dashboards. |
| gateway-with-inbound-jwt | -- | -- | Terraform | Gateway secured with JWT-based auth using Amazon Cognito. Clients authenticate via OAuth2 client_credentials flow. |
| gateway-with-interceptors | -- | -- | Terraform | Gateway with Lambda interceptors that inspect and transform inbound requests and outbound responses. |
| gateway-with-policies | -- | -- | Terraform | Gateway with JWT-based auth and AgentCore Policy engine validating incoming request for fine-grained policy adherence. |
| Sample | Description |
|---|---|
| resource-policy-for-vpc-only-access | Resource policy example restricting AgentCore Gateway access to a specific VPC. |
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.