<?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: chitresh gurjar</title>
    <description>The latest articles on DEV Community by chitresh gurjar (@chitresh_gurjar_fffa8d913).</description>
    <link>https://dev.to/chitresh_gurjar_fffa8d913</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%2F3731144%2F8ba75554-b0c5-486a-9704-7a07425ae331.png</url>
      <title>DEV Community: chitresh gurjar</title>
      <link>https://dev.to/chitresh_gurjar_fffa8d913</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chitresh_gurjar_fffa8d913"/>
    <language>en</language>
    <item>
      <title>Autonomous Fraud Investigation &amp; Next-Best Action with TigerGraph and GraphRAG</title>
      <dc:creator>chitresh gurjar</dc:creator>
      <pubDate>Thu, 24 Sep 2026 11:31:00 +0000</pubDate>
      <link>https://dev.to/chitresh_gurjar_fffa8d913/autonomous-fraud-investigation-next-best-action-with-tigergraph-and-graphrag-1dj0</link>
      <guid>https://dev.to/chitresh_gurjar_fffa8d913/autonomous-fraud-investigation-next-best-action-with-tigergraph-and-graphrag-1dj0</guid>
      <description>&lt;p&gt;&lt;strong&gt;A deep dive into building an AI-powered agentic financial crime investigator for HackerHouse Goa 2026.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if a fraud investigation system could do more than flag suspicious transactions — and actually investigate the surrounding network, gather evidence, learn from previous cases, and recommend the next best action?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That was the problem we set out to solve at &lt;strong&gt;HackerHouse Goa 2026&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We built an &lt;strong&gt;Agentic Fraud Investigation System using TigerGraph and GraphRAG&lt;/strong&gt; that turns uncertain fraud alerts into contextual, explainable, and policy-driven actions.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem: Fraud Is a Network Problem
&lt;/h2&gt;

&lt;p&gt;Traditional fraud detection often starts with an individual transaction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Transaction → Risk Score → Alert → Analyst Review
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The problem is that fraud rarely exists in isolation.&lt;/p&gt;

&lt;p&gt;A transaction that looks suspicious on its own might actually be legitimate. At the same time, several individually normal transactions can become highly suspicious when viewed as part of a larger network.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer A
   |
  Card A
   |
Transaction 1 ─── Device X
                    |
             ┌──────┴──────┐
             |             |
          Card B        Card C
             |             |
       Transaction 2   Transaction 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A single transaction may not tell us much.&lt;/p&gt;

&lt;p&gt;But a shared device across multiple cards and customers can reveal a completely different picture.&lt;/p&gt;

&lt;p&gt;This is where graph technology becomes valuable.&lt;/p&gt;




&lt;h1&gt;
  
  
  What We Built
&lt;/h1&gt;

&lt;p&gt;We built the &lt;strong&gt;TigerGraph Agentic Fraud Investigation System&lt;/strong&gt;, an autonomous investigation workflow that moves from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fraud Alert
    ↓
Graph Investigation
    ↓
Context Retrieval
    ↓
Evidence Gathering
    ↓
Policy Evaluation
    ↓
Next-Best Action
    ↓
Human Escalation / Automated Action
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system investigates relationships between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customers&lt;/li&gt;
&lt;li&gt;Cards&lt;/li&gt;
&lt;li&gt;Transactions&lt;/li&gt;
&lt;li&gt;Devices&lt;/li&gt;
&lt;li&gt;Billing regions&lt;/li&gt;
&lt;li&gt;Historical investigations&lt;/li&gt;
&lt;li&gt;New investigation cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It can also create investigation cases and write the results back into the graph, allowing future investigations to use previous cases as contextual evidence.&lt;/p&gt;

&lt;p&gt;For high-exposure or interconnected fraud activity, the system can also generate a &lt;strong&gt;FinCEN Suspicious Activity Report (SAR) narrative&lt;/strong&gt; containing the relevant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who&lt;/li&gt;
&lt;li&gt;What&lt;/li&gt;
&lt;li&gt;When&lt;/li&gt;
&lt;li&gt;Where&lt;/li&gt;
&lt;li&gt;How&lt;/li&gt;
&lt;li&gt;Why&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  System Architecture
&lt;/h1&gt;

