Skip to main content
Engineering

What Is Agentic Search and Why It Beats Stale Caches

Agentic search queries the live web at reasoning time. Learn how it differs from RAG and traditional search, and when agents need real-time retrieval.

fastcrw
By RecepJune 14, 202611 min readLast updated: July 12, 2026

By the fastCRW team · Benchmark and feature claims verified 2026-05-29 · Verify independently.

What is agentic search?

Agentic search is a retrieval pattern where an LLM agent queries the live web at reasoning time — not at index time — and reads the actual page content before deciding what to do next. The search call is an action the agent takes mid-thought, the same way it would call a function or run code. Each result can reshape the next query: a stale doc surfaced in step one becomes the reason the agent reformulates and searches again in step two.

That single property — retrieval happening inside the reasoning loop rather than as a frozen preprocessing step — is what separates agentic search from both classic search APIs and from retrieval-augmented generation (RAG) over a vector store. It is also why the underlying tool matters so much: if the search-and-read call is slow, unreliable, or returns raw HTML the agent has to clean, the whole loop stalls.

Disclosure: we build fastCRW, a Firecrawl-compatible, open-core (AGPL-3.0) scrape/crawl/map/search engine. This post explains the pattern in general, then maps it onto the specific primitive we provide — a fast /v1/search endpoint with per-call content extraction. We are honest below about the parts of an agent harness we do not ship.

Agentic search vs RAG vs classic search

The three patterns are often conflated. They retrieve from fundamentally different places, and the right production agent frequently uses more than one.

DimensionClassic search APIRAG (vector store)Agentic search
Data sourceLive web indexPre-indexed embeddingsLive web, read in full
FreshnessCurrentSnapshot from last ingestionCurrent at query time
What it returnsTitles + snippetsChunked embeddingsFull page content the agent reads
Who decides what to fetchCaller, oncePipeline author, in advanceThe agent, mid-reasoning
DiscoveryOpen web, no readBounded by what was ingestedOpen-ended; pages never seen before
Best forOne-shot lookupsInternal docs, stable referenceReal-time signals, content you don't control

RAG is the right layer for content you own and update deliberately: internal documentation, support articles, proprietary data. Its weakness is structural — the index reflects the corpus as it existed on the last ingestion run, and someone had to decide in advance what was worth embedding. Anything that changed since, or anything no one anticipated, is invisible.

A classic search API solves freshness but stops at snippets. The agent gets a ranked list of URLs and short blurbs, then has to fetch and parse each page itself — a second call, an HTML-cleaning step, and a place for the loop to break.

Agentic search collapses those two steps. The agent issues a query, gets back clean, full-page content from the live results, and reasons over it immediately. The retrieval strategy is not committed up front; it emerges as the agent learns what it needs. If you want the deeper RAG-versus-search trade-off for production pipelines, we cover it in building a web context layer for AI agents and choosing RAG tools.

Why cached results are not enough for live signals

Picture an agent that can only read a cached index as a researcher who can only read last year's newspapers. The corpus was seeded on a fixed day; anything after that day does not exist for the agent. A competitor's price change, a new CVE, a framework's breaking release — all unknown.

The failure mode is quiet and compounding. A coding agent reading documentation that was deprecated three versions ago will confidently recommend a removed method, ship it, and move on to the next file built on the same stale assumption. Nobody gets an error; you get a slowly accumulating pile of wrong decisions. For any signal that moves on a short cycle, live retrieval is the only method that guarantees freshness without you engineering a separate refresh job on top of a vector store.

Concrete cases where the live read is the whole point:

  • Competitive intelligence. "How do we compare to vendor X on price?" requires the agent to fetch X's current pricing page, not a quarter-old embedding of it.
  • Dependency and security monitoring. Querying current CVE feeds, GitHub issues, and changelog entries to decide whether a patch is needed.
  • Open-web research. Reading the latest papers or release notes, where the relevant document may not have existed at your last ingestion run.

Anatomy of a reasoning-time search loop

An agentic search loop is mechanically simple. The intelligence is in the conditionals, not the plumbing:

  1. Decide to search. A lightweight intent check routes a query to the live web (changing/open content) or to the vector store (owned, stable content). This is the routing layer that keeps you from paying live-search latency for questions a cached index answers fine.
  2. Formulate the query from the current reasoning context, not a fixed template.
  3. Search and read in one call — get ranked results and clean page content back, so there is no separate scrape step to fail.
  4. Evaluate. Is the content fresh, on-topic, and sufficient? If a result is a deprecated doc, reformulate (for example, append a year or "alternatives") and loop.
  5. Synthesize or repeat until the agent has enough to answer — or concludes the answer is not findable.

Step 3 is the load-bearing one, and it is where the search tool's quality is felt. If each iteration costs two round trips and an HTML parse, a three-hop loop becomes painfully slow. The whole appeal of agentic search depends on retrieval being a single fast call the agent can afford to make repeatedly.

Building the search-and-read primitive

fastCRW provides exactly that primitive: a Firecrawl-compatible /v1/search that runs a web search and can scrape each result in the same request, returning LLM-ready markdown. You point the standard Firecrawl SDK at fastCRW by swapping the base URL — no rewrite.

from firecrawl import Firecrawl

# Point the Firecrawl SDK at fastCRW — one line
client = Firecrawl(api_key="YOUR_KEY", api_url="https://api.fastcrw.com")

# One call: search + per-result content extraction
results = client.search(
    "langchain memory module breaking changes 2026",
    limit=5,
    scrape_options={"formats": ["markdown"]},
)
# Each result carries full markdown the agent reads inline —
# no second fetch, no HTML cleaning step.

