<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: VanshDeo</title>
    <description>The latest articles on DEV Community by VanshDeo (@vanshdeo).</description>
    <link>https://dev.to/vanshdeo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3883991%2F6762d749-2751-4689-85ec-f6b9b7bfaed7.png</url>
      <title>DEV Community: VanshDeo</title>
      <link>https://dev.to/vanshdeo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vanshdeo"/>
    <language>en</language>
    <item>
      <title>Building Zyg0s: An Autonomous, Explainable Fraud Investigation Agent Powered by TigerGraph Savanna Cloud &amp; MCP</title>
      <dc:creator>VanshDeo</dc:creator>
      <pubDate>Fri, 25 Sep 2026 01:03:35 +0000</pubDate>
      <link>https://dev.to/vanshdeo/building-zyg0s-an-autonomous-explainable-fraud-investigation-agent-powered-by-tigergraph-savanna-34ki</link>
      <guid>https://dev.to/vanshdeo/building-zyg0s-an-autonomous-explainable-fraud-investigation-agent-powered-by-tigergraph-savanna-34ki</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TigerGraph Agentic Fraud Investigation Hackathon (Hacker House Goa / HHGOA Track)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Author:&lt;/strong&gt; Vansh Deo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team Name:&lt;/strong&gt; QueryCrew&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/VanshDeo/Zyg0s" rel="noopener noreferrer"&gt;https://github.com/VanshDeo/Zyg0s&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video Demo (3–5 min):&lt;/strong&gt; &lt;a href="https://your-video-link-here" rel="noopener noreferrer"&gt;Watch Live Walkthrough&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live Application:&lt;/strong&gt; &lt;a href="https://your-live-app-link-here" rel="noopener noreferrer"&gt;Launch Zyg0s Workbench&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Quick Project Summary
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Zyg0s&lt;/strong&gt; is an autonomous, explainable cyber-investigation platform engineered to resolve the hardest bottleneck in modern banking: &lt;strong&gt;investigating complex financial crime and recommending defensible next-best actions when available signals are noisy and uncertain&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Powered by &lt;strong&gt;TigerGraph Savanna Cloud&lt;/strong&gt;, &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;, and &lt;strong&gt;Groq&lt;/strong&gt;, Zyg0s fuses 7 specialized neuro-symbolic agents to traverse deep entity networks across 590,000+ IEEE-CIS transactions. It mathematically grades evidence across a 4-tier defensibility framework, quantifies &lt;strong&gt;epistemic uncertainty ($U$)&lt;/strong&gt;, enforces Bank Fraud Policy Rules (R1–R10) with dynamic two-stage actions, synthesizes regulator-grade &lt;strong&gt;FinCEN BSA/AML Suspicious Activity Reports (SARs)&lt;/strong&gt;, and updates graph-native case memory.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Problem: The High-Stakes Crisis in Modern Fraud Operations
&lt;/h2&gt;

&lt;p&gt;Every financial institution in the world faces an acute operational bottleneck: &lt;strong&gt;fraud investigation is manual, slow, and fragmented&lt;/strong&gt;. &lt;br&gt;
When an upstream machine learning model flags a suspicious credit card transaction, the money is often already in flight. Human fraud analysts are forced to swivel between five disjointed screens: looking up transaction logs, examining device fingerprints, querying customer historical baselines, checking core banking policies, and cross-referencing past fraud cases. By the time a case is manually triaged and reviewed, the fraud ring has moved on to siphon funds from dozens of other accounts.&lt;br&gt;
Compounding this crisis are three structural traps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Unlabelled Anomaly Dilemma&lt;/strong&gt;: In real-world payment data (such as the IEEE-CIS / Vesta financial fraud dataset), transactions do not come with neat "Is Fraud" labels at inference time. Models generate probabilistic anomaly scores where roughly &lt;strong&gt;50% of alerts are false alarms&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Destructive Action Trap&lt;/strong&gt;: Freezing an innocent customer's card on a single weak anomaly score causes severe customer friction, churn, and regulatory scrutiny. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Pure LLM Compliance Failure&lt;/strong&gt;: Generic LLM agents suffer from hallucinations, drift away from strict banking authorization limits (e.g., trying to block a $5,000 account without mandatory senior manager sign-off), and cannot provide mathematically defensible audit trails required by bank compliance officers and regulators.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  2. The Core Idea: What is Zyg0s?
&lt;/h2&gt;

