<?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: Parnika S M</title>
    <description>The latest articles on DEV Community by Parnika S M (@parnika_sm).</description>
    <link>https://dev.to/parnika_sm</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%2F4192586%2Fa7766891-6259-4058-96de-87573091316e.jpg</url>
      <title>DEV Community: Parnika S M</title>
      <link>https://dev.to/parnika_sm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parnika_sm"/>
    <language>en</language>
    <item>
      <title>SentinelGraph: Building an AI Cybersecurity Investigation Agent with FalkorDB</title>
      <dc:creator>Parnika S M</dc:creator>
      <pubDate>Sun, 18 Oct 2026 17:53:08 +0000</pubDate>
      <link>https://dev.to/parnika_sm/sentinelgraph-building-a-graph-powered-ai-cybersecurity-investigation-agent-with-falkordb-59eb</link>
      <guid>https://dev.to/parnika_sm/sentinelgraph-building-a-graph-powered-ai-cybersecurity-investigation-agent-with-falkordb-59eb</guid>
      <description>&lt;p&gt;&lt;em&gt;From scattered security signals to explainable investigations—with graph traversal, evidence paths, historical context, and human-reviewed actions.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Every Alert Is a Clue
&lt;/h2&gt;

&lt;p&gt;A suspicious login. An unusual process. A server communicating with an unfamiliar IP address.&lt;/p&gt;

&lt;p&gt;Individually, these events may tell us very little. But what if the same device, account, or internal server connects multiple alerts?&lt;/p&gt;

&lt;p&gt;That is where a security investigation gets interesting.&lt;/p&gt;

&lt;p&gt;My teammate and I built &lt;strong&gt;SentinelGraph&lt;/strong&gt;, a graph-powered cybersecurity investigation agent using FalkorDB, FastAPI, and Next.js. It explores relationships between security alerts, retrieves connected evidence, surfaces multi-hop paths, and presents proposed response actions for human review.&lt;/p&gt;

&lt;p&gt;Instead of treating every alert as an isolated event, SentinelGraph investigates the relationships around it.&lt;/p&gt;

&lt;p&gt;The central idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't just show the alert. Explore the connections that help explain it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;SentinelGraph is a demonstration project using synthetic security data and simulated response actions.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The architecture: From alerts to investigation
&lt;/h2&gt;

&lt;p&gt;SentinelGraph brings together a security alert queue, an investigation workflow, a graph database, and a visual interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy32wmntv1fcr15zsy9je.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy32wmntv1fcr15zsy9je.png" alt="SentinelGraph system architecture" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the centre of the system is &lt;strong&gt;FalkorDB&lt;/strong&gt;, which stores the relationships that connect alerts, devices, evidence, incidents, and historical investigation memory.&lt;/p&gt;

&lt;p&gt;The main components are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FalkorDB:&lt;/strong&gt; Stores connected security entities and supports graph queries and relationship traversal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI:&lt;/strong&gt; Exposes backend endpoints for investigation and related operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next.js and React:&lt;/strong&gt; Provide the interface for exploring alerts, evidence, and investigation results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graph visualisation:&lt;/strong&gt; Helps analysts inspect relationships and follow evidence paths.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-reviewed response workflow:&lt;/strong&gt; Presents proposed actions for review rather than silently executing real remediation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point of this architecture is not simply to draw a network of nodes. It is to use the relationships stored in the graph to support the investigation itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Why use a graph for cybersecurity?
&lt;/h2&gt;

&lt;p&gt;Security data is naturally connected.&lt;/p&gt;

&lt;p&gt;A single alert might reference a device. That device might communicate with a server. The server might appear in another alert. An earlier incident might contain similar evidence.&lt;/p&gt;

&lt;p&gt;Looking at each event separately can hide these relationships.&lt;/p&gt;

&lt;p&gt;A graph represents entities as nodes and their connections as relationships. This makes it possible to explore how evidence is connected across multiple steps.&lt;/p&gt;

