A practical course for automation builders
Turn the workflows you already know into agents you can trust.
One prescriptive path from model calls and structured output to tools, MCP, memory, tests, deployment, cost, and cleanup — through a single bounded capstone. Pick a track: deploy it on AWS, or run it entirely locally with OpenRouter and Docker. Same agent, either runtime.
- 11 ordered lessons
- Two tracks: AWS or local
- gpt-oss-120b
- Strands Agents
- MCP tools
- Same agent, either runtime
The autonomy ramp
From a fixed rule to an agent you can verify
Each lesson adds exactly one new source of complexity. You start with deterministic code and add model judgment only where fuzzy input earns it.
- 1Deterministic workflowExact rules you already trust.
- 2Model-assisted stepA model reads fuzzy human input.
- 3Structured outputAnswers forced into a typed schema.
- 4Tool-using agentThe model calls a bounded read-only tool.
- 5Memory and MCPCross-session recall and an external tool.
- 6Tested, deployed runtimeEvaluated, deployed, observed — on AWS or your own machine.
Course map
The 11-lesson path
Four ordered stages. Later lessons use only concepts already taught.
Foundation
Mental model, first model call, structured output.
- 00FreeSetup and safetyInstall the tools this course uses and set guardrails before touching AWS.
- 01FreeAn AI mental model for automation buildersLearn the core language model terms and decide which workflow steps should use a model and which should not.
- 02PaidYour first Amazon Bedrock model callSend one request to a hosted model through Amazon Bedrock, read the reply and its token usage, and handle the two errors beginners hit most.
- 03PaidFrom free text to a validated recordTurn a plain-English work request into a strict, validated data structure, and reject bad or hostile input with deterministic code outside the model.
Agent capabilities
A tool-using agent, MCP, and memory.
- 04PaidYour first Strands agent with a local toolWrap the intake behavior in a Strands agent, give it one read-only lookup tool, and watch the agent loop decide when to call it.
- 05FreeConnect an allow-listed MCP toolGive the agent a tool hosted by a separate server over MCP, treat that server as an untrusted boundary, and let only two read-only tools through a deterministic allow-list.
- 06PaidRemember one preference across sessionsGive the agent long-term memory for exactly one harmless preference, key it on a synthetic identity that is never the user's email, and see why the recall step needs a real cloud resource.
Trust and infrastructure
Tests, evals, and the deployment artifact.
- 07FreeTest behavior, safety, and failure pathsProve the agent is safe with a fast offline test suite: schema and tool-contract tests, a prompt-injection case, a tool-failure case, and a tiny fixed eval set that records latency and tokens without asserting exact prose.
- 08FreeDescribe the cloud in code with AWS CDKRead the two real CDK stacks that define the capstone's cloud — a tiny image registry and the agent runtime — run cdk synth to turn that Python into CloudFormation templates, and name every resource they create, all offline with no AWS account touched.
Deploy and operate
Ship it, observe, and tear it down.
- 09PaidDeploy the agent and invoke it in the cloudBuild the agent's linux/arm64 container image, push it to the repository the stack creates, deploy the agent stack with CDK, and invoke the running agent with the AWS CLI — with the exact commands and a prominent cost note.
- 10PaidObserve, estimate cost, and tear it all downFind the deployed agent's logs, traces, and metrics in CloudWatch, understand the runtime, model, and memory cost model, debug without leaking prompts, then destroy every tutorial resource and verify nothing billable is left.
Foundation
Mental model, first model call, structured output.
- 00FreeSetup and safetyInstall the tools this course uses, get an OpenRouter API key, and confirm Docker works before touching the agent.
- 01FreeAn AI mental model for automation buildersLearn the core language model terms and decide which workflow steps should use a model and which should not.
- 02PaidYour first OpenRouter model callSend one request to a hosted model through OpenRouter, read the reply and its token usage, and handle the two errors beginners hit most.
- 03PaidFrom free text to a validated recordTurn a plain-English work request into a strict, validated data structure, and reject bad or hostile input with deterministic code outside the model.
Agent capabilities
A tool-using agent, MCP, and memory.
- 04PaidYour first Strands agent with a local toolWrap the intake behavior in a Strands agent, give it one read-only lookup tool, and watch the agent loop decide when to call it.
- 05FreeConnect an allow-listed MCP toolGive the agent a tool hosted by a separate server over MCP, treat that server as an untrusted boundary, and let only two read-only tools through a deterministic allow-list.
- 06PaidRemember one preference across sessionsGive the agent long-term memory for exactly one harmless preference using a local file session store, keyed on a synthetic identity that is never the user's email.
Trust and infrastructure
Tests, evals, and the deployment artifact.
- 07FreeTest behavior, safety, and failure pathsProve the agent is safe with a fast offline test suite: schema and tool-contract tests, a prompt-injection case, a tool-failure case, and a tiny fixed eval set that records latency and tokens without asserting exact prose.
- 08FreeDescribe the deployment artifact: the containerRead the one Dockerfile that packages the capstone for both tracks, understand the port-8080 runtime contract it must satisfy, and build the image locally for your own machine's processor — all offline and free.
Deploy and operate
Ship it, observe, and tear it down.
- 09PaidRun the agent locally and invoke itBuild the container, run it detached with OpenRouter credentials and a named volume for file memory, invoke it with curl, and prove that memory survives a container restart only when the volume is attached.
- 10PaidObserve, estimate cost, and tear it all downRead the running container's logs, reason about what each invocation costs in OpenRouter tokens, then remove the container and the named memory volume and verify nothing is left running or consuming disk.
Autonomy with boundaries
Freedom where it helps, hard limits where it matters
- Deterministic validation outside the modelEvery model answer must pass a typed schema and a confidence gate written in ordinary code before anything acts on it.
- Read-only, allow-listed toolsTools are narrow and read-only, and an external MCP server only reaches the agent through a default-deny allow-list you control.
- Offline tests and fixed evalsA fast suite mocks the model boundary and asserts invariants — schema, tool choice, injection resistance — never brittle exact wording.
- Cost notes and complete teardownEvery billable step is called out before you run it, and each track ends with a full teardown — cdk destroy on AWS, or docker cleanup locally — and a removal check.