Stop 15 · AI Agents & OrchestrationProjects · 1/2

Autonomous Research Agent

Part of the AI Engineer Roadmap

In short

Build an agent that takes a question, searches the web, reads sources and writes a cited report. It's the project that proves you can make an agent finish a real task.

An agent that searches, gathers, and synthesizes information on a topic with minimal human guidance — a strong demonstration of tool-use, planning and multi-step reasoning.

The blob sits cross-legged on a hostel bed with a laptop, sticky notes and a stack of printed pages, writing a summary.

Think of it like this

The hostel friend who researches laptops

You ask your nerdy hostel friend for the best laptop under your budget. She searches, reads reviews, ignores spammy sites, notes what each source says and comes back with a short answer and links. Your agent does exactly that, without the late-night Maggi.

Watch it happen

Build plan for the research agent

Question
Plan
Search
Read+note
Report

1/5Milestone 1: take a question and a budget, like max 6 searches and 10 pages read.

The big ideas

What you need to know

Every claim cited

Keep notes tied to their URL. The report must cite a source for every fact it states.

Hard budgets

Cap searches, pages and tokens. Show the user what was used when the agent stops.

Dedupe and filter

Drop repeated URLs and obvious spam. Ten copies of one press release are not ten sources.

Test with known answers

Keep 10 questions where you know the answer. Rerun them after every change to catch regressions.

See it in code

Walk through the code

python
1MAX_SEARCHES = 62 3def research(question, search, read, llm):4    notes, sources = [], []5    queries = llm(f"List 3 search queries for: {question}").splitlines()6    for q in queries[:MAX_SEARCHES]:7        for url in search(q)[:2]:8            if url in sources:9                continue10            sources.append(url)11            notes.append(llm(f"Note facts relevant to '{question}':\n{read(url)}"))12    report = llm("Write a report. Cite [n] after each claim.\n" + "\n".join(13        f"[{i+1}] {n}" for i, n in enumerate(notes)))14    return report, sources

1/4The model plans its own search queries from the question.

The core loop. You pass in search, read and llm functions, so you can test it with fakes before wiring up real APIs.

Save yourself the pain

Common mistakes

Oops

Stuffing whole web pages into the final prompt.

Do this instead

Summarise each page into notes first. The final call then sees only the useful parts.

Oops

Showing the report without the source list.

Do this instead

Always show links next to citations, so readers can check the agent's work.

Your mission

First milestone: fake it end to end

~40 min

Quick check

Why turn each page into a short note before writing the report?

Go deeper

  1. 1Give the agent search and browsing tools, then have it produce a cited research summary.
  2. 2Add explicit stopping conditions so the agent doesn't loop indefinitely.
  3. 3Log the agent's full reasoning trace so you can debug and explain its decisions.

More projects at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge