{"slug": "fraudlens-ai-an-autonomous-graph-agent-that-investigates-financial-crime", "title": "FraudLens AI: An Autonomous Graph Agent That Investigates Financial Crime", "summary": "A team at a hackathon built FraudLens AI, an agentic triage system that investigates financial crime by combining a LangGraph agent, a TigerGraph entity graph with GraphRAG memory, and a Django/React dashboard that streams the agent's reasoning over Server-Sent Events. The system runs GSQL queries to pull the connected subgraph around a flagged entity and compute its blast radius, grounding the LLM's reasoning in graph structure rather than text similarity, and writes finished case summaries back into the graph as long-term memory.", "body_md": "Fraud rarely looks like fraud in a single row of data. It shows up in the connections: a shared IP address, a reused device, a chain of accounts that all trace back to one bad actor.\n\nInvestigators still find those connections by hand, cross-referencing CSVs and relational tables. One synthetic identity cluster can take hours to untangle, and by the time the ring is mapped, the money has moved.\n\nFor the **Hackathon**, we built **FraudLens AI** to close that gap. It is an agentic triage system that:\n\nFraudLens has four layers. A **React + Tailwind** dashboard is the investigator's workspace. A **Django** backend streams the agent's reasoning live over Server-Sent Events. A **LangGraph** agent runs the investigation loop. **TigerGraph** is both the knowledge engine and the long-term case memory.\n\n```\nflowchart LR\n    classDef trigger fill:#EF4444,stroke:#7F1D1D,stroke-width:2px,color:#fff\n    classDef frontend fill:#3B82F6,stroke:#1E3A8A,stroke-width:2px,color:#fff\n    classDef backend fill:#10B981,stroke:#064E3B,stroke-width:2px,color:#fff\n    classDef ai fill:#8B5CF6,stroke:#4C1D95,stroke-width:2px,color:#fff\n    classDef db fill:#F59E0B,stroke:#78350F,stroke-width:2px,color:#fff\n    classDef out fill:#0EA5E9,stroke:#0C4A6E,stroke-width:2px,color:#fff\n\n    ML[\"ML Fraud Model<br/>flags high-risk transaction\"]:::trigger\n    User((Investigator))\n\n    subgraph Client [\"Frontend\"]\n        React[\"React Dashboard<br/>Vite + Tailwind\"]:::frontend\n        Plotly[\"Plotly 3D<br/>Blast-radius visualization\"]:::frontend\n    end\n\n    subgraph Server [\"Backend\"]\n        Django[\"Django REST API\"]:::backend\n        SSE[\"Server-Sent Events<br/>live chain of thought\"]:::backend\n    end\n\n    subgraph Agent [\"Agent Core\"]\n        LG[\"LangGraph Agent<br/>investigation loop\"]:::ai\n        LLM[\"LLM<br/>Gemini / OpenAI\"]:::ai\n        T1[\"Tool: Blast Radius\"]:::ai\n        T2[\"Tool: Policy Check\"]:::ai\n    end\n\n    subgraph Graph [\"Graph Database\"]\n        TG[(\"TigerGraph<br/>entity graph + GraphRAG memory\")]:::db\n    end\n\n    subgraph Decision [\"Decision and Output\"]\n        D{\"Next Best<br/>Action\"}:::out\n        L1[\"L1: Autonomous<br/>freeze\"]:::out\n        L2[\"L2: Human<br/>approval\"]:::out\n        SAR[\"PDF SAR<br/>report\"]:::out\n    end\n\n    ML -->|alert| Django\n    User -->|opens case| React\n    React -->|API request| Django\n    Django -->|initializes state| LG\n\n    LG <-->|prompts and reasoning| LLM\n    LG -->|calls| T1\n    LG -->|calls| T2\n    T1 -->|GSQL queries| TG\n    TG -->|connected entities| T1\n    T1 -.->|writes embeddings back| TG\n\n    LG --> D\n    D -->|can act autonomously| L1\n    D -->|requires escalation| L2\n    LG --> SAR\n\n    LG -->|chain of thought| SSE\n    SSE -->|live updates| React\n    React -->|graph nodes| Plotly\n```\n\nData flows from trigger to decision, and memory flows back: finished cases are embedded and written into TigerGraph so later investigations have more context.\n\nFraud is a relationship problem. Customer A shares an IP address with Customer B, who shares a device ID with a known fraudster, Customer C. In a relational database, that is a chain of self-joins that gets slower and harder to write with every extra hop. In a graph database, it is a single traversal.\n\nWe modeled customers, accounts, devices, IPs, and transactions as a native graph in **TigerGraph**, then built **GraphRAG** on top of it.\n\nStandard RAG retrieves text chunks by similarity. Our agent retrieves *structure*. It runs **GSQL** queries to pull the connected subgraph around a flagged entity and calculates its **blast radius**: every account, device, and money flow reachable within N hops. That subgraph becomes the context the LLM reasons over, so its claims are grounded in the data.\n\nTigerGraph is also the agent's memory. When an investigation finishes, the agent embeds the case summary and writes it back to the graph, giving each new investigation more context to draw on.\n\nWe wanted an agent that does the investigation, not a chatbot that answers questions about it. LangGraph gave us the control flow to build that.\n\nThe L1/L2 split is deliberate. Autonomy handles the routine volume, and people stay in control of decisions that carry risk.\n\nLLMs reason fluently, but without grounding they will confidently invent connections that don't exist. In financial crime, that matters: a fabricated link can freeze an innocent customer's account or let a real threat slip through.\n\nGiving the agent tools that return real graph paths from TigerGraph changed how it behaves. It cites entities and relationships that exist in the data instead of guessing. The LLM is still probabilistic, but every claim it makes can be checked against an actual path in the graph, which gives investigators an evidence trail they can verify.\n\nThe LLM supplies the reasoning. TigerGraph supplies the facts. Neither is enough alone.\n\n*Built for the Hackathon.*", "url": "https://wpnews.pro/news/fraudlens-ai-an-autonomous-graph-agent-that-investigates-financial-crime", "canonical_source": "https://dev.to/himanshurajnimse/fraudlens-ai-an-autonomous-graph-agent-that-investigates-financial-crime-4l16", "published_at": "2026-09-24 07:17:23+00:00", "updated_at": "2026-09-24 07:30:29.907542+00:00", "lang": "en", "topics": ["ai-agents", "artificial-intelligence", "large-language-models", "ai-tools"], "entities": ["FraudLens AI", "TigerGraph", "LangGraph", "Django", "React", "Gemini", "OpenAI", "GSQL"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/fraudlens-ai-an-autonomous-graph-agent-that-investigates-financial-crime", "markdown": "https://wpnews.pro/news/fraudlens-ai-an-autonomous-graph-agent-that-investigates-financial-crime.md", "text": "https://wpnews.pro/news/fraudlens-ai-an-autonomous-graph-agent-that-investigates-financial-crime.txt", "jsonld": "https://wpnews.pro/news/fraudlens-ai-an-autonomous-graph-agent-that-investigates-financial-crime.jsonld"}}