On latency, the relevant number is from our search benchmark, which is separate from our scrape benchmark and self-consistent: fastCRW search averaged 880 ms over a 100-query, 10-category run, with a 785 ms median and 73 of 100 latency wins against two other providers (source: benchmarks/triple-bench.ts, single point-in-time run). That is a latency budget a multi-hop reasoning loop can actually afford to spend several times. The 100-query success rate in that run was 100%.

Search billing is straightforward: 1 credit per query. If you want the agent to get a synthesized answer or per-result summaries, /v1/search supports answer: true / summarizeResults: true. Answer and extraction run on fastCRW's managed LLM on paid plans, with no key required — metered in credits based on usage and capped at 8,000 credits per request. LLM features require a paid plan. Exact numbers live on /pricing. For the search-for-agents angle specifically, see our search API for AI agents guide and choosing a web search API for AI agents.

Where fastCRW is the retrieval primitive, not the agent

This is the honest boundary, and it matters for your architecture decision. fastCRW gives the agent a fast, scriptable search-and-read call. It does not ship a full autonomous research harness:

  • No /v1/agent and no Spark-style models. fastCRW does not run the reasoning loop for you — your framework (LangGraph, the OpenAI Agents SDK, CrewAI, your own code) owns the loop and calls fastCRW as a tool.
  • Research is a primitive, not a turnkey report. /v1/search/research/papers fans out to arXiv, OpenAlex, and Semantic Scholar and posts the highest ArXivQA recall of any tool we've benchmarked (61.0% vs. Firecrawl's 53.3%) — but it returns structured sources for your loop to synthesize, not a single "ask one question, get a finished report" call.
  • Stateless per request. There is no persistent session or server-side memory; the agent (or your framework) carries state across hops.
  • LLM extraction runs on the managed LLM for structured JSON extraction on paid plans (the same managed LLM powers the search-answer path). Screenshots are supported on the v2 scrape API (a screenshot format request returns data.screenshot as a base64 PNG data URL), and anti-bot handling — 12-signal block detection, UA rotation, stealth fingerprints, residential-proxy egress — ships natively in the open core.

If you are building the agent yourself and want the fast, self-hostable retrieval call inside your loop — plus a native research fan-out to lean on — that is precisely what fastCRW is for. To wire the loop, browser-driven tool use is covered in browser automation for AI agents.

When NOT to use agentic search

Live retrieval is not free and not always right. Reach for something else when:

  • The content is yours and stable. Internal docs, product specs, and support articles belong in a vector store. Paying per-query live-search latency and credits to re-read content you control is waste.
  • Latency is non-negotiable and the answer is static. An open-web hop adds round-trip time. If a cached answer is correct, route to it.
  • You need a fully autonomous research agent out of the box. As noted above, fastCRW gives the primitive, not the harness — build the reasoning loop in your own framework and call fastCRW's search and research endpoints as tools.
  • The signal is high-frequency structured data. For data that changes by the second on a known endpoint, a direct API or a scheduled crawl into a RAG pipeline may beat re-searching every time.

The production answer is usually both: a fast intent check routes owned/stable queries to RAG and open/changing queries to agentic search. Get the routing layer right and you pay for live retrieval only when freshness is the actual requirement.

Sources

  • fastCRW search benchmark — 100 queries, 10 categories, single run: average 880 ms, 785 ms median, 73/100 latency wins, 100% success (benchmarks/triple-bench.ts). See /benchmarks.
  • fastCRW endpoints and credit costs, in the OSS repo github.com/us/crw.
  • Pricing (Free = 500 one-time credits): /pricing.

Related: Search API for AI agents · Web search API for AI agents · Browser automation for AI agents · Web context layer for AI agents

FAQ

Frequently asked questions

How is agentic search different from RAG?
RAG retrieves chunks from a pre-built vector index that reflects the corpus as of the last ingestion run, so it is best for internal docs and stable reference data you control. Agentic search has no index: the agent queries the live web at reasoning time and reads full page content as it currently exists. Most production agents use both — RAG for owned/stable content, agentic search for real-time signals and open-web content.
When should an agent search the live web instead of a vector store?
Search the live web when the content changes on a short cycle or you don't control it: competitor pricing, CVEs and security advisories, framework releases, changelogs, and recent papers. Use the vector store for internal documentation, product specs, and stable reference material you ingest deliberately. A lightweight intent check before retrieval should route each query to the right path.
What does agentic search cost per query?
With fastCRW, a /v1/search query costs 1 credit, and per-result content scraping is folded in. If you enable answer synthesis or per-result summaries, the managed LLM path (paid plans, no key needed) is metered in credits based on usage and capped at 8,000 credits per request. LLM features require a paid plan. Current plan rates are on /pricing.
Can fastCRW power agentic search?
Yes. fastCRW's /v1/search is the search-and-read primitive an agent calls mid-reasoning: it runs a web search and scrapes each result in one call, returning LLM-ready markdown, and averaged 880 ms over a 100-query benchmark (triple-bench.ts). It is Firecrawl-compatible, so the standard SDK works after a base-URL swap. fastCRW provides the retrieval call; your framework owns the reasoning loop.
Does fastCRW include an autonomous research agent?
Not a hosted agent runtime — there is no /v1/agent or Spark-style model, and the engine is stateless per request. fastCRW does provide a native research primitive (/v1/search/research/papers, fanning out to arXiv, OpenAlex, and Semantic Scholar) that your framework calls as a tool. You build the reasoning loop in your own framework (LangGraph, OpenAI Agents SDK, CrewAI, or custom code).

Get Started

Try fastCRW free

Run a live request in the playground — no signup required. Or grab a free API key with 500 credits, no credit card.

Continue exploring

More engineering posts

View category archive