What is grounding an agent, and how do web search tools fit in?

Learn about grounding, web search tools for agents, RAG, and how they connect

Product

Oct 1, 2026

Byron Landry

TL;DR: A model answers from a snapshot that ends at its training cutoff, and it won't warn you when that snapshot is stale. Grounding a model gives it current, checkable sources at answer time. Web search supplies those sources, but only a tool that returns full, readable content lets an agent use them.

Ask a model about something that happened after its training cutoff, and it won't tell you it doesn't know. It'll answer anyway, with the same confidence as everything else it says. For any agent doing real work, that's a universal problem: a model is a frozen snapshot of the internet, asked to reason about a world that keeps moving. 

This is why agents need grounding, or authoritative, relevant, and up-to-date information that can supplement the model’s training at the time the user asks a question. These work by prompting the agent with your query along with whatever context it needs to answer accurately; this pattern is known as retrieval-augmented generation (RAG). 

There are two main kinds of RAG that help with grounding: RAG over private documents, and RAG over web search results. RAG over your own documents covers internal data: product docs, tickets, contracts. External data, like a competitor's announcement this morning or a change on a regulator's site, lives on the open web, and no internal index contains it. For that, an agent needs a web search tool.

A web search tool is a service an agent can use to find web content relevant to your query before it provides a response. Most Assistant platforms, like Claude, ChatGPT, and Gemini, ship with built-in web search tools, but you can also change which one they use. One way to add a web search tool to an assistant is to use an MCP, which allows you to integrate an agent tool with your agent, usually by choosing “Add custom connector” from the UI and pasting in an MCP server URL. 

To see how important this is, consider an example. Imagine you ask a general-purpose assistant a simple question. The company in this example is fictional; the pattern isn't.

User: Did Acme Cloud change its storage pricing this month?

Let’s assume that the assistant lacks any web search tool. Then it might reply with something like the following:

Assistant: Acme Cloud charges $0.023 per GB per month for standard storage and $0.004 per GB per month for its archive tier. Pricing drops at higher volumes, starting at 50 TB.

The answer sounds authoritative, and it was accurate once. But the model's training data predates this month, and the answer gives no date, no source, and no hint of doubt. So the price quoted to the user is stale, and there’s no way for the user to tell a current fact from a stale one. 

One solution is a basic web search tool. When the agent needs up-to-date context, it queries the web search tool, which returns a ranked list of result URLs with short snippets of relevant content. This provides some up-to-date context, but it often requires additional follow-up by the agent in order to reach the relevant content. In the end, the agent may still struggle to locate the information you need.

For example, imagine that after you learn about grounding, you decide to add a web search tool to your assistant using an MCP. Now the assistant has a web search tool. When you ask the assistant the same question as before (“Did Acme Cloud change its storage pricing this month?”), the tool returns a ranked list like this one to the assistant:

  1. Acme Cloud Storage Pricing · acmecloud.example/pricing "Simple, predictable pricing for every workload. Compare tiers and..."

  2. Acme Cloud announces storage pricing update · news.example/acme-pricing "Acme Cloud said it will adjust prices for standard storage..."

  3. How we cut our Acme Cloud bill by 40% · blog.example/acme-costs (2024) "Standard storage runs $0.023 per GB, so the first thing we..."

This provides more up-to-date context, but it’s incomplete. From these snippets, the agent can tell that something changed, but the snippets stop before reaching the pricing numbers we need. The agent has to fetch each page itself, then parse the marked-up results into plain text, before reasoning about an answer. After a long and relatively expensive search, the agent responds like this:

Assistant: Acme Cloud announced a storage pricing update, but I couldn't find the new rates. One source lists standard storage at $0.023 per GB per month. You may want to check their pricing page.

This is more honest than the first answer, but no more useful. It even leans on the only readable number it found, from a 2024 blog post. The tool found the right pages but left the agent the hardest part of the job, which was to go find the rest of the information on the web and parse it for the answer. In this case, the agent failed.

In order to make web search more valuable, you need a tool that returns readable content, quickly, to your agent. Web pages are made of HTML and JavaScript and other dynamic content, but your agent reads natural language in plain text. Returning plain text or Markdown results to your agent saves the work of parsing the markup, and a smart tool returns JavaScript-rendered content that a scrape of the page might miss.

So, imagine you learn more about grounding and decide to upgrade your web search tool. Now you make that same query again (“Did Acme Cloud change its storage pricing this month?”). Again, the agent queries the new web search tool to ask about current prices. This time the tool returns the same ranked results, each with its full text as clean Markdown, its publication date, and its URL:

Acme Cloud announces storage pricing update · news.example/acme-pricing · Published September 2

Acme Cloud will lower the price of standard storage from $0.023 to $0.020 per GB per month, effective October 1. Archive storage pricing stays at $0.004 per GB per month. Existing volume discounts continue to apply.

Acme Cloud Storage Pricing · acmecloud.example/pricing · Updated September 2

Tier

Price per GB per month

Standard

$0.020 (from October 1)

Archive

$0.004

Assistant: Yes. On September 2, Acme Cloud announced it will cut standard storage from $0.023 to $0.020 per GB per month, starting October 1 [1][2]. Archive pricing stays at $0.004 [1]. The $0.023 figure you may see elsewhere is the old rate [3].

[1] news.example/acme-pricing [2] acmecloud.example/pricing [3] blog.example/acme-costs

The model now reasons from evidence instead of memory. It states the change, dates it, cites each claim, and flags the stale figure the second setup relied on, without fetching or cleaning a single page.

To see where your assistant stands, ask about something that happened last week. Does it answer? Does it cite a source with a date? Does the answer match what that page says? If not, now you know what to do about it.

Try Seltz

Seltz is a web search tool for agents. It serves full, readable, cited content from its own index rather than a live scrape, through a REST API, Python and JavaScript SDKs, or an MCP server. Grab an API key at console.seltz.ai and read the quickstart to get started.

Ciao, The Seltz Team



Related Articles

AI Agent Search: Owned Index vs. SERP API (Sept 2026)

SERP API or owned index? Compare search architectures for AI agent pipelines on cost and latency in September 2026.

Introducing Seltz Agent API

Ask big questions and get grounded, multi-step research responses using Seltz Agent.

Try the API today.

Grab an API key and get 20,000 search credits to start.

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.