arf.io / ARF / Work Orchestration / ARF · Autonomous Request Filter · Agent Router & Filter
ARF · Autonomous Runtime Framework

One task.
Twelve agents.
Parallel. Governed.

The Autonomous Runtime Framework runs more than one agent at a time. It decomposes tasks into parallelizable subtasks, dispatches each to the right engine, governs every branch independently, and merges verified results into a single coherent output.

The UIA

The agent you talk to
coordinates all the others.

The User Interfacing Agent (UIA) is the entry point for orchestrated work. You describe a task to the UIA. It produces a work plan and coordinates the other agents that do the work.

The UIA is not a special agent type. It's a role. Any ARF-compatible runner can be the UIA. What makes it the UIA is that ARF routes your initial prompt to it and gives it the orchestration API: spawn sub-agents, post tasks to the board, collect results, present consolidated output.

The UIA operates through ARF's proxy. Every UIA decision (what subtasks to create, which engine to dispatch to, how to merge results) is recorded in the proof chain. You can audit the orchestration itself, not only the output.

arf · orchestration · UIA session
UIA IRON-WOLF-1  anthropic/claude

User: Refactor the auth module, add tests,
      update the API docs, and review for
      security issues.

UIA→ Decomposing into 4 subtasks:

  [A] Refactor auth module     → COPPER-ANVIL-2
  [B] Write test suite         → SILVER-HAWK-3
  [C] Update API documentation  → JADE-WOLF-4
  [D] Security review          → IRON-GATE-5

BOARD tasks queued: 4  ·  running: 0  ·  done: 0

Awaiting approval to dispatch…
 Approve dispatch? [y/n/edit]
UIA planning profile: standard 4 tasks pending
Prompt Decomposition

Complex prompt in.
Work graph out.

Work Graph Task Dependency DAG
USER PROMPT
"Migrate the billing service from REST to GraphQL with full test coverage"
↓ UIA decomposes
Schema Design
ANVIL-2
REST Analysis
HAWK-3
Auth Mapping
GATE-4
↓ parallel (no deps)
GraphQL Impl
WOLF-5 [needs: ANVIL+HAWK]
Test Suite
STORM-6 [needs: GATE+HAWK]
↓ after impl complete
Integration Test + QA Review
IRON-7 [needs: all above]
merge ↓
MERGED OUTPUT
Verified, tested, QA-reviewed GraphQL migration. Proof bundle attached.
Fan-Out Dispatch

Right model.
Right job.

ARF's Autonomous Runtime Framework dispatches tasks to engines based on task type, cost, and capability. Creative reasoning goes to high-capability models. Mechanical transforms (format conversion, test generation from spec) go to faster, cheaper local models.

Fan-out dispatch is configured in TOML. You define routing rules by task tags, token budget, latency requirements, and model capability tier. ARF handles the rest: translating prompts to the target engine's format, managing concurrent connections, collecting results.

Governance applies to every dispatched task on its own. Each sub-agent has its own health grade, its own circuit breaker, its own entry in the Merkle DAG. A failing sub-agent does not take down the whole work graph. ARF can retry, reroute, or surface the failure to the UIA for re-planning.

# arf-routing.toml dispatch rules [dispatch] default_engine = "anthropic/claude" [[dispatch.rules]] # Creative / complex reasoning match_tags = ["architecture", "design", "review"] engine = "anthropic/claude" [[dispatch.rules]] # Mechanical transforms -- route local match_tags = ["format", "migrate", "boilerplate"] engine = "local/ollama" max_tokens = 4096 [[dispatch.rules]] # Security review -- dedicated engine match_tags = ["security", "audit"] engine = "openai/gpt" require_approval = true [merge] # How to merge concurrent branch outputs strategy = "uia-mediated" # UIA reviews all branch outputs and synthesizes qa_gate = "quality_gates.min_test_coverage"
The Board

Append-only JSONL.
Append-only truth.

