AI Agents

ICCN Research Agent

An AI-assisted workflow for producing source-cited research briefs about Indonesia's creative economy.

View live production(opens in a new tab)

Access requires registration as an ICCN user and an active subscription.

Client
ICCN
Role
AI Engineer
Year
2026
Status
Staging deployment

ICCN Research Agent landing page with basic and deep research modes

Screenshot 1 of 4

Overview

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.

Technology stack

Research and orchestration

  • LangGraph
  • LangChain
  • Tavily
  • Amazon Nova
  • DeepSeek

Knowledge and persistence

  • ChromaDB
  • BM25
  • PostgreSQL
  • SQLModel
  • Redis

Delivery and operations

  • FastAPI
  • Server-Sent Events
  • LangWatch
  • Docker

ProblemBroad research questions required more than document retrieval

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.

Analytical scope

Observed requests range from city-level actor analysis to province-wide summaries and comparisons with ICCN platform information.

Evidence handling

Research outputs needed citations, limitations, and follow-up recommendations rather than unsupported conclusions.

ContributionDeveloped the Research Agent end to end

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.

Research workflows

Built separate basic and deep LangGraph paths with planning, bounded iteration, evidence gathering, and synthesis.

Source collection

Connected internal ICCN retrieval with Tavily web search and carried gathered evidence into report generation.

Delivery and persistence

Implemented FastAPI and SSE delivery with durable research sessions, plans, search results, citations, confidence data, and final answers.

ArchitectureSeparate basic and deep workflows by research depth

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.

Plan the research

FastAPI + SSE

Receives the question and streams progress

Mode selection

Chooses basic or deep execution

Research planner

Creates sub-questions and research state

Gather evidence

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

Produce the brief

Evidence synthesis

Organizes findings, comparisons, and gaps

Cited report

Generates a structured long-form artifact

PostgreSQL

Persists plans, evidence, citations, and outputs

Internal evidence first

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.

Bounded execution

Retry and step limits keep each research mode finite while allowing deep mode more room for iterative investigation.

ResultsTrace evidence from deep-research execution

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.

Flexible analytical scope

Observed tasks moved from city-level analysis to provincial summaries and comparison between regional evidence and ICCN platform data.

A separate workload class

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.

LearningsLessons from building deep research workflows

Give research its own execution budget

Long-form synthesis behaves differently from chat, so deep research needs separate iteration limits and latency expectations.

Citation presence still needs evaluation

Numbered markers keep evidence visible in the output, but their presence alone does not prove citation correctness or source quality.

Make uncertainty part of the report

Observed outputs identify missing regional data and recommend further research instead of presenting incomplete evidence as settled fact.

Next project

JDIH Jawa Timur Chatbot

A source-grounded legal assistant for finding regulations through natural-language conversation.

View project
Back to top