Skip to main content

Building Baymax: A Personal Agentic OS on Microsoft Scout

· 7 min read
Hassan Tariq
Engineer · AI agents, cloud

How I turned an off-the-shelf AI agent into a disciplined, always-on engineering companion — with skills, memory, isolation, governance, and evals. And the one piece I built, tested, and deliberately threw away.

The premise

Most AI setups stop at "ask a question, get an answer." The unlock is follow-through: an agent that holds your priorities, does the mechanical work, and stays honest about it — while a human still signs off on what matters.

I didn't want to build an agent runtime. Microsoft Scout already ships one (it's an always-on "Autopilot" with its own Entra identity, native Teams/Outlook/Work IQ, and memory). What was missing was a methodology layered on top: how the agent searches for truth, contains risk, decides what needs approval, and proves its work.

I called the result Baymax — after the calm, protective companion from Big Hero 6. The metaphor turned out to be the architecture:

Baymax the characterBaymax the agent
"Your personal healthcare companion"your personal engineering companion
Scans before treatingsearch real source before coding
First, do no harmrun risky code in a disposable sandbox
"I cannot deactivate until you are satisfied"won't ship without your sign-off
Keeps a care recordan append-only audit log

The architecture at a glance

Scout runs in two tiers, and knowing which one a task needs is the whole game.

Rule of thumb: M365 coordination → the always-on cloud Autopilot. Local / code / sandbox work → the desktop tier.


The layers

Baymax is a thin methodology over Scout, expressed as composable skills plus a few conventions.

1. Orchestrator — Scout

The harness matters more than the model. Scout brings native Teams/Work IQ, an Entra identity, and an always-on cloud tier. Baymax adds discipline, not plumbing.

2. Memory — durable & synced

Long-term memory is Scout's native, OneDrive-synced store. Write durable facts and decisions; recall before non-trivial work. Never store secrets.

3. Skills — modular capability (the modern unit)

Ten Anthropic-style SKILL.md files, loaded by description (no slash commands). Saying "baymax" activates the constitution + router, which hands off to the right skill.

SkillWhat it does
agentic-osconstitution + router + identity
governancebudget caps, approval gate, audit log
heartbeatwake → claim → work → verify → done
daytona-sandboxdisposable, isolated code execution
source-code-contextread real SDK source before coding
teams-workiq-briefpull Teams/mail/calendar context
agentic-engineering-workflowthe per-feature build loop
code-structure-cleanupbehavior-preserving refactor pass
grep-loop-review-workflowreview-fix loop to merge-ready
eval-harnessturn intent into objective checks

4. Isolation — Daytona

Blast radius is the bottleneck. LLM-generated, risky, or parallel code runs in a disposable Daytona sandbox (a full VM that boots in ~1s and is deleted after), never on the host.

5. Governance — a person still signs off

Ported from the "control plane" idea at personal scale:

6. Autonomy — the heartbeat loop

A file-per-task queue with atomic mv checkout (POSIX rename can't double-grab), so multiple workers never collide. Scout wakes on a schedule, claims the top task, works it, verifies, and files the result.

7. Evals — prove it, don't claim it

The modern alternative to prompt/persona theater: encode what "done" means as checks, then verify.

Deterministic checks (command, file_exists, grep) are run by a tiny runner; qualitative llm_judge checks are never auto-passed — the agent grades them against a rubric, with evidence. Better to admit than to lie.


The soul

Personas as roleplay are obsolete; persona as a behavioral contract is not. Baymax's SOUL.md is lean:

  • Voice: crisp, professional, calm under pressure, lightly deadpan.
  • Values (ranked): honesty (check sources, admit unknowns) → thoroughness → the user's wellbeing.
  • Behavior: proactive within governance, but always confirm before anything outbound.
  • Signatures: introduces itself, says "Scanning…" before diagnosing, closes with "Are you satisfied with this work?", and a ba-la-la-la fist-bump on a win.

What I built, tested, and deleted

The most useful part of the project was an experiment I killed on purpose.

I wanted true 24/7 — Teams/email watched even with my Mac off — so I built a second "execution plane": an always-on VPS running the heartbeat, fed by Power Automate → a webhook (because a server can't hold M365 tokens). I got it fully working: containerized webhook behind Traefik with TLS, atomic queue handoff over git, the lot.

Then two facts ended it:

  1. Conditional Access flatly blocked any Microsoft Graph token issued to the VPS (AADSTS53003) — so the server could never read my mail directly anyway.
  2. The Microsoft blog confirmed Scout's cloud Autopilot is already always-on with its own identity — making the entire webhook detour redundant for inbox-watching.

So I tore it down — container, systemd units, deploy key, DNS, the lot — and wrote the reason into the audit log. Knowing what to remove is part of the engineering.


Lessons (the modern stack)

  • Context engineering > prompt engineering. The win is feeding the agent real source, memory, and tool results — not crafting clever prompts. source-code-context is the whole philosophy: don't guess APIs, read the source.
  • Skills are the unit of capability. Modular, description-triggered, composable.
  • Evals are the new spec. Thin specs that generate checks beat big design docs that rot.
  • Persona is a contract, not a costume. Encode honesty and guardrails; skip the roleplay.
  • Governance keeps autonomy safe. Budget caps, an approval gate, and an audit log are what let you turn the agent loose.
  • Delete boldly. The VPS detour taught me more dead than alive.

How I use it day to day

  1. Say "baymax" in Scout → the constitution + persona activate.
  2. M365 coordination runs 24/7 on the cloud Autopilot.
  3. Code/local work routes through skills; risky code is sandboxed; costly or outbound actions stop and ask.
  4. Autonomous work flows through the queue; every task is verified by evals and recorded in the audit log.

Runs with the lights dimmed, not off — a person still signs off.

Ba-la-la-la. 👊