Running Coding Agents Unattended

A field guide to agent platforms: what it takes, the options, and where teams get hurt

Keewan (X · LinkedIn) · 2026-10-15 · Version 1 · CC BY 4.0


About this guide

Who it's for. Mainly engineering leads and platform engineers deciding whether and how to
let coding agents (Claude Code, Codex, and similar) work beyond one developer's interactive
session: triggered from chat or tickets, running in parallel, testing against a real stack,
and opening pull requests. Anyone else curious about what that takes should be able to follow
it; section 1 and the checklist in section 7 stand on their own.

What it covers. The pieces an agent platform needs, the options for each, a recommended
default per piece, a staged path from one supervised runner to many agents, one hands-on case
study, a readiness checklist, and a landscape of products and public precedents.

What it doesn't. It isn't a product comparison with benchmarks, and it doesn't cover
training or evaluating models. Most of it is desk research; only the case study in section 6
was tested hands-on.

Evidence tags. Claims carry one of these:

Tag Meaning
[tested] Exercised hands-on in the case study (section 6).
[docs] From the product's own documentation or a primary engineering write-up.
[vendor] A vendor's marketing or customer story. Treat numbers as claims.
[report] Secondary reporting (newsletters, interviews, summaries).
[opinion] One practitioner's published view or workflow.

Products in this space change monthly. Everything here is as of mid-October 2026.


1. The short version

  1. The agent is not the hard part. Current models and harnesses already plan, implement,
    and test well inside a session. What most teams lack is the system around them: a trigger,
    isolation, credential handling, authority over what the agent may change, verification,
    and an audit trail.
  2. Separate thinking from permission. Agents investigate, write, and propose; deterministic
    code decides what is allowed and owns every consequential state change. "You should not do
    X" in a prompt is a request. "You cannot do X" is a system property.
  3. A worktree is not isolation, and a container is not enough. A worktree only stops file
    collisions. For untrusted workloads, use a VM boundary (a microVM per run), not a
    shared-kernel container alone.
  4. Isolation without egress control and credential mediation is false security. The most
    likely incident is not a sandbox escape. It is an agent holding a real token, with open
    internet access, reading attacker-controlled text (an issue, a log, a web page) and sending
    the token somewhere.
  5. The agent should hold no real secrets. A proxy outside the sandbox attaches credentials
    on the way out, only to the hosts that need them.
  6. The work item is the source of truth. Not the chat thread, not the agent's context
    window. A durable record of ticket, base commit, sandbox, stage, attempts, evidence,
    approvals, and cost.
  7. Bound everything. CI retries (two rounds is a common cap), steps per run, wall time,
    and spend. Unbounded retry loops are a known anti-pattern, not just a cost problem.
  8. Ship evidence with every change. A PR from an agent should come with proof: tests run
    against a real stack, screenshots or a recording, a risk note, and the judgment calls the
    agent made where the spec was silent.
  9. The bottleneck moves. Once agents produce changes faster, the constraint becomes
    review, CI capacity, and people knowing what shipped.
  10. Start light. One runner, one workflow, one measurable pain. Add memory and one scheduled
    chore before attempting an autonomous supervisor.
  11. Decide merge authority explicitly, and enforce it in the system (GitHub permissions,
    branch rules), not in the prompt. Section 4 lays out the options.

2. The shape of the system

2.1 Vocabulary

2.2 Levels of autonomy

Two independent framings agree closely.

Agent Baseline's reference architecture [docs] keeps four boundaries constant (sandbox,
network, supply chain, identity/access) and varies who chooses the next step:

Level Who orchestrates Shape
1 A human A developer starts each run and reviews the output, usually in a PR.
2 A predefined workflow Events, schedules, or tickets start runs in a shared service, with per-run sandboxes and observability across all four boundaries.
3 An orchestrator agent It divides work among task agents with narrowed authority; monitoring agents watch progress; deployments can be rolled back. Key rule: an agent's plans must not become its permissions.

Kiro's maturity ladder [vendor] describes the same climb from the operator's side:

  1. One human-driven session.
  2. Several sessions, with the human as coordinator.
  3. Shared memory, a dashboard, cron, monitors, and workflows; 10–20 sessions are manageable,
    but the human still chooses what happens next.
  4. An asynchronous pipeline: triage, implementation, review, and merge are separate session
    types connected by queues.
  5. An agent outside the sessions owns decomposition, dispatch, patrol, acceptance,
    sequencing, and cleanup; the human keeps the goal.

