Skip to content

Status and roadmap

The one place the platform’s state lives. Every other page describes the design. Each line here names the clouds a capability was proven on, and links to the evidence: a runbook, its results, or a design record.

Current release: the Agent Factory v3.0.0, released on 2026-10-31, on Maku v0.32.3, composed by crossplane-configuration v0.9.31. Next: v4, anyone can run it.

The Agent Factory is a bundle of open-source tools (Maku, agentgateway, OpenHands, gVisor, octo-sts, RunLore, Kueue and others). Maku is one of them: the factory controller, the rooms, the harness and bridge, the Slack app and the maku CLI.

    flowchart LR
  subgraph landed["Available: v1 and v2"]
    v1["Agent Factory v1"]
    rooms["Attended rooms"]
    gw["agentgateway, model tiers"]
    cloud["Runs on AWS EKS and GCP GKE"]
    merge["Auto-merge of link fixes"]
    budgets["Gateway budgets enforced"]
  end
  subgraph v3live["Available: v3"]
    scoper["Scoper and completion judge"]
    checks["Repository checks in the sandbox"]
    tester["Test-first tester"]
    slack["Slack intake"]
    runlore["RunLore agent to agent"]
    profiles["Capability profiles, cache alerts, spend per identity"]
    local["The factory from your coding agent"]
    split["Splitter"]
    providers["Moonshot and Mistral, public data only"]
    human["Approve-to-merge, breaker recovery, drills"]
  end
  subgraph v3built["Experimental"]
    search["Search for agents"]
    classes["More auto-merge classes"]
  end
  subgraph v4["Next: v4, anyone can run it"]
    laptop["The factory on a laptop"]
    prod["The production path"]
    inc["v4.1 to v4.6: review, verification,<br/>quality, scale, provenance, memory"]
  end
  subgraph later["Planned"]
    bench["Eval bench and bake-off"]
  end
  landed --> v3live --> v3built --> v4 --> later
  

Available

Built, proven end to end, and usable now. Opt-in means it is off by default, and an operator turns it on with one value, per class or per platform.

CapabilityWhat it does for youProven onEvidence
The Agent FactoryA labelled issue becomes a reviewed pull request, built by agents in a gVisor sandbox under their own identityEKS, GKErunbook 07, runbook 14
Attended roomsFollow, steer and approve a run live; an approval after its deadline is refusedEKS, GKErooms
Private repositoriesRoom access follows each person’s GitHub permissionGKErunbook 11
Several repositoriesRepositories are served side by side; no room, branch or token crosses between themGKEresults
Internal work on ClaudeInvestigations run on Claude through the Anthropic API, read-only, with prompt cachingGKEADR-0054
agentgateway and model tiersEvery agent call is checked, metered and routed to the model its tier namesEKS, GKEADR-0053
Budgets enforced at the gatewayA call over its run, fleet or Anthropic budget is refused with 429 agent_budget_exhaustedGKErunbook 04, Part D
SuspendA run waiting on a human gives up its pod, then resumes with the same workspace and conversationGKErunbook 01
Resume after a lost nodeA run lost to a spot reclaim resumes from its branch on its ownEKS, GKErunbook 10
Warm sandboxes (opt-in)A run starts in about 17 s instead of minutes; a run preempts the warm capacity, never the reverseEKS, GKEdesign
Auto-merge of link fixes and their revertsA link-only fix merges with no human, at most once a day; a revert demotes the class to human reviewEKS, GKErunbook 12
Approve-to-mergeA maintainer’s approval of the current head is the merge, outside the auto-merge capsEKSresults
Regression breaker, drills and recoveryA regression pauses its class; a drill revert is not counted; three clean merges lift a pauseEKSresults
ScoperA labelled issue becomes a bounded task with acceptance checks, or the factory asks its author one questionGKELayer 1
Completion judgeA fresh-context judge says met, not_yet or impossible against the task’s checksGKELayer 2
Repository checks in the sandboxThe implementer runs the repository’s checks before it pushes; the CI stays the judgeGKELayer 3
Test-first tester (opt-in)A tester commits a failing test contract; the implementer works to itGKErunbook 21
SplitterA task too big for one pull request is proposed as parts with a merge orderGKErunbook 17
Slack intakeA mention drafts the issue; a maintainer’s ✅ files it and starts the taskGKErunbook 22
The factory from your coding agentClaude Code and OpenCode file, follow and check out a task through the maku CLI and its MCP server; starting a task from your session is opt-inGKErunbook 19
RunLore agent to agent (opt-in)An alert becomes an investigation, a fix pull request, and a verdict after the mergeGKErunbook 20
Capability profilesEach role and data class has a model allow-list; every run is pinned to one modelGKErunbook 14
Moonshot and Mistral (opt-in)Kimi and Mistral models for public data only, selectable per classGKEproviders
Cache alertsAlerts on the share of input read from cacheGKErunbook 04, Part E
Spend per identityOne dashboard per person and per sponsored principal, and cost by roleGKErunbook 04, Part G
Room and intake UXThe approvals page, a status line per room, attended forks, a daily task capEKS, GKEthe room page

Hardening is tracked on the v1 hardening milestones of Maku and cloud-native-ref.

Auto-merge class modes, from tooling/base/agent-factory/helm-values-configmap.yaml (when a pull request merges): cloud-native-ref has docs-links and revert live, and dead-links, deps-patch and deps-minor in shadow; every ai-native-ref class is in shadow; approveToMerge is on for both.

Experimental

Built, but off by default or on for a few classes only while its value is measured.

CapabilityStateEvidence
Search for agentsThe implementer asks a read-only search helper instead of reading the repository; its benefit is unmeasuredLayer 4
More auto-merge classesdead-links and deps-patch decide in shadow, deps-minor observes. A class leaves shadow after a full day’s proofrunbook 15, runbook 16
Self-hosted model servingvLLM on L4 GPUs behind an OpenAI-compatible gateway; off by default on both cloudsserving
Per-person and fleet daily capsCounted in shadow, not refused, until a longer record says enforcing is saferunbook 04, Part C

v4: anyone can run it

v3 made the factory land more accepted pull requests per dollar on the reference host. v4 makes it run for anyone, outside the reference host: first the whole factory loop on a laptop, then a production install on your own cluster. v4.0 holds what an outside adopter needs on day one; the increments after it each ship behind their own switch. Nothing here is built yet; each feature gets its own design first (roadmap, research).

v4.0: the core

FeatureWhat it will do for you
The factory on a laptopOn a Linux machine with Docker, about 30 minutes from the docs alone: label an issue in a sample repository, watch the agents work in a room, get a reviewed pull request, and see the merge gate decide. Today’s kind quickstart runs one attended agent; v4 brings the whole loop. A nightly job proves it
The production pathInstall on your own cluster, not only the reference host: the host contract split into what is required and what you bring (your identity provider through OIDC, your secrets store, your GitOps tool, your gateway), each with a reference implementation and a statement of what you lose if you leave it out. Proven on a cluster that is not the reference host, with a smoke test
Merge classes declared in your repositoryYou declare which kinds of change may merge on their own, in your own repository, against a schema; the factory’s gate and the policy-bot rule are generated from that one declaration. Presets for common classes, a ceiling the platform sets, and promotion from shadow once a replay of past decisions shows the class is safe
Untrusted-input hardeningFor repositories where strangers file issues: the agent writes only through validated outputs, text from people outside the maintainers is filtered, outputs pass a threat check before they apply, and CI configuration, agent instructions and manifests stay out of the agent’s reach. Scripted injection attacks against every role prove it, run on a schedule like the merge-gate drills
Outcome analyticsSee what the factory delivers: merge rate, revert rate, time to merge, rework and cost per merged pull request, per class, model, role and repository, on a dashboard and in a weekly report
GeminiGemini as a model you can select for public work, with its own capability profile and cost check, the way Kimi and Mistral were added
Developer experienceFewer steps from “hand this off” in your terminal or coding agent to a running task, and a clearer status. In Slack, a richer thread and the hand-off’s one action as a button, so you can approve without opening the room
The animated run viewA run’s page draws its diagram as each role starts, and replays it when the run ends. A timeline lists every tool call, check, decision and cost, and two runs of the same task can be compared side by side

v4.x: the increments

ReleaseFeatureWhat it will do for you
v4.1Review inboxOne queue of the agents’ pull requests waiting on a human, across all your repositories, ranked by risk, class and age, routed to their owners; stale ones are closed
v4.1Plan approvalPer class, the scoper’s plan waits for a maintainer’s approval before any code is written, so a wrong plan costs one comment, not a run and a review
v4.2Verification on real servicesBefore the pull request opens, the change runs against real dependencies: ephemeral services, scoped test credentials, a preview, and screenshots for interface changes
v4.2The continuation loopThe factory drives its own pull request to the merge: it fixes red CI, answers review comments, rebases, and resolves merge conflicts
v4.3Judge and reviewer calibrationHow often the completion judge said “done” and the reviewer said “approve” on work that was later reverted or reworked, per model and class, so you know when a cheaper judge is safe
v4.3Reviewer severity and resolutionThe reviewer ranks its findings by severity; the factory tracks which ones were fixed and mutes rules that are rarely acted on
v4.4Event triggers and schedulesTasks start from events, not only issues: main’s CI turning red, a security alert, or a schedule for recurring maintenance
v4.4Multi-repository tasksOne task that changes several repositories together, with one linked pull request each, merged in order
v4.4Fleet campaignsOne change applied across many repositories, with a view of its progress to 100% and the long tail handed to owners
v4.5Signed provenanceEvery agent commit carries a signed attestation of the run, model, prompt, policy and checks that produced it, which anyone can verify later
v4.6Repository memory, as reviewed codeAgents propose what they learned (build quirks, conventions, gotchas) as small pull requests to the repository’s agent instructions, reviewed like any change: no hidden memory

Planned

FeatureWhen
Triage classifier: a task’s tier from its difficulty (routing)Designed, not built; every task is standard until then
Eval bench: fixed issues, three runs each, scored on acceptance and cost per accepted pull request (design)If a sponsor funds the bench sessions
Open-weight bake-off: open models compete per class; the winner becomes its implementer’s modelWith the bench
Agent-to-agent protocols and trackers: an A2A card; Jira or Linear as delegatesWhen a consumer speaks A2A or a tracker is in use
Webhook subscribers registered through an APIWhen subscribers outgrow a reviewed list
Finer permissions: an external policy decision point; a token per backendWhen a policy outgrows the compiled gateway rules
Substrate as the sandbox runtime. A spike passed; it is not adopted now (why)When its costs shrink upstream
The warm pool: pre-warmed sandboxes handed to a runAfter a decision on the binder’s token-minting authority, unless agent-sandbox’s warm pools replace it

Not planned: public work on Claude, a doc-writer or standalone architect agent, parallel writers on one branch, switching models in the middle of a run (why), and steering a run from Slack or MCP, which stays in the rooms web UI. Install on any Kubernetes, the continuation loop, untrusted-input hardening, repository memory and approving from Slack moved into v4.

Serving

PathTrigger
GPU sharing for the small always-warm models (options)Now: the FIM model and LlamaGuard each hold a whole L4 for a fraction of its memory; packing them frees a node, about $260–325 a month
The endpoint picker on a high-traffic modelA model at two replicas or more without a LoRA canary (it is built, enabled on no claim)
Saturation of the InferencePool as an autoscaling triggerWhen the endpoint picker is on
A bigger coder model on the same L4 GPUsThe 7B coder hits its tool-call or correctness limits
A frontier coder on L40S in a second regionThe quantized model’s quality loss becomes measurable, or full-context work outgrows one L4
Tensor-parallel on four L4 GPUsThe quantized model is not enough, and a second region costs more to run
Claude Code on the self-hosted models, through a protocol relayThe open-weights models get close enough to be a daily backend
Heavier dense models (GLM-4.6, DeepSeek-Coder-V3)A budget for H100-class GPUs, and stable tool-call parsing in vLLM
Cost per tenantSeveral consumers share the platform

Known limitations

LimitationEffect
The room page’s next step under approve-to-mergeIt names an admin merge (gh pr merge --admin); approve the pull request instead, as the issue comment says
The CI log quote for the judgeEmpty unless the harness’s egress allows GitHub’s Actions log host, a security decision for your platform
Parts of the human path not yet exercised end to endThe policy replay, the release age, the AwaitingCI bound (#182), the next-day return, a retroactive drill label, a lifted Request changes’ return on approval
Approval binding residualsThe push record’s lag, the run’s end time, a reason’s name, and the base branch (tracked in maku#304)
Costs on a task’s statusA task’s status cost freezes before its final settle; a budget-exhausted run’s ledger misses its last spend (tracked in maku#279, maku#280)
Spend per identityNot yet matched against the meter’s ledger over a full day
Mistral as an implementerNot recommended: it can spend a run’s whole budget on a small change
Semantic Router metricsNo router series reach VictoriaMetrics, so its decisions cannot be read from metrics
Serving on GKEA new project’s GPUS_ALL_REGIONS quota is 0: no GPU model schedules until Google raises it

On the road to a factory

A factory is the top of Dan Shapiro’s levels of AI-assisted programming, named after robot factories that run with the lights off: specs go in, software comes out, and no human writes or reviews the changes (the levels). StrongDM’s AI team runs one under two rules: code must not be written by humans, and must not be reviewed by humans (StrongDM).

LevelWho does whatHere
3 · DeveloperAgents write most of the code; a human reviews it
4 · Engineering teamHumans write the specs; agents buildMost work: a human writes the issue and approves; the approval is the merge; agents implement and review each other
5 · FactoryNo human in the loopOne lane: link fixes merge with no human, at most once a day; a revert sends the class back to human review until three clean mature merges lift it, and a planned drill revert never counts

This is not a factory yet, and it does not remove humans wholesale. Each class of change earns its way to lights-out on evidence: a drill, a revert breaker, a budget. The next lanes, in shadow, are a class with a machine oracle (dead-links) and patch dependency bumps (deps-patch); each one’s own revert rate decides how wide it opens. Dropping human review is a consequential choice, not only a productivity one (Stanford CodeX), which is why each lane is reversible by one label.