How AI Agents Search the Web With ATXP
Every LLM has a knowledge cutoff. An agent that can only use training data can’t tell you what happened last week, can’t verify a current price, and can’t research a company’s recent product changes.
ATXP’s web search and browsing tools give your agent real-time web access — charged to its IOU balance, no separate API setup.

The short answer
web_search queries a live search index and returns current results. web_browse fetches and processes a URL’s full content. Together they give your agent the ability to research anything on the current web — at ~$0.003 per search query and ~$0.015 per page.
web_search: real-time query results
Real-time web search for agents queries a live search index rather than the LLM's training data, returning current results that reflect content published after the model's knowledge cutoff. Unlike static training data, live search results can surface news, pricing changes, documentation updates, and any other current information — making it essential for agents doing research, monitoring, or any task where accuracy depends on recency.
The web_search tool takes a query string and returns a ranked list of results with titles, URLs, snippets, and estimated freshness.
In Claude Code:
Search the web for "ATXP release notes March 2026" and summarize what's new
In LangChain:
from atxp import AtxpToolkit
toolkit = AtxpToolkit.from_env()
search = toolkit.get_tool("web_search")
results = search.run("best ai agent frameworks 2026")
# Returns: list of {title, url, snippet, date} objects
What it returns:
{
"results": [
{
"title": "Top AI Agent Frameworks in 2026",
"url": "https://example.com/agent-frameworks-2026",
"snippet": "A comparison of LangChain, CrewAI, AutoGen...",
"date": "2026-02-28"
},
...
],
"query": "best ai agent frameworks 2026",
"total_results": 10
}
web_browse: full page content
web_browse fetches a URL and returns the processed text content — JavaScript rendered, main content extracted, boilerplate removed.
browse = toolkit.get_tool("web_browse")
page = browse.run("https://docs.atxp.ai/tools/web-search")
# Returns: full text content of the page, cleaned and structured
For pages behind JavaScript rendering (SPAs, dynamic content), ATXP’s browser handles the render before extracting content — unlike simple requests.get() calls that only see the raw HTML.
The research pattern: search then browse
The efficient research workflow:
# Step 1: Search to find relevant pages
results = search.run("competitor pricing changes March 2026")
# Step 2: Browse the top 3 results
top_urls = [r["url"] for r in results["results"][:3]]
content = []
for url in top_urls:
page = browse.run(url)
content.append({"url": url, "content": page})
# Step 3: Synthesize (handled by the LLM)
# "Summarize pricing changes across these three sources..."
This costs approximately:
- 1 search query: $0.004
- 3 page browses: $0.045
- Total: ~$0.05 for a full research session
Pricing
| Tool | Per call | Notes |
|---|---|---|
web_search | ~$0.003–0.005 | Per query, 10 results returned |
web_browse | ~$0.01–0.02 | Per page, JS rendering included |
For a monitoring agent checking 10 competitors daily:
- 1 search per competitor = 10 searches = $0.04
- Browse top 2 results per competitor = 20 pages = $0.30
- Total daily cost: ~$0.34
At that rate, a month of daily competitive monitoring costs approximately $10 in web access — well within the value of staying current on competitor changes.
Competitive monitoring workflow
One of the most common uses of web search for agents:
from atxp import AtxpToolkit
from datetime import datetime
toolkit = AtxpToolkit.from_env()
search = toolkit.get_tool("web_search")
browse = toolkit.get_tool("web_browse")
email = toolkit.get_tool("email_send")
competitors = ["competitor-a.com", "competitor-b.com", "competitor-c.com"]
changes = []
for competitor in competitors:
# Search for recent changes
results = search.run(f"site:{competitor} pricing OR features updated {datetime.now().strftime('%B %Y')}")
if results["results"]:
page = browse.run(results["results"][0]["url"])
changes.append({"competitor": competitor, "content": page[:500]})
if changes:
email.run({
"to": "team@company.com",
"subject": f"Competitor updates — {datetime.now().strftime('%Y-%m-%d')}",
"body": "\n\n".join([f"{c['competitor']}:\n{c['content']}" for c in changes])
})
This runs in under 30 seconds and costs approximately $0.50 per run. Set it on a daily schedule via a cron job or task scheduler.
What agents can search for
Web search gives your agent access to anything currently indexed on the web:
- Competitor analysis — current pricing, feature releases, job postings
- Market research — industry news, analyst reports, company announcements
- Technical reference — current documentation, API changelogs, GitHub releases
- Price comparison — current product prices across retailers
- News and events — anything published after the LLM’s training cutoff
- Regulatory updates — new guidance, rule changes, official announcements
The key difference from LLM training data: results are current. An agent searching for today’s news gets today’s news, not what the model knew at its cutoff.
# Web search and browsing are included with any ATXP account
npx atxp
~$0.003–0.005 per search query. No separate Brave or SerpAPI account. Docs →
Frequently asked questions
How does web search work with ATXP?
web_search tool with a query string → live search results (not training data) → cost charged to IOU balance.
What’s the difference between web_search and web_browse?
web_search returns a list of results for a query. web_browse fetches and processes a specific URL’s full content. Use both together for research workflows.
How much does it cost?
~$0.003–0.005/search, ~$0.01–0.02/page browse. Both from IOU balance.
Are results real-time?
Yes — live search index, not training data. Reflects content published after the model’s knowledge cutoff.
What search provider?
Brave Search + supplementary sources, routed automatically.
Can my agent search and browse in the same workflow?
Yes — the standard pattern. Search to find relevant pages, browse to read them. Image generation tool →