01 / RUNTIME CONTRACT

SCRIPT THE CREW.OPERATE THE RUN.

Lua defines the work. Rust enforces the runtime boundary. Your providers, tools, and storage stay explicit.

02 / ARCHITECTURE

THREE LAYERS. ONE DELIBERATE BOUNDARY.

The workflow stays readable while the production obligations live in the runtime.

01

LUA WORKFLOW

Agents, tasks, dependency graphs, tools, human checkpoints.

02

RUST RUNTIME

Scheduling, policy, validation, providers, run journals, HTTP and SSE.

03

YOUR SYSTEMS

Model providers, internal tools, PostgreSQL, and deployment controls.

03 / ORCHESTRATION

COMPOSE WORK. DO NOT HIDE IT.

Parallel phases, delegated subcrews, roundtables, dialogs, and synthesis remain explicit in Lua.

crew.lua / accountable-run
local crew = Crew.new({
    goal = "Assess release risk",
    provider = "openai",
    model = "gpt-5.6-luna",
    require_approval = { "file_write" },
})

crew:add_agent(Agent.new({
    name = "researcher",
    goal = "Collect release evidence",
    tools = { "ask_human" },
}))

crew:add_agent(Agent.new({
    name = "reviewer",
    goal = "Challenge evidence and decide",
    tools = { "file_write" },
}))

crew:add_task({ name = "collect", description = "List the riskiest changes in this release." })

crew:add_task({
    name = "decide",
    agent = "reviewer",
    depends_on = { "collect" },
    description = "Write a go/no-go plan for: ${results.collect.output}",
})

crew:run()
01

PARALLEL DAG

Run independent specialists together, then synthesize.

02

COORDINATOR

Let one agent delegate bounded work to specialists.

03

ROUNDTABLE

Rotate through expert views with an explicit moderator.

04

HUMAN CHECKPOINTS

Pause for context or authorization before consequences.

ALSO IN THE RUNTIME

VISION / STREAMING / MODEL ROUTING / CROSS-RUN PERSISTENCEBrowse 40+ validated example flows

04 / MEASURED

CREWS ARE A CLAIM. WE TEST IT.

A reproducible 12-case evaluation pits one structured call against DAG and collaborative crews — same model, same schema, hashed corpus, pre-declared thresholds.

01

DAG beats one call

Grounded correctness 0.7833 vs 0.6500 for a single structured call — +13.3 points across 12 cases, 5 repetitions, 180/180 completed runs.

02

Cost disclosed

The qualifying DAG spends 3.2x the tokens and 4.6x the latency. Both ceilings were pre-declared, not fitted afterward.

03

Negative result published

The collaborative topology missed its confidence bar. The report says so instead of hiding it.

Read the methodology and reports

05 / HUMAN IN THE LOOP

ASK.ANSWER. AUTHORIZE.

Named agents can pause for context. Humans answer from the CLI or HTTP. Consequential tools remain behind a different, fail-closed approval boundary.

CLI + HTTP

Attributed questions

Serve mode exposes question, answer, and SSE surfaces for attended runs.

POSTGRESQL

Encrypted delivery

A peer can accept the answer while the original run owner resumes the work.

Read the HITL contract

06 / DURABLE RUN REPLAY

THE CREW KEEPS ITS WORD.

The journal is shared. Active Lua execution stays with its owner. Resumption is not runtime failover.

RUN 9f7c2e44-6d5a-4b90-9a5b-1c0e6a2f9c7d

OWNER UNCHANGED

RUN COMPLETE

  1. RUNNING12:04:11.812
  2. WAITING_FOR_INPUT12:04:18.093
  3. ANSWER DELIVERED12:05:02.447
  4. RESUMED12:05:02.861
  5. COMPLETE12:05:16.229
REPLICA AOWNER
executingwaiting for human inputresumedcompleted OWNER
REPLICA BPEER
idlehuman answer accepted
REPLICA CREADY
standby
POSTGRESRUN JOURNAL+ HITL MAILBOX
  1. run.createdowner = A
  2. question.pendingstatus = waiting
  3. answer.acceptedencrypted delivery
  4. run.resumedowner = A
  5. run.completedresult = ok

Shared state, not a transferred runtime. Owner stays the same. Resumption continues the run; it is not failover.

  1. run.created(A)
  2. question.pending(AGENT / OWNER A)
  3. answer.accepted(HUMAN / B)
  4. run.resumed(A)
  5. run.completed(A)

02 / HOW IT WORKS

OWN
WAIT
ANSWER
RESUME

PostgreSQL coordinates ownership, idempotency, replay, and encrypted human answers.

CAVEAT: Active Lua execution stays on its owner.

07 / TOOLS + MCP

EXTEND THE CREW WITHOUT LOWERING THE BAR.

Use the narrowest tool surface that satisfies the crew. Everything consequential stays intentional.

01

Built in

Nine default tools cover files, HTTP, web scraping, hashing, templates, schema validation, and human input.

Inspect the contract
02

Opt in

Shell execution exists, but remains disabled until an operator deliberately enables it.

Inspect the contract
03

Extend

Define custom Lua and server-side tools, connect strict discovery-first MCP servers, or delegate to sub-flows bounded by recursion caps and path validation.

Inspect the contract

MCP 2026-07-28

DISCOVERY FIRST / NO LEGACY FALLBACKRead MCP policy

08 / PROVIDERS

NO PLATFORM BET.

Provider selection is configuration, not an application rewrite. Purpose-based routing can send each task to a different model. Structured output uses a declared JSON Schema response format, and reasoning streams persist to run records where providers expose them.

Inspect provider behavior

09 / OPERATING SURFACES

One crew. Every serious surface.

01

CLI

Run attended crews, inspect traces, and answer agent questions from a real terminal.

ironcrew run crew.lua
02

SERVE

Start runs over HTTP, stream lifecycle events, and resume pending human questions.

REST + SSE
03

POSTGRES

Coordinate ownership, idempotency, replay, and cross-replica HITL delivery.

PostgreSQL 15+
04

MCP

Discover and call modern tools on the latest supported protocol—without legacy fallback.

2026-07-28

10 / DEPLOY

FIT THE INFRASTRUCTURE YOU ALREADY OPERATE.

Run non-root, bound resource limits, coordinate graceful shutdown, and choose the persistence contract the deployment needs.

Read the deployment guide

GO FROM CONTRACT TO DEPLOYMENT

KEEP THE WORK READABLE. KEEP THE RUNTIME ACCOUNTABLE.