Skip to content

Latest commit

Β 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Agentic AI on AWS Workshop

ν•œκ΅­μ–΄ | English

Build an AI agent from scratch with the Strands Agents SDK, then deploy and operate it with Amazon Bedrock AgentCore.

Agentic AI on AWS, a complete learning path: chapter 1 getting started with Strands Agents, 2 building multi-agent systems, 3 serving agents in a chatbot application, 4 observability with Strands, 5 adding memory to your agent, 6 deploying agents to production, 7 observing agents in production

  • How you learn: each chapter has a labs/ folder with empty files that you fill in yourself, and a completed/ folder holding the reference implementation. You write the code, then compare against the reference.

  • Level: 100 to 200 (beginner to intermediate). No prior agent or LLM experience required.

  • Duration: about 2 hours for the required chapters, about 3 hours for all eight lab chapters.


πŸ“š What you will learn

  • Strands Agents SDK: build an agent from a prompt, a model, and tools, then extend it with custom tools and MCP servers
  • Retrieval: query an Amazon Bedrock Knowledge Base from an agent with the retrieve tool
  • Multi-agent systems: Agents-as-Tools, Swarm, and Graph, and when to reach for each
  • Memory: short-term and long-term memory with Amazon Bedrock AgentCore Memory
  • Deployment: turn a local agent into a serverless one on AgentCore Runtime with four added lines
  • Observability: agent metrics, logs, and OpenTelemetry traces, both self-managed and through CloudWatch GenAI Observability

πŸ—‚οΈ Chapters

# Chapter What you build ⏱️ Time πŸ“Š Level Track
00 Setup Python environment, AWS credentials, Bedrock model access 10 min Beginner Required
01 Single agent Agent with prompt, model, and tools. Bedrock Knowledge Base, MCP tools, self-improving agent 30 min Beginner Required
02 Multi-agent patterns Agents-as-Tools, Swarm, and Graph 30 min Intermediate Required
03 Chatbot application Streamlit chat UI with streaming and tool-call display 10 min Intermediate Optional
04 Observability with Strands Metrics, logs, and OTLP traces to a local Jaeger 30 min Intermediate Optional
05 Agent memory Short-term and long-term memory with AgentCore Memory 30 min Intermediate Required
06 AgentCore Runtime Serverless deployment of the agent 20 min Advanced Required
07 AgentCore Observability CloudWatch GenAI Observability dashboard 10 min Advanced Required
08 Developing with Kiro IDE Steering, MCP config, and spec-driven development 10 min Beginner Optional

Important

Chapters 01, 02, 05, 06, and 07 form the core path. Chapters 03, 04, and 08 are self-contained and can be skipped. Chapter 07 is the one dependency worth noting: it reads telemetry from the agent you deploy in chapter 06.


πŸš€ Quick start

Prerequisites

  • An AWS account with permission to call Amazon Bedrock and create AgentCore resources
  • Amazon Bedrock model access enabled in us-west-2 for the Anthropic Claude models listed below
  • Python 3.12
  • uv
  • Docker, for chapters 04 and 06 only
  • AWS CLI configured (aws configure), default region us-west-2

Install

git clone https://github.com/aws-samples/sample-aws-agentic-ai-workshop.git
cd sample-aws-agentic-ai-workshop/code/00-setup
uv sync
cd ..

Run your first agent

uv run --project 00-setup python 01-single-agent/completed/basic.py

If that prints an agent response, your environment is ready. Now open the setup guide for the full setup notes, then start chapter 01.

Note

All lab commands are relative to the code/ directory, so run them from there.


πŸ€– Models and region

The labs run against Amazon Bedrock in us-west-2. Enable model access for these before you start:

Model ID Used in
us.anthropic.claude-sonnet-4-20250514-v1:0 Chapters 01 to 06
us.anthropic.claude-sonnet-4-6 Chapter 01 self-improving agent labs, chapter 02
us.amazon.nova-pro-v1:0 Chapter 04, metrics lab

Enable them in the Bedrock console under Model access. Cross-region inference profiles (the us. prefix) require access in the destination regions of the profile, which the console handles for you.


πŸ› οΈ Technologies and services

Technology Purpose Used in Documentation
Strands Agents SDK Agent framework All chapters Docs
Amazon Bedrock Managed model inference All chapters Docs
Bedrock Knowledge Bases Managed RAG over your documents 01 Docs
Model Context Protocol Tool integration standard 01, 08 Docs
AWS MCP servers Ready-made MCP servers for AWS 01, 08 Docs
Streamlit Chat UI 03, 05 Docs
OpenTelemetry, ADOT, Jaeger Trace collection and viewing 04 Docs
AgentCore Memory Short-term and long-term agent memory 05 Docs
AgentCore Runtime Serverless agent hosting 06 Docs
AgentCore Observability CloudWatch GenAI Observability 07 Docs
uv Python environment and dependencies All chapters Docs
Kiro AI-powered IDE 08 Docs

