Runtime

Tools, waits, and resumable work.

Willow keeps the operating model small: durable SQLite namespaces, explicit tools, bounded QuickJS, remote environments, and async waits. Paused agents consume zero compute; their state remains inspectable and resumable.

Runtime substrate

Storage and coordination you can build on.

The runtime is sandboxless by design. Agents call explicit tools, wait durably when outside work runs, and resume on any healthy node.

mvsqlite

SQLite as the agent data plane, with per-agent namespaces and versioned reads.

FoundationDB

Transactional substrate for multi-tenant durability, serializable claims, and page storage.

NATS handoff

Coordination signals for drains, remote environment routing, and targeted worker handoff.

QuickJS + tools

Bounded JavaScript, VFS APIs, fetch-style tools, and connector-backed local or cloud environments.

Execution flow
  1. 01 Append a bridge, API, schedule, email, website, or user message into the agent namespace.
  2. 02 Claim the ready agent from the shared control plane with a serializable transaction.
  3. 03 Run model sessions and tool calls against VFS, QuickJS, network, Git, and remote environments.
  4. 04 Park external work as an async wait and release the node until the wake event arrives.
  5. 05 Fork when needed with a zero-copy mvsqlite overlay at a specific source version.
Control plane sketch
FoundationDB
└─ mvstore data plane
   ├─ willow_control        # shared SQLite namespace
   │  ├─ nodes + heartbeats
   │  ├─ tenants + API keys
   │  ├─ agents + lock tokens
   │  └─ schedules + leases
   └─ agent_{id}:*         # per-agent SQLite namespace
      ├─ /.willow VFS
      ├─ messages + tool_calls
      ├─ sessions + waits
      └─ agent_state checkpoints

Forking an agent is metadata-only: the new namespace overlays a source namespace at a specific mvsqlite version, then writes diverge into its own database.