Building search for agents that can't afford to be wrong

Agents stopped just answering and started acting. Search never caught up: every API still returns something, even when the honest answer is 'not covered.' Why we built SeaWeb around labeled retrieval.

An airline chatbot made up a refund policy. A tribunal made the airline honor it.

That was Air Canada in February 2024: its website bot invented a bereavement fare rule, a grieving passenger trusted it, and the airline was ordered to pay CA$812. Air Canada's defense was that the chatbot was "a separate legal entity that is responsible for its own actions." The tribunal did not buy it.

Notice what actually failed. The bot was not stupid. It just answered. Retrieval came back thin, and nothing in the stack was built to say so. Every layer of today's AI stack is optimized to produce an answer. No layer is optimized to admit it does not have one.

That gap is what SeaWeb exists to close. This post walks through the evidence: what happened to the web, who reads it now, why smarter models will not save us, and why we think honest retrieval is the missing primitive. If you just want the API pitch, scroll to the bottom.

The web agents inherited

Search was losing to spam before generative AI showed up. A year-long study of product-review queries across Google, Bing, and DuckDuckGo (Bevendorff et al., 2024) found most high-ranking review pages were affiliate marketing, and concluded that search engines are losing the cat-and-mouse game against SEO spam. Writing just before the flood, the authors predicted generative AI would make it worse.

It did, on schedule:

  • November 2024 was the month AI-generated articles overtook human-written ones on the web (Graphite, 43,000 crawled articles).
  • AI content-farm "news" sites grew from 49 in May 2023 to more than 3,700 by mid-2026 (NewsGuard).
  • Roughly one in five of Google's top-20 results for informational queries is now AI-generated (Originality.ai).

One honest counterpoint, because honesty is the theme here: ranking still filters. Graphite also found 86% of articles that actually rank in Google are human-written. The good pages did not vanish. The problem is nastier: when a result comes back, nothing in the response tells you whether it is one of the good ones. Quality became invisible from the outside.

The majority reader is now a machine

In 2024, automated traffic passed 51% of all web traffic. For the first time, most of the web's readers were not people. And the fastest-growing slice is not training crawls: it is agents fetching pages in real time to answer a live request, up more than 15x during 2025 on Cloudflare's network.

Agents also stopped stopping at reading. OpenAI's Operator started booking restaurants in January 2025. OpenAI and Stripe shipped Instant Checkout that September, completing purchases inside the chat. The Model Context Protocol went from an Anthropic release in November 2024 to adoption by OpenAI and Google within six months, so any tool can now plug straight into an agent's hands.

Here is why that changes the stakes. A human reading a bad page squints, scrolls, opens another tab. An agent reading a bad page does the next thing, and the next thing increasingly has money attached. A Washington Post columnist asked Operator to find cheap eggs; it charged his card $31.43 without the required confirmation. OpenAI's response: "our safeguards did not work as intended."

Smarter models will not save us

The obvious hope is that the next model stops hallucinating. OpenAI's own research says the problem is incentives, not intelligence. Their paper "Why Language Models Hallucinate" puts it plainly: models are optimized to be good test-takers, and nearly every benchmark grades like a binary exam. A wrong guess costs the same as "I don't know," and a lucky guess scores. So models learn to guess.

Their comparison makes it concrete. A newer model that abstained on 52% of hard factual questions was wrong 26% of the time. An older model that abstained on just 1% was wrong 75% of the time. Nearly the same knowledge. Three times the wrong answers. The entire difference was permission to say "I don't know."

The second hope is that retrieval fixes it: give the model real sources and it stops making things up. Retrieval helps. It does not cure:

Put simply: the model is rewarded for answering, retrieval hands it whatever it found, and no layer is rewarded for saying "the sources do not cover this." The uncertainty is born at the retrieval layer. That is the layer nobody instrumented.

Search never says "I don't know"

