Give it a mission. Get back the work — and the proof.
Butai plans your mission, assembles a crew of specialist agents, and executes with typed handoffs and built-in QA gates. Every decision is hash-chained. Every result ships with a signed evidence pack you can verify — inside hard budgets that guarantee it stops.
BUILT FOR PRODUCTION
| # | event | actor | hash |
|---|---|---|---|
| 01 | plan | chief_supervisor | a3f7c2… |
| 02 | compose | chief_supervisor | b8d1e4… |
| 03 | route | team_supervisor | c5a9f0… |
| 04 | artifact | design_agent | d2b6e8… |
| 05 | tool_call | benchmark_agent | e7c3a1… |
| 06 | handoff | benchmark_agent | f4d8b2… |
| 07 | artifact | review_agent | 1a5e9c… |
| 08 | qa_gate ◆ | qa_reviewer | 2f0d7b… |
| 09 | clarify | team_supervisor | 3c8a4e… |
| 10 | finalize | chief_supervisor | 4b1f6d… |
One agent is easy. A workforce you can trust is not.
Butai solves the hard problems: attribution, collaboration, termination, governance, auditability, resilience, independence, and progress detection.
Plan, compose, execute, gate, finalize.
Every mission follows the same path through a hierarchical LangGraph. Teams of world-expert agents do the work; a QA gate decides when it is finished; and the whole run is bounded so it always terminates.
chief_supervisor → mission_plan
The Chief Supervisor receives the mission brief and produces a structured plan:
• objective string
• definition_of_done string[]
• teams TeamSpec[]
• budget { llm_calls: int, wall_clock_s: int }
• autonomy_level enum { supervised | semi | autonomous }
The plan is published to the blackboard and hash-anchored to the ledger.chief_supervisor → crew_manifest The Chief Supervisor queries the model registry and tool gateway to compose a crew: • Each team gets a named Team Supervisor • Each Team Supervisor is assigned a set of Expert Agents • Models are selected from the registry by capability tag • Tools are granted by the tool gateway per agent role
team_supervisor → task_assignment The Team Supervisor decomposes the team objective into tasks and routes each to the appropriate Expert Agent: • Tasks are typed (research | draft | review | benchmark | …) • Each task carries a sub-budget inherited from the mission budget • Routing decisions are logged to the ledger
expert_agent → artifact: WorkProduct
Expert Agents publish typed work artifacts to the shared blackboard:
artifact {
type: "design_doc" | "benchmark_result" | "review_note" | …
producer: agent_id
content: string | object
hash: sha256(content)
timestamp: iso8601
}
Downstream agents consume artifacts by type, not by producer name.expert_agent → tool_gateway → external_tool
All tool calls are routed through the tool gateway:
request {
tool: "web_search" | "code_exec" | "file_read" | …
args: object
budget: { calls_remaining: int }
}
The gateway enforces per-tool rate limits, logs every call, and blocks tools not in the agent's grant list.team_supervisor → human_checkpoint (if autonomy_level ≠ autonomous) When an agent reaches a decision point outside its autonomy level, the Team Supervisor raises a clarification request: • The mission pauses at the checkpoint • A human operator reviews and responds • The response is logged and the mission resumes • Timeout triggers escalation to the Chief Supervisor
expert_agent → team_supervisor → next_agent
Typed handoffs carry the artifact reference and a structured context object:
handoff {
from: agent_id
to: agent_id | "team_supervisor"
artifact: artifact_id
context: { summary: string, open_questions: string[] }
hash: sha256(artifact + context)
}
The hash chain links every handoff to the previous event in the ledger.expert_agent → artifact: FinalDraft
The final draft artifact is published to the blackboard and flagged for QA review:
artifact {
type: "final_draft"
producer: agent_id
content: string | object
hash: sha256(content)
ready_for_qa: true
}qa_reviewer → verdict: pass | fail | escalate
The QA Reviewer runs on a different model family than the builder:
• Receives the final draft and the definition of done
• Has no access to the builder's reasoning or intermediate artifacts
• Returns a structured verdict:
{ result: "pass" | "fail" | "escalate", findings: string[] }
• A fail triggers a revision cycle (up to max_revisions)
• An escalate raises a human checkpointchief_supervisor → evidence_pack
On QA pass, the Chief Supervisor seals the mission:
evidence_pack {
mission_id: uuid
plan: MissionPlan
artifacts: Artifact[]
tool_calls: ToolCall[]
handoffs: Handoff[]
qa_verdicts: QAVerdict[]
ledger_root: sha256(chain_tip)
sealed_at: iso8601
}
The evidence pack is signed and stored. The ledger root allows offline verification of the entire run.Autonomy with the guardrails built in.
Eight interlocking controls ensure every mission stays within the boundaries you set.
Every agent is assigned a model from a governed registry. Models are tagged by capability, cost tier, and data-residency zone. No agent can call a model outside its grant.
All tool calls are routed through a central gateway that enforces per-tool rate limits, logs every invocation, and blocks tools not in the agent's grant list.
Missions run at one of three autonomy levels: supervised (every decision requires human approval), semi-autonomous (humans approve at defined checkpoints), or autonomous (humans are notified but not required).
Every mission carries hard limits on LLM calls and wall-clock time. When either limit is reached the mission stops cleanly, records the reason, and returns a partial evidence pack.
A transient model fault retries with exponential back-off. A sustained outage trips a circuit breaker and fails over to the next model in the registry. The mission continues without operator intervention.
If the same QA gate fails three times in a row, the no-progress detector stops the run and escalates to a human checkpoint rather than burning budget on a loop.
The acceptance gate runs on a different model family than the builder, with a different system prompt and no access to the builder's reasoning. It can only pass or fail the output against the definition of done.
Every event — plan, artifact, tool call, handoff, QA verdict — is appended to a hash-chained ledger. Tampering with any event breaks the chain and is immediately detectable.
Every mission leaves proof of how, not just what.
Hash-chained ledger, sealed evidence pack, verifiable offline — without trusting the platform.
| seq | type | actor | prev | hash |
|---|---|---|---|---|
| 001 | plan | chief_supervisor | 0000000… | a3f7c2d… |
| 002 | compose | chief_supervisor | a3f7c2d… | b8d1e4f… |
| 003 | artifact | design_agent | b8d1e4f… | c5a9f01… |
| 004 | tool_call | benchmark_agent | c5a9f01… | d2b6e82… |
| 005 | qa_gate ◆ | qa_reviewer | d2b6e82… | e7c3a13… |
| 006 | finalize | chief_supervisor | e7c3a13… | f4d8b24… |
| field | type / description |
|---|---|
| mission_id | uuid |
| plan | MissionPlan (objective, DoD, teams, budget) |
| artifacts[] | WorkProduct (type, producer, content, hash) |
| tool_calls[] | ToolCall (tool, args, result, timestamp) |
| handoffs[] | Handoff (from, to, artifact_id, context) |
| qa_verdicts[] | QAVerdict (result, findings, model) |
| ledger_root | sha256(chain_tip) — verifiable offline |
| sealed_at | iso8601 timestamp |
Structure instead of a long chat.
Agents don't pass messages back and forth in a chat thread. They publish typed work artifacts to a shared blackboard and consume artifacts by type — not by producer name.
This means the workforce can be recomposed — swap a model, add an agent, change a team structure — without rewriting any handoffs. The blackboard is the interface; the agents are the implementation.
Every artifact is hashed on publication and linked to the ledger. Downstream agents receive a reference, not a copy — so the chain of custody is always intact.
| artifact_type | producer | consumers |
|---|---|---|
| mission_plan | chief_supervisor | all team_supervisors |
| task_assignment | team_supervisor | assigned expert_agents |
| research_note | research_agent | draft_agent, review_agent |
| design_doc | design_agent | benchmark_agent, review_agent |
| benchmark_result | benchmark_agent | review_agent, qa_reviewer |
| final_draft | draft_agent | qa_reviewer |
| qa_verdict | qa_reviewer | team_supervisor, chief_supervisor |
| evidence_pack | chief_supervisor | operator, auditor |
Run it anywhere. Keep one governed path.
The same governed workforce runs in every topology — SaaS, self-hosted, air-gapped, or cloud-native.
Fully managed. Butai runs the infrastructure, the model registry, and the tool gateway. You bring the mission brief and the credentials for your data sources.
Run the full Butai stack in your own VPC or on-premises. You control the network boundary, the data residency, and the model registry. Butai provides the container images and the upgrade path.
Air-gapped deployment with a local model registry. No outbound calls to any third-party model provider. Suitable for classified or highly regulated environments.
Use SageMaker as the model registry. Models are served from your SageMaker endpoints. The tool gateway and ledger run in your AWS account.
Use Snowflake Cortex as the model registry. Models run inside your Snowflake account. Data never leaves your Snowflake environment.
Two ways in. One governed workforce.
Every mission enters through the same governed path — either accepted directly from a well-formed proposal, or clarified through a structured interview before the workforce is engaged.
A mission starts as a proposal — a brief that describes the objective, the definition of done, and any constraints. The Chief Supervisor reviews the proposal and either:
• accepts it and begins planning, or
• raises a clarification interview to resolve ambiguities before committing.
The proposal lifecycle ensures that every mission starts with a clear, agreed objective — not a vague prompt that gets interpreted differently by each agent.
proposal {
objective: string
definition_of_done: string[]
constraints: { budget?: Budget, autonomy?: AutonomyLevel, … }
data_sources: DataSourceRef[]
tools_requested: ToolRef[]
}
The Chief Supervisor validates the proposal against the model registry and tool gateway before accepting. If a requested tool or model is not available, the proposal is returned with a list of alternatives.When the Chief Supervisor cannot resolve an ambiguity from the proposal alone, it raises a clarification interview — a structured dialogue with the operator that resolves the ambiguity before the mission begins.
The interview is bounded: a maximum of five rounds, each with a specific question and a set of acceptable answer types. If the ambiguity is not resolved in five rounds, the mission is declined with a reason.
clarification_interview {
round: int (1–5)
question: string
options: string[] | null // null = free text
context: { proposal_excerpt: string, ambiguity: string }
}
Clarification responses are logged to the ledger as part of the mission record. The final accepted proposal — including all clarification responses — is included in the evidence pack.A workforce, not a bigger prompt.
A single large prompt gets you one model's best guess. Butai gets you a governed workforce with attribution, quality gates, and a verifiable record.
| dimension | a bigger prompt | Butai |
|---|---|---|
| Attribution | None — the model did it | Every action attributed to a named agent, model, and version |
| Collaboration | One model, one context window | Typed artifacts on a shared blackboard; agents consume by type |
| Termination | Runs until it stops or you stop it | Hard LLM-call and wall-clock budgets; stops cleanly with a reason |
| Quality gate | You review the output | Independent QA reviewer on a different model family |
| Auditability | Chat history (if you kept it) | Hash-chained ledger sealed in a verifiable evidence pack |
| Resilience | Fails if the model fails | Circuit breaker + model failover; mission continues |
| Governance | None | Model registry, tool gateway, autonomy ladder, budget caps |
| Recomposability | Rewrite the prompt | Swap a model or agent; handoffs are unchanged |
Dispatched, monitored, and under your control.
Every mission is visible, every checkpoint is actionable, and every completed run is verifiable.
Real-time view of every active mission: current step, agent activity, budget consumption, and QA gate status.
Instant alerts when a mission reaches a human checkpoint — with the context needed to respond in one click.
Configurable warnings at 50%, 75%, and 90% of LLM-call and wall-clock budgets. Missions can be extended or stopped from the dashboard.
Browse the hash-chained ledger for any mission. Filter by event type, actor, or time range. Export to JSON for offline verification.
Download the sealed evidence pack for any completed mission. Verify the ledger root offline without trusting the platform.
Every operator action — mission start, checkpoint response, budget extension, model registry change — is logged with a timestamp and operator identity.
The firm behind the platform.
Butai is governed AI infrastructure for regulated industries — financial services, healthcare, insurance, and the public sector.
We work with engineering teams, compliance functions, and technology leadership who need AI that is auditable, attributable, and controllable at scale.
舞台 means stage. We build the stage; you set the mission.
of enterprise AI projects fail to reach production
cite lack of auditability as the primary blocker
cite inability to govern model behaviour at scale
uptime SLA on Butai-hosted deployments
Built for teams that need more than a prompt.
Butai is for any team that needs governed, auditable AI automation — from engineering to compliance to content.
Automate multi-step delivery workflows without losing attribution or auditability.
Get a verifiable record of every AI decision before approving a deployment.
Govern AI behaviour at scale across regulated industries.
Run complex, multi-agent research workflows with a signed evidence pack.
AI automation with a clear chain of custody for every action.
High-volume, high-quality output with an independent QA gate.
AI-assisted workflows with human-in-the-loop checkpoints where it matters.
Offer governed AI automation as an internal service to the rest of the organisation.
Demonstrable governance for EU AI Act, sector-specific rules, and audit requirements.
Moved past single-agent or prompt-based approaches and found them ungovernable at scale.
What teams ask first.
Common questions about missions, models, pricing, data, and deployment.
Request a demo.
Tell us about your organisation and the mission you want to run. We will schedule a call, walk you through a live mission, and discuss deployment options.
We respond to every request within one business day.