&lt;p&gt;The overall architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  ┌─────────────────┐
                  │   Fraud Alert   │
                  └────────┬────────┘
                           │
                           ▼
              ┌────────────────────────┐
              │ TigerGraph Graph Engine │
              │       / GSQL            │
              └────────────┬───────────┘
                           │
                           ▼
              ┌────────────────────────┐
              │   GraphRAG Retrieval   │
              │  Relevant Subgraph     │
              └────────────┬───────────┘
                           │
                           ▼
              ┌────────────────────────┐
              │ Stage 1: Initial       │
              │ Policy Assessment      │
              └────────────┬───────────┘
                           │
                           ▼
              ┌────────────────────────┐
              │ Controlled Evidence    │
              │ Gathering              │
              └────────────┬───────────┘
                           │
                           ▼
              ┌────────────────────────┐
              │ Stage 2: Final         │
              │ Next-Best Action       │
              └────────────┬───────────┘
                           │
                 ┌─────────┴──────────┐
                 ▼                    ▼
        ┌─────────────────┐  ┌─────────────────┐
        │ FinCEN SAR      │  │ Graph Memory    │
        │ Generation      │  │ Writeback       │
        └────────┬────────┘  └────────┬────────┘
                 │                    │
                 └──────────┬─────────┘
                            ▼
                 ┌──────────────────────┐
                 │ Fraud Analyst       │
                 │ Investigation UI    │
                 └──────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system is built around four major components.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. TigerGraph as the Fraud Intelligence Layer
&lt;/h1&gt;

&lt;p&gt;The first major decision was to represent fraud activity as a &lt;strong&gt;graph instead of treating transactions as isolated rows&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vertices
&lt;/h3&gt;

&lt;p&gt;Our graph contains entities such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer
Card
Transaction
DeviceProfile
BillingRegion
ClosedCase
InvestigationCase
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, a transaction can contain information such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Transaction
├── timestamp
├── amount
├── channel
├── risk_score
├── billing_region
├── email_domain
└── device_signature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Edges
&lt;/h3&gt;

&lt;p&gt;Relationships connect these entities:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer ──OWNS──────&amp;gt; Card
Card ──MADE──────────&amp;gt; Transaction
Transaction ──FROM_DEVICE──&amp;gt; DeviceProfile
Transaction ──BILLED_IN────&amp;gt; BillingRegion
Transaction ──NEXT──────────&amp;gt; Transaction

InvestigationCase ──INVOLVES──&amp;gt; Transaction
InvestigationCase ──ON_CARD───&amp;gt; Card
InvestigationCase ──CONNECTED_TO──&amp;gt; DeviceProfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows us to ask questions that are difficult to answer using isolated transaction records.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What other cards have used this device?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What transactions happened around this card within the last 48 hours?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Have we seen a similar fraud pattern in a previous investigation?"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  2. GraphRAG: Giving the Agent the Right Context
&lt;/h1&gt;

&lt;p&gt;One of the biggest problems with using an LLM for fraud investigation is context.&lt;/p&gt;

&lt;p&gt;We could dump thousands of transaction records into an LLM.&lt;/p&gt;

&lt;p&gt;That would be expensive, noisy, and difficult to reason about.&lt;/p&gt;

&lt;p&gt;Instead, we use &lt;strong&gt;GraphRAG&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The graph first retrieves the relevant neighborhood around the suspicious transaction.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Suspicious Transaction
        │
        ├── Card
        │    ├── Previous Transactions
        │    └── Customer
        │
        ├── Device
        │    ├── Other Cards
        │    └── Other Customers
        │
        ├── Billing Region
        │    └── Historical Usage
        │
        └── Similar Closed Cases
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The LLM receives this focused context instead of the entire dataset.&lt;/p&gt;

