Research Agent
Autonomous research agent that plans, searches across the web, synthesizes findings, and returns a structured markdown report with citations and charts.
When to use — ALL of these require explicit user intent or clear analytical need
- The user explicitly asks for "research", "report", "analysis", "deep dive", or "investigate"
- The user needs data visualization — charts, graphs, trend plots
- Quantitative or comparative analysis across multiple data points (market sizing, benchmarking, statistical comparisons)
- Multi-section structured reports (literature reviews, competitive analyses, technology surveys)
When NOT to use — default to simpler tools first
- General conversation, Q&A, or factual questions — answer directly
- A single lookup that
wikipedia_search or google_web_search can resolve
- Summarizing a single article or URL — use
fetch_url_content instead
- Code-related tasks — use the
code-agent skill
- Browser automation — use the
browser-automation skill
- Email, calendar, or other tool-based tasks — use the appropriate skill directly
Important: When in doubt, do NOT delegate to research-agent. Use google_web_search or other tools directly. Only escalate to research-agent when the task clearly requires multi-source synthesis, structured reporting, or chart generation.
How to invoke
Call the research_agent tool with a single plan argument. The plan is free-form prose; include:
- Objectives — what the user is trying to learn or decide
- Topics — the specific angles / subtopics to cover
- Structure — the section layout you want in the final report
Example:
research_agent(plan="""
Research Plan: AI Code Assistant Market 2026
Objectives:
- Current market size and growth trends
- Leading products and differentiators
- Enterprise adoption barriers
Topics:
1. Global market statistics and forecasts
2. Top products (Copilot, Cursor, Claude Code, etc.) and positioning
3. Pricing models and enterprise SKUs
4. Security/compliance concerns raised by buyers
Structure:
- Executive Summary (3-5 bullets)
- Market Overview
- Product Landscape
- Enterprise Adoption
- Outlook
""")
The agent streams research_step progress events as it works. The final result is a markdown report saved as a research artifact in the canvas.
Output
- Markdown report with
#/## headings, bullet lists, and inline citations
- Any charts the agent generated are embedded in the markdown
- The full report is also persisted as an
artifacts entry so the user can open it from the canvas
Guidelines for the orchestrator
- Don't fabricate the plan — use the user's own words and just structure them into objectives/topics/structure. If the user only gave a one-line request, expand it into 2-3 objectives but stay true to intent.
- One research_agent call per user request. Don't fan out multiple parallel calls.
- If the user asks a follow-up ("add a section on X", "dig deeper into Y"), call
research_agent again with an updated plan — the agent itself does not have persistent memory across calls.
- After the tool returns, do NOT restate the whole report in chat. The report is already rendered as an artifact; a 1-2 sentence summary pointing the user to the canvas is enough.
1---2name: research-agent3description: Deep research with structured reports and charts. ONLY use when the user explicitly requests research/analysis, or needs data visualization with charts, or quantitative/comparative analysis across multiple sources. Do NOT use for simple questions or quick lookups.4---56# Research Agent78Autonomous research agent that plans, searches across the web, synthesizes findings, and returns a structured markdown report with citations and charts.910## When to use — ALL of these require explicit user intent or clear analytical need1112- The user explicitly asks for "research", "report", "analysis", "deep dive", or "investigate"13- The user needs data visualization — charts, graphs, trend plots14- Quantitative or comparative analysis across multiple data points (market sizing, benchmarking, statistical comparisons)15- Multi-section structured reports (literature reviews, competitive analyses, technology surveys)1617## When NOT to use — default to simpler tools first1819- General conversation, Q&A, or factual questions — answer directly20- A single lookup that `wikipedia_search` or `google_web_search` can resolve21- Summarizing a single article or URL — use `fetch_url_content` instead22- Code-related tasks — use the `code-agent` skill23- Browser automation — use the `browser-automation` skill24- Email, calendar, or other tool-based tasks — use the appropriate skill directly2526**Important**: When in doubt, do NOT delegate to research-agent. Use `google_web_search` or other tools directly. Only escalate to research-agent when the task clearly requires multi-source synthesis, structured reporting, or chart generation.2728## How to invoke2930Call the `research_agent` tool with a single `plan` argument. The plan is free-form prose; include:3132- **Objectives** — what the user is trying to learn or decide33- **Topics** — the specific angles / subtopics to cover34- **Structure** — the section layout you want in the final report3536Example:3738```39research_agent(plan="""40Research Plan: AI Code Assistant Market 20264142Objectives:43- Current market size and growth trends44- Leading products and differentiators45- Enterprise adoption barriers4647Topics:481. Global market statistics and forecasts492. Top products (Copilot, Cursor, Claude Code, etc.) and positioning503. Pricing models and enterprise SKUs514. Security/compliance concerns raised by buyers5253Structure:54- Executive Summary (3-5 bullets)55- Market Overview56- Product Landscape57- Enterprise Adoption58- Outlook59""")60```6162The agent streams `research_step` progress events as it works. The final result is a markdown report saved as a research artifact in the canvas.6364## Output6566- Markdown report with `#`/`##` headings, bullet lists, and inline citations67- Any charts the agent generated are embedded in the markdown68- The full report is also persisted as an `artifacts` entry so the user can open it from the canvas6970## Guidelines for the orchestrator7172- Don't fabricate the plan — use the user's own words and just structure them into objectives/topics/structure. If the user only gave a one-line request, expand it into 2-3 objectives but stay true to intent.73- One research_agent call per user request. Don't fan out multiple parallel calls.74- If the user asks a follow-up ("add a section on X", "dig deeper into Y"), call `research_agent` again with an updated plan — the agent itself does not have persistent memory across calls.75- After the tool returns, do NOT restate the whole report in chat. The report is already rendered as an artifact; a 1-2 sentence summary pointing the user to the canvas is enough.