An agent that can only guess is an agent you cannot ship.
Search the web from inside a turn and get results that already carry the page text. The agent reads instead of fetching, answers from what it read, and points at where each claim came from.
one query · one credit each page
[ 01 / How it works ]
One tool call. Not a fetch loop.
The usual shape is a search API that returns links, then a fetch per link, then a parser per site, then a retry for the ones that blocked you. This collapses that into a single call.
Ask
Search from inside the turn
The agent forms a query the way it would for any tool call. No index to maintain, no corpus to have prepared in advance.
const hits = await hf.search({
query,
scrapeResults: true,
});Receive
Get pages, not links
Every result comes back with the page already fetched and cleaned. One round trip instead of a search call followed by a fetch per result.
hits.map((hit) => ({
url: hit.url,
text: hit.data.markdown,
}));Answer
Cite what it used
The URL travels with the text, so the answer can point at its sources instead of asking the reader to take it on trust.
answer(question, {
context: hits,
cite: 'url',
});[ 02 / The demo ]
A real question, answered in one call.
Replayed from a captured response, at the speed it happened. The word counts and confidence figures are the ones that came back, including the source that reports itself as thin.
~/app›Before you touch the pool config, check current guidance on Postgres sizing.
●hydrafetch · search
query: "postgres connection pool sizing best practices" · scrapeResults: true
5 results · 7,893 words fetched · 6 credits
●
Four calls, one round trip each. Search hands back pages rather than links, so there is no fetch loop after it. The rest are the same shape: ask once, get something the model can use without a parser in between. Watch the search run's fourth source, a 351-word page reporting 0.66 confidence. That is the response telling the agent to weight it lightly, and an API that returns links cannot tell you that, because it has not read the page either.
[ 03 / Built for ]
Agents that have to be right about the present.
Any assistant whose answer depends on something that changed after the model was trained.
Coding agents
The library moved to a new major version after the training cutoff.
The agent reads the current docs in the same turn it writes the code.
Research assistants
A summary nobody can trace back is a summary nobody can use.
Every passage arrives with the URL it came from, so citations are free.
Support copilots
Answers drift out of date the moment the help centre is edited.
The agent reads the page live rather than an index built last quarter.
Vertical agents
The sources that matter are trade sites nobody has an API for.
One call reads them the same as anything else, no parser per site.
Interactive products
A search call plus five fetches is five chances to stall the turn.
One round trip, so latency is a single number you can budget for.
Evaluation and review
You cannot grade an answer without the text it was drawn from.
The retrieved pages are in the trace, so a bad answer is explainable.
[ 04 / Keep going ]
Same API. Other problems.
Web data for AI
Ground RAG in fresh content
Crawl a site on a schedule and pipe clean Markdown into your embeddings.
ReadWeb data for AI
Turn listings into a dataset
Point a JSON schema at a directory and get typed rows back.
ReadWeb data for AI
Watch pages for changes
Re-run a set on a schedule and diff what came back.
Read[ Start ]
Clean web data is one call away.
500 free credits, no card required. Failures are never billed.
Success rate
Median scrape
ms