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
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
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
Return Value
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
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
Return Value
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