Work / AI Systems

ADDE: adversarial due-diligence engine

Cross-vendor M&A diligence: per-provider agent swarms whose findings a council of provider representatives arbitrates.

Status
explored
Role
Solo: specified and directed OpenAI Codex
Timeline
May 2026 →
  • Python
  • asyncio
  • pydantic v2
  • LiteLLM
  • httpx
  • pytest
  • Docker

TL;DR

  • The most literal version of “a council of models from different labs”: each provider runs its own agent swarm over a virtual data room, and a council with one representative per provider arbitrates.
  • A risk claim that only one provider raised, without evidence, gets dropped. A red-team tier can reject the result and send the graph back around.
  • I wrote the spec and directed OpenAI’s Codex agent through the build in one long session.

What I built

Each provider’s swarm works the data room department by department. A team captain distills the swarm’s majority-backed findings into a strict pydantic “platter” of risk claims. A Grand Council, with one representative per provider, compares the platters and drops single-provider claims that arrive without evidence. An external-evidence tier checks what’s left against SEC EDGAR filings, NIST NVD vulnerabilities and CourtListener dockets, and degrades gracefully when a source doesn’t answer.

Departments run in parallel through LiteLLM, with per-provider concurrency caps and exponential backoff. The container runs as non-root with the data room mounted read-only.

What the live run showed

The mock-mode test suite passed. The first live run across several providers exited cleanly, but it wasn’t a clean result. Every department logged provider errors (unsupported response formats, rate limits), not every department produced valuation figures, and the financial desk missed a receivable trap planted in the data room.

That’s the lesson I carried forward: voting between models only helps when the votes are real and the facts underneath are checked by code. Concord and AccountWard both put deterministic verification under the model layer.

Status

Explored. It passed in mock mode only, and the last change (per-provider semaphores) was never re-run live.

m.mittal
Home
Work
Research
Lab
About
Experience
Now
Résumé
Uses
Colophon
Contact
AccountWardin-build
Redlbuilt
The Councilresearch
BEMAresearch
EXIT LIQUIDITYin-build
NEXUSarchived
Warrant + Forgebuilt
Concordarchived
BlueCollarPalin-build
Chispenbuilt
Warrant Portalbuilt
JobAppin-build
Night/Dayexplored
BLACKSITE: NULLin-build
SlugBitesbuilt
Riptidebuilt
AeroBitesarchived
Internbuilt
CAD & 3D printingexplored
ForgeCouncilexplored
ADDE: adversarial due-diligence engineexplored
Model routing in practiceexplored
AI due-diligence market mapexplored
Quorumarchived
Colossus Wakeexplored
FitFindrbuilt
Project Omniexplored
Oblivionexplored
MeetWisebuilt
EyeOSexplored
LinkLeap AIexplored
Up-Toexplored
Offline speech-to-notes (Java)explored
AI-assisted game production pipelineexplored
COLLAPSEarchived
THE TRIALSarchived
EcoNodearchived
ESP32-S3 / LoRa benchexplored
CleanPlaybuilt
Rezonyrbuilt
Habit Tracker Telegram Botbuilt
Job Board Aggregatorin-build
Visual Hand Trackbuilt
CLI Task Trackerbuilt
All work44 entries
Can’t Hallucinate, Can Still Be Wrong: Calibration of a Typed-Decision Model Under Input Noisepaper
Disagreement as Signal: A Hybrid Multi-Agent and Council Architecture for Error Detection in LLM Systemspaper
Killing Good Ideasessay
Uncorrelated Failure Modesessay
ADDE: adversarial due-diligence engineexplored
AI due-diligence market mapexplored
AI-assisted game production pipelineexplored
Aura Chatexplored
Colossus Wakeexplored
EcoNodearchived
ESP32-S3 / LoRa benchexplored
EyeOSexplored
FitFindrbuilt
ForgeCouncilexplored
LinkLeap AIexplored
MeetWisebuilt
Model routing in practiceexplored
Offline speech-to-notes (Java)explored
Oblivionexplored
Print benchexplored
Project Omniexplored
Provably-fair outcome enginebuilt
Quorumarchived
Up-Toexplored
Copy hello@mitanshm.com
Switch theme
Play motion
RésuméPDF
Open GitHub ↗mit37
Open LinkedIn ↗
Toggle layout gridh
Toggle single-key shortcuts/ h