Web Search Skills
OrcBot’s web search skills provide resilient, production-ready web research capabilities with automatic fallback across multiple search providers. The system prioritizes API-based search for speed and reliability, then falls back to browser-based search when API keys aren’t configured.web_search
Search the web using multiple engines with automatic fallback. This is the preferred high-level skill for web research.Parameters
Search query. Can be natural language or keyword-based.
Return Value
Formatted search results with titles, URLs, and snippets. Returns up to 10 results ranked by relevance.
Fallback Chain
The search system tries providers in this order (configurable viasearchProviderOrder):
- Serper API - Fast, structured results (requires
serperApiKey) - Brave Search API - Privacy-focused (requires
braveSearchApiKey) - SearXNG - Self-hosted metasearch (requires
searxngUrl) - Google - Browser-based fallback
- Bing - Browser-based fallback
- DuckDuckGo - Browser-based fallback
If no API keys are configured, the system automatically uses browser-based search. This is slower but requires no external services.
Example Usage
Response Example
Metadata
- isDeep:
true- Counts as substantive progress - isResearch:
true- Higher repetition budget (up to 15 calls) - isSideEffect:
false- No deduplication
browser_navigate
Navigate to a URL and extract a semantic snapshot of the page content. Use when you need to read a specific page after finding it via search.Parameters
Full URL to navigate to (must include protocol:
https:// or http://)Run browser in headless mode. Set to
false for sites with anti-bot detection.Return Value
Semantic snapshot of the page including:
- Page title and URL
- Main text content extracted from semantic HTML
- Interactive elements (buttons, links, forms) with references
- Console logs and navigation state
Stealth Mode
browser_navigate uses anti-bot detection evasion:
--disable-blink-features=AutomationControlled- Realistic user agent strings
- Persistent browser profiles with cookies and localStorage
- Human-like timing and behavior
- Optional CAPTCHA solving (via
2captchaifcaptchaApiKeyis configured)
Example Usage
Response Example
Vision Fallback
If the semantic snapshot is thin (< 500 chars) and a vision analyzer is configured, the system automatically:- Captures a screenshot
- Analyzes it with GPT-4 Vision or Gemini
- Returns a visual description alongside the semantic content
Metadata
- isDeep:
true - isResearch:
true - isSideEffect:
false
http_fetch
Lightweight HTTP request without launching a browser. Use this beforebrowser_navigate for APIs and simple pages.
Parameters
URL to fetch
HTTP method:
GET, POST, PUT, PATCH, or DELETECustom HTTP headers as key-value pairs
Request body for POST/PUT/PATCH. Auto-stringifies objects to JSON.
Timeout in milliseconds
Return Value
Response status and body:
Example Usage
Metadata
- isDeep:
true - isResearch:
false
extract_article
Extract clean article text from a URL using Mozilla Readability. Strips ads, navigation, and clutter.Parameters
URL to extract. If omitted, extracts from the current browser page.
Return Value
Clean article text with:
- Title
- Author (if available)
- Publication date (if available)
- Main content without ads or navigation
Example Usage
Response Example
Metadata
- isDeep:
true - isResearch:
false
extract_article reuses the shared browser instance, so it’s fast if you just navigated to the page.download_file
Download a file from the web to the agent’s local storage.Parameters
URL of the file to download
Optional filename. If omitted, infers from URL path or Content-Type.
Return Value
Absolute path to the downloaded file and size in KB
Limits
- Max file size: 50 MB (enforced via streaming)
- Timeout: 60 seconds
- Storage location:
~/.orcbot/downloads/
MIME → Extension Inference
If the URL has no file extension, the system infers it fromContent-Type:
| Content-Type | Extension |
|---|---|
image/jpeg | .jpg |
image/png | .png |
application/pdf | .pdf |
application/zip | .zip |
audio/mpeg | .mp3 |
video/mp4 | .mp4 |
text/csv | .csv |
Example Usage
Response Example
Error Handling
- Timeout:
Error: Download timed out after 60s - Too large:
File too large: 75.2 MB (max 50 MB) - HTTP error:
HTTP error! status: 404
Metadata
- isDeep:
false - isResearch:
false
Best Practices
Search results are cached for 5 minutes. Identical queries within the cache window return instant results.
Troubleshooting
”No search results found”
- Cause: All providers failed or returned no results
- Fix: Try a simpler, more general query. Avoid quotes unless needed.
”Browser returned blank page”
- Cause: Site requires JavaScript or detects automation
- Fix: Retry with
headless: falseor useswitch_browser_profileto a fresh profile
”CAPTCHA detected”
- Cause: Site has bot protection
- Fix: Configure
captchaApiKey(2captcha) or usebrowser_solve_captchamanually
”Download timed out”
- Cause: File too large or slow network
- Fix: Check file size via
http_fetchfirst, or use a download manager