DeerFlow by ByteDance: Adding Search to the SuperAgent
How DeerFlow (66K GitHub stars) handles search providers and how to integrate Scavio as an alternative to Tavily.
DeerFlow is ByteDance's open-source multi-agent research framework with 66,000+ GitHub stars as of mid-2026. Its search layer is provider-agnostic: you swap in Tavily, Serper, InfoQuest, or any API that returns search results. Scavio plugs in as a drop-in replacement with broader platform coverage and lower per-query cost.
DeerFlow architecture overview
DeerFlow orchestrates multiple specialized agents: a planner that decomposes research questions, a searcher that gathers web data, a coder that runs analysis, and a reporter that synthesizes findings. The searcher agent delegates to a configurable search provider through a unified interface. This design means changing the search backend requires editing one config file, not rewriting agent logic.
Default search providers
Out of the box, DeerFlow supports Tavily ($0.008/credit PAYG, free 1,000 credits), Serper ($50/month for 500K queries), and InfoQuest (community-contributed). Each provider implements a common search interface that returns a list of results with title, URL, and snippet. The framework normalizes these into its internal document format before passing them to downstream agents.
Why swap the search provider
Tavily returns summarized web text. That is useful for general knowledge questions but limited when your research needs structured data: product prices, Reddit thread sentiment, YouTube video metadata, or Google AI Overview citations. Scavio returns typed JSON with platform-specific fields across Google, Reddit, YouTube, Amazon, Walmart, and TikTok. For research agents that need multi-platform coverage, the data shape matters more than the summary quality.
Swapping in Scavio
DeerFlow uses a search provider config in its settings. Add a custom provider that calls the Scavio API and maps the response to DeerFlow's expected format.
# deerflow_scavio_provider.py
import requests, os
from deerflow.search import SearchProvider, SearchResult
class ScavioProvider(SearchProvider):
def __init__(self):
self.api_key = os.environ['SCAVIO_API_KEY']
self.base_url = 'https://api.scavio.dev/api/v1/search'
def search(self, query: str, max_results: int = 10) -> list[SearchResult]:
resp = requests.post(self.base_url,
headers={'x-api-key': self.api_key},
json={'query': query, 'platform': 'google'})
data = resp.json()
results = []
for item in data.get('organic_results', [])[:max_results]:
results.append(SearchResult(
title=item.get('title', ''),
url=item.get('link', ''),
snippet=item.get('snippet', ''),
metadata=item # preserve full structured data
))
return resultsDeerFlow config
# config.py - register the custom provider
from deerflow.config import SearchConfig
from deerflow_scavio_provider import ScavioProvider
search_config = SearchConfig(
provider=ScavioProvider(),
max_results_per_query=10,
parallel_queries=True,
retry_on_failure=True
)Search provider comparison for DeerFlow
Tavily: $0.008/credit, summarized text, web only, 1K free. Serper: $0.10/1K queries, raw Google SERPs, web only, 2,500 free. Scavio: $0.005/credit, structured JSON, 10+ platforms, 250 free. DataForSEO: $0.0006/request standard queue, raw SERPs, web only, $50 minimum deposit. For DeerFlow research agents that only need web summaries, Tavily works. For agents that need product data, social signals, or video metadata, Scavio is the only option that covers all platforms in one call.
Multi-platform research example
A DeerFlow research task: "Analyze sentiment on the new MacBook Pro M5." With Tavily, the searcher gets web articles. With Scavio, the searcher gets Google results, Reddit discussions with upvote counts, and YouTube reviews with view counts and like ratios. The reporter agent produces a richer synthesis because the input data has more dimensions.
# Multi-platform search in one DeerFlow task
def multi_platform_search(query: str) -> dict:
platforms = ['google', 'reddit', 'youtube']
results = {}
for platform in platforms:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': os.environ['SCAVIO_API_KEY']},
json={'query': query, 'platform': platform})
results[platform] = resp.json()
return results
# 3 API calls = 3 credits = $0.015 total
# Returns: web articles + Reddit threads + YouTube reviewsGetting started
Clone DeerFlow from GitHub. Add the ScavioProvider file above. Set SCAVIO_API_KEY in your environment. Update the config to use the Scavio provider. Run your first research task. The framework handles orchestration; Scavio handles data. Total setup time: under 10 minutes.