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
string
required
Search query. Can be natural language or keyword-based.
Return Value
string
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
string
required
Full URL to navigate to (must include protocol:
https:// or http://)boolean
default:"true"
Run browser in headless mode. Set to
false for sites with anti-bot detection.Return Value
string
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
string
required
URL to fetch
string
default:"GET"
HTTP method:
GET, POST, PUT, PATCH, or DELETEobject
Custom HTTP headers as key-value pairs
string | object
Request body for POST/PUT/PATCH. Auto-stringifies objects to JSON.
number
default:"30000"
Timeout in milliseconds
Return Value
string
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
string
URL to extract. If omitted, extracts from the current browser page.
Return Value
string
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
string
required
URL of the file to download
string
Optional filename. If omitted, infers from URL path or Content-Type.
Return Value
string
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:
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
Related Skills
Browser Tooling
Low-level browser automation for complex interactions
File Operations
Read and process downloaded files