Multi-agent AI system that analyzes Suspicious Activity Reports (SARs) to reduce false-positive escalations, by simulating a compliance review committee through investigator, compliance, behavioral, and adversarial reasoning agents.
Financial institutions generate large volumes of SARs, and manual review is slow and inconsistent, leading to over-escalation of low-risk activity. ConclaveAI addresses this by running a SAR narrative through a "committee" of specialized LLM agents that debate the case from different angles before a final arbiter issues an explainable risk verdict — mirroring how a real compliance review board reasons through a case.
A SAR (PDF or raw text) is ingested and passed through a sequential agent pipeline orchestrated with LangGraph:
- Financial Investigator — analyzes transaction patterns, entities, and flow of funds
- Compliance Officer — checks findings against regulatory guidance (e.g. FATF, FinCEN)
- Behavioral Analyst — flags anomalous account/customer behavior
- Devil's Advocate — builds counter-arguments and stress-tests the emerging consensus
- Risk Arbiter — synthesizes all findings into a final risk score, suspicion level, and recommendation
Each agent's output streams to the frontend in real time over Server-Sent Events, so the review can be watched turn-by-turn instead of waiting on a single black-box response.
- Agent orchestration — LangGraph coordinates the five-agent reasoning pipeline and shared state
- LLM inference — local models served via Ollama, keeping SAR data on-premises rather than sent to a third-party API
- Retrieval — ChromaDB vector store for grounding agents in relevant regulatory/context knowledge during analysis
- Backend — FastAPI service exposing PDF ingestion, entity extraction, streaming analysis, case management, audit logging, and governance endpoints
- Frontend — Next.js + TypeScript dashboard (Live Monitor, Case Files, Audit Ledger, Oversight) for reviewing agent reasoning and outcomes
conclave_backend/
├── api/main.py # FastAPI app: SAR upload, streaming analysis, cases, audit, governance
└── services/
├── pdf_ingestion.py # PDF → clean text (PyMuPDF)
├── entity_extractor.py # Persons, orgs, accounts, jurisdictions, relationships (regex + spaCy)
└── streaming_runner.py # Drives the 5-agent LangGraph pipeline, emits SSE events
ConclaveAI-Frontend-main/
└── src/pages/dashboard/
├── live-monitor/ # Real-time view of the agent committee working a case
├── case-files/ # Saved case history
├── audit-ledger/ # Immutable, hash-chained log of every agent/analyst action
└── oversight/ # Governance metrics: bias audit, factual consistency, regulatory adherence
- Explainable risk scoring — every verdict is backed by the individual findings of each agent, not a single opaque score
- Entity & relationship graph — auto-extracts persons, organizations, accounts, jurisdictions, and amounts from the SAR narrative and maps them into a network graph, with high-risk jurisdictions flagged automatically
- Adversarial review — a dedicated agent argues against escalation, surfacing weaker cases before they reach a human reviewer
- Live streaming analysis — agent-by-agent progress via SSE instead of a single blocking call
- Audit trail — every document upload, agent completion, and analyst decision (confirm/override/escalate) is logged with a verification hash
- Governance dashboard — bias audit (override rate), factual consistency, and regulatory adherence tracked from real case history
| Layer | Technology |
|---|---|
| Agent orchestration | LangGraph |
| LLM inference | Ollama (local models) |
| Vector retrieval | ChromaDB |
| Backend API | FastAPI (Python) |
| PDF parsing | PyMuPDF |
| NER / entity extraction | spaCy (regex fallback) |
| Frontend | Next.js, React, TypeScript, Tailwind CSS |
- Python 3.10+
- Node.js 18+
- Ollama installed with a local model pulled (e.g.
ollama pull llama3)
cd conclave_backend
pip install -r requirements.txt
uvicorn api.main:app --reload --port 8000cd ConclaveAI-Frontend-main
npm install
npm run devVisit http://localhost:3000 for the dashboard; the API runs on http://localhost:8000.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Ollama + backend status |
| POST | /api/upload-pdf |
Extract text from an uploaded SAR PDF |
| POST | /api/extract-entities |
Extract entity graph data from SAR text |
| POST | /api/analyze |
Stream the 5-agent analysis over SSE |
| GET / POST | /api/cases |
List / save analyzed cases |
| PATCH | /api/cases/{id}/status |
Confirm, override, or escalate a case |
| GET | /api/audit-log |
Retrieve the audit trail |
| GET | /api/governance |
Bias, factual consistency, and regulatory metrics |