The industry already agrees on half the fix. Exa's founding essay argued back in 2023 that LLMs would soon perform more searches than humans and that search must be rebuilt for model consumers (this post's shape is a tip of the hat to theirs). In 2025 alone, Tavily raised $25M to be the search engine for agents, Perplexity shipped a Search API that returns snippets instead of links, Firecrawl raised to turn the web into machine-readable data, and Brave launched a grounding API. Even Cloudflare now serves pages to agents as markdown because it costs about 80% fewer tokens than HTML. Machine-native search is consensus.

The other half is still missing. When Columbia's Tow Center tested eight AI search engines on 1,600 straightforward lookup queries, they were collectively wrong more than 60% of the time. One detail matters more than the headline: ChatGPT Search answered incorrectly 134 times and signaled uncertainty 15 times. The scandal is not that engines are sometimes wrong. It is that wrong arrives wearing the same confident formatting as right, so an agent cannot price the difference.

Meanwhile "unavailable" became a real state of the web, not an error code. Cloudflare, fronting about a fifth of the web, has blocked AI crawlers by default since July 2025, with over a million sites opting out before that. A search API that pretends everything is always reachable is describing a web that no longer exists.

So our working hypothesis extends Exa's: agents will run more searches than humans, and a meaningful share of those searches deserve the answer "not covered." An engine that cannot say that is wrong some fraction of the time, fluently, at scale, and its callers cannot tell which fraction they are in.

What we are building instead

We did not get here from theory. SeaWeb's first product was an agent that acted in the real world, and we built the whole rail, search through booking. Watching it act on top of generic retrieval convinced us the missing primitive was underneath, so in August 2026 we retired the acting rail to build the context layer every acting agent needs. Here is the shape the evidence forces:

  • Labels on every answer. Every response carries a coverage verdict (covered, uncertain, or unavailable) plus a per-result match_quality grade. This is the "give credit for I don't know" fix from the hallucination research, applied at the layer where the uncertainty is born. Abstention is a first-class result, not an error.
  • Entities before links. An agent asking about a hotel wants a typed card with structured fields, not ten blue links to reconcile.
  • Provenance by default. Every passage names the page it came from and the date we crawled it. Engines fabricating URLs is a documented failure mode; provenance you can check is the antidote.
  • An index we answer for. Results come from our own crawl and curated indexes. When our corpus cannot answer, the response says so. It never silently falls back to someone else's engine wearing our response shape.
  • Standing watches, not polling. Agents disconnect. A monitor keeps evaluating a query after the session ends and delivers a signed webhook when something changes.
  • MCP-native. Agents do not want an SDK, they want tools. Claude, ChatGPT, Cursor, Codex, and any MCP-capable client pick up SeaWeb's tools automatically. Plain HTTP JSON-RPC underneath.
  • Pricing that matches serving cost. One meter across every tool, cached work costs half because it costs us half, and failed calls are not charged.

This is why we built the SeaWeb API

SeaWeb is the context API AI agents call to search, route, and know the web: three endpoints (search, extract, monitor) over a corpus we crawl and curate ourselves, answered as structured JSON with an honesty label on every response. The corpus is partial, and partial is a word most APIs avoid. We lead with it, because everything above says a labeled partial index is worth more to an acting agent than an unlabeled infinite one.

curl -s https://api.seaweb.tech/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"search","arguments":{"vertical":"travel","intent":"quiet hotel near Ferry Building"}}}'

Teams point it at whatever their agents need to know and watch: sales reps walking into meetings briefed, recruiters vetting candidates against live coverage, analysts tracking competitors and filings, legal and risk teams monitoring regulators, vendors, and threats, and travel operators watching disruptions. The same engine also points at your own data, indexed behind the same tools and the same labels.

The first 1,000 credits every month are free, no payment method required, with a hard stop instead of a surprise bill. If you are building an agent that acts on what it retrieves, we would love to see what it does with retrieval it can actually price. Get a key at seaweb.tech.

Cheers,
The SeaWeb team