LangGraph Research Assistant
2026A multi-agent research system built with LangGraph that automates deep-dive research on any topic. It generates a panel of AI analyst personas, conducts parallel expert interviews grounded in web and Wikipedia search, and synthesizes findings into a structured report — with a human-in-the-loop checkpoint to guide the process.
How It Works
The graph runs in two phases separated by a human approval step:
Phase 1 — Analyst Generation
- Given a topic, the graph generates AI analyst personas, each focused on a distinct sub-theme
- The graph pauses for human feedback — approve or request changes
- If feedback is provided, analysts are regenerated incorporating the feedback until approved
Phase 2 — Parallel Interviews & Report
- Each analyst conducts an independent interview with an AI expert
- Each turn triggers parallel Tavily web + Wikipedia searches to ground answers in real sources
- All interviews run simultaneously via map-reduce (LangGraph
Send()API) - After interviews complete, report sections are written in parallel, then combined into a final report with introduction, body, and conclusion
Key Patterns
- Map-reduce parallelism — all analyst interviews run concurrently via
Send() - Human-in-the-loop —
interrupt_beforepauses for analyst approval - Parallel tool execution — web + Wikipedia searches run simultaneously per interview turn
- Structured output — Pydantic models enforce analyst persona schema
- Sub-graph composition — interview graph compiled as a node inside the research graph
- Repository
- GitHub
- Stack
- LangGraph, LangChain, OpenAI (gpt-4o-mini), Tavily, Wikipedia, Pydantic, LangSmith
- Platform
- LangGraph Studio (dev server)
flowchart LR
%% Node Definitions
START([START])
END([END])
A[create_analysts]
B{human_feedback}
C[[conduct_interview
xN Parallel]] subgraph WritingTasks [Parallel Writing Phase] direction TB W1[write_report] W2[write_introduction] W3[write_conclusion] end D[finalize_report] %% Connections START --> A A --> B %% Feedback Loop B -- feedback --> A %% Approval Path B -- approve --> C %% Branching to Parallel Writing C --> W1 C --> W2 C --> W3 %% Re-converging W1 --> D W2 --> D W3 --> D D --> END
xN Parallel]] subgraph WritingTasks [Parallel Writing Phase] direction TB W1[write_report] W2[write_introduction] W3[write_conclusion] end D[finalize_report] %% Connections START --> A A --> B %% Feedback Loop B -- feedback --> A %% Approval Path B -- approve --> C %% Branching to Parallel Writing C --> W1 C --> W2 C --> W3 %% Re-converging W1 --> D W2 --> D W3 --> D D --> END