Skip to content

Spawnly

A reference architecture for AI agent identity — every agent a first-class workload with cryptographic identity, scoped tokens, and revocable, delegated authority.

The problem

AI agents increasingly spawn other agents and call protected services on a user’s behalf. A static API key can’t express which agent is acting, for whom, or with what authority — and it doesn’t attenuate as work is handed down a delegation chain. Spawnly is a working answer: every agent is a first-class workload with a cryptographic identity, and authority flows — and is revoked — along the chain.

It’s a proof-of-concept platform, built to make these ideas concrete and runnable, not a product. Agents can be short-lived (do one job and exit) or long-lived (serve until deleted, including chat).

What it demonstrates

Per-pod workload identity → scoped tokens

Every agent gets a unique SPIFFE JWT-SVID from SPIRE at startup — no shared secrets — and a sidecar exchanges it for scoped OAuth tokens, so agent code carries zero identity plumbing.

Human-in-the-loop spawn consent

Sub-agent spawning can be gated on user approval via OpenID CIBA, with stored consent and auto-approval on repeats.

Delegated, attenuated authority

Parent → child agent chains, with per-template delegation policy that narrows authority as work is handed down.

Defining policy →

Real-time revocation cascade

Revoke an agent and its entire descendant subtree loses authority within seconds; pods stay up, their next call returns 403. Reversible.

See it in action →

Relationship-based authorisation

SpiceDB relations written at registration and checked by protected APIs; tenanted and global agents on one code path.

Full lifecycle observability

Every component emits structured events into an append-only, per-agent timeline.

Run it yourself

Everything runs locally on a Kind cluster — no cloud account required.

Fastest — Claude Code plugin

/spawnly:up    # bring the platform up on a local Kind cluster
/spawnly:demo  # guided tour: spawn, chains, consent, revocation

Install the plugin from the repository's PLUGIN.md.

Manual

make bootstrap

Same result, straight from the repository Makefile.

Go deeper

Build an agent

A from-scratch path: the platform contract, then three worked agents.

  1. Anatomy of an Agent
  2. Job-and-exit: Price Reporter
  3. Loop-until-stopped: Queue Worker
  4. Parent → child: Trip Planner

Reference

Templates and policy, field by field, plus the chat contract.