Most teams reading this are at level 1 / stage 1–2. The jump that needs real platform work is
to level 2 / stage 3–4.

2.3 Reference stack

 triggers: chat · tickets · red CI · webhooks · schedules · production signals
        │
 control plane: work-item ledger · scheduler · authorization · merge authority · audit
        │
 harness (Claude Code / Codex / custom) + your skills and repo context
        │
 sandbox: microVM per run ── egress proxy + credential broker ── tool / MCP gateway
        │
 verification: real stack · tests · previews · screenshots · traces · fresh-context review
        │
 review → merge → deploy → production signals ─────────────────► back to triggers

Everything below the harness line is platform. The rest of the guide walks it layer by layer.


3. The layers

Each layer follows the same pattern: what it does, what goes wrong without it, the options,
a recommended default, and gotchas.

3.1 Host

What it does. The operating system and machine the sandboxes run on.

Without it. Drift: hand-patched hosts that nobody can rebuild, with agent tooling installed
at floating versions.

Options.

Default. A standard host plus a pinned, prebuilt sandbox template. Consider an immutable
image only once you run a fleet.

Gotchas.

3.2 Compute isolation (the sandbox)

What it does. Gives each run its own machine-shaped environment, so one agent cannot see or
damage another's work, the host, or your laptop.

Without it. Agents share a host, credentials, and network. A runaway or compromised agent
reaches everything any other agent can.

A useful taxonomy. George's agent sandbox taxonomy
[opinion] splits "sandboxing" into seven layers: compute isolation, resource limits,
filesystem boundary, network control, credential management, action governance, and audit
trail. No single product covers all seven well. Strong isolation with an open network and raw
credentials is false security. Agent Baseline adds an eighth concern the taxonomy lacks:
supply chain (3.5).

