Solution

Search for Framework-Free Python Agents

Not every agent needs LangChain, CrewAI, or LangGraph. Many production agents are plain Python scripts with a while loop, an LLM call, and tool dispatch. But adding web search to a

The Problem

Not every agent needs LangChain, CrewAI, or LangGraph. Many production agents are plain Python scripts with a while loop, an LLM call, and tool dispatch. But adding web search to a framework-free agent means either integrating a scraper (fragile) or signing up for multiple search APIs with different auth patterns. Developers want one clean function they can drop into their agent loop without importing a framework.

The Scavio Solution

Scavio's API is a single POST request returning structured JSON. Wrap it in one function, add it to your agent's tool list, and you have web search. No framework dependency, no plugin system, no adapter pattern. The function takes a query, returns results. Your agent calls it when it needs web data. Works in a 50-line agent script or a 5,000-line production system.

Before

Before Scavio, the plain Python agent used a mix of requests + BeautifulSoup for Google scraping and the Reddit API for discussions. Two different auth patterns, two different parsers, and the Google scraper broke every few weeks.

After

After switching to Scavio, web search is one function, one API key, one response format. The agent script dropped from 200 lines of scraping/parsing code to 15 lines of API calls. It has not broken due to data source changes.

Who It Is For

Developers building AI agents in plain Python without LangChain, CrewAI, or other frameworks. Engineers who want a clean, dependency-free search tool function for their agent scripts.

Key Benefits

  • One function, one API key, one response format for all platforms
  • No framework dependency: works in plain Python scripts
  • Drop-in tool function for any agent loop pattern
  • 200 lines of scraping code replaced with 15 lines of API calls
  • Same function covers Google, Reddit, Amazon, YouTube, and more

Python Example

Python
import requests

API_KEY = "your_scavio_api_key"

def web_search(query: str, platform: str = "google") -> list[dict]:
    """Drop-in search tool for framework-free agents."""
    res = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": platform, "query": query},
        timeout=15,
    )
    res.raise_for_status()
    return [{"title": r.get("title", ""), "snippet": r.get("snippet", ""), "link": r.get("link", "")} for r in res.json().get("organic", [])[:5]]

# Minimal agent loop
def agent_loop(task: str):
    context = []
    # Step 1: Research
    results = web_search(task)
    context.extend([f"{r['title']}: {r['snippet']}" for r in results])
    # Step 2: Check Reddit for opinions
    reddit_results = web_search(task, "reddit")
    context.extend([f"[Reddit] {r['title']}: {r['snippet']}" for r in reddit_results])
    # Step 3: Pass to LLM (your LLM call here)
    print(f"Gathered {len(context)} context items for: {task}")
    for c in context[:5]:
        print(f"  {c[:100]}")
    return context

agent_loop("best search api for ai agents 2026")

JavaScript Example

JavaScript
const API_KEY = "your_scavio_api_key";

async function webSearch(query, platform = "google") {
  const res = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST",
    headers: { "x-api-key": API_KEY, "content-type": "application/json" },
    body: JSON.stringify({ platform, query }),
  });
  if (!res.ok) throw new Error(`scavio ${res.status}`);
  return (await res.json()).organic?.slice(0, 5).map((r) => ({ title: r.title ?? "", snippet: r.snippet ?? "", link: r.link ?? "" })) ?? [];
}

// Minimal agent loop
const results = await webSearch("best search api for ai agents 2026");
const reddit = await webSearch("best search api for ai agents", "reddit");
console.log(`Gathered ${results.length + reddit.length} context items`);
[...results, ...reddit].forEach((r) => console.log(`  ${r.title}: ${r.snippet.slice(0, 80)}`));

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Reddit

Community, posts & threaded comments from any subreddit

Frequently Asked Questions

Not every agent needs LangChain, CrewAI, or LangGraph. Many production agents are plain Python scripts with a while loop, an LLM call, and tool dispatch. But adding web search to a framework-free agent means either integrating a scraper (fragile) or signing up for multiple search APIs with different auth patterns. Developers want one clean function they can drop into their agent loop without importing a framework.

Scavio's API is a single POST request returning structured JSON. Wrap it in one function, add it to your agent's tool list, and you have web search. No framework dependency, no plugin system, no adapter pattern. The function takes a query, returns results. Your agent calls it when it needs web data. Works in a 50-line agent script or a 5,000-line production system.

Developers building AI agents in plain Python without LangChain, CrewAI, or other frameworks. Engineers who want a clean, dependency-free search tool function for their agent scripts.

Yes. Scavio's free tier includes 250 credits per month with no credit card required. That is enough to validate this solution in your workflow.

Search for Framework-Free Python Agents

Scavio's API is a single POST request returning structured JSON. Wrap it in one function, add it to your agent's tool list, and you have web search. No framework dependency, no plu