Independent portfolio demonstration. All data is synthetic. Not affiliated with, or endorsed by, any financial institution.
Architecture
A single investigation, from the analyst's click to the stored assessment.
Next.js workspace
Analyst-facing application: case investigation, evidence graph, review actions, evaluation and operations views.
FastAPI service
Typed HTTP boundary, request validation, serialisation and the audit trail. Holds no model logic.
LangGraph investigation graph
Stateful workflow over the agents, with conditional routing, per-step failure handling and a mandatory human review gate at the end.
Reusable AI capabilities
Planning, evidence extraction, risk analysis, policy retrieval, challenge, verification, synthesis and Q&A. Domain-agnostic.
Deterministic controls
Grounding verification, cross-reference integrity, the uncertainty model and the scoring engine. No model call happens in this layer.
Retrieval and storage
Structure-aware chunking, embeddings and hybrid BM25 plus vector search over SQLite or Postgres with pgvector.
Observability and evaluation
Step traces, token and cost accounting, override metrics and a reproducible evaluation harness.
Domain-agnostic. None of these contains counterparty-review logic.
| Capability | Prompt | Scope |
|---|---|---|
| Intake & Planning | intake_planner | reusable |
| Evidence Extraction | evidence_extractor | reusable |
| Risk Specialist | risk_specialist | reusable |
| Policy Analyst | policy_analyst | reusable |
| Challenger | challenger | reusable |
| Evidence Verifier | evidence_verifier | reusable |
| Risk Synthesis | risk_synthesis | reusable |
| Scoring & Integrity | no model call | reusable |
Scoring runs no model at all: it consolidates the agents' ordinal judgements into a rating using arithmetic a risk committee could audit on paper.
What the system does not trust the model to get right on its own.
Every extracted quote is re-matched against the stored source chunk. Unlocatable quotes are discarded before any downstream agent sees them.
Findings, challenges and verifications may only cite evidence that survived grounding. Unknown ids are stripped and recorded.
Agent output is validated against a Pydantic model, with the validation error fed back on retry. A step that never validates fails visibly.
The overall rating is computed from findings, policy triggers, verification outcomes and coverage - never generated as text.
Document content is delimited and labelled as untrusted data in every prompt. Backed by evaluation cases, because prompt-level defence alone is not sufficient.
The graph terminates at review. No code path completes an assessment without a recorded human decision.
The claim that ARGUS is a platform is only credible if the seam is visible. It is: one domain is built, three are scoped and labelled as such.
Implemented
Periodic review of a corporate counterparty's financial resilience, governance, operational dependencies and technology risk, against the internal counterparty risk framework.
6 expected evidence categories · 3 escalation rules · 4 policy documents
Design-stage extensions
These are scoped, not built. They appear here to show where the seam is — a new review type is a configuration plus a policy library, not a fork of the pipeline — and they are labelled so nobody mistakes them for finished functionality.
Identity, ownership and sanctions review at onboarding. Reuses ingestion, retrieval, verification, review and audit unchanged; needs a beneficial-ownership schema and a sanctions-screening tool.
Internal review against a regulatory obligation. The Challenger and Verifier carry over directly; the policy layer would point at an obligations register rather than an internal framework.
Assessment of an outsourcing or technology vendor. Closest to the implemented domain: the same categories with different thresholds and a service-continuity evidence set.
Version 1.4.0. Every prompt is versioned and its reference is recorded on each step, so an evaluation result can be attributed to an exact instruction set.
| Prompt | Version |
|---|---|
intake_planner | 1.2.0 |
evidence_extractor | 1.4.0 |
risk_specialist | 1.4.0 |
policy_analyst | 1.4.0 |
challenger | 1.4.0 |
evidence_verifier | 1.3.0 |
risk_synthesis | 1.3.0 |
ask_argus | 1.2.0 |
challenge_on_demand | 1.1.0 |
What is actually executing behind this deployment.
Running the local lexical vectoriser. Retrieval matches on term overlap rather than meaning; configure an embedding backend for semantic search.