Multi-agent litigation pipeline

The contracts are the architecture.

Seven staged synthesis steps, roughly forty specialized agents, and a typed payload at every handoff. The diagram below is the thing I would whiteboard in an interview — architecture only, no client data.

A left-to-right pipeline of 7 stages containing approximately 40 agents in total. Stage 1 of 7: FOUNDATION. It hands off a CaseFoundation payload to the next stage. Stage 2 of 7: DISCOVERY. It hands off a DiscoveryPlan payload to the next stage. Stage 3 of 7: MOTION PRACTICE. It hands off a MotionSet payload to the next stage. Stage 4 of 7: HEARING PREP. It hands off a HearingBrief payload to the next stage. Stage 5 of 7: DEPOSITION. It hands off a DepositionPlan payload to the next stage. Stage 6 of 7: EXPERTS. It hands off a ExpertReport payload to the next stage. Stage 7 of 7: FINAL STRATEGY. Each arrow between stages is a typed, schema-validated contract rather than free text.

~40 agents across seven stages

7
pipeline stages
~40
specialized agents
6
typed handoff contracts

How it holds together

On the contracts

Every handoff is a Pydantic-validated schema with explicit status enums and mandatory evidence citations — which is what makes ~40 agents agree with each other.

On the providers

Each stage routes across Claude, Gemini, and OpenAI with automatic failover.

On cost

Shared case context is cached with a stable prefix and memoized per session rather than re-read per agent — roughly 60% of token spend.

The handoff contracts

Agents cannot pass prose to each other. Every stage boundary is a validated schema with explicit status enums and mandatory evidence citations, so disagreement fails at the seam instead of compounding downstream.

  • CaseFoundationFOUNDATIONDISCOVERY
  • DiscoveryPlanDISCOVERYMOTION PRACTICE
  • MotionSetMOTION PRACTICEHEARING PREP
  • HearingBriefHEARING PREPDEPOSITION
  • DepositionPlanDEPOSITIONEXPERTS
  • ExpertReportEXPERTSFINAL STRATEGY

This pipeline is one of two NDA projects. Read the full project breakdown →