The Problem
Multi-agent systems (AutoGen, CrewAI, LangGraph) need a shared search tool that all agents can use without conflicting API keys, inconsistent result formats, or duplicated search logic across agent definitions.
The Scavio Solution
Create a single Scavio search tool function that any agent in the system can invoke. The tool handles auth, platform selection, and result normalization, giving every agent consistent access to live web data.
Before
Each agent in the multi-agent system has its own search implementation with different APIs, result formats, and error handling. Debugging search failures requires checking multiple agent codebases.
After
One shared search tool serves all agents with consistent auth, error handling, and result format. Adding search capability to a new agent requires one line of tool registration.
Who It Is For
Developers building multi-agent orchestration with DeerFlow, LangGraph, or CrewAI.
Key Benefits
- Single search tool shared across all agents
- Consistent result format regardless of platform
- Centralized auth and error handling
- One-line tool registration for new agents
Python Example
import requests
from typing import Optional
def scavio_search(
query: str,
platform: str = "google",
limit: int = 10,
context: Optional[str] = None
) -> dict:
"""Universal search tool for multi-agent systems.
Register this function with any agent framework."""
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": SCAVIO_API_KEY, "Content-Type": "application/json"},
json={"query": query, "platform": platform, "limit": limit}
)
if resp.status_code != 200:
return {"error": f"Search failed: {resp.status_code}", "results": []}
data = resp.json()
return {
"query": query,
"platform": platform,
"result_count": len(data.get("results", [])),
"results": [
{
"title": r.get("title", ""),
"url": r.get("link", ""),
"snippet": r.get("snippet", ""),
"position": r.get("position")
}
for r in data.get("results", [])
],
"agent_context": context
}
# AutoGen: register as tool
# assistant.register_function({"scavio_search": scavio_search})
# CrewAI: add as tool
# search_tool = Tool(name="web_search", func=scavio_search, description="Search the web")JavaScript Example
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
fetch('https://api.scavio.dev/api/v1/search', {method: 'POST', headers: H, body: JSON.stringify({query: 'example', country_code: 'us'})}).then(r => r.json()).then(d => console.log(d.organic_results?.length + ' results'));Platforms Used
Web search with knowledge graph, PAA, and AI overviews
YouTube
Video search with transcripts and metadata
Amazon
Product search with prices, ratings, and reviews
Community, posts & threaded comments from any subreddit