Skip to main content

AI Compliance Agents

The compliance AI system includes two agents that work together to reduce manual review burden: the Case Investigation Agent and the Match Verification Agent. Together, they can auto-resolve 50–70% of compliance cases that would otherwise require manual analyst review.

Agents Overview​

AgentPurposeAuto-Resolution Target
Case InvestigationInvestigates ReviewRequired cases by analyzing transaction patterns, customer history, and contextual signals50–70% of review cases
Match VerificationEvaluates screening matches using Bayesian confidence scoring to distinguish true positives from false positives60–80% of screening matches

Case Investigation Agent​

When a transaction or customer screening produces a ReviewRequired status, the Case Investigation Agent evaluates the case automatically.

How It Works​

Case Status: ReviewRequired
│
▼
Case Investigation Agent
├── Analyze transaction patterns
├── Check customer risk history
├── Evaluate geographic risk signals
├── Cross-reference related cases
│
▼
Decision
├── AUTO_CLEARED (low risk confirmed)
├── NEEDS_REVIEW (insufficient confidence)
└── AUTO_ESCALATED (high risk confirmed)

Decision Factors​

FactorWeightDescription
transaction_pattern0.25Deviation from customer's normal behavior
customer_risk_profile0.20Historical risk level and previous alerts
geographic_risk0.20Source/destination country risk rating
counterparty_risk0.15Known counterparty risk signals
amount_anomaly0.10Statistical deviation from typical amounts
temporal_pattern0.10Unusual timing or frequency patterns

Example case decision:

{
"case_id": "case-uuid",
"agent": "case_investigation",
"decision": "AUTO_CLEARED",
"confidence": 0.93,
"factors": {
"transaction_pattern": { "score": 0.95, "note": "Consistent with regular supplier payment pattern" },
"customer_risk_profile": { "score": 0.90, "note": "Low-risk customer, no previous alerts" },
"geographic_risk": { "score": 0.88, "note": "Domestic transfer, low-risk jurisdiction" },
"counterparty_risk": { "score": 0.97, "note": "Known counterparty, established relationship" },
"amount_anomaly": { "score": 0.92, "note": "Within 1 std deviation of monthly average" },
"temporal_pattern": { "score": 0.96, "note": "Regular business hours, consistent frequency" }
},
"reasoning": "Low-risk domestic transfer to established counterparty. Transaction pattern consistent with regular supplier payments over 12-month history.",
"processed_at": "2026-04-07T14:30:00Z"
}

Match Verification Agent​

The Match Verification Agent uses Bayesian confidence scoring to evaluate screening matches against sanctions lists, PEP databases, and adverse media sources.

Bayesian Confidence Scoring​

Instead of relying solely on string similarity, the agent considers prior probability and multiple evidence signals:

P(true_match | evidence) = P(evidence | true_match) * P(true_match)
────────────────────────────────────────
P(evidence)

Evidence signals evaluated:

SignalDescription
name_similarityFuzzy string match score (Jaro-Winkler, Levenshtein)
date_of_birthDOB match or near-match
nationalityCountry of nationality match
id_numbersGovernment ID number match
known_aliasesMatch against known aliases
associated_entitiesConnections to other matched entities

Example match evaluation:

{
"match_id": "match-uuid",
"agent": "match_verification",
"decision": "FALSE_POSITIVE",
"bayesian_confidence": 0.03,
"prior_probability": 0.001,
"evidence": {
"name_similarity": { "score": 0.82, "note": "Common name, high base rate of coincidental matches" },
"date_of_birth": { "match": false, "note": "DOB differs by 15 years" },
"nationality": { "match": false, "note": "Different nationality" },
"id_numbers": { "match": false, "note": "No matching ID numbers" }
},
"reasoning": "Name similarity is moderate but all secondary identifiers (DOB, nationality, ID) do not match. Bayesian posterior probability of true match is 3%."
}
note

The Bayesian approach significantly reduces false positives compared to name-only matching. A match with 85% string similarity but no corroborating evidence (DOB, nationality) will correctly score as a likely false positive.

Enable the Agents​

Configure both compliance agents via the API.

Case Investigation Agent​

PUT /api/v1/ai/agents/case_investigation/config
curl -X PUT https://sandbox.korastratum.com/api/v1/compliance/ai/agents/case_investigation/config \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: demo_bank" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"mode": "autonomous",
"auto_clear_threshold": 0.90,
"auto_escalate_threshold": 0.85,
"max_daily_auto_decisions": 200,
"excluded_risk_levels": ["CRITICAL"],
"require_dual_signal": true
}'

Match Verification Agent​

PUT /api/v1/ai/agents/match_verification/config
{
"enabled": true,
"mode": "autonomous",
"false_positive_threshold": 0.10,
"true_positive_threshold": 0.80,
"require_secondary_identifier": true,
"max_daily_auto_decisions": 500
}

Configuration Options​

FieldTypeDescription
enabledbooleanEnable or disable the agent
modestringshadow (observe only) or autonomous (take action)
auto_clear_thresholdnumberMinimum confidence to auto-clear a case
auto_escalate_thresholdnumberMinimum risk confidence to auto-escalate
false_positive_thresholdnumberBelow this Bayesian score, mark as false positive
true_positive_thresholdnumberAbove this Bayesian score, mark as true positive
max_daily_auto_decisionsintegerSafety cap on autonomous decisions per day
excluded_risk_levelsstring[]Risk levels that always require human review
require_dual_signalbooleanRequire at least 2 corroborating signals for auto-clear
require_secondary_identifierbooleanRequire non-name identifier match for true positive
warning

CRITICAL risk level cases should always require human review. We recommend keeping this in excluded_risk_levels even in autonomous mode.

Agent Performance Metrics​

GET /api/v1/ai/agents/performance

Response:

{
"case_investigation": {
"enabled": true,
"mode": "autonomous",
"last_30_days": {
"cases_processed": 3420,
"auto_cleared": 2052,
"auto_escalated": 171,
"sent_to_human": 1197,
"auto_resolution_rate": 0.65,
"accuracy_vs_human_baseline": 0.97
}
},
"match_verification": {
"enabled": true,
"mode": "autonomous",
"last_30_days": {
"matches_processed": 8940,
"false_positives_cleared": 6258,
"true_positives_flagged": 894,
"sent_to_human": 1788,
"auto_resolution_rate": 0.80,
"accuracy_vs_human_baseline": 0.96
}
}
}

Next Steps​