Research workflows
Built separate basic and deep LangGraph paths with planning, bounded iteration, evidence gathering, and synthesis.
An AI-assisted workflow for producing source-cited research briefs about Indonesia's creative economy.
Access requires registration as an ICCN user and an active subscription.

ICCN Research Agent landing page with basic and deep research modes
Screenshot 1 of 4
From open research questions to structured briefs
ICCN Research Agent handles questions that need more than a short retrieved answer. It supports research into creative-economy actors, cities, provinces, policies, and comparisons between regional evidence and information held by ICCN.
The application has basic and deep research modes. Both begin with internal ICCN retrieval, then gather external evidence and synthesize a report. Basic mode uses a bounded plan, verification, and retry loop. Deep mode uses a longer ReAct-style reasoner and executor workflow for broader analytical tasks.
I developed the Research Agent end to end, including the research graphs, state model, internal retrieval, web-search integration, persistence, streaming API, and report-oriented outputs. AI Docs is a separate team project and is not part of this case study.
Creative-economy research can span regional actors, policy, local programs, ICCN records, and external sources. A normal chatbot response is too narrow for questions that require planning, comparison, and a structured account of incomplete evidence.
The system needed a separate workflow for research depth while keeping the standard conversational assistant responsive for direct questions.
Observed requests range from city-level actor analysis to province-wide summaries and comparisons with ICCN platform information.
Research outputs needed citations, limitations, and follow-up recommendations rather than unsupported conclusions.
I designed and implemented the Research Agent as a separate analytical capability within ICCN AI. My work covered orchestration, research state, internal and web retrieval, evidence processing, report synthesis, persistence, API streaming, and operational tracing.
Built separate basic and deep LangGraph paths with planning, bounded iteration, evidence gathering, and synthesis.
Connected internal ICCN retrieval with Tavily web search and carried gathered evidence into report generation.
Implemented FastAPI and SSE delivery with durable research sessions, plans, search results, citations, confidence data, and final answers.
Basic mode plans sub-questions, searches internal ICCN knowledge, performs web search, verifies the evidence, and can retry up to three times before synthesis. Deep mode also begins with internal retrieval, then uses a ReAct-style reasoner and executor loop with a maximum of ten steps. Both modes generate related follow-up questions and persist their research artifacts.
FastAPI + SSE
Receives the question and streams progress
Mode selection
Chooses basic or deep execution
Research planner
Creates sub-questions and research state
Internal ICCN RAG
Searches organizational knowledge first
Tavily web search
Collects external evidence for the task
Verify or reason
Checks evidence or continues bounded investigation
Evidence synthesis
Organizes findings, comparisons, and gaps
Cited report
Generates a structured long-form artifact
PostgreSQL
Persists plans, evidence, citations, and outputs
Both workflows search the ICCN corpus before external sources. The ordering is verified in code, but its effect on cost or quality has not been measured.
Retry and step limits keep each research mode finite while allowing deep mode more room for iterative investigation.
7
trace rows explicitly tagged as deep research
not seven unique sessions
5
deep-research traces with explicit outputs
observed July 14 to August 12, 2026
12.5k–19k
characters per explicit research output
median approximately 15.8k characters
12–27
distinct citation markers per explicit output
citation presence, not citation correctness
LangWatch recorded seven trace rows explicitly tagged as deep research between July 14 and August 12, 2026. Five contained explicit outputs. Those artifacts ranged from about 12,500 to 19,000 characters and included analytical sections, comparisons, tables, limitations, and recommendations.
Each explicit output contained approximately 12 to 27 distinct numbered citation markers. The traces confirm that cited long-form artifacts were produced, but they do not measure citation correctness, research accuracy, unique users, or task success.
Observed tasks moved from city-level analysis to provincial summaries and comparison between regional evidence and ICCN platform data.
Five explicit deep-research traces ranged from about 7 to 279 seconds, with a median near 188 seconds. This describes workload depth, not a latency achievement.
Long-form synthesis behaves differently from chat, so deep research needs separate iteration limits and latency expectations.
Numbered markers keep evidence visible in the output, but their presence alone does not prove citation correctness or source quality.
Observed outputs identify missing regional data and recommend further research instead of presenting incomplete evidence as settled fact.
Next project
A source-grounded legal assistant for finding regulations through natural-language conversation.