Module 06 Strands Foundations Tools Memory and MCP - akash-coded/aws-bedrock-agentcore-strands GitHub Wiki
Agents with hands, memory, and a standard way to reach the outside world.
Module 06 of 16 ยท track Build ยท Estimated time: 5โ6 hours ยท Prerequisites: Module 05.
Strands is AWS's open-source agent framework. This module covers the three things that turn a chat wrapper into an agent: tools it can call, memory it can keep, and MCP servers it can connect to.
Open the module on GitHub โ: the slides, notebooks, exercises and solutions are there. This page is the reading order, with the tutorial and the workbench alongside.
The lesson that frames this module is The Agentic PDLC for Software Engineers: Build With Agents (6 min): the engineer's own steps, where tools and memory get their contracts.
- Build a Strands agent with custom tools and a clear tool catalogue
- Add conversational and persistent memory, and know the difference
- Connect an agent to an MCP server and call its tools
- Design a tool schema that the model calls correctly the first time
| Portable GenAI concepts | AWS-specific surface |
|---|---|
| Tool design | Strands Agents SDK |
| Short vs long-term memory | Bedrock model providers |
| Model Context Protocol | AgentCore Memory |
| Agent composition |
Portable concepts transfer to any stack. The AWS column is where this module touches the cloud โ see docs/concepts/portability-matrix.md.
| # | Step | What it is | |
|---|---|---|---|
| 1 | ๐ | slides/Strands_Deck1_Foundation.pptx |
Strands foundations |
| 2 | ๐ป | notebooks/01_strands_foundations.ipynb |
Foundations notebook |
| 3 | โ๏ธ | exercises/build-1-give-the-agent-a-job.md |
Build 1 โ give the agent a job |
| 4 | ๐ป | notebooks/02_strands_tools_memory_mcp.ipynb |
Tools, memory and MCP |
| 5 | ๐ | activities/Tool_Catalog.xlsx |
Design your tool catalogue |
| 6 | โ๏ธ | exercises/build-2-the-toolsmith.md |
Build 2 โ the toolsmith |
| 7 | ๐ | slides/Strands_Deck2_Advanced.pptx |
Strands, advanced |
| 8 | ๐ป | notebooks/03_strands_multiagent_capstone.ipynb |
Multi-agent capstone |
| 9 | ๐ป | notebooks/04_strands_multiagent_deepdive.ipynb |
Multi-agent deep dive |
| 10 | โ๏ธ | exercises/build-3-open-sandbox.md |
Build 3 โ open sandbox |
| 11 | โ๏ธ | exercises/take-home-build-your-own-agent.md |
Take-home โ build your own agent |
๐ read ๐ป run โ๏ธ practise ๐ workbook ๐ reference
These exercises have no answer key, deliberately. The three builds and the take-home are open-ended: you are designing an agent for a domain you choose, and there is no single correct implementation.
What they give you instead:
- Each build works in levels โ give it a role, stop it guessing, then push it โ so you always know whether you have cleared the current one
- Each ends with Notice this and Poke at it sections that tell you what should have happened and what to break next
- The take-home has a What to hand in section that defines done
If you want something to compare against, the multi-agent notebooks in this module and the worked solutions in Module 07 are the nearest reference.
- Tool descriptions written for humans, not models. The model only has the schema.
- Confusing conversation history with memory. History is a buffer; memory is a decision about what to keep.
Every error anyone has hit in this course is in the Error Index, by the exact string. Model access and region problems are in Model and Region Notes. If it is a question rather than an error, check the answered ones first, then ask in Q&A.
Frameworks
- Tool Surface Audit โ Distinctness, sufficiency, failure honesty
- Context Budget Ledger โ Allocate the window like a budget
Quick reference
- Strands โ Agents, @tool, models, MCP
- MCP and A2A โ Hands versus colleagues
Recipes and procedures
- Add a tool properly โ The recipe
- Memory that does not grow forever โ Bounded memory in 2 hours
โ Module 05 ยท The Agent Loop: No Framework to Strands ยท All modules ยท Module 07 ยท Multi-Agent Patterns with Strands โ
โ๏ธ This page is generated from modules/06-strands-foundations/README.md. To change it, edit the module README: an edit made here is replaced at the next sync.