Deep Research Agent
A workflow that searches the web and academic sources in parallel, then synthesizes the findings into a cited research brief with structured output.
What you'll build
A workflow that takes a research question, searches multiple sources in parallel, and returns a structured, cited brief — the kind of task you'd otherwise do by hand across a dozen browser tabs.
Trigger: a chat message or API call carrying the question in {{starter.input}}.
The workflow
Build it
Starter — accept the question
Add a Starter block and set its trigger to Chat (or API). The user's question arrives as {{starter.input}}.
Parallel — search two sources at once
Add a Parallel block so the web and academic searches run concurrently instead of one-after-the-other. Inside it, place:
- a Tavily tool block — AI-optimized web search. Query:
{{starter.input}}. - an ArXiv tool block — academic papers. Query:
{{starter.input}}.
Parallel waits for both branches, then exposes their combined results downstream.
Agent — synthesize with citations
Add an Agent block. Give it a system prompt like:
You are a research analyst. Using ONLY the search results provided, write a concise brief that answers the question. Cite every claim with its source URL. If the sources disagree, say so.
In the user message, pass both result sets:
Question: {{starter.input}}
Web results:
{{parallel.tavily.results}}
Academic results:
{{parallel.arxiv.results}}Turn on Response Format (structured output) with a schema so the result is machine-readable:
{
"summary": "string",
"key_findings": ["string"],
"sources": [{ "title": "string", "url": "string" }]
}Response — return the brief
Add a Response block and return {{agent.output}}. Because the agent used structured output, downstream consumers get typed JSON, not free text.
With Response Format on, read the agent's result from {{agent.output}} (the parsed object), not {{agent.content}}. Wiring a downstream block to .content when structured output is enabled is the most common cause of "undefined is not valid JSON".
Make it yours
- Add more sources. Drop an Exa (neural search) or Perplexity block into the Parallel block — each new branch runs at no extra latency.
- Go deeper on one result. Add a Firecrawl block after the search to scrape the top URL's full text before synthesis.
- Let the agent decide. Instead of a fixed Parallel, connect the search tools to the Agent as agent tools and let it choose which to call and when.
- Swap the model. Any provider works — see the AI Models reference. For long briefs, pick a model with a large context window.
Related
Guides
End-to-end example workflows you can rebuild in minutes — real agents for research, support, RAG, content, enrichment, and reporting.
Customer Support Agent
Classify inbound support email, draft a grounded reply from your knowledge base, gate urgent cases behind a human, and notify the team in Slack.