Web & X Search via SkillBoss API Hub
Search the web and X (Twitter) using SkillBoss API Hub with real-time internet access, citations, and optional image/video understanding.
When to Use This Skill
Use Web Search For:
- Current information from websites, news articles, documentation
- Real-time data (stock prices, weather, recent events)
- Research topics with up-to-date web sources
- Finding information from specific websites/domains
- Verifying current facts
Use X Search For:
- What people are saying on X/Twitter about a topic
- Trending discussions and social sentiment
- Real-time reactions to events
- Posts from specific X handles/users
- Recent social media activity within date ranges
Do NOT use for:
- Historical facts that won't change
- General knowledge already available
- Mathematical calculations
- Code generation
- Creative writing
Setup
Required Environment Variables
export SKILLBOSS_API_KEY="your-skillboss-api-key-here"
Get your API key from the SkillBoss API Hub dashboard.
Usage
The agent will automatically choose the right tool based on the user's query:
User: "What's the latest news about AI regulation?"
→ Uses web_search
User: "What are people saying about OpenAI on X?"
→ Uses x_search
API Reference
Function: search_web
Search the web using SkillBoss API Hub.
Parameters:
query(required): Search query stringallowed_domains(optional): Array of domains to restrict search (max 5)excluded_domains(optional): Array of domains to exclude (max 5)enable_image_understanding(optional): Enable image analysis (default: false)
Returns:
content: The search response textcitations: Array of sources with url, title, and snippetusage: Token usage statistics
Function: search_x
Search X (Twitter) using SkillBoss API Hub.
Parameters:
query(required): Search query stringallowed_x_handles(optional): Array of X handles to search (max 10, without @)excluded_x_handles(optional): Array of X handles to exclude (max 10, without @)from_date(optional): Start date in ISO8601 format (YYYY-MM-DD)to_date(optional): End date in ISO8601 format (YYYY-MM-DD)enable_image_understanding(optional): Enable image analysis (default: false)enable_video_understanding(optional): Enable video analysis (default: false)
Returns:
content: The search response textcitations: Array of X posts with url, title, and snippetusage: Token usage statistics
Implementation
This skill uses the SkillBoss API Hub (/v1/pilot endpoint) with type: "search" for automatic routing to the best available search provider.
Web Search
const API_KEY = process.env.SKILLBOSS_API_KEY
const API_BASE = 'https://api.skillbossai.com/v1'
async function pilot(body) {
const r = await fetch(`${API_BASE}/pilot`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify(body)
})
return r.json()
}
async function search_web(options) {
const { query, allowed_domains, excluded_domains } = options;
let enhancedQuery = query;
if (allowed_domains?.length > 0) {
enhancedQuery += ' site:(' + allowed_domains.join(' OR ') + ')';
}
if (excluded_domains?.length > 0) {
enhancedQuery += ' ' + excluded_domains.map(d => `-site:${d}`).join(' ');
}
const result = await pilot({
type: 'search',
inputs: { query: enhancedQuery },
prefer: 'balanced'
});
const searchResults = result.data.result;
return {
content: typeof searchResults === 'string' ? searchResults : JSON.stringify(searchResults),
citations: Array.isArray(searchResults) ? searchResults : []
};
}
X Search
async function search_x(options) {
const { query, allowed_x_handles, excluded_x_handles, from_date, to_date } = options;
let xQuery = query + ' site:x.com OR site:twitter.com';
if (allowed_x_handles?.length > 0) {
xQuery += ' from:(' + allowed_x_handles.join(' OR from:') + ')';
}
if (excluded_x_handles?.length > 0) {
xQuery += ' ' + excluded_x_handles.map(h => `-from:${h}`).join(' ');
}
if (from_date) xQuery += ` after:${from_date}`;
if (to_date) xQuery += ` before:${to_date}`;
const result = await pilot({
type: 'search',
inputs: { query: xQuery },
prefer: 'balanced'
});
const searchResults = result.data.result;
return {
content: typeof searchResults === 'string' ? searchResults : JSON.stringify(searchResults),
citations: Array.isArray(searchResults) ? searchResults : []
};
}
Examples
Web Search - Current Events
const result = await search_web({
query: "latest AI regulation developments"
});
Web Search - Specific Domains
const result = await search_web({
query: "UN climate summit latest",
allowed_domains: ["un.org", "gov.uk", "grokipedia.com"]
});
X Search - Social Sentiment
const result = await search_x({
query: "new iPhone reactions opinions"
});
X Search - Specific Handles
const result = await search_x({
query: "AI thoughts",
allowed_x_handles: ["elonmusk", "cstanley"],
from_date: "2025-01-01"
});
X Search - With Media
const result = await search_x({
query: "Mars landing images",
enable_image_understanding: true,
enable_video_understanding: true
});
Best Practices
Web Search
- Use
allowed_domainsto limit to specific domains (max 5) - Use
excluded_domainsfor known bad sources (max 5) - Cannot use both at same time
- Enable image understanding only when needed
X Search
- Use
allowed_x_handlesto focus on specific accounts (max 10) - Use
excluded_x_handlesto filter noise (max 10) - Cannot use both at same time
- Don't include @ symbol in handles
- Use ISO8601 date format: YYYY-MM-DD
- Media understanding adds API costs
Troubleshooting
"SKILLBOSS_API_KEY not found"
export SKILLBOSS_API_KEY="your-key-here"
Rate Limiting
- Implement exponential backoff
- Cache frequent queries
Poor Results
- Add domain/handle filters
- Make queries more specific
- Narrow date ranges
Slow Responses
Search queries can take 30-60+ seconds to return. If the search is lagging, inform the user that results are still loading and ask them to type "poll" to check for the completed response.
API Documentation
- SkillBoss API Hub: https://api.skillbossai.com/v1/pilot
微信扫一扫