&lt;p&gt;For SentinelGraph, this means we can investigate questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which other alerts are connected to this device or server?&lt;/li&gt;
&lt;li&gt;Is there a path linking two seemingly separate security events?&lt;/li&gt;
&lt;li&gt;What evidence supports the proposed relationship?&lt;/li&gt;
&lt;li&gt;Which candidate alerts are not connected through the explored graph?&lt;/li&gt;
&lt;li&gt;Is there relevant context from a historical incident?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;FalkorDB provides the connected-data layer that makes these questions practical to explore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The important distinction is that a connection is a lead for investigation, not automatic proof of an attack.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Following the evidence: A suspicious sign-in
&lt;/h2&gt;

&lt;p&gt;Let's look at one of SentinelGraph's investigation examples.&lt;/p&gt;

&lt;p&gt;The selected alert is &lt;code&gt;ALR-2026-10-0011&lt;/code&gt;, representing a suspicious sign-in.&lt;/p&gt;

&lt;p&gt;Rather than stopping at the alert itself, the investigation explores the entities associated with it and follows a multi-hop path through the graph.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr0iubhvn3fw9682vebtz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr0iubhvn3fw9682vebtz.png" alt="SentinelGraph suspicious sign-in investigation" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the surfaced paths is:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ALR-2026-10-0011 → dev:fin-ws-1042 → dev:srv-payments-01 → ALR-2026-10-0012&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This path connects the suspicious sign-in alert to a workstation, then to a payments server, and finally to another alert.&lt;/p&gt;

&lt;p&gt;Why does that matter?&lt;/p&gt;

&lt;p&gt;Because the second alert may provide context that the first alert cannot provide on its own. The shared path gives an analyst a concrete lead to examine rather than forcing them to compare isolated events manually.&lt;/p&gt;

&lt;p&gt;The graph also makes the relationship easier to inspect. Instead of relying on an unexplained statement that two alerts are related, an analyst can see the entities and intermediate connections that form the path.&lt;/p&gt;

&lt;p&gt;This is the kind of investigation where graph traversal adds value: &lt;strong&gt;it exposes the route connecting pieces of evidence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A path alone does not establish that an incident has occurred. Its significance still depends on the underlying evidence, the nature of the relationships, and the analyst's judgement.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. When an alert does not connect to the others
&lt;/h2&gt;

&lt;p&gt;A useful investigation system should not only surface connections. It should also help explain when a connection has not been found.&lt;/p&gt;

&lt;p&gt;Consider another example in SentinelGraph: &lt;code&gt;ALR-2026-10-0013&lt;/code&gt;, associated with an XMR miner on a marketing laptop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foq48f3qlrn7dmlo2gji7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foq48f3qlrn7dmlo2gji7.png" alt="SentinelGraph malware investigation" width="799" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this investigation, no other alert is connected through the explored internal entities within four hops.&lt;/p&gt;

&lt;p&gt;That is a different result from the suspicious sign-in example.&lt;/p&gt;

&lt;p&gt;Rather than inventing a relationship to force the alert into a larger incident, SentinelGraph presents the investigation outcome alongside excluded candidates, observed facts, and evidence gaps.&lt;/p&gt;

&lt;p&gt;This distinction matters.&lt;/p&gt;

&lt;p&gt;An alert that has no discovered connection within a particular search scope is not necessarily harmless or unrelated to every other event. The connection might exist outside the explored depth, through an entity that has not been recorded, or in evidence that is not available to the system.&lt;/p&gt;

&lt;p&gt;For this reason, the result should be interpreted narrowly: &lt;strong&gt;no qualifying connection was found within the explored scope.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is one of the principles behind explainable investigations. A system should communicate not only what it found, but also the limits of what it searched.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What graph queries contribute
&lt;/h2&gt;

&lt;p&gt;Cypher is the query language used to describe patterns in graph data. A query can specify a starting node, the relationships to explore, and the paths to return.&lt;/p&gt;

&lt;p&gt;For example, the following is an &lt;strong&gt;illustrative Cypher query&lt;/strong&gt; showing the general idea of exploring paths from a particular alert:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cypher"&gt;&lt;code&gt;&lt;span class="k"&gt;MATCH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;a:&lt;/span&gt;&lt;span class="n"&gt;Alert&lt;/span&gt; &lt;span class="ss"&gt;{&lt;/span&gt;&lt;span class="py"&gt;id:&lt;/span&gt; &lt;span class="s1"&gt;'ALR-2026-10-0011'&lt;/span&gt;&lt;span class="ss"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;MATCH&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ss"&gt;[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="ss"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;RETURN&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;
&lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example starts from an alert and looks for paths of one to three relationships, returning paths for inspection.&lt;/p&gt;

&lt;p&gt;It illustrates the graph-querying concept; it is not presented as the exact production query used by SentinelGraph. Actual query patterns depend on the graph schema, relationship types, filtering requirements, and investigation logic.&lt;/p&gt;

&lt;p&gt;The broader idea is what matters: a graph query can retrieve connected context rather than requiring every relationship to be manually joined together in application code.&lt;/p&gt;

&lt;p&gt;For a cybersecurity investigation agent, that connected context becomes the foundation for presenting evidence and explaining candidate relationships.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Evidence before conclusions
&lt;/h2&gt;

&lt;p&gt;An AI-powered investigation tool should not merely produce a confident-sounding summary. It should help users understand why a conclusion or recommendation is being presented.&lt;/p&gt;

&lt;p&gt;SentinelGraph brings together connected paths, observed evidence, candidate groupings, exclusions, and evidence gaps to make investigations easier to inspect.&lt;/p&gt;

&lt;p&gt;This supports a more careful workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with a selected alert.&lt;/li&gt;
&lt;li&gt;Explore relevant relationships in the graph.&lt;/li&gt;
&lt;li&gt;Inspect the paths and evidence surfaced by the investigation.&lt;/li&gt;
&lt;li&gt;Evaluate which other alerts may be related.&lt;/li&gt;
&lt;li&gt;Review the resulting explanation and any remaining evidence gaps.&lt;/li&gt;
&lt;li&gt;Consider the proposed response actions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This workflow does not eliminate uncertainty. It makes that uncertainty easier to investigate.&lt;/p&gt;

&lt;p&gt;A relationship between two alerts may be meaningful, incidental, or insufficient to establish a shared incident. The interface should help analysts evaluate that distinction instead of hiding it behind a single score or summary.&lt;/p&gt;

&lt;p&gt;That is why explainability is not just a visual feature in SentinelGraph. It is part of how the investigation results are presented.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Historical context and human-reviewed actions
&lt;/h2&gt;

&lt;p&gt;Current evidence is not the only useful source of context.&lt;/p&gt;

&lt;p&gt;Previous incidents can contain information that helps an analyst understand a new alert. SentinelGraph includes historical incident memory as part of its investigation workflow, allowing relevant past context to inform the investigation.&lt;/p&gt;

&lt;p&gt;The system also presents proposed response actions.&lt;/p&gt;

&lt;p&gt;However, recommending an action and executing it are different things.&lt;/p&gt;

&lt;p&gt;SentinelGraph keeps the response workflow behind a human review step. An analyst can evaluate a proposed action before approving or rejecting it.&lt;/p&gt;

&lt;p&gt;For a cybersecurity tool, this distinction is important. An incorrect recommendation should not automatically become a disruptive action against a real system.&lt;/p&gt;

&lt;p&gt;The project uses synthetic security data and simulated response actions. It demonstrates an investigation and review workflow rather than claiming to provide production-grade automated incident response.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. The technology behind SentinelGraph
&lt;/h2&gt;

&lt;p&gt;Our implementation combines several technologies, each serving a distinct purpose.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;FalkorDB&lt;/td&gt;
&lt;td&gt;Graph storage and connected-data queries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cypher&lt;/td&gt;
&lt;td&gt;Expressing graph patterns and relationship traversal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;td&gt;Backend API and investigation workflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next.js&lt;/td&gt;
&lt;td&gt;Application framework for the frontend&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;React&lt;/td&gt;
&lt;td&gt;Building the interactive interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Graph visualisation&lt;/td&gt;
&lt;td&gt;Exploring relationships and evidence paths&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The most important architectural decision is that the graph is part of the investigation process itself.&lt;/p&gt;

&lt;p&gt;FalkorDB is not included merely to display a network diagram. The relationships stored in the graph provide connected context for exploring alerts, tracing paths, and retrieving relevant historical information.&lt;/p&gt;

&lt;p&gt;The frontend makes those results accessible, while the backend coordinates the investigation workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. What we learned
&lt;/h2&gt;

&lt;p&gt;Building SentinelGraph reinforced a few important lessons for us.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connected data is only useful when it answers a question
&lt;/h3&gt;

&lt;p&gt;A graph can contain many nodes and relationships, but displaying all of them does not automatically help an analyst.&lt;/p&gt;

&lt;p&gt;The investigation needs to begin with a useful question and surface the relationships relevant to that question.&lt;/p&gt;

&lt;h3&gt;
  
  
  A visible evidence path is better than an unexplained claim
&lt;/h3&gt;

&lt;p&gt;When a system identifies a possible relationship, showing the path that supports it gives the user something concrete to inspect.&lt;/p&gt;

&lt;p&gt;This makes the result easier to understand and challenge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Missing evidence must remain visible
&lt;/h3&gt;

&lt;p&gt;Not finding a connection is different from proving that no connection exists. Search depth, graph coverage, and available evidence all affect the result.&lt;/p&gt;

&lt;p&gt;Communicating those limits is essential for avoiding overconfident conclusions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Human oversight still matters
&lt;/h3&gt;

&lt;p&gt;Even when a system can identify relevant relationships and propose actions, consequential responses should remain reviewable.&lt;/p&gt;

&lt;p&gt;The goal is to help an analyst make a better-informed decision, not to remove the analyst from the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Limitations and what comes next
&lt;/h2&gt;

&lt;p&gt;SentinelGraph is a demonstration, not a complete enterprise security platform.&lt;/p&gt;

&lt;p&gt;Its investigations operate on synthetic data, and the connections it can discover depend on the entities and relationships represented in the graph. A missing relationship or an incomplete dataset can limit what the system finds.&lt;/p&gt;

&lt;p&gt;Likewise, a discovered path does not by itself prove malicious activity, and an unexplored path does not prove that two events are unrelated.&lt;/p&gt;

&lt;p&gt;Future improvements could include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Testing against larger and more varied security datasets.&lt;/li&gt;
&lt;li&gt;Improving graph-query efficiency as the number of entities and relationships grows.&lt;/li&gt;
&lt;li&gt;Evaluating how reliably the investigation logic identifies useful connections.&lt;/li&gt;
&lt;li&gt;Adding stronger validation of evidence and investigation results.&lt;/li&gt;
&lt;li&gt;Expanding historical incident retrieval and the evaluation of proposed actions.&lt;/li&gt;
&lt;li&gt;Improving the handling of incomplete evidence and uncertainty.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are important next steps if a demonstration is to evolve into a system that security analysts can rely on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;SentinelGraph began with a simple observation: security alerts become more useful when we can understand how they connect.&lt;/p&gt;

&lt;p&gt;By using FalkorDB to explore relationships, trace multi-hop evidence paths, and retrieve historical context, we built a demonstration of how connected data can support a more transparent cybersecurity investigation workflow.&lt;/p&gt;

&lt;p&gt;The most interesting part is not simply that an agent can produce an answer. It is that an analyst can inspect the relationships behind that answer, understand what the investigation found, and decide what to do next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The graph is not the conclusion. It's the evidence path that helps an analyst reach one.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Explore SentinelGraph
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/parnika0110/SentinelGraph" rel="noopener noreferrer"&gt;https://github.com/parnika0110/SentinelGraph&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://frontend-production-717c.up.railway.app" rel="noopener noreferrer"&gt;https://frontend-production-717c.up.railway.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend health check:&lt;/strong&gt; &lt;a href="https://backend-production-f51e.up.railway.app/health" rel="noopener noreferrer"&gt;https://backend-production-f51e.up.railway.app/health&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo video:&lt;/strong&gt; &lt;a href="https://youtu.be/PiiVW7jK-Ck?si=ueAFPYuMRhMmAd5r" rel="noopener noreferrer"&gt;https://youtu.be/PiiVW7jK-Ck?si=ueAFPYuMRhMmAd5r&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project uses synthetic security data and simulated response actions for demonstration purposes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledgements
&lt;/h2&gt;

&lt;p&gt;Built collaboratively with my teammate for Graph Hacks 2026, exploring how FalkorDB can power AI agents that reason over connected data.&lt;/p&gt;

&lt;p&gt;We also used AI-assisted development tools during the process.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
