Research is the primitive that gives your agent eyes on the live web. Naive exposes three tools at different levels of depth and cost — web_search, read_url, and research — so the agent picks the right one for the job: a quick fact lookup, a single-page extract, or a multi-step synthesis with citations. Use the lightest tool that meets your needs to keep latency and cost low.
CLI First
| Tool | Type | Description | Speed | Cost |
|---|
web_search | Core | Search the web for current information — returns ranked results with snippets | Fast (~1s) | 10 credits |
read_url | Core | Fetch a URL and extract main text content with optional AI focus | Fast (~2s) | 10 credits |
research | Core | Multi-step deep research — search, fetch, and synthesize with citations | Slow (~10-90s) | 30-80 credits |
web_search
Real-time web search. Returns titles, URLs, and snippets — no page fetching.
Response:
Parameters
| Param | Type | Required | Default | Description |
|---|
query | string | Yes | — | Search query |
count | number | No | 5 | Number of results (1-20) |
When to use
- Quick fact checks
- Finding URLs to read in detail
- Getting recent news or pricing
- Time-sensitive information your training data might not cover
read_url
Fetch a webpage and extract the main text content. Optionally uses AI to focus on a specific topic.
Response:
Parameters
| Param | Type | Required | Default | Description |
|---|
url | string | Yes | — | URL to fetch and extract |
extract | string | No | — | Focus question — AI extracts relevant sections only |
When to use
- Reading a specific article after
web_search
- Extracting structured data from a known URL
- Getting documentation or pricing from a product page
Local and private URLs (localhost, 127., 10., 192.168.*) are blocked for security.
research
Multi-step deep research: searches the web, fetches top results, and synthesizes a comprehensive answer with inline citations. This is the heavyweight tool — use it when you need a thorough, multi-source answer.
Depth Levels
| Depth | Behavior | Credits | Time |
|---|
quick | Inline response (search + synthesis) | 30 | ~5s |
thorough | Async job, more sources | 50 | ~45s |
exhaustive | Async job, max sources | 80 | ~90s |
For thorough and exhaustive, you’ll get a 202 response with a job ID:
Completed result:
Use web_search → scan snippets for the answer.Cost: 10 credits. Time: ~1 second. Use web_search → read_url on the best result.Cost: 20 credits. Time: ~3 seconds. Use research for end-to-end synthesis.Cost: 50 credits. Time: ~45 seconds.
Error Handling
| Error | Cause | Recovery |
|---|
insufficient_credits | Not enough credits | Check balance with GET /v1/status |
url_blocked | Target is a private/local address | Use a public URL |
fetch_failed | Could not reach the target URL | Try a different URL or use web_search |
provider_error | Search provider error | Retry after a few seconds |
Start with web_search. If snippets aren’t enough, follow up with read_url. Only use research when you need a synthesized multi-source answer — it’s significantly more expensive but produces better results for complex questions.
Typical Workflow