&lt;p&gt;This makes the reasoning process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More relevant&lt;/li&gt;
&lt;li&gt;More explainable&lt;/li&gt;
&lt;li&gt;Less expensive&lt;/li&gt;
&lt;li&gt;Easier to audit&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. GSQL Queries for Investigation
&lt;/h1&gt;

&lt;p&gt;We implemented several graph queries to investigate different fraud signals.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;card_window&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Retrieves transactions around a suspicious transaction within a defined time window.&lt;/p&gt;

&lt;p&gt;One pattern we looked for was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$2.50 authorization
       ↓
$3.20 authorization
       ↓
$4.10 authorization
       ↓
Large purchase
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Individually, these transactions may appear insignificant.&lt;/p&gt;

&lt;p&gt;Together, they can represent a potential card-testing pattern.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;device_neighbors&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This query starts from a transaction's device signature and discovers other connected cards or customers.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Device X
 ├── Card A
 │    └── Customer A
 │
 ├── Card B
 │    └── Customer B
 │
 └── Card C
      └── Customer C
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This type of relationship can reveal multi-card activity that would be difficult to detect from transaction-level analysis alone.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;region_deviation&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This query analyzes historical billing-region behavior.&lt;/p&gt;

&lt;p&gt;The goal is to distinguish between:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Normal travel
      vs
Potential card cloning / abnormal usage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A single out-of-region transaction is not necessarily fraud.&lt;/p&gt;

&lt;p&gt;The surrounding behavioral context matters.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;code&gt;find_similar_cases&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This query searches historical investigation cases for similar patterns and exposure levels.&lt;/p&gt;

&lt;p&gt;This gives the agent a form of &lt;strong&gt;case memory&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of treating every investigation as a completely new problem, the system can ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Have we investigated something similar before?"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  4. The Agentic Investigation Workflow
&lt;/h1&gt;

&lt;p&gt;The interesting part of the system is not just the graph.&lt;/p&gt;

&lt;p&gt;It is how the graph is combined with an &lt;strong&gt;agentic decision workflow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We implemented a two-stage investigation process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 1 — Initial Assessment
&lt;/h2&gt;

&lt;p&gt;When an alert arrives, the agent evaluates the available evidence.&lt;/p&gt;

&lt;p&gt;It considers things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transaction risk&lt;/li&gt;
&lt;li&gt;Transaction velocity&lt;/li&gt;
&lt;li&gt;Device relationships&lt;/li&gt;
&lt;li&gt;Customer history&lt;/li&gt;
&lt;li&gt;Billing-region behavior&lt;/li&gt;
&lt;li&gt;Connected cards&lt;/li&gt;
&lt;li&gt;Historical cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent then produces an initial action recommendation.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"VERIFY_WITH_CUSTOMER"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Suspicious transaction detected, but available evidence is insufficient for immediate blocking."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is that the system does &lt;strong&gt;not automatically treat every high-risk signal as confirmed fraud&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Controlled Evidence Gathering
&lt;/h1&gt;

&lt;p&gt;If the available evidence is insufficient, the system can request additional evidence.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Initial Alert
     ↓
Insufficient Evidence
     ↓
Customer Verification
     ↓
Additional Evidence
     ↓
Re-evaluation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depending on the situation, the workflow can simulate actions such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VERIFY_WITH_CUSTOMER
STEP_UP_AUTH
REQUEST_ADDITIONAL_EVIDENCE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The evidence request and resulting assumptions are recorded as part of the investigation.&lt;/p&gt;




&lt;h1&gt;
  
  
  6. Stage 2 — Next-Best Action
&lt;/h1&gt;

&lt;p&gt;After additional evidence is available, the agent evaluates the case again.&lt;/p&gt;

&lt;p&gt;This creates an important distinction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;BEFORE EVIDENCE
       ↓
Initial Action

AFTER EVIDENCE
       ↓
Final Action
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system also records:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;what_changed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful because an analyst can understand &lt;strong&gt;why the recommended action changed&lt;/strong&gt; instead of simply seeing the final decision.&lt;/p&gt;

