index · all work
04 · multi-agent

Band of Agents

One campaign, every market's rulebook, cleared by a room of agents that argue the conflicts out.

Year2026
Statusshipped
RoleSolo · design + engineering
Built withTypeScript 5.7 · Node 22 (ESM) · Hono 4 · band.ai SDK · React + Tailwind · +7
artifact-viewer-one.vercel.appopen ↗

Live demo. Click Run to load the real app and use it right here, or open it full-screen.

01Overview

Band Review Board is a compliance war-room staffed by AI agents. A brand drops a whole marketing campaign (a hero video, its cutdown posts, banners, images) into a shared band.ai room, and a cast of specialist agents clears every material against the advertising and regulatory rules of each market it will run in: US FTC, EU health-claim and GDPR rules, LATAM. The agents do not run a checklist in a line. They hold competing mandates and argue. When a claim is legal in the US but a banned health claim in the EU, the region reviewers debate it on the record, holding or conceding their block, and only a genuine deadlock reaches the human. Every verdict traces back to a specific rule and the agent that raised it.

Built solo for the Band of Agents hackathon, it ships two orchestration shapes: a pods cast of up to 17 agents on a deterministic decision spine (a compact 10-agent subset connects to the live band.ai room to fit its agent cap), and a lighter classic coordinator/reconcile cast. A multi-model routing layer runs each agent on the model that fits its job, and a multimodal pre-pass watches the video and reads the audio before any reviewer sees the asset. A Hono + SSE backend streams the whole negotiation into a React console.

02The problem

A single asset sold into several markets carries stacked, parallel legal liability, because each jurisdiction sets its own rules, ceilings, and required disclosures. Miss one cross-border conflict and the downside is real: GDPR fines reach 20M euro or 4% of global turnover, the UK's DMCC Act up to 10%, US FTC penalties per violation. Band Review Board surfaces the exact conflict a lone legal team misses and proves every call with an audit trail.

03Highlights
  • Real agent-to-agent debate, not a merged checklist: when two region reviewers split on a claim (one blocks the span, another clears it), the Reg Lead runs a one-round rebuttal where each blocking region holds or concedes on the record. A conceded block drops to a warning; a held block is logged as a conflict (hold/concede stance schema in pod-region-reviewer.ts, wired through pod-lead.ts).
  • Two orchestration topologies coexist: a pods cast (Claims / Regulatory / Brand pods on a deterministic decision spine, 17 agents at full size) and a lighter classic cast (coordinator to region/brand reviewers to reconcile). The live band.ai room runs a compact 10-agent variant of the pods cast to fit the room's agent cap, keeping the Regulatory pod's full US/EU/LATAM debate.
  • The orchestration spine is deterministic on purpose: the Conductor, pod leads, and Risk Adjudicator call no model, so routing and the terminal verdict (published / spiked / escalated) are auditable rather than left to an LLM.
  • Multi-model by design: MODEL_MODE (aiml | dev | vertex) swaps the whole fleet behind one ModelClient. Each agent runs the family that fits its job (GPT-5, Gemini 2.5 Pro, an open Llama, Claude Haiku/Sonnet/Opus, DeepSeek, and Nano Banana for localized image regen), and MODEL_MODE=vertex runs the entire fleet on one GCP credential.
  • Multimodal perception pre-pass: one vision model sees each video and image (ffmpeg-sampled keyframes), one Whisper-class model hears the audio, and the resulting text artifacts (description, on-screen text, detected claims, transcript) cascade to every reviewer, even the text-only ones.
  • Runs end-to-end with zero API keys on an in-process fake band.ai transport, covered by 53 Vitest files. A Hono + SSE backend streams the negotiation into a React/Tailwind console with a live material x region verdict matrix.
04By the numbers
17-agent full pods cast (+ 1 human)
10-agent compact cast for the live band.ai room
53
Vitest test files
3
model-routing modes (aiml / dev / vertex)
3
regional rulebooks (US / EU / LATAM)
3
input modalities (text, image, audio)
What's inside8 parts
  • band-review-board-webapp

    React, Tailwind, and React Router console (web/) that streams a live review over SSE: the campaign board, the material by region verdict matrix, the analyzing panel, and the rulebook editor.

  • serverservice

    Hono HTTP and SSE backend (src/server) that starts a review locally or against a live Band room and relays every board event to the web console.

  • agentslibrary

    The full cast in src/agents: Conductor, Scout, Claim and Evidence, Precedent, Disclosure, the US, EU, and LATAM reviewers, the brand reviewers, the Mediator, the Risk Adjudicator, and Remediation, plus the lighter classic Coordinator and Reconcile board.

  • boardlibrary

    The orchestration engine in src/board: board, campaign, and pod sessions, the pod hub, and the event model that carries findings and verdicts through a deterministic decision sequence.

  • bandlibrary

    The Band.ai coordination seam in src/band: a real @band-ai/sdk transport and an in-process fake for tests, shared-context rehydration, and cross-framework wiring.

  • modelslibrary

    A provider-agnostic ModelClient in src/models whose MODEL_MODE routing fans each agent across AIML, Vertex/Gemini, Bedrock/Claude, and Featherless, with per-call spend tracking and retry.

  • perceptionworker

    The multimodal pre-pass in src/perception that samples video keyframes, runs vision, and transcribes audio so every text reviewer can see and hear the asset before it grades.

  • domainlibrary

    Campaign, asset, rulebook, and finding Zod types in src/domain, plus rulebook smart-import from .md or .json and curated per-market presets (US FTC, EU health claims, LATAM).

·Tags
multi-agentAI agentscomplianceband.aimultimodalLLM orchestration
Full tech stack 12
TypeScript 5.7Node 22 (ESM)Hono 4band.ai SDKReact + TailwindViteVitestZodOpenAI SDK (AIML gateway)Google GenAI / VertexAWS BedrockFeatherless