ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何替换 OpenClaw 代理中的 Brave Search
教程

如何替换 OpenClaw 代理中的 Brave Search

将 OpenClaw 代理从 Brave Search API 迁移到 Scavio,以获得更好的结构化数据、多平台支持和更简单的身份验证。

获取免费API密钥API文档

通过将 HTTP 调用从 Brave Search API 端点交换到 Scavio API 端点来替换 OpenClaw 代理中的 Brave Search。迁移需要更改 URL、从 Brave API 密钥标头切换到 Scavio x-api-key 标头,并更新响应解析器以处理 Scavio 的 JSON 结构。交换过程只需不到 10 分钟,您的代理即可通过同一端点访问 Google、Amazon、YouTube、Reddit 和 Walmart,而 Brave Search 仅返回 Web 结果。

前置条件

  • 已安装 Python 3.8+
  • 请求已安装库
  • 来自 scavio.dev 的 Scavio API 密钥
  • 使用 Brave Search 的现有 OpenClaw 代理

操作指南

步骤 1: 识别勇敢搜索调用

查找并记录代理代码中需要迁移的所有 Brave Search API 调用。

Python
import os, requests

# BEFORE: Brave Search API call
# resp = requests.get('https://api.search.brave.com/res/v1/web/search',
#     headers={'X-Subscription-Token': os.environ['BRAVE_API_KEY']},
#     params={'q': query})
# results = resp.json().get('web', {}).get('results', [])

# AFTER: Scavio API call
API_KEY = os.environ['SCAVIO_API_KEY']

def search(query: str, platform: str = 'google') -> list:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'platform': platform, 'query': query}, timeout=15)
    return resp.json().get('organic_results', [])

results = search('test query')
print(f'Results: {len(results)}')

步骤 2: 映射响应字段

将 Brave Search 响应字段映射到代理解析器的 Scavio 响应字段。

Python
def brave_to_scavio(brave_result: dict) -> dict:
    """Map a Brave result to Scavio format for reference."""
    # Brave fields -> Scavio fields:
    # brave.title -> scavio.title (same)
    # brave.url -> scavio.link
    # brave.description -> scavio.snippet
    # brave.age -> not directly available
    # brave.extra_snippets -> not available
    return {
        'title': brave_result.get('title', ''),
        'link': brave_result.get('url', ''),
        'snippet': brave_result.get('description', ''),
    }

def parse_scavio_results(results: list) -> list:
    """Parse Scavio results into agent-friendly format."""
    parsed = []
    for r in results:
        parsed.append({
            'title': r.get('title', ''),
            'url': r.get('link', ''),
            'snippet': r.get('snippet', ''),
            'source': r.get('source', ''),
        })
    return parsed

results = search('best python frameworks 2026')
parsed = parse_scavio_results(results)
for p in parsed[:3]:
    print(f"{p['title'][:50]}: {p['snippet'][:60]}")

步骤 3: 更新代理工具定义

将代理中的 Brave 搜索工具定义替换为 Scavio 搜索工具。

Python
class ScavioSearchTool:
    """Drop-in replacement for Brave Search tool in OpenClaw agents."""
    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, platform: str = 'google') -> list:
        resp = requests.post(self.base_url,
            headers={'x-api-key': self.api_key},
            json={'platform': platform, 'query': query}, timeout=15)
        resp.raise_for_status()
        results = resp.json().get('organic_results', [])
        return [{
            'title': r.get('title', ''),
            'url': r.get('link', ''),
            'snippet': r.get('snippet', ''),
        } for r in results[:10]]

    def search_multi(self, query: str, platforms: list = None) -> dict:
        platforms = platforms or ['google']
        all_results = {}
        for p in platforms:
            all_results[p] = self.search(query, p)
        return all_results

tool = ScavioSearchTool()
results = tool.search('test query')
print(f'Results: {len(results)}')

步骤 4: 添加多平台功能

使用 Brave 不支持的特定于平台的搜索来扩展代理。

Python
def agent_search(query: str, intent: str = 'general') -> list:
    """Route search to the best platform based on query intent."""
    tool = ScavioSearchTool()
    platform_map = {
        'general': 'google',
        'product': 'amazon',
        'video': 'youtube',
        'community': 'reddit',
        'shopping': 'walmart',
    }
    platform = platform_map.get(intent, 'google')
    results = tool.search(query, platform)
    return results

# Agent can now route queries:
for intent, query in [
    ('general', 'best CRM 2026'),
    ('product', 'wireless earbuds under 100'),
    ('community', 'best IDE for Python'),
]:
    results = agent_search(query, intent)
    print(f'[{intent}] {query}: {len(results)} results')

步骤 5: 测试迁移

验证迁移的代理产生与 Brave Search 相同或更好的结果。

Python
def test_migration():
    tool = ScavioSearchTool()
    test_queries = [
        'Python web frameworks comparison',
        'how to deploy docker containers',
        'best database for small projects',
    ]
    for query in test_queries:
        results = tool.search(query)
        print(f'Query: {query}')
        print(f'  Results: {len(results)}')
        if results:
            print(f'  Top: {results[0]["title"][:50]}')
            print(f'  URL: {results[0]["url"][:60]}')
        print()
    # Test multi-platform (not possible with Brave)
    multi = tool.search_multi('best laptop 2026', ['google', 'amazon'])
    for p, r in multi.items():
        print(f'{p}: {len(r)} results')
    print('\nMigration test passed')

test_migration()

Python 示例

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

# Drop-in Brave Search replacement:
def search(query, platform='google'):
    data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': platform, 'query': query}).json()
    return [{'title': r['title'], 'url': r.get('link', ''), 'snippet': r.get('snippet', '')}
        for r in data.get('organic_results', [])[:5]]

print(search('test query'))

JavaScript 示例

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
// Drop-in Brave Search replacement:
async function search(query, platform = 'google') {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: H,
    body: JSON.stringify({platform, query})
  });
  return ((await r.json()).organic_results || []).slice(0, 5)
    .map(r => ({title: r.title, url: r.link, snippet: r.snippet}));
}
search('test query').then(console.log);

预期输出

JSON
A fully migrated OpenClaw agent using Scavio instead of Brave Search, with multi-platform search capability and identical result parsing.

相关教程

  • 如何将 n8n 从 SerpAPI 迁移到 Scavio
  • 如何修复代理无法获取错误

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

已安装 Python 3.8+. 请求已安装库. 来自 scavio.dev 的 Scavio API 密钥. 使用 Brave Search 的现有 OpenClaw 代理. Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Best Of

Google I/O 2026 AI模式变化后最佳搜索API

Read more
Glossary

搜索 API 供应商格局(2026)

Read more
Best Of

2026 年最佳 SERP API 提供商按价格排名

Read more
Comparison

Brave Search API vs Scavio

Read more
Solution

从 Brave Search API 迁移到 Scavio 获得更好覆盖

Read more
Use Case

n8n 搜索数据增强工作流

Read more

开始构建

将 OpenClaw 代理从 Brave Search API 迁移到 Scavio,以获得更好的结构化数据、多平台支持和更简单的身份验证。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策