Skip to content
v0.4.0 — an operator approves the exact call that will fire, the loop runs on a schedule without an orchestrator, and every verdict becomes a labelled eval row. On the v0.3 write gate and the v0.2 durable-execution spine. The runaway watchdog now defaults to feedback rather than warn. APIs are experimental except the five stable-from-v0.1 packages; see the roadmap.

mast

Agent infrastructure for unattended, library-embedded, multi-provider, durable workloads — built for platform and SRE teams.

Is mast for you? Thirty seconds of honesty

Section titled “Is mast for you? Thirty seconds of honesty”

You're a platform team

Agents in Cloud Run, GKE, scheduled jobs, or compiled into your own services — incident triage, runbook automation, monitoring. You’re home. Start with the quickstarts below.

You're embedding an agent in a Go service

mast composes as a library, not just a binary — same subsystems either way, with a CI-enforced slim-embed guarantee so you pay for what you import.

You want one simple agent loop

Use raw ADK v2 — no governance, no durability, smallest possible surface. Come back when the loop must survive restarts, needs budget or permission governance, needs provider switching, or stops having a human watching it.

  1. Unattended. Runs without a human watching: HTTP-triggered workloads, budget ceilings, and approvals that wait for an operator instead of failing.
  2. Library-embedded. Composes as a Go library inside larger services — with a tested slim-embed guarantee: pay for what you import.
  3. Multi-provider. Same config switches models without code changes — Gemini (with Google Search and URL-context builtins), Claude on the first-party API or Vertex, and offline test models; the provider surface is one of the stable-from-v0.1 interfaces.
  4. Durable. Sessions live in SQLite or Postgres and survive process death — a paused approval outlives kill -9 and resumes in a fresh process.

Nothing changes your cluster without an operator

Section titled “Nothing changes your cluster without an operator”

A specialist that would change something stops before the call fires, shows the operator the tool and its arguments, and waits — durably, across a restart. That boundary is structural rather than prompt-held: a specialist declares whether it may change anything, and mast refuses to start a roster in which a read-only one can reach a mutating tool.

Then read the concepts — how workloads, dispatch, durability, approvals, budgets, tools and providers fit together — or why mast exists if you want the argument before the API.

mast is the lean sibling of core-agent — same org, different job. The full design corpus lives in the repo under docs/.