Mission 03
GraphSentinel AI
An explainable security investigation agent that traces attacks through a FalkorDB graph of identities, devices, services and incidents, then proposes response actions for human approval.
- Status
- Deployed
- Stack
- Python · FastAPI · FalkorDB · React · TypeScript · Docker

- 01
Labelled as a replay. The hosted demo replays a real run on synthetic data, and says so at the top of every page.
- 02
Deterministic risk score. The score comes from a weighted-sum engine, not from the language model.
- 03
Attack path. A 5-hop path from the alert to a vulnerability, returned by FalkorDB.
- 04
Key paths. The paths the agent found, including shorter ones that link the alert to earlier incidents.
- 05
Human approval. Response actions wait in an approvals queue, where a person signs off. Actions are simulated.
Overview
GraphSentinel investigates a security alert by traversing the relationships between identities, IPs, devices, services, vulnerabilities, indicators, evidence and past incidents stored in FalkorDB. An LLM agent (Azure OpenAI, Groq, or an offline deterministic planner) chooses which bounded, read-only graph tools to run. Deterministic engines then compute the risk score and decide which simulated response actions are eligible, and a human approves them.
On the demo dataset it finds a real 5-hop attack chain from the graph, links the alert to two earlier incidents through a shared indicator, collects supporting and contradicting evidence with provenance, and flags and ignores a prompt-injection attempt hidden in a helpdesk ticket. Every finding cites the graph records behind it, completed investigations are written back into the graph so related alerts can recall them, and every step lands in a hash-chained audit trail.
The backend is FastAPI and the frontend is React and TypeScript with React Flow, run together with Docker Compose. Access is role-based with four-eyes approval, so an investigator cannot approve their own investigation, plus CSRF protection and rate limiting. An evaluation suite runs 14 scenarios against a real FalkorDB (14 of 14 passing, 64 of 64 checks), and CI covers lint, type checks, tests, dependency audits, Trivy and gitleaks. All data is synthetic and all response actions are simulated. The hosted demo is a recorded replay of a real run, served as a static site; the full stack runs locally with Docker.
Highlights
- Bounded agent loop over typed, read-only graph tools
- Multi-hop attack paths and graph algorithms run inside FalkorDB
- Deterministic risk scoring and policy engine, with human approval
- Evidence with provenance, contradictions and prompt-injection detection
- Hash-chained audit trail and four-eyes approvals
- 14-scenario evaluation and CI with security scans
Flight log
- 01
Hosting a demo of something that cannot be hosted
GraphSentinel needs a Python API, a graph database and a frontend. Here is how I turned a real run of it into a static site anyone can click through, and why I labelled it a replay.
- 02
GraphSentinel: an investigation agent with a short leash
Designing an LLM agent for security work that can look at a lot and do almost nothing on its own, with typed tools, deterministic scoring, human approval and an audit trail.