Module 0
Why AI agents burn people
- 0.1The week-one failure
- 0.2The eight rules

First lessons
Course
Build an AI agent for your business that picks actions from a closed list you define, waits for your approval on anything you haven't cleared to run alone, and refuses five kinds of action in code: moving money, DNS, deleting, revoking keys and changing itself.
Free lesson on this topic: Ollama vs llama.cpp vs vLLM vs NIM vs TensorRT-LLM on DGX Spark (opens YouTube)
Build a Safe AI Operator
$20 one-time
After Stripe checkout you land on your own access page with every file. Each download link works for 7 days; open the page again for fresh links. Lost it? Recover it with your Stripe receipt.
Video course: 28 narrated video lessons of 4 to 8 minutes each, plus the written guide (PDF) and a Python starter agent
This title: $20, paid once. No subscription.
Nothing else from ATLAS Academy: no subscription, no renewal, no add-ons. If a tool under You need has paid plans, that company sets the price.
Checkout ends on your own access page with every file. Each download link works for 7 days; open the access page again for fresh ones.
Lost the page? Recover it with the email your Stripe receipt went to and the receipt number on it.
Sneak peek
Cut from the files you get after checkout. Nothing here is a mock-up.
Pages 1, 2, 4 and 5 of 93, exactly as they print. Select a page to see it full size.
Every file in the zip, 30 in all.
# safe-operator
The starter agent for **Build a Safe AI Operator** by Miro.
It is a small AI operator for a small business. It watches your website and
your sales, shows what it saw to a language model, and lets the model suggest
**one action by name** from a closed menu. Then code, not the model, decides
whether that action may happen at all.
It is built to be unable to burn you:
- it ships in **watch-only mode**, where nothing can act;
- it has **one** function that performs actions, and that function checks
everything, in a fixed order, every time;
- five kinds of action (moving money, DNS, deleting, revoking keys, changing
its own code) are **permanently denied** in code;
- an unanswered approval request **expires**. It never runs on a timeout.
This is course code. It is small on purpose, so you can read all of it in an
evening and change it with confidence.Contents
Counted from the files on 1 Oct 2026.
| Format | Video course: 28 narrated video lessons of 4 to 8 minutes each, plus the written guide (PDF) and a Python starter agent |
|---|---|
| Watch | On your access page, in the browser, or download each lesson |
| Guide | 93 pages, A4 |
| Lessons | 28 lessons in 10 modules, plus a bonus chapter |
| Starter agent | Python 3.11 or newer, with tests |
| You need | Some Python, or the patience to learn it with Claude beside you |
How it works
Buy opens Stripe's secure checkout. We never see your card details.
You land on it right after checkout, with every file.
First up: The week-one failure (Module 0).
Each download link works for 7 days. Open the page again for fresh links.
What you will finish
A small Python agent running on your own computer: a watch command that checks a website and a sales source and reports UNKNOWN for anything it can't read, a closed menu of action names the model picks from, and an approval queue where an action waits for you, runs once when you approve it, and leaves a receipt.
The starter's approval flow, run on 11 Oct 2026: a proposed customer reply shows its dry run and its expiry, is refused while watch-only mode is on, runs once when approved with watch-only off, and can't be approved a second time.
A video course with a written guide (PDF) and a Python starter agent, by Miro, on the eight rules his own agent, ATLAS, runs on. You build a small operator that watches first, picks actions from a closed list, asks before any action you haven't cleared to run on its own, and says "unknown" instead of guessing. Each lesson ends with one exercise on the starter agent.
Every file the purchase delivers, as listed on your access page.
Watch on your access page or download. The first ones:
Build a Safe AI Operator (PDF, 93 pages)
safe-operator starter agent (zip)
Beyond the free material
Exactly what you get
Human review is the method
A customer asked when their order ships. The operator proposes reply_to_customer for thread t1, with the reason "customer asked when it ships" and a one-hour expiry.
dry run: would reply on thread t1 with: Thanks, it ships Monday.
The proposal waits in the pending list with its reason and expiry. Nothing has run. While watch-only mode is on, even an approval is refused.
With watch-only off: "approved #1 by miro; handing it to the executor", then "done: (demo) replied on thread t1". A second approval is refused: it is claimed.
expires in 3600s. If nobody answers, it simply does not run.
What this control doesn't do. The demo actions describe what they would do and touch nothing. The gate covers actions that go through the executor; it doesn't check whether the reply says the right thing. You read the dry run before you approve.
If you get stuck
python -m safe_operator approve 1 --by mirorefused: watch-only mode is on; nothing may actThis is the default, on purpose. For one test, run the command with WATCH_ONLY=false. Only false, 0, no or off turn it off; a typo leaves it on.
WATCH_ONLY=false python -m safe_operator approve 1 --by miro, twicecannot approve #1: it is claimedAn approval runs once. Propose the action again if you need it again.
python -m safe_operator propose wire_money --params '{}' --reason x --ttl 60not proposed: unknown action 'wire_money'Only actions registered in the catalog can be proposed. Add a new one in actions.py with a strict params table, starting at Tier.ASK.
python -m safe_operator watch --url https://example.comsales_today: UNKNOWN ... SALES_API_KEY is not set, so sales can't be readCorrect until you connect a source: no number is shown when it can't be read. Set a restricted, read-only key and point SALES_API_URL at your provider (collectors/sales.py).
And 1 more like these.
Tested with
All 82 tests passed. The README's propose, pending, approve and watch commands printed what the README describes.
An automated run on the starter zip in Miro's vault
Curriculum
Each lesson, note or file, in the order you'll meet it.
Module 0
Module 1
Module 2
Module 3
Module 4
Module 5
Module 6
Module 7
Module 8
Module 9
Keep your clients, projects and prompts in one vault your operator's Claude can read.
Something else? Write to Miro.
No. It was written fresh for the course, small on purpose so you can read all of it in an evening. Every pattern is shown on it with made-up names.
Yes. 28 narrated video lessons, to watch on your access page or download, plus the written guide (PDF, 93 pages) and the starter agent (zip).
No. The material is defensive only: scan networks you own or have permission to scan.
14-day money-back guarantee: if it isn't useful, email us within 14 days of purchase for a full refund, no questions asked. Refund policy
One purchase covers one household: everyone who lives in the buyer's home may use the guides and printables. Please don't resell or share them publicly. The buyer must be an adult. We never ask for a child's name, age or email.
Help
Miro replies by email within 2 business days.