Two patterns (Browser Use's terms [docs]):

Options.

Default. One microVM per run. If the agent must run your real stack (databases, queues,
several services), pick a substrate that runs a Docker daemon inside the VM. Add a
process-level sandbox inside it as a second layer.

Gotchas.

3.3 Network egress

What it does. Decides which hosts and operations an agent can reach.

Without it. Any secret the agent can read can leave. Any prompt injection can call home.

Options.

Default. Default-deny, with an explicit allowlist: the git host, your model provider, the
package registries your build needs, and the specific APIs a task needs. Block the cloud
metadata endpoint.

Gotchas.

3.4 Credentials

What it does. Gives agents the access they need without giving them the secrets.

Without it. Tokens sit in the agent's environment, readable by any command it runs and any
text that convinces it to print them.

Options, from weakest to strongest.

  1. Environment variables in the sandbox. Common, and the thing to move away from.
  2. Short-lived, narrow tokens. A GitHub App installation token (one hour) instead of a
    personal token. Crabbox's coordinator mints a per-lease SSH key and keeps provider
    credentials central [docs]. Better, but the agent still holds a live token.
  3. Proxy-side injection ("the agent holds no real secret"). The sandbox sees a fake or
    empty value; a proxy outside it substitutes the real one only on requests to the right
    host.
    • srt's credentials setting can deny an env var or file, or mask it: the process
      sees a sentinel and the proxy substitutes the real value on egress to listed hosts.
      Masking needs the experimental tlsTerminate option [docs].
    • OpenSandbox's Credential Vault does the same as a transparent MITM sidecar, redacting
      secrets from logs and audit output [docs].
    • DigitalOcean Managed Agents' Action Gateway claims to broker credentials at execution
      time so they never reach the model or sandbox [vendor].
    • Shopify's Aquifer has a named credentials proxy [docs].
  4. Git without credentials in the runner. Claude Code's self-hosted environments can route
    git through Anthropic's proxy (--use-anthropic-git-proxy), using your organization's
    GitHub App installation token minted per session, so the runner image holds no git
    credentials [docs].

Default. Option 3 for anything that can write (git host, cloud, ticketing). At minimum,
option 2 plus a default-deny egress policy.

Gotchas.

3.5 Supply chain

What it does. Controls which images, packages, and sources an agent can pull and run.

Without it. An agent picks a community image because it happens to build on your
architecture, or installs a typo-squatted package, and nobody vets it.

Options. A registry allowlist enforced by the egress layer; hardened base images (Docker
Hardened Images advertises signed SBOMs, SLSA Build Level 3 provenance, and a free tier
[vendor]); image scanning (Docker Scout); a supply-chain firewall in front of package
registries (part of Agent Baseline's reference shape [docs]).

Default. Treat it as its own boundary from day one: allowlisted registries, pinned digests,
and a scan before any new image becomes a default.

Gotchas.

3.6 Tools and context

What it does. Gives each run the right tools and the right knowledge, and nothing more.

Without it. "Whatever MCP servers are configured this session." Too many tool schemas
crowd the context, stale docs mislead, and every agent has every permission.

Options.

Default. A curated, task-scoped tool set per workflow, read-only by default, with writes
going through a small number of declared operations. Repo-resident docs as the main context.

3.7 Identity and authorization

What it does. Says who the agent acts for and what it may do on this task.

Without it. Agents run as a person, with that person's full access, and nobody can tell
afterwards which actions were the agent's.

Options.

Default. One bot identity per workflow, short-lived tokens, the narrowest repository
permissions that work, and branch rules that the bot cannot bypass.

3.8 The control plane

What it does. Owns the work: what exists, who has it, what state it is in, what is allowed
next, and what happened.

Without it. Work lives in chat threads and agent context. A restart loses state, two agents
pick up the same task, a crash between "pushed" and "recorded" causes a duplicate write.

What it needs, as converged across sources:

Options.

Default. Write a one-page spec of the work-item record and its legal transitions before
picking a tool. Then pick the smallest thing that enforces it.

Gotchas.

3.9 Triggers and the chat surface

What it does. Turns a request (a chat message, a ticket, a red CI run, a production alert,
a schedule) into a work item, and keeps the requester informed.

Without it. Agents only run when an engineer types a prompt.

Options by surface.

The chat bridge has a behavior layer, not just transport. Supermemory's open-sourced
"company brain" harness [docs] is the most concrete reference:

Intake should dedupe. Runlayer checks every request against Linear and open PRs; a
duplicate adds the requester to the existing issue instead of starting a second run
[opinion].

Default. Use chat for discussion and status, and a structured work item as the source of
truth. Design the bridge's behavior (steering, silence, approval) before writing it.

Gotchas.

3.10 Verification and evidence

What it does. Establishes that a change works before a human spends time on it, and gives
the human what they need to judge it quickly.

Without it. Review becomes re-deriving the work, or a rubber stamp.

Patterns.

Default. Bounded loop, real-stack tests where the change touches them, a fresh-context
read-only reviewer, and an evidence bundle on every PR.

3.11 Review and merge

See section 4. This is the decision everything else depends on.

3.12 Observability, audit, and data

What it does. Lets you reconstruct why an agent made a change, prove what it did, and
improve the system from what you learn.

Without it. You have a diff and nothing else. You can't tell which tasks needed help or
whether a prompt change made things better.

Patterns.

Default. An append-only run log keyed by work item, stored outside the sandbox, from day
one. Add evaluations once you change prompts regularly.

3.13 Cost

Patterns.

Default. Record cost per work item from the first run, and put a hard cap on every run.

3.14 After the merge

Most designs stop at the PR. Mature ones keep going:

3.15 Adoption

The platform's value includes how many people can safely turn a need into a reviewed change.
Cursor's Grab case study [vendor]:

Monzo's lesson [docs]: agents move the bottleneck from finding an engineer with capacity to
finding a reviewer.


4. Merge authority: the spectrum

Who is allowed to merge an agent's change is the decision every other layer depends on. This
section presents the options without picking one; the right level depends on what a merge
triggers in your environment and how much of the platform you've built.

First, find out what a merge does. If merging to your main branch deploys to production
with no further gate, a merge is a production deploy, and every level below inherits that
risk. If a merge only lands code that a separate release process ships, the stakes are lower.

Level Who merges Seen in Requires before you adopt it Main risk
A. PR only A human reviews and merges every agent PR. Stripe Minions, Shopify River, Checkout HAL, Headway (all report human review) [docs]/[report] Bot identity without merge permission; branch rules the bot can't bypass. Review becomes the bottleneck and degrades into rubber-stamping as volume grows.
B. Human-approved merge worker A human approves; deterministic code performs the merge. LIZA, ApexYard (approval bound to the exact commit SHA) [docs] The worker verifies the reviewed SHA, CI status, and per-PR human approval, then does a locked compare-and-swap merge. A bug in the worker becomes a merge-anything path.
C. Risk-tiered approval Policy auto-approves low-risk areas; high-risk changes need specialist and human review. OpenAI's reported factory [report] A deterministic risk classifier, specialist reviewer agents, an audit trail, and a fast rollback path. Misclassification: a risky change labelled low-risk.
D. Automerge for small changes Small, non-risky changes merge after an adversarial agent review; larger or sensitive ones go to humans. Runlayer [opinion]; Fredrin advertises goal-level auto-merge [vendor] Everything in C, plus intake routing that keeps auth and hot paths away from automerge, post-merge QA, and stakeholder notification. Volume outruns everyone's awareness of what shipped; subtle regressions accumulate.
E. Lights-out Agents plan, implement, review, and ship; humans largely stop reading code. HumanLayer tried it and moved away, per Josh Rosen [opinion] A mature version of every layer in section 3, plus production feedback loops that catch what review would have. Everything above, with no human checkpoint.

Whatever the level, two rules hold across every source:


5. A staged path

Stage 0: interactive (where most teams are)

One developer, one session, maybe a few in parallel worktrees. Agents use whatever tools that
developer has configured.

Do now, even at this stage: keep agent skills and repo context in version control; stop
running agents with production credentials on laptops; learn which tasks agents do well.

Stage 1: one supervised remote runner

Shape. MindStudio's walkthrough is a reasonable minimum [vendor]: one remote machine, a
context-gathering interview turning a ticket into context files, explicit human handoffs for
infrastructure and identity, then a validated PR with human review.

Build.

Exit criteria. You can answer, for any agent PR: what triggered it, what it could reach,
what it ran, why it made its choices, and what it cost.

Stage 2: workflow-triggered

Build.

Exit criteria. Restarting any component loses no work; two requests for the same thing
produce one run; no agent can merge outside the chosen policy.

Stage 3: many agents, orchestrated

Build. Queue-backed session types (triage, implementation, review, merge) with capacity
limits; a supervisor that owns decomposition and acceptance but not permissions; a tool
gateway; evaluations; production feedback; a capacity model for CI and review.

Exit criteria. Cost and quality per delivered outcome are measured, and they improve when
you change the system.

How much work is it?

One planning-level estimate, from a team of roughly mid-size with an existing repo-aware skill
chain and a sandbox spike already done: about 9–13 weeks with 1–2 engineers to a supervised
MVP for one team
, not yet safe for autonomous merges. It assumed a custom chat bridge had to
be built. Treat it as an order of magnitude, not a benchmark.

Beyond that, it's an ongoing team, not a project with an end date. Stripe reportedly runs
about a dozen engineers on developer-environment reliability alone [report]; Shopify's
Aquifer took a dedicated platform team months before River shipped [docs].

One advantage smaller teams have: Stripe's custom tooling was forced by scale (hundreds of
millions of lines, homegrown libraries no model has seen). A smaller codebase can lean on
off-the-shelf skills, MCP servers, and CI for most of what they had to build.

Build vs buy, by layer

There are three broad routes. Most teams mix them.

Route Examples Fits when Watch for
Assemble open pieces Docker Sandboxes + srt + gh-aw/gh-aw-cao + Temporal + a custom chat bridge You need your real stack, your own data boundary, and your existing harness. You own every seam; many pieces are betas or research prototypes.
Self-host a control plane Omnara, Kiro Crew, Mastra Factory, Tembo self-hosted You want sessions, approvals, and audit without writing them, and need to stay in your network. Verify each one's sandbox boundary, egress, credentials, and merge posture yourself.
Managed platform Claude Managed Agents, DigitalOcean Managed Agents, LangSmith MDA, Devin You want the fewest moving parts and can accept a vendor in the data path. Harness lock-in (some don't run your existing agent), data retention (Claude Managed Agents is not eligible for ZDR or HIPAA BAA coverage [docs]), and whether "self-hosted" mode still leaves egress to you.

Whichever route, the repo-specific parts stay yours: the workflow contracts, the permission
policy, the verification adapters for your stack, and the merge decision.


6. Case study: a real dev stack inside Docker Sandboxes

[tested] throughout. One team, one macOS Apple Silicon machine, interactively supervised,
August 2026.

Setup

What happened

  1. A real Docker daemon runs inside the sandbox. docker version, docker info, and
    docker compose all worked; the worktree was bind-mounted correctly. Compose parsed all 17
    services.

  2. The database crashed on start: exec format error. The official postgis/postgis
    image has no arm64 build on any tag. The microVM is pure aarch64 with no x86 emulation
    (no binfmt_misc, nothing installable to add it). The host had only been getting away
    with it through Colima's Rosetta emulation. sbx has no platform or emulation flag.

  3. A multi-arch replacement image worked natively. Two community PostGIS images publish
    real amd64+arm64 manifests with the same versions. With one swapped in, the container ran
    as aarch64, the existing init script created PostGIS and the other required extensions
    unmodified (two optional extensions skipped through the script's existing fallback), and
    the database accepted connections immediately.

  4. Two sandboxes ran side by side with no collisions, even with identical container names
    and identical host port bindings in each: every sandbox is its own network namespace. This
    was tested at n=2 with lightweight services only.

  5. The full 17-service stack did not come up in one pass.

    • One worker failed to build: its Dockerfile is pinned to amd64 because its geospatial
      toolchain isn't sourced for arm64. Swapping an image doesn't fix that.
    • Two others failed at apt-get update: the balanced egress proxy returned 403 for a
      plain-HTTP Debian mirror while allowing npm over HTTPS. A policy gap, fixable with one
      allow rule.
  6. The real dev up entrypoint worked for the default footprint (core infrastructure,
    API, frontends; workers are opt-in). Bootstrap hit a third egress block (a toolchain
    installer domain), fixed with one allow rule. After that, the API's own health endpoint
    reported the database and Redis up, and the frontends served 200.

  7. Viewing the sandbox's dev UIs from the host needed a relay. Publishing Tilt's UI port
    directly returned a connection reset, while publishing Redis's raw TCP port worked, so the
    publish mechanism was fine. Tilt's and Vite's dev servers reject the NAT'd source address
    (anti-DNS-rebinding guards, and IPv6-only loopback binding for Vite). A socat relay
    inside the sandbox, re-originating the connection from real loopback, fixed it:

    sbx exec <name> -- sh -c 'setsid socat TCP-LISTEN:20350,fork,reuseaddr TCP:127.0.0.1:10350 &'
    sbx ports <name> --publish 20350
    

Lessons


7. Readiness checklist

Score each yes / partial / no. The first 16 questions come from a platform-engineering
deck's "Platform Test" [opinion], which reads 14+ as a real agentic platform, 10–13 as agents
outrunning governance, and under 10 as automated chaos. Teams that have never run agents
unattended will score low; that measures what's unbuilt, not damage already done.

Sandboxing

  1. Do agents act through versioned, auditable interfaces rather than raw shell access?
  2. Can an agent get an isolated sandbox in one self-service step?
  3. Are agents sandboxed from interfering with each other?
  4. Are new agent permissions trialled in a scoped sandbox first?

Registry and context

  1. Do agents query a live service catalog rather than stale docs?
  2. Is there a live, queryable map of ownership and dependencies?
  3. Is there a governed tool and SDK registry rather than improvised dependencies?
  4. Do agents work from structured specs rather than open-ended prompts?

Verification

  1. Does verification gate an agent's output before the next task builds on it?
  2. Do automated verifier agents check output before a human sees it?
  3. Is agent spend bounded, with circuit breakers for runaway loops?
  4. Can you revoke an agent's access or roll back its change instantly?

Observability and identity

  1. Is every agent-caused issue logged back to its run?
  2. Do you spot-check agent reasoning logs when nothing is broken?
  3. Does every agent have its own scoped identity and permissions?
  4. Can you reconstruct why an agent made a change, not just the diff?

Additional checks this guide recommends

  1. Is egress default-deny, with the cloud metadata endpoint blocked?
  2. Does the agent hold no real secrets (proxy-side injection), or at least only short-lived,
    narrow tokens?
  3. Have you tested what the sandbox can read, including host env, mounts, and sockets?
  4. Is anything the agent can run commands in (other containers, staging) inside the same
    egress and credential boundary?
  5. Are images and packages limited to allowlisted registries with pinned digests?
  6. Is merge authority decided, written down, and enforced by permissions?
  7. Has someone tried to break the sandbox with a model told to get a planted secret out?
  8. Does a message sent during a run reach the agent (or stop it) before the run ends?
  9. Do duplicate requests collapse into one work item?
  10. Is cost recorded per work item?
  11. Do the people who need to know what shipped find out?

For a more formal control list, see Agent Baseline's controls.yaml, which maps controls to
real incidents.


Appendix A: Landscape (as of 2026-10)

Short entries only. "Fit" says where each sits in section 3's layers.

A1. Sandboxes and execution substrates

Name What it is Fit Notes
Docker Sandboxes (sbx) Local microVM per agent with its own Docker daemon; worktree integration; network policies; templates. 3.2, 3.3 [tested] Runs a real Compose stack. Custom VMM, not Firecracker. No platform/emulation flag.
Anthropic sandbox-runtime (srt) Process-level sandbox: bubblewrap/seccomp (Linux), Seatbelt (macOS), alpha Windows. Domain-allowlist proxies, resolved-address check, credential deny/mask. 3.3, 3.4 (inside a VM) [docs] Beta. Docker socket = host root. Weaker mode needed inside Docker is a big security cost.
OpenSandbox Open-source (Apache 2.0, Alibaba-backed) platform on Docker/Kubernetes: gVisor/Kata/Firecracker runtimes, egress sidecar, Credential Vault, OpenTelemetry. 3.2–3.4, 3.12 [docs] Maps all seven taxonomy layers. Not tested here.
Agent Substrate + AX + substrate-gke Actor-model runtime (suspend idle agents, resume onto warm workers from snapshots); declarative Task/Workspace/Gateway/Model resources; GKE installer. 3.2, 3.8 at fleet scale [docs] Explicitly not production-ready; APIs will change.
Crabbox CLI + coordinator that leases a runner from 20+ providers, syncs the working tree, runs remotely, records evidence; spend caps. 3.2, 3.10, 3.13 [docs] Its README says it is not an isolation boundary or secrets scrubber.
Cloudflare Sandbox, Vercel Sandbox Lightweight edge containers for code-execution loops. 3.2 (light tasks) No nested Docker; can't host a multi-container stack.
Unikraft (via Browser Use) Micro-VMs with sub-second boot and scale-to-zero. 3.2 [docs] Browser Use runs the same image as plain Docker locally via one switch.

A2. Hosted and self-hosted machines

Name What it is Notes
exe.dev Hosted persistent VMs; SSH as the API (JSON output), ~2 s creation, private-by-default HTTPS previews, resource pooling, built-in agent, managed model access without VM-stored keys. [vendor] VM user is root; a past sharing bug exposed all ports.
Boat.dev Hosted Ubuntu VMs for agent fleets; stop/resume/fork snapshots; events stream of agent messages and tool calls; virtual desktop; no-env mode. [vendor] EU regions; 100–2,000 active sandboxes by plan.
InstaBox Hosted full VM per agent: own kernel, Docker and Compose inside, computer-use desktop, pause/resume, snapshots, HTTPS ports, secrets vault. [vendor] Check vault semantics and CPU architecture.
boxd Hosted Linux machines; claims under 10 ms boot, fork mid-run, hibernate, wake on traffic. [vendor]
Remote by FutrX Self-hosted: one VPS → per-project LXD containers with agent, IDE, terminal, browser, previews. [docs] Its own threat model lists a host-root shell path, plaintext secrets, and shared-kernel containers. AGPL-3.0.
Devbox Anywhere Self-hosted VPS kit: code-server, tmux, per-agent worktrees, one-writer turn locks, JSON preflight/plan/verify/diagnose. [docs] Coordination, not isolation.
AgenticLinux Immutable bootc host image with agents and Docker preinstalled. [docs] Host layer only; see 3.1.

A3. Managed agent platforms

Name What it is Notes
Claude Managed Agents Anthropic's session API: managed or self-hosted sandboxes, event stream, multiagent, outcomes, vaults. Self-hosted workers poll Anthropic's queue and run tools locally. [docs] Public beta since April 2026. Self-hosted mode leaves egress and compliance to you. Not ZDR/HIPAA-eligible. Self-hosted workers can run docker-compose up stacks.
DigitalOcean Managed Agents Firecracker microVM per session, pause/resume/fork, Action Gateway with credential broker, inference, unified events and billing; runs Claude Code, Codex, OpenCode, custom OCI agents. [vendor] Public preview. Closest to "one runtime, one gateway, one trace, one bill."
LangSmith Managed Deep Agents An agent defined as a folder (instructions, skills, tools, MCP, middleware, sandbox, memory, identity, channels, schedules, evals) deployed to LangSmith Agent Server. [docs] Runs LangChain's harness, not Claude Code/Codex. Slack is the only named channel. Sandbox details thin.
Tembo Managed or self-hosted in your cloud; hardware-isolated VM per agent; per-session credential injection; approvals; audit. [vendor] All claims need verification.
Devin Hosted agent: GitHub, Linear, Slack, and Teams triggers; fleets; PR review; CI repair. [vendor] Closed; a capability benchmark.
Omnara Open-source, self-hostable stateful agent API: durable sessions, machine pools, RBAC, scoped secrets, approval pauses, append-only audit, Slack. [vendor]

A4. Orchestration and control planes

Name What it is Notes
GitHub Agentic Workflows (gh-aw) Markdown → scoped, permission-restricted GitHub Actions; ships a network firewall and token usage records. [docs] Writes workflows into the target repo unless you use gh-aw-cao.
Central Agentic Ops (gh-aw-cao) Control repo + target repos with declared safe outputs; credentials resolved per run; review mode by default with explicit promotion; read-only GitHub tools. [docs] GitHub Next research prototype.
The Agentics Sample gh-aw workflows: issue triage, CI doctor, code review, docs, cost tracker. [docs] Templates.
Kiro Crew Open-source orchestrator: Slack/Discord/Telegram/webhooks, cron, sub-agents, signed audit log, process-level sandbox. [vendor] No documented mandatory human merge gate; no Docker-in-Docker.
Mastra Factory Issue intake → triage → plan → build → review → complete, persistent workspace per item, replaceable auth/storage/sandbox. [vendor]
Fredrin Kanban control plane; one ticket = one lane (branch, worktree, worker, plan, checks, PR); goal dependency graphs; repo-resident memory and decision log. [vendor] Advertises auto-merge for some work.
LIZA Deterministic supervisor: transitions, commit-SHA fencing, leases, single-writer state, bounded iteration, rollback. [docs] Reference design.
ApexYard Governance overlay: ticket-first edits, migration gates, secret scanning, merge gate bound to commit SHA. [docs] Treat hooks as supply-chain code.
Antfarm Minimal kernel: YAML steps, SQLite, cron, fresh context, bounded retries. [docs]
Temporal Durable execution: crash-safe retries, idempotency. Orchestration durability, not sandboxing.
Claude Code Agent Teams Experimental: lead + teammates on one host, shared task list, file mailboxes. [docs] Coordination, not isolation.
Compound Engineering Skill chain with a required learning step and a bounded repair loop that stops before merge. [docs]

A5. Governance, tools, and context

Name What it is Notes
Docker AI Governance + MCP Catalog and Toolkit Org-wide sandbox policy, MCP tool allowlisting, SIEM audit streaming; hundreds of containerized MCP servers. [vendor] Sales-gated.
MintMCP gateway Role-based tool permissions, SSO, secret scanning, per-call audit. [vendor]
Unblocked Context engine over code, docs, tickets, chat, with permissions. [vendor]
Agent Baseline Reference architecture: four boundaries, three autonomy levels, controls.yaml. [docs] CC BY 4.0 / Apache-2.0.
Replit governance tools Audit logs (50+ events) and a three-tier policy model: org-locked, explicit team exception, or delegated. [vendor] A good shape for policy exceptions.

A6. Chat and collaboration surfaces

Name What it is Notes
Claude Tag (Claude in Slack) First-party Slack integration. [docs] Slack only.
Microsoft 365 connector Reads Teams history. [docs] Can't post or act.
Supermemory company brain Open-sourced multiplayer Slack harness on Cloudflare Agents SDK (see 3.9). [docs] Product discontinued; a design reference.
ClickClack Self-hosted chat with first-class scoped bot identities and an agent-friendly CLI. [docs] V1 in flight.
LobeHub Self-hosted chat UI with MCP plugins. A second app, not an integration.
Chopin Multiplayer planning doc with a read-only repo-grounded Planner; accepted decisions tracked apart from prose. [docs] Spec stage.
Nimbalyst Local-first workspace linking sessions, specs, diagrams, mockups, code, and trackers as a context graph. [vendor] MIT. UX reference.

A7. Previews and evidence

Name What it is Notes
Cloudflare Worker Previews Per-branch URL, config, observability, isolated Durable Object and Container state. [docs] Service bindings still call production; Queues and Workflows not fully scoped yet.

A8. Considered and not a fit for coding agents on a real stack


Appendix B: Precedents

Reported numbers are the companies' own unless marked.

Who Trigger Execution Review and merge Lesson worth taking
Stripe (Minions) [report] Slack most common Pre-warmed devboxes, ~10 s, no internet or prod access Human review; minions never merge Blueprints: deterministic nodes around agentic ones; cap CI at two rounds; central Toolshed MCP.
Shopify (River on Aquifer) [docs] Slack Aquifer: session, harness, sandbox, gateway, event log, credentials proxy Human 1 in 8 merged PRs co-authored by River; 59,918 sessions in 30 days. Platform first, agent second.
Spotify (Honk) [docs] — Fleet golden paths built for humans since 2023 — 1,500+ merged PRs in year one. "The agent was just the next tenant."
Vercel (ai-sdk-factory) [docs] GitHub webhooks Vercel Functions + Sandbox + Queues + Neon Evidence-driven human review 25–35% of merged PRs factory-authored in 4 weeks. Isolation in the first agent; prototype locally first.
OpenAI (internal factory) [report] Many — Risk-tiered, specialist reviewers; deploy agent per change Extends past the PR: deploy shepherd, Perf Factory, incident bot that proposes. ~10x load on CI/release.
Monzo (Agent Chip) [docs] Multiple queues Task-specific bundles behind an isolated HTTP proxy Human ~10% of merged PRs, 1,800+ tasks/day. Typed workflow contracts; bottleneck moves to reviewers.
Checkout.com (HAL) [docs] Tickets/events — Fresh-context reviewer persona, then human 18% of PRs by keeping the contract narrow.
Headway [docs] Typed Linear tickets Dispatcher/worker/notifier Human review of every line 250+ PRs in 8 weeks. Structured tickets beat free-text Slack; cap open PRs per pool.
Harvey (Spectre) [docs] Slack, web, CLI, schedules Ephemeral workers — The run record is durable; workers are not.
Ramp (Inspect) [docs] — Cloud VM with real dev services — Visual verification, telemetry, screenshots, multiplayer handoff.
Block (BuilderBot) [report] Slack threads — Watches CI, iterates on feedback Constrained to source and config, not customer or payment data.
Uber [docs] — — — Cost per outcome; route subagents to cheaper models; cap context.
MongoDB (Sage) [vendor] Jira, Slack, CI Self-hosted Claude Code for Jira-to-PR — Start from one expensive, measurable pain (CI logs); extract the platform after.
Grab (with Cursor) [vendor] — — Role-appropriate local review Non-engineers ship bounded fixes; measure completed work.
Runlayer [opinion] Calls, customer Slack, red CI, UI pins Sandbox per task Adversarial agent review; automerge small changes Dedupe at intake; release awareness becomes a bottleneck.
Kiro [vendor] — Laptops, EC2, cloud desktops CI and review per PR 1,000 PRs in 7 days by three engineers. Five-stage maturity ladder.
Browser Use [docs] — Unikraft micro-VMs — Isolate the agent, not the tool; zero secrets in the sandbox.

Appendix C: Further reading

Frameworks and principles

Engineering write-ups

Primary docs


This guide grew out of one team's internal research record on agent sandboxes and an agentic
SDLC, generalized for anyone building the same thing. Corrections and additions welcome: reach me on
X (@ahmedkeewan_) or LinkedIn.