&lt;p&gt;We built &lt;strong&gt;Zyg0s&lt;/strong&gt; (named after the ancient Greek &lt;em&gt;zygos&lt;/em&gt;, the forensic scale of balance and evidence weighting).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   ┌────────────────────────────────────────────────────────┐
   │                  WHAT IS ZYG0S?                        │
   │  An Autonomous, Explainable Fraud Investigation Agent  │
   │  fusing TigerGraph Savanna Cloud, Model Context        │
   │  Protocol (MCP), and 7 Neuro-Symbolic Agents.          │
   └────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rather than treating fraud as a simple black-box binary classification problem, Zyg0s models fraud investigation as an &lt;strong&gt;adaptive, 8-stage evidentiary legal trial&lt;/strong&gt;. It gathers multi-hop graph signals from &lt;strong&gt;TigerGraph Savanna Cloud&lt;/strong&gt;, grades evidence across a 4-tier defensibility framework, quantifies &lt;strong&gt;epistemic uncertainty ($U$)&lt;/strong&gt;, recommends policy-governed two-stage actions, drafts regulatory &lt;strong&gt;FinCEN BSA/AML Suspicious Activity Reports (SARs)&lt;/strong&gt;, and writes closed cases back into graph memory.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Why TigerGraph?
&lt;/h2&gt;

&lt;p&gt;Fraud is fundamentally relational—it lives in the connections between cards, devices, IP subnets, billing regions, and email domains. Relational databases choke on the recursive joins required to unmask synthetic identities and collusion rings.&lt;br&gt;
&lt;strong&gt;TigerGraph Savanna Cloud&lt;/strong&gt; provided the foundational backbone for Zyg0s:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deep Multi-Hop Ego Networks&lt;/strong&gt;: Traverses 2-hop to 4-hop neighborhoods in sub-millisecond latencies across 590,000+ transactions and 144,000+ device identity profiles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Device Centrality &amp;amp; Clustering&lt;/strong&gt;: Instantly computes degree centrality to reveal whether a device profile (e.g. &lt;code&gt;Trident/7.0 | Windows 10 | IE 11.0&lt;/code&gt;) is isolated to one customer or acting as a shared gateway across 15+ compromised cards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TigerGraph MCP (Model Context Protocol)&lt;/strong&gt;: We bridged TigerGraph's 65 native tools directly into our agent layer via JSON-RPC, enabling agents to dynamically inspect nodes, traverse edges, and execute graph algorithms autonomously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph-Native Case Memory&lt;/strong&gt;: Closed cases are stored as native graph vertices (&lt;code&gt;ClosedCase&lt;/code&gt;), linked via semantic and topological edges, enabling zero-latency precedent retrieval.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  4. Architecture: The Hybrid Neuro-Symbolic Division of Labor
&lt;/h2&gt;