&lt;p&gt;The final action can be routed according to the required level:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AUTO
 ↓
L1 REVIEW
 ↓
L2 REVIEW
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This provides a human-in-the-loop boundary rather than allowing the LLM to make unrestricted decisions.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. Policy Engine
&lt;/h1&gt;

&lt;p&gt;The agent operates within a defined policy layer rather than making decisions purely from an LLM response.&lt;/p&gt;

&lt;p&gt;Our policy configuration contains rules such as &lt;code&gt;R1&lt;/code&gt; through &lt;code&gt;R10&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For example, under our investigation policy, an isolated weak signal below a defined confidence threshold should trigger additional verification rather than immediate blocking.&lt;/p&gt;

&lt;p&gt;On the other hand, specific combinations of signals — such as connected devices across multiple cards — can trigger stronger investigation workflows.&lt;/p&gt;

&lt;p&gt;This separation is important:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LLM
 ↓
Reasoning

Policy Engine
 ↓
Allowed Actions

Human Review
 ↓
Final Authority
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The LLM provides reasoning.&lt;/p&gt;

&lt;p&gt;The policy layer provides boundaries.&lt;/p&gt;

&lt;p&gt;The human remains part of the decision loop for cases requiring escalation.&lt;/p&gt;




&lt;h1&gt;
  
  
  8. Graph Memory
&lt;/h1&gt;

&lt;p&gt;One of the features we found particularly interesting was &lt;strong&gt;investigation memory&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After an investigation is completed, the system writes the resulting case back into TigerGraph.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;InvestigationCase
       │
       ├── INVOLVES → Transaction
       ├── ON_CARD → Card
       ├── CONNECTED_TO → Device
       └── RELATED_TO → Previous Case
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now a future investigation can retrieve the previous case.&lt;/p&gt;

&lt;p&gt;This creates a feedback loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Investigation
     ↓
Case Result
     ↓
Graph Memory
     ↓
Future Investigation
     ↓
Better Context
     ↓
New Case
     ↓
Graph Memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The graph gradually becomes not just a representation of financial activity, but also a representation of &lt;strong&gt;institutional investigation history&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  9. Automated SAR Generation
&lt;/h1&gt;

&lt;p&gt;For investigations that meet the configured exposure or connectivity conditions, the system can generate a &lt;strong&gt;FinCEN Suspicious Activity Report narrative&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The narrative is structured around the core investigative questions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Who?
What?
When?
Where?
How?
Why?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of asking an analyst to manually reconstruct the entire investigation, the agent uses the evidence already collected during the investigation workflow.&lt;/p&gt;

&lt;p&gt;The generated narrative can then be reviewed by the appropriate human compliance team.&lt;/p&gt;




&lt;h1&gt;
  
  
  10. Investigation Dashboard
&lt;/h1&gt;

&lt;p&gt;We built the analyst interface using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;HTML5&lt;/li&gt;
&lt;li&gt;Interactive graph visualization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The dashboard provides an investigation-oriented view of the case.&lt;/p&gt;

&lt;p&gt;An analyst can inspect:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Transaction
    ↓
Card
    ↓
Customer
    ↓
Device
    ↓
Connected Cards
    ↓
Related Transactions
    ↓
Historical Cases
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The UI also supports re-investigation triggers and side-by-side comparison of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Initial Action
        vs
Final Action
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes the agent's reasoning process easier to inspect.&lt;/p&gt;




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

&lt;h2&gt;
  
  
  1. Fraud Is Often a Graph Problem
&lt;/h2&gt;

&lt;p&gt;A transaction can look completely normal when viewed individually.&lt;/p&gt;

&lt;p&gt;Its relationships may tell a different story.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Transaction → Device → Other Card → Other Customer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;can provide substantially more context than:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Transaction → Risk Score
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is where graph-based investigation becomes valuable.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Risk Scores Are Inputs, Not Conclusions
&lt;/h2&gt;

&lt;p&gt;A risk score is useful, but it does not contain the entire context of a customer.&lt;/p&gt;

