Demonstration purposes only. Not meant for scale or public use.
Built by Aniket Ghavte
System Architecture

Project Details

A deep dive into the technical foundation, agentic workflows, and the architectural decisions behind the OSINT Orchestrator.

The Vision

This application demonstrates the power of Agentic Orchestration in gathering, analyzing, and synthesizing open-source intelligence (OSINT). Unlike traditional search engines or single-prompt LLMs that just provide raw links or hallucinate facts, this system uses a team of specialized AI agents working together in a stateful, iterative workflow.

Frontend Stack

  • Next.js 15 (App Router): Fast, server-rendered React applications with advanced routing.
  • Tailwind CSS 4: Utility-first styling enabling custom glassmorphism, fluid typography, and micro-animations.
  • Server-Sent Events (SSE): Native browser API used to consume real-time streaming logs gracefully from serverless backends.

Backend Stack

  • FastAPI: Modern, high-performance Python framework serving the streaming asynchronous endpoints.
  • LangGraph: The core orchestration engine building stateful, cyclical multi-agent workflows with memory.
  • OpenAI & Tavily: Powering the LLM reasoning (GPT-4o/o3-mini) and executing highly optimized programmatic web searches.

How It Works: The Agent Workflow

01

The Scout (Web Search Agent)

Takes the user query, reformulates it into multiple optimized search queries, and executes them against the web to pull back raw, unstructured HTML and text context.

02

The Analyst (Extraction Agent)

Parses the raw data dumped by the Scout. It specifically scans for anomalies, entities (people, organizations, IPs), and critical data points, extracting them into strictly typed JSON structures.

03

The Synthesizer (Reporting Agent)

Consumes both the raw, noisy context and the verified, structured anomalies to write a final, comprehensive Markdown report. It weaves the disparate data points into a cohesive, readable narrative.

Why is this approach superior?

Separation of Concerns

The searcher doesn't format; the extractor doesn't search. Specialized prompts yield higher quality results than monolithic "do everything" prompts.

State Management

LangGraph allows the system to pass a shared "state" (anomalies, context strings) between agents in cyclical loops until the data quality threshold is met.

Radical Transparency

The user sees exactly which agent is doing what in real-time, building trust in the final output and providing insight into the reasoning process.