Vinay Vobbilichetty

👋 Hi, I'm Vinay

Engineering notes from the SOC frontier

Distributed LLM platforms, agentic AI, and security automation — written by someone shipping production systems at scale. 🚀

🧠 LLM inference 🔎 RAG at scale 🛡️ Detection-as-code 🤖 Agentic SOC
attestq — a model-agnostic RAG kernel that answers security questionnaires from your own evidence, and refuses to guess when the evidence isn't there

attestq: When "We Don't Have Evidence for That" Is the Feature

Every security and GRC team rebuilds the same pipeline one-off: chunk the SOC 2s and policies, embed them, retrieve per question, prompt an LLM, paste into the form. Done naively it hallucinates confident answers with no supporting evidence — the single worst failure mode in compliance. attestq is the small, model-/embedder-/store-agnostic kernel I extracted from two production tools (a vendor due-diligence assistant and a customer-assurance drafter) that bakes in the two fixes that actually matter: a confidence gate that answers "insufficient evidence" without ever calling the LLM, and a wide rerank window so the one document that had the answer doesn't get dropped. pip install attestq.

An event-sourced case memory that lets a multi-agent SOC recall prior cases, score its own accuracy, and cluster cross-incident campaigns

Giving an AI SOC a Memory: Precedent, Proof, and the Campaigns No Analyst Sees

The first version of our AI SOC had eight roles and zero memory — every alert started from scratch. This post adds the layer that makes a SOC senior instead of just fast: an event-sourced case memory. Agents recall similar prior cases as precedent, every verdict is scored against ground truth so we can prove whether the agents are actually right, any past decision can be interrogated from the recorded trace instead of a hallucinated rationale, and cross-incident campaigns surface that no single analyst working one ticket would ever see. Plus the honest part — we flag-gated precedent so we can A/B whether memory actually helps.

langchain-failover tier-split — gather on a cheap/local model, compose the answer on a frontier model

langchain-failover Grows a Tier-Split: Gather Cheap, Compose Smart

A tool-calling agent burns almost all its wall-clock on the loop — decide a call, read the result, decide the next. Writing the final answer is the part that wants a strong model. They don't have to be the same model. langchain-failover 0.2 adds TieredChatAgent — run the gathering loop on a cheap/local model, compose the answer on a frontier one. On a contended local GPU that turned a multi-minute final turn into a couple of seconds.

find-evil — bolting iocflow onto Protocol SIFT so the agent self-corrects hallucinated IOCs

find-evil: Teaching a Forensic Agent to Catch Its Own Hallucinations

My SANS FIND EVIL! hackathon entry. Protocol SIFT turns the SIFT Workstation into a Claude Code agent over 200+ forensic tools — and it hallucinates indicators because it eyeballs 50,000-line tool dumps. find-evil bolts my open-source iocflow onto it as an MCP server plus one skill, so the agent stops guessing and reconciles its own findings against a deterministic, FP-defended extractor. On the real SANS compromised image it found fileless PowerShell Empire C2, corrected its own "no external C2" read, and refused to invent attribution on the clean host.

detflow — draft, lint, dedupe and review detections as Sigma or Cortex XQL

detflow: A Detection-Engineering Copilot You Can pip install

I kept rebuilding the same four things inside every detection-as-code pipeline — lint a rule, draft one from plain English, check it against what you already run, and review it like a senior engineer. So I extracted them into detflow, a vendor-neutral OSS Python package. Deterministic lint and overlap with no dependencies, model-agnostic drafting and review, and a never-raises contract so it degrades instead of breaking.

iocflow — the whole IOC lifecycle (extract, enrich, hunt, block) in six pip-installable layers

iocflow: Turning a Production AI SOC into a Shippable OSS Library

After building SOC-in-a-Box — a multi-agent AI SOC where one local LLM wears every hat behind a human-in-the-loop gate — I distilled the durable lesson into iocflow, an open-source Python package for the whole IOC lifecycle. Deterministic primitives (extract → enrich → comment → hunt → block) as tools, a LangGraph multi-agent team on top, and three-layer authority so the LLM never gets the final say on a destructive action.

One local LLM playing eight analyst roles — a production-bar AI SOC on a single GPU

SOC-in-a-Box: One LLM, Eight Hats, A Production-Bar AI SOC on a Single GPU

An AVP-sponsored multi-agent SOC where one local LLM plays Sentinel, Tier 2, IR Lead, Threat Intel, SOC Manager, Detection Engineer, and Threat Hunter — coordinated over a Redis Streams bus with a human-in-the-loop approval gate before any real-system action. The framework choices, the architectural trade-offs, and the backtest harness that lets us put real numbers on agent quality before going live.