&lt;p&gt;A high-risk transaction could be caused by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Travel&lt;/li&gt;
&lt;li&gt;A new device&lt;/li&gt;
&lt;li&gt;A legitimate location change&lt;/li&gt;
&lt;li&gt;Unusual but legitimate purchasing behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treating the score as the final answer can therefore create unnecessary customer friction.&lt;/p&gt;

&lt;p&gt;Our approach was to combine risk signals with relationship context and policy rules.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Graph Memory Can Become an Investigation Asset
&lt;/h2&gt;

&lt;p&gt;Writing completed investigations back into the graph creates a continuously growing knowledge layer.&lt;/p&gt;

&lt;p&gt;Today's investigation can become context for tomorrow's investigation.&lt;/p&gt;

&lt;p&gt;That is a fundamentally different architecture from treating each alert as an isolated event.&lt;/p&gt;




&lt;h1&gt;
  
  
  What We Would Build Next
&lt;/h1&gt;

&lt;p&gt;The prototype gave us several directions for future development.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Graph Neural Networks
&lt;/h2&gt;

&lt;p&gt;We would explore GNN-based embeddings to detect more subtle graph structures.&lt;/p&gt;

&lt;p&gt;Instead of relying only on predefined rules, the model could learn patterns such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Device → Card → Customer
       ↘ Card → Customer
       ↘ Card → Customer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and identify unusual network structures before traditional rules trigger.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Real-Time Streaming with Kafka
&lt;/h2&gt;

&lt;p&gt;The next step would be moving from batch investigation to real-time fraud intervention.&lt;/p&gt;

&lt;p&gt;A potential architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Card Authorization
       ↓
Kafka
       ↓
TigerGraph
       ↓
Graph Investigation
       ↓
Agent
       ↓
Policy Engine
       ↓
Authorization Decision
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal would be to investigate suspicious relationships while the authorization is still being processed.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Multi-Agent Investigation
&lt;/h2&gt;

&lt;p&gt;We could also introduce specialized agents with different responsibilities.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                Investigation
                     │
          ┌──────────┼──────────┐
          ↓          ↓          ↓
     Fraud Agent  Compliance  CX Agent
                     Agent
          │          │          │
          └──────────┼──────────┘
                     ↓
              Policy Engine
                     ↓
              Human Review
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each agent would evaluate the case from a different operational perspective before the final action is selected.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Takeaway
&lt;/h1&gt;

&lt;p&gt;The main lesson from this project was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fraud detection should not stop at identifying suspicious transactions. It should investigate the relationships around them.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TigerGraph gave us the relationship layer.&lt;/p&gt;

&lt;p&gt;GraphRAG gave the LLM focused contextual evidence.&lt;/p&gt;

&lt;p&gt;The agentic workflow provided investigation and evidence-gathering capabilities.&lt;/p&gt;

&lt;p&gt;The policy engine provided deterministic boundaries.&lt;/p&gt;

&lt;p&gt;And graph memory allowed completed investigations to become future context.&lt;/p&gt;

&lt;p&gt;Together, these components allowed us to move from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Something looks suspicious."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Here is what is connected,
here is what we found,
here is what changed after gathering evidence,
and here is the next action supported by the available evidence and policy."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the direction we explored with &lt;strong&gt;Autonomous Fraud Investigation &amp;amp; Next-Best Action&lt;/strong&gt; at HackerHouse Goa 2026.&lt;/p&gt;




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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Graph Database     → TigerGraph
Graph Query        → GSQL
AI / LLM           → GraphRAG + Agentic Workflow
Frontend           → React + Vite
Visualization      → HTML5 Force-Directed Graph
Backend / Logic    → Agent + Policy Engine
Compliance         → FinCEN SAR Generation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Built with ❤️ for &lt;strong&gt;HackerHouse Goa 2026&lt;/strong&gt;.&lt;br&gt;
Team- &lt;strong&gt;Morpheus&lt;/strong&gt; &lt;br&gt;
&lt;strong&gt;(Keertana Gupta &amp;amp; Chitresh Gurjar)&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>automation</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