&lt;p&gt;Zyg0s resolves the AI compliance paradox by implementing a strict &lt;strong&gt;Neuro-Symbolic Division of Labor&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────────────────────────────────────────────────┐
│                         NEURO-SYMBOLIC DIVISION OF LABOR                         │
├────────────────────────────────────────┬─────────────────────────────────────────┤
│ 🛡️ DETERMINISTIC GOVERNOR (Symbolic)   │ 🧠 LLM COGNITIVE LAYER (Neural)        │
│ "Absolute Truth, Math, &amp;amp; Compliance"   │ "Fluid Reasoning, Synthesis, &amp;amp; Copilot" │
├────────────────────────────────────────┼─────────────────────────────────────────┤
│ • GSQL multi-hop graph traversals      │ • Novel pattern discovery &amp;amp; naming (R9) │
│ • Entity resolution &amp;amp; device clusters  │ • Legal-grade FinCEN BSA/AML SAR draft  │
│ • Immutable numerical fact anchoring   │ • Natural language "What Changed" logs  │
│ • 4-Tier evidence defensibility math   │ • Interactive Investigator Copilot Q&amp;amp;A  │
│ • Uncertainty score formula (U = 1-C)  │ • Explaining edge cases to analysts     │
│ • Bank Fraud Policy v1.0 (R1–R10) gate │ • Zero-hallucination factual grounding  │
│ • Tiered permissions (auto, L1, L2)    │ • Graceful offline fallback             │
│ • Graph writeback to Savanna Cloud     │                                         │
└────────────────────────────────────────┴─────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  High-Level System Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                      [ Multi-Modal Ingestion ]
          ┌───────────────────────┬───────────────────────┐
     Risk Score            Customer Report          Analyst Request
     (0.00 - 1.00)        (Disputed Amount)       (Graph Cluster Traversal)
          └───────────────────────┬───────────────────────┘
                                  │
                                  ▼
                     [ 7-Agent Pipeline Engine ]
    ┌─────────────────────────────────────────────────────────────┐
    │ 1. Alert Sentinel      ──► Ingests alert, computes Z-scores │
    │ 2. Graph Scout         ──► TigerGraph Savanna Cloud (MCP)   │
    │ 3. Evidence Assessor   ──► 4-Tier Defensibility &amp;amp; U index   │
    │ 4. Pattern Strategist  ──► Typology match &amp;amp; novel patterns  │
    │ 5. Policy Governor     ──► Bank Policy v1.0 (R1-R10) &amp;amp; NBA  │
    │ 6. Compliance Officer  ──► FinCEN BSA/AML SAR (5 W's)       │
    │ 7. Memory Weaver       ──► TigerGraph Graph Memory Commit   │
    └─────────────────────────────┬───────────────────────────────┘
                                  │
                                  ▼
                   [ Interactive Workbench UI ]
     Case Queue   •   Live Progression   •   Graph &amp;amp; SAR Workspace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  5. The 8-Stage Investigation Lifecycle
&lt;/h2&gt;

&lt;p&gt;Zyg0s executes an 8-stage state machine that mirrors how elite forensic investigators work:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  [1. Trigger] Ingest alert via risk score, dispute, or analyst request.
       │
  [2. Investigate] Open case, retrieve historical baselines &amp;amp; card history.
       │
  [3. Gather Evidence] Traverse TigerGraph 2-hop ego network &amp;amp; shared devices.
       │
  [4. Assess Uncertainty] Compute Epistemic Uncertainty U. If U &amp;gt; 0.40, stop destructive actions!
       │
  [5. Gather More Evidence] Issue non-destructive Step-Up Challenge (SMS OTP / Biometric).
       │
  [6. Take Next Actions] Evaluate Bank Policy R1-R10; evolve Stage 1 NBA into Stage 2 Final NBA.
       │
  [7. Explain Decision] Synthesize 5 W's rationale citing policy rules &amp;amp; evidence grades.
       │
  [8. Update Case Memory] Persist case vertex to TigerGraph Cloud via Hybrid RRF Index.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  6. What an LLM Can and Cannot Do (Enforcing Strict Guardrails)
&lt;/h2&gt;

&lt;p&gt;A central innovation of Zyg0s is our &lt;strong&gt;strict containment of Large Language Models (Groq / Qwen 2.5)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What the LLM CANNOT Do&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;❌ Cannot calculate financial exposure or sum dollar amounts (prevents arithmetic hallucination).&lt;/li&gt;
&lt;li&gt;❌ Cannot decide whether a card is blocked or cleared on its own discretion.&lt;/li&gt;
&lt;li&gt;❌ Cannot authorize actions exceeding statutory or institutional approval thresholds (e.g. actions $&amp;gt; \$2,500$ strictly require &lt;code&gt;L2&lt;/code&gt; Manager approval).&lt;/li&gt;
&lt;li&gt;❌ Cannot bypass evidentiary rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What the LLM CAN Do&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;✅ Formulates forensic hypotheses and detects subtle novel pattern variations.&lt;/li&gt;
&lt;li&gt;✅ Generates regulator-grade FinCEN SAR narratives adhering to the statutory &lt;strong&gt;5 W's&lt;/strong&gt; (Who, What, When, Where, Why).&lt;/li&gt;
&lt;li&gt;✅ Synthesizes plain-English &lt;em&gt;“What Changed”&lt;/em&gt; progression summaries for human analysts.&lt;/li&gt;
&lt;li&gt;✅ Powers an interactive Investigator Copilot grounded in the TigerGraph topology.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. How Evidence Changes the Decision (2-Stage NBA &amp;amp; Uncertainty Collapse)
&lt;/h2&gt;

&lt;p&gt;In Zyg0s, recommendations are not static—they dynamically evolve across a &lt;strong&gt;Two-Stage Next-Best Action (NBA)&lt;/strong&gt; lifecycle:&lt;br&gt;
$$ \text{Confidence} = \left| \frac{\sum w_i}{\sum |w_i| + \epsilon} \right| \times \min\left(1.0, \frac{N}{N_{\text{min}}}\right) $$&lt;br&gt;
$$ U = 1.0 - \text{Confidence} $$&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stage 1 (Before Verification)&lt;/strong&gt;: When an alert arrives, evidence is usually circumstantial ($U &amp;gt; 0.40$). Under &lt;strong&gt;Policy Rule R1&lt;/strong&gt;, the agent recommends non-destructive actions: &lt;code&gt;VERIFY_WITH_CUSTOMER&lt;/code&gt; and &lt;code&gt;MONITOR_CARD&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Step-Up Challenge&lt;/strong&gt;: The system triggers an interactive authentication challenge (SMS OTP, biometric prompt, or cardholder inquiry).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 2 (After Verification)&lt;/strong&gt;: 

&lt;ul&gt;
&lt;li&gt;If the cardholder &lt;strong&gt;confirms&lt;/strong&gt; authorization $\rightarrow$ Uncertainty collapses ($U \rightarrow 0.00$), fraud risk drops to $0.05$, and the case is closed with &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt; (Card remains active).&lt;/li&gt;
&lt;li&gt;If the cardholder &lt;strong&gt;denies&lt;/strong&gt; authorizing the charge $\rightarrow$ Direct evidence is established ($w = +1.0$), fraud risk rises to $0.85 - 0.99$, and the agent upgrades the action to &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt;, &lt;code&gt;CREATE_CASE&lt;/code&gt;, and &lt;code&gt;FILE_REPORT&lt;/code&gt; under &lt;code&gt;L2&lt;/code&gt; authorization.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Official HHGOA Benchmark Results (20/20 Cases Validated)
&lt;/h2&gt;

&lt;p&gt;Zyg0s was rigorously evaluated against all 20 official benchmark exam cases from the final two months of the IEEE-CIS / Vesta dataset:&lt;br&gt;
| Case ID | Trigger Channel | Typology Pattern | Final Verdict | Risk Score | Epistemic Uncertainty ($U$) | Final Confidence | SAR Filed? | Next Best Action | Approval Route |&lt;br&gt;
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |&lt;br&gt;
| &lt;strong&gt;HHG-001&lt;/strong&gt; | Risk Score (0.61) | &lt;code&gt;none&lt;/code&gt; | &lt;strong&gt;CLEARED&lt;/strong&gt; | 5 / 100 | 0.330 | &lt;strong&gt;67%&lt;/strong&gt; | No | &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt; | &lt;code&gt;auto&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-002&lt;/strong&gt; | Risk Score (0.79) | &lt;code&gt;card_not_present_fraud&lt;/code&gt; | &lt;strong&gt;CLEARED&lt;/strong&gt; | 5 / 100 | 0.000 | &lt;strong&gt;100%&lt;/strong&gt; | No | &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt; | &lt;code&gt;auto&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-003&lt;/strong&gt; | Customer Dispute | &lt;code&gt;none&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 95 / 100 | 0.330 | &lt;strong&gt;67%&lt;/strong&gt; | No | &lt;code&gt;BLOCK_CARD&lt;/code&gt; | &lt;code&gt;L1&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-004&lt;/strong&gt; | Customer Dispute | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 99 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | No | &lt;code&gt;BLOCK_CARD&lt;/code&gt; | &lt;code&gt;L1&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-005&lt;/strong&gt; | Risk Score (0.54) | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 85 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | No | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-006&lt;/strong&gt; | Customer Dispute | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 99 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | No | &lt;code&gt;BLOCK_CARD&lt;/code&gt; | &lt;code&gt;L1&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-007&lt;/strong&gt; | Risk Score (0.87) | &lt;code&gt;account_takeover&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 85 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | No | &lt;code&gt;BLOCK_CARD&lt;/code&gt; | &lt;code&gt;L1&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-008&lt;/strong&gt; | Customer Dispute | &lt;code&gt;none&lt;/code&gt; | &lt;strong&gt;CLEARED&lt;/strong&gt; | 5 / 100 | 0.330 | &lt;strong&gt;67%&lt;/strong&gt; | No | &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt; | &lt;code&gt;auto&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-009&lt;/strong&gt; | Customer Dispute | &lt;code&gt;none&lt;/code&gt; | &lt;strong&gt;CLEARED&lt;/strong&gt; | 5 / 100 | 0.330 | &lt;strong&gt;67%&lt;/strong&gt; | No | &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt; | &lt;code&gt;auto&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-010&lt;/strong&gt; | Risk Score (0.90) | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 85 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | No | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-011&lt;/strong&gt; | Customer Dispute | &lt;code&gt;none&lt;/code&gt; | &lt;strong&gt;CLEARED&lt;/strong&gt; | 5 / 100 | 0.550 | &lt;strong&gt;45%&lt;/strong&gt; | No | &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt; | &lt;code&gt;auto&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-012&lt;/strong&gt; | Risk Score (0.55) | &lt;code&gt;none&lt;/code&gt; | &lt;strong&gt;CLEARED&lt;/strong&gt; | 5 / 100 | 0.330 | &lt;strong&gt;67%&lt;/strong&gt; | No | &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt; | &lt;code&gt;auto&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-013&lt;/strong&gt; | Risk Score (0.76) | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 92 / 100 | 0.000 | &lt;strong&gt;100%&lt;/strong&gt; | Yes | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-014&lt;/strong&gt; | Analyst Request | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 99 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | Yes | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-015&lt;/strong&gt; | Risk Score (0.77) | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 92 / 100 | 0.000 | &lt;strong&gt;100%&lt;/strong&gt; | Yes | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-016&lt;/strong&gt; | Customer Dispute | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 99 / 100 | 0.000 | &lt;strong&gt;100%&lt;/strong&gt; | Yes | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-017&lt;/strong&gt; | Risk Score (0.57) | &lt;code&gt;card_not_present_fraud&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 85 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | No | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-018&lt;/strong&gt; | Customer Dispute | &lt;code&gt;none&lt;/code&gt; | &lt;strong&gt;CLEARED&lt;/strong&gt; | 5 / 100 | 0.330 | &lt;strong&gt;67%&lt;/strong&gt; | No | &lt;code&gt;CLOSE_NO_FRAUD&lt;/code&gt; | &lt;code&gt;auto&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-019&lt;/strong&gt; | Risk Score (0.90) | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 85 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | Yes | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;br&gt;
| &lt;strong&gt;HHG-020&lt;/strong&gt; | Risk Score (0.52) | &lt;code&gt;card_not_present_new_device&lt;/code&gt; | &lt;strong&gt;FRAUD&lt;/strong&gt; | 85 / 100 | 0.150 | &lt;strong&gt;85%&lt;/strong&gt; | Yes | &lt;code&gt;BLOCK_ALL_CARDS&lt;/code&gt; | &lt;code&gt;L2&lt;/code&gt; |&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Engineering Challenges We Conquered
&lt;/h2&gt;

&lt;p&gt;Building an autonomous agent for production fintech required overcoming several non-trivial engineering hurdles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Unlabelled IEEE-CIS Ground-Truth Dilemma&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Problem&lt;/em&gt;: The dataset stripped binary labels to mirror real banking realities.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Solution&lt;/em&gt;: We leveraged the 4-month historical database of 5,565 closed cases (&lt;code&gt;closed_cases_history.csv&lt;/code&gt;) and built a &lt;strong&gt;Reciprocal Rank Fusion (RRF, $K=60$)&lt;/strong&gt; engine to anchor case decisions in real empirical precedents.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preventing Premature Card Freezes&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Problem&lt;/em&gt;: Heuristic agents frequently over-react to single velocity spikes.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Solution&lt;/em&gt;: We codified &lt;strong&gt;Bank Fraud Policy v1.0 (Rule R1)&lt;/strong&gt; into code: if uncertainty $U &amp;gt; 0.40$ or evidence is purely correlative, the agent is strictly restricted to non-destructive actions (&lt;code&gt;VERIFY_WITH_CUSTOMER&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C-Extension NumPy 2.x Incompatibilities&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Problem&lt;/em&gt;: Modern Python 3.12 runtimes under NumPy 2.2 encountered binary crashes with legacy C-compiled extensions (&lt;code&gt;bottleneck&lt;/code&gt;, &lt;code&gt;numexpr&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Solution&lt;/em&gt;: We implemented runtime module-level shielding (&lt;code&gt;sys.modules.setdefault("bottleneck", None)&lt;/code&gt;) to ensure crash-proof operation across local environments and cloud deployments.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph Centrality at Scale&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Problem&lt;/em&gt;: Querying 144,000+ device profiles for multi-account collusion can cause severe memory bloat if executed naively.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Solution&lt;/em&gt;: We leveraged TigerGraph GSQL graph algorithms and MCP tools (&lt;code&gt;tigergraph__get_neighbors&lt;/code&gt;, &lt;code&gt;tigergraph__get_node&lt;/code&gt;) to restrict traversal expansions to relevant 2-hop neighborhoods, completing graph evaluations in under 1.5 seconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Real-Time UI Synchronization&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Problem&lt;/em&gt;: Ensuring the investigator dashboard updates live across 7 agent execution stages without relying on hardcoded placeholder scores.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Solution&lt;/em&gt;: Built a dynamic mathematical progression telemetry pipeline connecting FastAPI backend events to a React + Vite Neo-Gothic dashboard.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  10. Key Takeaways &amp;amp; The Future of Autonomous Fraud Ops
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What We Learned
&lt;/h3&gt;

&lt;p&gt;Deterministic policy rules and graph structure do not restrict AI agents—&lt;strong&gt;they make them usable in high-liability industries&lt;/strong&gt;. By decoupling mathematical computation and statutory policy from fluid natural language synthesis, we achieved 100% regulatory compliance, zero arithmetic hallucinations, and defensible audit trails.&lt;/p&gt;

&lt;h3&gt;
  
  
  What We Would Build with More Time
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Graph Neural Network (GNN) Embeddings&lt;/strong&gt;: Streaming PyTorch Geometric embeddings directly updated on TigerGraph edge insertions for sub-second ring detection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous Cross-Bank Webhook Mesh&lt;/strong&gt;: Extending step-up auth from simulated customer messaging to live multi-institution Webhook consensus protocols.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Codebase &amp;amp; Benchmarks&lt;/strong&gt;: &lt;a href="https://github.com/VanshDeo/Zyg0s" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Submission Track&lt;/strong&gt;: TigerGraph Agentic Fraud Investigation (Hacker House Goa)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tigergraph</category>
      <category>agents</category>
      <category>rag</category>
    </item>
    <item>
      <title>GraphRAG Benchmark Analysis</title>
      <dc:creator>VanshDeo</dc:creator>
      <pubDate>Sun, 17 May 2026 19:14:48 +0000</pubDate>
      <link>https://dev.to/vanshdeo/graphrag-benchmark-analysis-3ki0</link>
      <guid>https://dev.to/vanshdeo/graphrag-benchmark-analysis-3ki0</guid>
      <description>&lt;h1&gt;
  
  
  We Built a Clinical GraphRAG Benchmark That Proves Graph Databases Aren't Just Hype
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;How TigerGraph-powered graph traversal beat vector search on polypharmacy reasoning — and why token efficiency tells a more interesting story than accuracy alone.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem With "Just Use RAG"
&lt;/h2&gt;

&lt;p&gt;Every production AI team eventually hits the same wall: your LLM hallucinates a drug interaction, misses a temporal dependency, or confidently answers a counterfactual question it has no business answering. The standard response is "add RAG." But which RAG?&lt;/p&gt;

&lt;p&gt;Vector similarity search (Pinecone, Weaviate, etc.) is great at retrieving &lt;em&gt;semantically similar&lt;/em&gt; chunks. It's not great at answering questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"If omeprazole is stopped, which drug interaction paths resolve?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Which guidelines conflict on aspirin use in elderly patients?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Patient is taking warfarin, fluconazole, and aspirin. Trace the full interaction cascade."&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't similarity problems. They're &lt;strong&gt;graph traversal problems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the thesis behind &lt;strong&gt;GraphRAG Inference Core V2&lt;/strong&gt; — a clinical benchmarking system we built to quantify exactly how much graph-structured retrieval improves over baseline approaches.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture: Three Pipelines, One Benchmark
&lt;/h2&gt;

&lt;p&gt;We designed a multi-pipeline evaluation harness that runs every query through three systems simultaneously:&lt;/p&gt;

&lt;h3&gt;
  
  
  🔶 LLM-Only (Baseline)
&lt;/h3&gt;

&lt;p&gt;Pure Gemma inference. No external context. Training-knowledge baseline. This answers: &lt;em&gt;"What does the model already know?"&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔷 RAG Hybrid Core (Vector Baseline)
&lt;/h3&gt;

&lt;p&gt;Gemma + Pinecone vector retrieval. Standard embedding-based context injection. This answers: &lt;em&gt;"Does retrieval help, and by how much?"&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🟢 GraphRAG Sentinel (Our System)
&lt;/h3&gt;

&lt;p&gt;Gemma + TigerGraph V3 route-aware traversal. Queries are classified, routed to a Cypher/GSQL generator, and context is returned as compressed structured JSON.&lt;/p&gt;

&lt;p&gt;The benchmark covers &lt;strong&gt;100 clinical questions&lt;/strong&gt; across five reasoning categories — 20 each:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;What It Tests&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Temporal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Time-dependent drug effects, dosing windows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Contradiction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Conflicting clinical guidelines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multi-Hop&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Enzyme-mediated cascade interactions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Counterfactual&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;"What if X is stopped/added?" reasoning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cross-Entity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Drug ↔ Disease ↔ Symptom ↔ Guideline reasoning&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Targets: &lt;strong&gt;90% LLM-Judge score&lt;/strong&gt;, &lt;strong&gt;BERTScore ≥ 0.55&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Results: Token Efficiency Is the Real Story
&lt;/h2&gt;

&lt;p&gt;Here's the comparative matrix from our live benchmark run on the omeprazole query:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;LLM-Only&lt;/th&gt;
&lt;th&gt;Basic RAG&lt;/th&gt;
&lt;th&gt;GraphRAG&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Tokens&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;389 ⭐&lt;/td&gt;
&lt;td&gt;1,281&lt;/td&gt;
&lt;td&gt;770&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Latency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;57,931ms&lt;/td&gt;
&lt;td&gt;49,919ms ⭐&lt;/td&gt;
&lt;td&gt;189,845ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$0.000029 ⭐&lt;/td&gt;
&lt;td&gt;$0.000090&lt;/td&gt;
&lt;td&gt;$0.000058&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;At first glance this looks like GraphRAG loses on every metric. That's the wrong read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The key insight:&lt;/strong&gt; GraphRAG uses 770 tokens to do what Basic RAG needs 1,281 tokens for — a &lt;strong&gt;39.9% token reduction&lt;/strong&gt; while retrieving &lt;em&gt;structured&lt;/em&gt;, &lt;em&gt;graph-verified&lt;/em&gt; context instead of raw semantic chunks. The LLM-only baseline uses 389 tokens but provides no external grounding at all.&lt;/p&gt;

&lt;p&gt;In production at scale, that 40% reduction compounds. 1M queries/month at $0.000058 vs $0.000090 is the difference between a sustainable product and a budget crisis.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the Graph Query Routing Works
&lt;/h2&gt;

&lt;p&gt;When a query hits the GraphRAG Sentinel pipeline, the system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Classifies&lt;/strong&gt; the query type (we detected &lt;code&gt;GENERATE_CYPHER&lt;/code&gt; for the omeprazole question)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Selects a retriever&lt;/strong&gt; — &lt;code&gt;CYPHER&lt;/code&gt; for structural traversal, with hop-depth configured per query class&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generates and executes&lt;/strong&gt; a TigerGraph GSQL/Cypher query against our clinical knowledge graph&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compresses&lt;/strong&gt; the result into structured JSON context before LLM injection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synthesizes&lt;/strong&gt; a response through four verified stages: Entity Extraction → Community Summary Retrieval → Global Aggregation → Response Synthesis&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The clinical graph schema includes: &lt;strong&gt;Drugs, Diseases, Symptoms, Enzymes, Adverse Events, and Clinical Guidelines&lt;/strong&gt; — with typed edges for direct interactions, enzyme-mediated cascades, and contraindication relationships.&lt;/p&gt;

&lt;p&gt;This is exactly the schema you need to answer "which interaction paths resolve when omeprazole stops" — not a cosine similarity index.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Demo: "The Cascade Collapse"
&lt;/h2&gt;

&lt;p&gt;Our flagship demo query traces what happens across a polypharmacy regimen when a key CYP2C19 inhibitor is removed.&lt;/p&gt;

&lt;p&gt;The GraphRAG system correctly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identifies omeprazole as a CYP2C19 inhibitor (Proton Pump Inhibitor class)&lt;/li&gt;
&lt;li&gt;Traverses the enzyme-mediated interaction graph to find CYP2C19-dependent drugs (clopidogrel, etc.)&lt;/li&gt;
&lt;li&gt;Determines that removing the inhibition restores the metabolic pathway&lt;/li&gt;
&lt;li&gt;Surfaces the clinical implication: clopidogrel's antiplatelet efficacy is restored, increasing bleed risk considerations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The LLM-Only response gets the answer directionally correct from training data. The Basic RAG response retrieves relevant paragraphs but can't &lt;em&gt;traverse&lt;/em&gt; the interaction graph. Only GraphRAG surfaces the full cascade path with structural verification.&lt;/p&gt;




&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Graph DB:&lt;/strong&gt; TigerGraph V3 (GSQL + Cypher query generation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector Store:&lt;/strong&gt; Pinecone (Basic RAG baseline)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM:&lt;/strong&gt; Gemma (all three pipelines)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js dashboard with live system console&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benchmark Runtime:&lt;/strong&gt; STITCH_OS v2.4.0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; AES-256-GCM channel encryption&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;The benchmark harness is open. We're working toward full 100-question eval runs with automated LLM-Judge scoring and BERTScore computation across all five reasoning categories. The graph schema is extensible — drug-gene interactions, trial enrollment criteria, and payer formulary data are natural next nodes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It / Contribute
&lt;/h2&gt;

&lt;p&gt;The full codebase — benchmark runner, graph schema, retriever implementations, and dashboard — is open source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Sayandeep-the-coder/graphrag-benchmark" rel="noopener noreferrer"&gt;https://github.com/Sayandeep-the-coder/graphrag-benchmark&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're building clinical AI, drug safety tooling, or just want to see a real GraphRAG vs RAG comparison with live metrics, this is the codebase to clone.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Tags: &lt;code&gt;TigerGraph&lt;/code&gt; &lt;code&gt;graphrag&lt;/code&gt; &lt;code&gt;GraphRAGInferenceHackathon&lt;/code&gt; &lt;code&gt;rag&lt;/code&gt; &lt;code&gt;clinical-ai&lt;/code&gt; &lt;code&gt;knowledge-graph&lt;/code&gt; &lt;code&gt;polypharmacy&lt;/code&gt; &lt;code&gt;llm-benchmarking&lt;/code&gt; &lt;code&gt;gsql&lt;/code&gt; &lt;code&gt;cypher&lt;/code&gt; &lt;code&gt;drug-interactions&lt;/code&gt; &lt;code&gt;open-source&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>graphraginferencehackathon</category>
      <category>tigergraph</category>
    </item>
  </channel>
</rss>
