← Back to Home

Security Assistant

Conversational SOC Analytics Copilot

A production module inside a Security Command Center (SCC) platform: a chat copilot that lets analysts ask plain-language questions across every security dataset — credential leaks, threat intel, brand-impersonation, threat hunting, blocked/released IOCs, takedowns — and answers by calling the right data tools, writing read-only SQL on the fly, and streaming its reasoning, tool calls, and results live.

#LLM / Agentic AI#Tool-Calling Agent#Text-to-SQL#Conversational Analytics#Retrieval-Augmented Generation (RAG)#Streaming (SSE)#LangGraph#Security Operations

// Overview

What it does. A SOC platform accumulates dozens of fact tables and document stores, and getting an answer usually means knowing which dashboard to open or which query to write. This assistant removes that friction: an analyst asks in natural language — "show credential leaks for domain X in the last week," "is this IP in our blocklist," "summarize takedowns still in progress" — and the copilot figures out which data source to consult, fetches the records, and replies conversationally. It spans the whole platform: credential leaks, threat-intel IOCs, social-media and web monitoring, threat hunting, blocked and released IOCs, takedowns, and the unstructured/tabular asset stores. The analyst watches it work — each tool call and result streams to the UI in real time — and every conversation is saved as a titled, resumable session.

// Background

The challenge

The platform holds rich security data across many tables.

Getting a quick answer meant knowing the schema or dashboard.

01

Knowledge scattered across surfaces

Answers lived in many dashboards and fact tables;

you had to know which dashboard to open.

Every question needed dashboard navigation + schema knowledge

02

Ad-hoc questions needed SQL

Anything off the beaten path — a join, aggregate,

cross-dataset lookup — required hand-writing queries.

SQL fluency was a prerequisite for any unusual question

03

Context-switching cost time

Mid-incident, hopping between modules to assemble

a picture was slow and broke the investigative flow.

Incident response meant tab-hopping under pressure

04

Safety mattered

Letting an LLM touch production data demanded hard

guarantees — it can only read, never modify.

Read-only wasn't a preference; it was a hard requirement

Net effect

Rich security data spread across many fact tables, a

schema that gatekeeps non-technical users, and no

conversational surface meant analysts switched dashboards.

// Solution

Security assistant — streaming ReAct copilot over all data

Data sources

Analyst NL question

plain query + session history

streamed via SSE

Security datasets

fact tables + Qdrant/Typesense

read-only sessions

Pipeline

Agent

LangGraph ReAct

session history

Agent

Tools

text-to-SQL (RO)

asset RAG

Tools

Data

PostgreSQL (RO)

Qdrant/Typ.

Data

Portal

Vue 3 chat UI

tool events

UI

LangGraph ReAct agent · text-to-SQL (read-only) · Qdrant + Typesense RAG · SSE streaming · persistent sessions

// Impact

Analytics: SQL → plain language

Before · write SQL

dashboards · SQL · switch modules

After · plain language

ask → streamed, cited answer

8+

security datasets in one interface

SQL knowledge requiredoptional
Dashboard switchingeliminated

Operational impact

Self-service analytics

answers without schema knowledge

Faster incident response

one surface, no module hopping

Transparent, not magic

tool calls + results stream live

Safe by construction

read-only: cannot mutate prod data

Iterative by design

persistent sessions refine inquiry

Composable reach

reuses datasets, RAG, platform tools

Results

Datasets covered

8+

Session safe

RO

tool stream

SSE

Always available

24/7

Schema knowledge requiredoptional
Dashboard tab-switchingeliminated

Conversations saved as titled sessions ·

auto-generated session title.

// Tech Stack

LayerTechnologies
AgentLangGraph create_react_agent, LLM (tool-calling, streaming), per-request tool selection
ToolsPer-dataset query tools (SQL-style filters), execute_read_only_sql (text-to-SQL, read-only session), Qdrant + Typesense asset RAG
StreamingServer-Sent Events (tool_call / tool_result / message), StreamingResponse
PersistencePostgreSQL chat history (user/session/role/content + auto title), read-only DB session for queries
Backend APIFastAPI (Tools API + portal SSE proxy with auth forwarding)
FrontendVue 3, Quasar, Vite, TypeScript

// Architecture & Diagrams

1 / 5System Architecture — Simple (high level)
rendering…

Disclaimer: sample visuals may contain anonymized, simulated, or non-production values for presentation purposes.

// Demo

No demo configured yet.