ARF's coordination mechanism is called the Board: an append-only JSONL file that serves as the single source of truth for what work is planned, in progress, completed, or failed.

Every task the UIA creates is appended to the Board as a JSONL record. Every status transition (queued, dispatched, running, done) is a new append. Nothing is ever deleted or updated in place. The Board is a complete, auditable history of the work graph.

Multiple agents can read the Board at the same time. Agents check the Board for available work, claim tasks by appending a claim record, and append completion records when done. The UIA watches the Board to detect when all branches of a work graph are complete, then starts the merge phase.

  • Append-only JSONL never edited, never deleted
  • Task records: id, type, deps, assignee, status, output_hash
  • Each append signed and chained in the proof record
  • Board visible in real-time in the ARF TUI
  • Humans can append tasks directly; agents pick them up
BOARD.JSONL live view
{"t":"task.create","id":"T001","type":"refactor","status":"queued"}
{"t":"task.create","id":"T002","type":"test","deps":["T001"],"status":"queued"}
{"t":"task.create","id":"T003","type":"security","status":"queued"}
{"t":"task.claim","id":"T001","agent":"COPPER-ANVIL-2","at":"01HX…"}
{"t":"task.claim","id":"T003","agent":"IRON-GATE-5","at":"01HX…"}
{"t":"task.done","id":"T003","agent":"IRON-GATE-5","grade":"A","hash":"d4e8…"}
{"t":"task.done","id":"T001","agent":"COPPER-ANVIL-2","grade":"B","hash":"9b1…"}
{"t":"task.claim","id":"T002","agent":"SILVER-HAWK-3","at":"01HX…"}
{"t":"task.running","id":"T002","progress":0.34}
● Live · 3 tasks · 1 running · 2 done · 0 failed
Launching Parallel Agents

12 agents. One command.
Shared governance.

Launch individual runners directly. Each gets its own session ID, health grade, and circuit breaker.

# Launch individual runners arf run claude "implement the auth module" arf run codex "write tests for auth" arf run gemini "update API documentation" arf run antigravity "security review auth changes" # Watch all of them in the TUI arf tui

Or use the launch modal to orchestrate from the TUI. Fan out to up to 12 parallel agents with isolated git worktrees.

# Fan-out: decompose task, run N agents in parallel worktrees arf launch "Migrate billing service from REST to GraphQL" \ --parallel 6 \ --worktree \ --profile standard # Each agent gets its own worktree + branch # Governance applies to each independently # Merkle DAG tracks all branches + merges # Export the full multi-agent proof bundle arf provenance export --format json --out migration-proof.json

Governance applies to every sub-agent independently.

Each parallel agent has its own health grade, circuit breaker, token budget, and provenance chain segment. A failing agent does not take down the work graph. ARF can retry, reroute, or surface the failure to the UIA for re-planning. The governance profile from the parent session is inherited unless explicitly overridden — privilege never escalates downstream.

Cross-DAG Session Linking

Sessions that know
about each other.

When the UIA spawns sub-agents, their Merkle DAG segments are linked to the parent session's DAG by cross-references in the provenance records. A merge event becomes a DAG node with multiple parent hashes — one per branch being merged.

The compliance export for a multi-agent session includes the full DAG: every branch chain, every cross-reference, and the convergence proof. One bundle, one hash, proving all work done by all agents in the orchestrated session.

# A merge provenance event shows multiple parent hashes { "event_type": "dag.merge", "parents": [ { "session_id": "01HX4Q…A", "tip_hash": "a3f72c1…" }, { "session_id": "01HX4Q…B", "tip_hash": "9b12e4a…" }, { "session_id": "01HX4Q…C", "tip_hash": "d4e8f01…" } ], "merkle_root": "f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4" } # Verify the entire multi-agent session arf provenance verify --session 01HX4Q…parent # ✓ 3 branches valid · Merkle root matches · All signatures valid