πŸ“ Repository layout

Code lives under code/, and the lab guides live under workshop/. The two trees mirror each other chapter for chapter.

sample-aws-agentic-ai-workshop/
β”œβ”€β”€ code/                         # all workshop code, run the commands from here
β”‚   β”œβ”€β”€ 00-setup/                 # environment setup, uv project, dependencies
β”‚   β”‚   β”œβ”€β”€ pyproject.toml
β”‚   β”‚   β”œβ”€β”€ uv.lock
β”‚   β”‚   └── create-uv-env.sh
β”‚   β”œβ”€β”€ 01-single-agent/
β”‚   β”‚   β”œβ”€β”€ labs/                 # you write these
β”‚   β”‚   └── completed/            # reference implementation
β”‚   β”œβ”€β”€ 02-multi-agents/
β”‚   β”œβ”€β”€ 03-chatbot-app/
β”‚   β”œβ”€β”€ 04-observability/
β”‚   β”‚   └── docker/               # OTel collector + Jaeger
β”‚   β”œβ”€β”€ 05-agent-memory/
β”‚   β”œβ”€β”€ 06-agentcore-runtime/
β”‚   β”œβ”€β”€ 07-agentcore-observability/   # console-only chapter, no code
β”‚   └── 08-kiro-dev/
β”‚       └── .kiro/                # steering rules and MCP config
└── workshop/                     # all lab guides
    β”œβ”€β”€ en/                       # English guides, one folder per chapter
    β”‚   β”œβ”€β”€ 00-setup/README.md
    β”‚   β”œβ”€β”€ 01-single-agent/README.md
    β”‚   └── ...
    β”œβ”€β”€ ko/                       # Korean guides, same folder names
    β”‚   β”œβ”€β”€ 00-setup/README.md
    β”‚   β”œβ”€β”€ 01-single-agent/README.md
    β”‚   └── ...
    └── images/                   # screenshots referenced by the guides

Every chapter follows the same shape:

code/NN-chapter/
β”œβ”€β”€ labs/                    # empty files, you write the code here
└── completed/               # reference answers, run these if you get stuck

workshop/en/NN-chapter/README.md # English lab guide
workshop/ko/NN-chapter/README.md # Korean lab guide

πŸ’° Cost and cleanup

The labs call Bedrock models on demand, and several chapters create AWS resources that bill for as long as they exist:

Chapter Standing resources
01 Bedrock Knowledge Base, OpenSearch Serverless collection, S3 bucket
05 AgentCore Memory resource
06 AgentCore Runtime, ECR repository, IAM execution role, CloudWatch log groups
07 CloudWatch Transaction Search ingestion, trace and log retention

Warning

Each chapter has its own Cleanup section. Work through them when you are done, especially chapters 01, 05, and 06. An OpenSearch Serverless collection in particular bills continuously whether or not you query it.


πŸ› Troubleshooting

These are the failures that come up across chapters. Each chapter also has its own Troubleshooting section for problems specific to it: 00, 01, 02, 03, 04, 05, 06.

Symptom Cause and fix
uv: command not found The installer puts the binary in ~/.local/bin. Open a new shell, or export PATH="$HOME/.local/bin:$PATH".
ModuleNotFoundError for strands or bedrock_agentcore You are on the system Python. Use uv run --project 00-setup python ..., or activate 00-setup/.venv.
AccessDeniedException when a lab calls a model Model access is not enabled for that model ID in us-west-2, or your credentials lack bedrock:InvokeModel. Check the model access page.
ValidationException mentioning a region, or model not found Your default region is not us-west-2. Check with aws configure get region.
Cannot connect to the Docker daemon in chapter 04 or 06 Start Docker Desktop (or Finch / Podman) and confirm with docker info, then re-run.
Memory calls fail right after creating a memory (chapter 05) A new AgentCore Memory takes 1 to 2 minutes to reach ACTIVE. Wait, then retry. LTM extraction is also asynchronous.
CloudWatch GenAI Observability dashboards are empty (chapter 07) Transaction Search must be enabled, and the agent from chapter 06 must have been invoked at least once.

πŸ“š Additional resources

Official documentation

Code and samples

Security

See CONTRIBUTING for how to report a security issue.

License

This library is licensed under the MIT-0 License. See LICENSE.

About

Learn to build AI agents with the open-source Strands SDK, then deploy and operate them in production with Amazon Bedrock AgentCore, from your first single agent to a fully managed, observable deployment.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages