Events go in: a ticket, an email, a form, an alert, a schedule. Workflows pick them up,
your agents do the work on the harness you choose, people approve where it matters,
and results come out: a reply, an updated record, a document, a pull request. It scales to zero, stays on budget, and learns from every run.
Four stations, one assembly line. Describe your world in a catalog, write the workflows in YAML, and Factoryal runs them.
01 · Trigger
Something happens
A person starts a run, or an event arrives: a form, a message, a catalog change, a webhook from any system, a schedule.
02 · Route
The workflow is picked
The workflow whose trigger matches takes it. The catalog gives agents their context: teams, systems, customers, whatever you model.
03 · Run
The steps run
Claude calls, scoped agents and coding agents, each on its own worker pool that scales by itself.
04 · Deliver
Results go back
A reply in the Slack thread or on the ticket, an updated record, a document, a pull request. Where the work came from.
ApprovalWhen a step needs a person, the run waits, for days if it has to, holding no worker.
02 / Bring your own
Your agents. Your harness. Factoryal orchestrates.
Agents, skills, rules and runners are files in your factory's git repo. Factoryal runs them on the harness each step needs, enforces what each agent may touch, and keeps track of every run.
Your factory repoHarness, per step
agents/triager.yaml
kind:Agentidentifier:triagerowner: support
effort: high
scopes: [catalog:read, "catalog:write:ticket"]
skills: [severity-guide]
system_prompt:You triage incoming tickets...
Who does the work, and what it may touch. The API enforces the scopes, whatever the prompt says.
version 3f9c2a1e04b7 · the commit that last changed it
skills/severity-guide.yaml
kind:Skillidentifier:severity-guideowner: support
instructions: |
critical: a customer can't work or data is at risk.high: a workaround exists but hurts....
Reusable know-how, listed on agents by name. Steps can swap skills per run without a new agent version.
version 9b17e0c4d2aa · the commit that last changed it
rules/no-secrets.yaml
kind:Ruleidentifier:no-secretsowner: platform
scope: org # or team / repoinstructions:Never commit secrets, tokens or .env files.
Standing instructions every agent in scope follows, without listing them.
version 51ad38f9e6c0 · the commit that last changed it
Where coding agents run: the harness, the setup, and the hosts they may reach.
version c07e5b21f8d3 · the commit that last changed it
Versioned by commit
Merging to main applies a change. Every run records the exact version of each agent, skill and rule it used.
Scopes, enforced
An agent can't widen its own permissions, edit its rules or approve its own lessons.
Swap the harness per step
Run a step on Claude Code, Codex or Managed Agents, and override model, effort or skills, without touching the agent.
03 / A run, step by step
YAML in. Work done.
One generic interpreter runs every workflow. Steps pass data with templates, and a waiting approval costs nothing.
workflows/refund.yaml
kind:Workflowidentifier:refundinputs:order: { type: string, required: true }
amount: { type: number, required: true }
steps: - id:review# one Claude calltype: llm
prompt:Summarize the request for order {{ .inputs.order }}. - id:approve# waits, holding no workertype: approval
message:"Refund ${{ .inputs.amount }}?"expires: 72h - id:refundtype: http
url:https://billing.internal/refunds
Run timelinerunning
refund · order 48213 · $240
stamped with factory commit 3f9c2a1
1
review · llm
queued
2
approve · approval
queued
3
refund · http
queued
Workers held 0Elapsed 0s
04 / Run it for real
Scales out. Spends wisely. Gets better.
A factory that runs all day needs more than workflows. Factoryal grows and shrinks with the load, keeps every token accounted for, and learns from what its runs produced.
Scalability
Elastic by default, zero when idle
Every run is its own durable execution. Claude calls, coding agents and workflow logic each have a worker pool that scales on its own queue, and on AWS every pool goes down to zero tasks when there's nothing to do.
Waiting for an approval holds no worker
Concurrency limits per workflow; extra runs queue
Dedicated pools for low-priority batches
Worker poolsqueue 0
llm0 tasks
coding0 tasks
workflows0 tasks
light0 tasks
Idle · scaled to zero · $0
Tokenomics
Every token accounted for
Monthly budgets per workflow, team or project, and a cost cap per run. When a budget runs out, new runs are skipped or queued until it allows them. Every step lands in a spend ledger by model, agent, team and token type.
Cache reads and writes priced at their own rates
Model routing sends each run to the model that fits it
Cost per success, not cost per call
workflow:support-triage · examplebudget $500/mo
$0 spentwarn at 80% · then queue
Smart learning
Learns from every run
Factoryal records what became of each run's work: merged, revised, approved or rejected. Retros look back at the runs that went wrong and name the cause; when the same cause keeps coming back, it becomes a cluster, and fixes arrive as pull requests on the factory.
Lessons become agent memories, after review
Nothing changes without a merge
A fix that didn't hold reopens its cluster
Recommendations
Knows where to save
Every step is scored on whether its work held up, then compared on cost per success. Recommendations point to a cheaper model or effort that does as well, prompts that miss the cache, and candidates a replay of past runs has already checked. One click opens the change as a pull request.
Each comes with evidence, confidence and a monthly saving
Benchmarks compare agent configurations side by side
Recommendations · examplelast 30 days
Cheaper variantsupport-triage / classify → a smaller modelSucceeded as often (96% vs 97%) and scored as well, over 1,240 steps.≈ $310 / month savedPropose PR
Low cache hitsonboarding / draft-welcome reads 12% of its prompt from cacheInputs come before the instructions. Put the parts that change last.≈ $95 / month savedShow prompt
Replay cheaperinvoices / extract-lines on a lower effortA replay of 50 past runs judged it 0.91 against today's answers, at 58% of the cost.≈ $420 / month savedPropose PR
05 / Platform
Everything an AI factory needs.
From trigger to result, with permissions, approvals, budgets and scale built in.
Catalog
Blueprints, validated entities and relations, with a Port-compatible search language and transitive graph queries.
Workflows in YAML
Versioned and run by one interpreter. Steps like llm, agent, code, approval, http, map and parallel.
Scoped agents
Each agent has an owner, explicit scopes and a version. The API enforces the scopes, whatever the prompt says.
Coding agents, too
When the work is code, a code step has Claude Code, Codex or Managed Agents change a repo and the platform opens the PR.
Factories as code
Each factory is its own git repo. Pull requests get the plan as a comment, merging applies it, and every run is stamped with the commit.
Benchmarks
Replay past tasks under several agent configurations and compare correctness against cost, before you change what runs in production.
06 / Integrations
Plugs into the tools you already run.
Work comes in from where your team already works, and results go back to the same place. Anything with an API can join.