{"id":36442358,"url":"https://github.com/aws-samples/sample-getting-started-with-strands-agents-course","last_synced_at":"2026-01-18T15:00:30.194Z","repository":{"id":309432765,"uuid":"1032753726","full_name":"aws-samples/sample-getting-started-with-strands-agents-course","owner":"aws-samples","description":"Learn to build AI agents with Strands framework. Covers LLM integration via Amazon Bedrock/Anthropic, AWS service connections, tool implementation with MCP/A2A protocols, and agent evaluation using LangFuse/RAGAS.","archived":false,"fork":false,"pushed_at":"2025-10-29T21:55:16.000Z","size":8333,"stargazers_count":34,"open_issues_count":0,"forks_count":11,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-29T23:44:23.644Z","etag":null,"topics":["a2a","anthropic","aws","bedrock","litellm","mcp","python","strands-agents"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit-0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aws-samples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-05T19:18:08.000Z","updated_at":"2025-10-29T21:55:20.000Z","dependencies_parsed_at":"2025-10-29T23:30:43.046Z","dependency_job_id":"41efea9f-4c42-4a71-b2c3-c3faf8a5fe60","html_url":"https://github.com/aws-samples/sample-getting-started-with-strands-agents-course","commit_stats":null,"previous_names":["aws-samples/sample-getting-started-with-strands-agents-course"],"tags_count":0,"template":false,"template_full_name":"amazon-archives/__template_MIT-0","purl":"pkg:github/aws-samples/sample-getting-started-with-strands-agents-course","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Fsample-getting-started-with-strands-agents-course","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Fsample-getting-started-with-strands-agents-course/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Fsample-getting-started-with-strands-agents-course/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Fsample-getting-started-with-strands-agents-course/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aws-samples","download_url":"https://codeload.github.com/aws-samples/sample-getting-started-with-strands-agents-course/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws-samples%2Fsample-getting-started-with-strands-agents-course/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28538865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T14:59:57.589Z","status":"ssl_error","status_checked_at":"2026-01-18T14:59:46.540Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","anthropic","aws","bedrock","litellm","mcp","python","strands-agents"],"created_at":"2026-01-11T22:00:18.247Z","updated_at":"2026-01-18T15:00:30.179Z","avatar_url":"https://github.com/aws-samples.png","language":"Jupyter Notebook","funding_links":[],"categories":["📚 Tutorials \u0026 Articles","Community Projects"],"sub_categories":["For PyPI Packages"],"readme":"# Getting Started with Strands Agents - Complete Learning Path\n\n🎯 **Learning Journey**: Course 1 (Fundamentals) → Course 2 (Advanced MCP, Hooks, Session Management) → Course 3 (Multi-Agent Systems) → Course 4 (Production Deployment)\n\nA comprehensive hands-on learning path for AI agent development using the [Strands Agents framework](https://strandsagents.com/). Build intelligent, multi-agent systems from basic concepts to production-ready implementations with advanced capabilities. All of these courses have free video courses to follow along available at Analytics Vidhya. \n\n---\n\n## 📚 Learning Path Overview\n\nThis repository contains four progressive courses that take you from fundamentals to advanced production-ready implementations:\n\n### **Course 1: Getting Started with Strands Agents**\nFoundation course covering basic agent creation, model providers, AWS integration, MCP basics, agent-to-agent communication, and observability fundamentals.\n\nVideo Series available [here](https://www.analyticsvidhya.com/courses/getting-started-with-strands-agents-build-your-first-ai-agent/?utm_source=new_course_home_page) for free enrollment.\n\n### **Course 2: Advanced Strands Agents with MCP**\nAdvanced course focusing on production-ready implementations, advanced tool integration, persistent memory systems, hooks, session management, and enterprise features.\n\nVideo Series available [here](https://www.analyticsvidhya.com/courses/advanced-strands-agents-mcp/) for free enrollment.\n\n### **Course 3: Building Multi-Agent Systems**\nDevelop intelligent multi-agent systems that coordinate, communicate, and solve complex problems using swarm, graph-based and agents as tools patterns with Strands Agents.\n\nVideo Series available [here](https://www.analyticsvidhya.com/courses/building-multi-agent-systems-with-strands-agents/) for free enrollment.\n\n### **Course 4: Production Deployment with Amazon Bedrock AgentCore**\nProduction deployment course covering best practices for running agents in production environments using Amazon Bedrock AgentCore Runtime for serverless scaling and management.\n\n**Total Learning Time**: ~5-6 hours across all courses\n\n---\n\n## 🎓 Course 1: Getting Started with Strands Agents\n\n**Location**: `course-1/` directory\n\nLearn the complete journey of AI agent development, from basic usage to advanced topics like [agent-to-agent (A2A)](https://strandsagents.com/latest/documentation/docs/user-guide/concepts/multi-agent/agent-to-agent/) communication and [observability](https://strandsagents.com/latest/documentation/docs/user-guide/observability-evaluation/observability/).\n\n### What You'll Learn\n- Strands Agents Framework - Build intelligent AI agents\n- Model Context Protocol (MCP) - Enable tool integration\n- Agent-to-Agent Communication - Create multi-agent systems\n- Observability \u0026 Evaluation - Monitor and improve agent performance\n\n### Course 1 Structure\n\n| 🧪 Lab | 📝 What You'll Learn | ⏱️ Time | 📊 Level |\n|--------|---------------------|---------|----------|\n| [Lab 1: Strands Agent Basics](course-1/Lab1/) | Agent initialization, system prompts, HTTP tools | 15 min | ![Beginner](https://img.shields.io/badge/-Beginner-brightgreen) |\n| [Lab 2: Model Providers](course-1/Lab2/) | Anthropic \u0026 Amazon Bedrock integration | 18 min | ![Beginner](https://img.shields.io/badge/-Beginner-brightgreen) |\n| [Lab 3: AWS Service Integration](course-1/Lab3/) | AWS service tool usage (S3, DynamoDB) | 15 min | ![Intermediate](https://img.shields.io/badge/-Intermediate-yellow) |\n| [Lab 4: MCP \u0026 Tools](course-1/Lab4/) | Model Context Protocol, tool creation | 14 min | ![Intermediate](https://img.shields.io/badge/-Intermediate-yellow) |\n| [Lab 5: A2A Communication](course-1/Lab5/) | Multi-agent systems \u0026 communication | 11 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n| [Lab 6: Observability](course-1/Lab6/) | LangFuse, RAGAS, performance monitoring | 21 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n\n### Course 1 Lab Details\n\n#### Lab 1: Strands Agent Basics\n**Files**: `basic-use.py`, `http-tool-use.py`, `system-prompt-use.py`\n\nLearn the fundamentals of creating and using Strands agents:\n- Basic agent initialization and usage\n- System prompt customization\n- HTTP tool integration\n\n#### Lab 2: Model Providers\n**Files**: `anthropic-model-provider.py`, `anthropic-pet-breed-agent.py`, `bedrock-default-config.py`, `bedrock-detailed-config.py`\n\nExplore different model providers and configuration options:\n- Anthropic Claude model integration\n- Amazon Bedrock model configuration\n\n\u003e **Note**: Some portions of this lab require a pre-existing AWS account for the 'generate_image' tool.\n\n#### Lab 3: AWS Service Integration\n**Files**: `aws-tool-use.py`\n\nLearn to integrate AWS services with your Strands agents:\n- Using the [`use_aws`](https://github.com/strands-agents/tools/blob/main/src/strands_tools/use_aws.py) tool\n- Examples with Amazon S3 and Amazon DynamoDB\n\n\u003e **Note**: The code in this lab requires a pre-existing AWS account to properly utilize the 'use_aws' tool. An example Amazon DynamoDB Table is used to generate results when querying a table.\n\n#### Lab 4: Model Context Protocol (MCP)\n**Files**: `mcp-and-tools.ipynb`, `mcp_calulator.py`\n\nDeep dive into the Model Context Protocol:\n- MCP server creation\n- Tool definition and usage\n- Calculator and Weather agents examples\n- Interactive Jupyter notebook tutorial\n\n#### Lab 5: Agent-to-Agent Communication\n**Files**: `a2a-communication.ipynb`, `run_a2a_system.py`, `employee_data.py`, `employee-agent.py`, `hr-agent.py`\n\nBuild multi-agent systems with inter-agent communication:\n- A2A communication patterns\n- Employee/HR agent system example\n- MCP server for data sharing\n- REST API integration\n\n#### Lab 6: Observability \u0026 Evaluation\n**Files**: `observability-with-langfuse-and-evaluation-with-ragas.ipynb`, `restaurant-data/`\n\nMonitor and evaluate agent performance:\n- Restaurant recommendation agent example\n- LangFuse integration for observability\n- RAGAS evaluation framework\n- Performance metrics and tracing\n\n---\n\n## 🚀 Course 2: Advanced Strands Agents with MCP\n\n**Location**: `course-2/` directory\n\nA comprehensive advanced course for building production-ready AI agents using the Strands Agents SDK. This repository contains 6 progressive labs that teach advanced capabilities including tool integration, memory persistence, Model Context Protocol (MCP), and comprehensive observability.\n\n### What You'll Learn\n- **Strands Agents SDK** - Advanced agent architecture and lifecycle management\n- **Model Context Protocol (MCP)** - Standardized tool and service integration  \n- **Multi-Provider Configuration** - Amazon Bedrock, Anthropic, OpenAI, and Ollama\n- **Advanced Processing** - Hooks, session management, and conversation strategies\n- **Memory Systems** - Long-term persistent memory with FAISS, OpenSearch, and Mem0\n- **Enterprise Features** - Observability, metrics analysis, and performance optimization\n\n### Course 2 Structure\n\n| 🧪 Lab | 📝 What You'll Learn | ⏱️ Time | 📊 Level |\n|--------|---------------------|---------|----------|\n| [Lab 1: Overview of Strands Agents](course-2/Lab1/) | Fundamental agentic AI concepts, agent lifecycle | 13 min | ![Intermediate](https://img.shields.io/badge/-Intermediate-yellow) |\n| [Lab 2: Model Providers](course-2/Lab2/) | Multi-provider configuration, metrics analysis | 12 min | ![Intermediate](https://img.shields.io/badge/-Intermediate-yellow) |\n| [Lab 3: Advanced Response Processing](course-2/Lab3/) | Hooks, lifecycle management, async patterns | 14 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n| [Lab 4: Tools \u0026 MCP Integration](course-2/Lab4/) | Custom tools, MCP servers, self-extending agents | 19 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n| [Lab 5: Session Management](course-2/Lab5/) | Conversation strategies, state persistence | 11 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n| [Lab 6: Memory Persistent Agents](course-2/Lab6/) | Long-term memory, FAISS, OpenSearch, Mem0 | 15 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n\n### Course 2 Lab Details\n\n#### Lab 1: Overview of Strands Agents (12:52)\n**Files**: `first_agent.py`\n\nLearn fundamental agentic AI concepts and build your first Strands agent:\n- Basic agent creation with default configuration (no API keys required)\n- Core agent components and execution flow\n- Agent result examination (message, metrics, state, stop reasons)\n- Dynamic model configuration and system prompt modification\n- Conversation history management and message clearing\n\n#### Lab 2: Model Providers and Configuration (11:59)\n**Files**: `anthropic_model.py`, `bedrock_model.py`, `ollama_model.py`, `openai_model.py`\n\nConfigure agents across multiple LLM providers for flexibility and cost optimization:\n- Model architecture overview and provider-specific parameters\n- Bedrock model setup with structured output capabilities\n- Anthropic model configuration with thinking mode\n- Ollama local deployment and OpenAI integration\n- Metrics analysis and performance monitoring\n\n#### Lab 3: Advanced Response Processing with Hooks (13:30)\n**Files**: `async_example.py`, `hook_example_1.py`, `hook_example_2.py`\n\nImplement custom logic to intercept and modify agent behavior at lifecycle points:\n- Event-driven hook system and lifecycle management\n- Before/after event handling and agent modifications\n- Async iterators, callback handlers, and retry logic\n- Tool hook examples and precision parameter setup\n\n#### Lab 4: Tools and MCP Integration (18:55)\n**Files**: `mcp_integration.py`, `self_extending_example.py`, `tools/`\n\nExtend agent capabilities with custom tools and external service integration:\n- Built-in tools from strands-agents-tools library\n- Custom tool creation using @tool decorator\n- MCP server configuration for AWS Documentation and Pricing\n- Self-extending agents and meta tooling capabilities\n- Proper error handling and security implementation\n\n#### Lab 5: Conversation and Session Management (11:26)\n**Files**: `session_example.py`, `verify_session.py`\n\nManage conversation state and context effectively across interactions:\n- Context window challenges and management strategies\n- Three conversation manager approaches (Null, SlidingWindow, Summarizing)\n- Session state persistence and user isolation\n- File-based and Amazon S3 session storage options\n\n#### Lab 6: Memory Persistent Agents (15:19)\n**Files**: `memory_example.py`\n\nBuild agents with long-term memory capabilities across conversations:\n- Memory backends integration (FAISS, OpenSearch, Mem0)\n- Web search integration with DuckDuckGo\n- Memory storage, retrieval, and relevance scoring\n- Amazon Bedrock Knowledge Bases integration\n- Retention policies and privacy controls\n\n---\n\n## 🤖 Course 3: Building Multi-Agent Systems\n\n**Location**: [Strands Samples](https://github.com/strands-agents/samples/tree/main/01-tutorials/02-multi-agent-systems) \n\nDevelop intelligent multi-agent systems that coordinate, communicate, and solve complex problems using swarm, graph-based and agents as tools patterns with Strands Agents.\n\n### Course 3 Structure\n\n| 🧪 Lab | 📝 What You'll Learn | ⏱️ Time | 📊 Level |\n|--------|---------------------|---------|----------|\n| [Lab 1: Multi-Agent Systems with Swarm Intelligence](https://github.com/strands-agents/samples/blob/main/01-tutorials/02-multi-agent-systems/02-swarm-agent/swarm.ipynb) | Use a Jupyter notebook to deep dive into the Swarm multi-agent pattern | 30 min | ![Intermediate](https://img.shields.io/badge/-Intermediate-yellow) |\n| [Lab 2: Multi-Agent Systems with Agent Graph](https://github.com/strands-agents/samples/blob/main/01-tutorials/02-multi-agent-systems/03-graph-agent/graph.ipynb) | Use a Jupyter notebook to deep dive into the Graph multi-agent pattern | 25 min | ![Intermediate](https://img.shields.io/badge/-Intermediate-yellow) |\n| [Lab 3: Multi-Agent System with Agents as a Tools](https://github.com/strands-agents/samples/blob/main/01-tutorials/02-multi-agent-systems/01-agent-as-tool/agent-as-tools.ipynb) | Use a Jupyter notebook to deep dive into the Agents as Tools multi-agent pattern | 20 min | ![Intermediate](https://img.shields.io/badge/-Intermediate-yellow) |\n\n---\n\n## 🚀 Course 4: Production Deployment with Amazon Bedrock AgentCore\n\n**Location**: `course-4/` directory\n\nLearn to deploy production-ready AI agents using Amazon Bedrock AgentCore Runtime. This course focuses on serverless deployment, scaling, and management of agents in production environments.\n\n### What You'll Learn\n- **Production Best Practices** - Understand differences between development and production agent deployment\n- **Amazon Bedrock AgentCore** - Comprehensive overview of AgentCore services and components\n- **Serverless Deployment** - Deploy agents with auto-scaling and session management\n- **Production Operations** - Monitor, troubleshoot, and maintain production agent systems\n\n### Course 4 Structure\n\n| 🧪 Lab | 📝 What You'll Learn | ⏱️ Time | 📊 Level |\n|--------|---------------------|---------|----------|\n| [Lab 1: Operating Agents in Production](course-4/) | Production best practices, development vs production differences | 9 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n| [Lab 2: Introduction to Amazon Bedrock AgentCore](course-4/) | Amazon Bedrock AgentCore fundamentals, service component overview | 12 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n| [Lab 3: Building agents with Amazon Bedrock AgentCore](course-4/) | Hands-on deployment with AgentCore Runtime | 20 min | ![Advanced](https://img.shields.io/badge/-Advanced-red) |\n\n### Course 4 Lab Details\n\n#### Lab 1: Operating Agents in Production (9:00)\nUnderstand the best practices for running agents in a production setting and how that differs from local development.\n\n#### Lab 2: Introduction to Amazon Bedrock AgentCore (12:00)\nUnderstand the fundamentals of Amazon Bedrock AgentCore and its components.\n\n#### Lab 3: Building a Calculator Agent (20:00)\n**Files**: `my_agent.py`, `invoke_agent.py`, `requirements.txt`\n\nHands-on deployment of a production-ready calculator agent:\n- Agent creation with Strands Agents framework\n- AgentCore Runtime deployment and configuration\n- Testing deployed agents with session management\n- Production invocation patterns and best practices\n\n\u003e **Note**: This lab requires an AWS account with appropriate permissions and model access enabled in Amazon Bedrock console.\n\n---\n\n## 🛠️ Technologies \u0026 Services\n\n| 🔧 Technology | 🎯 Purpose | 📖 Documentation |\n|--------------|-----------|-----------------|\n| **Strands Agents** | AI agent framework | [Docs](https://strandsagents.com/) |\n| **Anthropic Claude** | Alternative LLM provider | [Docs](https://docs.anthropic.com/) |\n| **Amazon Bedrock** | AWS managed LLM service | [Docs](https://docs.aws.amazon.com/bedrock/) |\n| **OpenAI** | Alternative LLM provider | [Docs](https://platform.openai.com/docs) |\n| **Ollama** | Local model deployment | [Docs](https://ollama.ai/) |\n| **Model Context Protocol** | Tool integration standard | [Docs](https://modelcontextprotocol.io/) |\n| **LangFuse** | Observability \u0026 tracing | [Docs](https://langfuse.com/docs) |\n| **RAGAS** | Agent evaluation | [Docs](https://docs.ragas.io/) |\n| **Mem0** | Memory persistence | [Docs](https://docs.mem0.ai/) |\n| **FAISS** | Vector similarity search | [Docs](https://github.com/facebookresearch/faiss) |\n| **OpenSearch** | Search and analytics | [Docs](https://opensearch.org/docs/) |\n\n---\n\n## 📋 Prerequisites\n\n### Course 1 Requirements\n- **Python 3.10+**\n- **Virtual environment** (recommended)\n- **API keys for at least one of:**\n  - Anthropic Claude \n  - Amazon Bedrock\n- **For Lab 6:** LangFuse account and API key\n- **For Labs 3, 5:** AWS account with appropriate CLI configuration\n\n### Course 2 Requirements\n- **Completion of Course 1** (Labs 1-6) or equivalent knowledge\n- **Python 3.10+**\n- **Virtual environment** (recommended)\n- **Anthropic Claude API key** (primary requirement) - Get from [Anthropic Console](https://console.anthropic.com/)\n- **Additional API keys for specific labs:**\n  - Amazon Bedrock (for AWS integration labs)\n  - OpenAI (optional alternative)\n  - Mem0 (for Lab 6 memory persistence)\n\n### Course 3 Requirements\n- **Completion of Course 1-2** (Labs 1-6) or equivalent knowledge\n- **Python 3.10+**\n- **Virtual environment** (recommended)\n- **AWS account with Anthropic Claude 3.7 enabled on Amazon Bedrock**\n- **AWS IAM role with permissions to use Amazon Bedrock**\n\n### Course 4 Requirements\n- **Completion of Course 1-3** or equivalent knowledge\n- **AWS Account** with appropriate permissions\n- **Python 3.10+**\n- **AWS CLI configured** with `aws configure`\n- **AWS Permissions**: [BedrockAgentCoreFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/BedrockAgentCoreFullAccess.html) policy\n- **Model Access**: Anthropic Claude 3.5 Haiku enabled in Amazon Bedrock console\n\n---\n\n## 🚀 Getting Started\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/aws-samples/sample-getting-started-with-strands-agents-course.git\ncd sample-getting-started-with-strands-agents-course\n```\n\n### 2. Set Up Virtual Environment\n\n```bash\n# Create virtual environment\npython -m venv .venv\n\n# Activate (Linux/Mac)\nsource .venv/bin/activate\n\n# Activate (Windows)\n.venv\\Scripts\\activate\n```\n\n### 3. Install Dependencies\n\n```bash\n# For Course 1\npip install -r requirements.txt\n\n# For Course 2\ncd course-2\npip install -r requirements.txt\n\n# For Course 4\ncd course-4\npip install -r requirements.txt\n```\n\n### 4. Configure Environment Variables\n\n#### For Course 1:\nCreate a `.env` file in the root directory:\n\n```bash\n# Anthropic (recommended)\nANTHROPIC_API_KEY=your_anthropic_api_key\n\n# AWS Bedrock (optional)\nAWS_ACCESS_KEY_ID=your_aws_access_key\nAWS_SECRET_ACCESS_KEY=your_aws_secret_key\nAWS_DEFAULT_REGION=us-east-1\n\n# LangFuse (for Lab 6)\nLANGFUSE_PUBLIC_KEY=your_langfuse_public_key\nLANGFUSE_SECRET_KEY=your_langfuse_secret_key\nLANGFUSE_HOST=https://cloud.langfuse.com\n```\n\n#### For Course 2:\nCopy `.env.example` to `.env` in the `course-2/` directory:\n\n```bash\n# Required - Get from https://console.anthropic.com/\nANTHROPIC_API_KEY=sk-ant-your_key_here\n\n# Optional - for specific labs only\nAWS_ACCESS_KEY_ID=your_aws_key        # For Lab 4 MCP integration\nAWS_SECRET_ACCESS_KEY=your_aws_secret # For Lab 4 MCP integration  \nAWS_SESSION_TOKEN=your_aws_token      # For Lab 4 MCP integration\nOPENAI_API_KEY=your_openai_key        # For Lab 2 model alternatives\nMEM0_API_KEY=your_mem0_key            # For Lab 6 memory persistence\n```\n\n---\n\n## 💻 Running the Labs\n\n### Course 1 Examples\n\n**Labs 1-3: Python Scripts**\n```bash\ncd Lab1\npython basic-use.py\n```\n\n**Lab 4: Interactive Notebook**\n```bash\ncd Lab4\njupyter notebook mcp-and-tools.ipynb\n```\n\n**Lab 5: Multi-Agent System**\n```bash\ncd Lab5\njupyter notebook a2a-communication.ipynb\n```\n\n**Lab 6: Observability**\n```bash\ncd Lab6\njupyter notebook observability-with-langfuse-and-evaluation-with-ragas.ipynb\n```\n\n### Course 2 Examples\n\n**Lab 1: Agent Fundamentals (No API key required)**\n```bash\ncd course-2/Lab1\npython first_agent.py\n```\n\n**Lab 2: Model Providers**\n```bash\ncd course-2/Lab2\npython anthropic_model.py\npython bedrock_model.py\n```\n\n**Lab 3: Hooks**\n```bash\ncd course-2/Lab3\npython hook_example_1.py\npython async_example.py\n```\n\n**Lab 4: MCP Integration**\n```bash\ncd course-2/Lab4\npython mcp_integration.py\n```\n\n**Lab 5: Session Management**\n```bash\ncd course-2/Lab5\npython session_example.py\n```\n\n**Lab 6: Memory Agents**\n```bash\ncd course-2/Lab6\npython memory_example.py\n```\n\n### Course 4 Examples\n\n**Lab 3: Production Deployment**\n```bash\ncd course-4\npython my_agent.py\n```\n\n**Deploy to AgentCore Runtime**\n```bash\ncd course-4\nagentcore configure -e my_agent.py\nagentcore launch\nagentcore invoke '{\"prompt\": \"What is 50 plus 30?\"}'\n```\n\n---\n\n## 🐛 Troubleshooting\n\n### Course 1 Issues\n\n| Issue | Solution |\n|-------|----------|\n| **API Key Issues** | Ensure all required API keys are set in your `.env` file or environment |\n| **Port Conflicts** | Labs use ports 8000-8002, ensure they're available |\n| **Import Errors** | Run `pip install -r requirements.txt` to install all dependencies |\n| **MCP Server Issues** | Allow time for MCP servers to start before connecting clients |\n| **AWS Permissions** | Verify your AWS credentials have necessary permissions for S3/DynamoDB |\n\n### Course 2 Issues\n\n| Issue | Solution |\n|-------|----------|\n| **API Key Issues** | Ensure `ANTHROPIC_API_KEY` is set correctly (should start with `sk-ant-`) |\n| **Import Errors** | Run `pip install -r requirements.txt` in course-2 directory |\n| **AWS Credentials** | Only needed for Lab 4 MCP integration - configure AWS CLI or environment |\n| **MCP Servers** | Allow time for MCP servers to initialize before agent connections in Lab 4 |\n| **Memory Backends** | Mem0 API key only required for Lab 6 memory persistence |\n\n### Course 3 Issues\n\n| Issue | Solution |\n|-------|----------|\n| **AWS Permissions** | Ensure BedrockAgentCoreFullAccess policy is attached to your user/role |\n| **Model Access** | Enable Anthropic Claude 3.7 Sonnet in Amazon Bedrock console |\n\n### Course 4 Issues\n\n| Issue | Solution |\n|-------|----------|\n| **AWS Permissions** | Ensure BedrockAgentCoreFullAccess policy is attached to your user/role |\n| **Model Access** | Enable Anthropic Claude 3.5 Haiku in Amazon Bedrock console |\n| **AgentCore CLI** | Run `pip install bedrock-agentcore-starter-toolkit` if `agentcore` command not found |\n| **Deployment Failures** | Check CloudWatch logs at `/aws/bedrock-agentcore/runtimes/{agent-id}-DEFAULT` |\n| **Session Issues** | Ensure session IDs are 33+ characters for proper session management |\n\n---\n\n## 📚 Additional Resources\n\n### Official Documentation\n- [Strands Agents Documentation](https://strandsagents.com/latest/)\n- [Model Context Protocol Specification](https://modelcontextprotocol.io/)\n- [Anthropic Claude API](https://docs.anthropic.com/)\n- [Amazon Bedrock User Guide](https://docs.aws.amazon.com/bedrock/)\n- [What is Amazon Bedrock AgentCore?](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html)\n- [AgentCore Runtime How It Works](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-how-it-works.html)\n- [AgentCore Memory Guide](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory.html)\n- [AgentCore Gateway Documentation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway.html)\n- [Programmatic Agent Invocation](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-get-started-toolkit.html#invoke-programmatically)\n\n### Related Courses \u0026 Tutorials\n- [Building with Amazon Bedrock Workshop](https://catalog.workshops.aws/building-with-amazon-bedrock/en-US)\n- [LangChain Embeddings with Bedrock](https://github.com/build-on-aws/langchain-embeddings)\n- [Strands Agents Samples Repository](https://github.com/strands-agents/samples)\n\n### Blog Posts \u0026 Articles\n- [Introducing Strands Agents](https://aws.amazon.com/blogs/opensource/introducing-strands-agents-an-open-source-ai-agents-sdk/)\n- [Open Protocols for Agent Interoperability - Part 3](https://aws.amazon.com/blogs/opensource/open-protocols-for-agent-interoperability-part-3-strands-agents-mcp/)\n- [Strands Agents SDK Technical Deep Dive](https://aws.amazon.com/blogs/machine-learning/strands-agents-sdk-a-technical-deep-dive-into-agent-architectures-and-observability/)\n\n---\n\n## Security\n\nSee [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.\n\n## License\n\nThis library is licensed under the MIT-0 License. See the LICENSE file.\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws-samples%2Fsample-getting-started-with-strands-agents-course","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faws-samples%2Fsample-getting-started-with-strands-agents-course","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws-samples%2Fsample-getting-started-with-strands-agents-course/lists"}