searchers 模块 — 网页搜索
🟢 该模块通过提供商(默认是 FireCrawl)为智能体提供网页搜索访问,并附带一个现成的演示智能体。该模块是 双传输 的:同一份代码既可作为 linked crate 使用,也可作为原生 DLL 使用。
提供内容
| 内容 | 标识符 | 描述 |
|---|---|---|
| 工具 | kind: web_search |
互联网搜索:title、url、description |
| 智能体 | searchers-demo |
已接入 web_search 的演示智能体 |
| 提供商 | 8 个后端 | 见下表 |
| 设置 | searchers/* |
提供商密钥(机密),会投影到 env |
该模块属于默认集合(server.yaml → modules.enabled 或
config/modules.enabled)。内核将其引擎 web_search 注册到工具工厂中,因此带有 kind: web_search 的 YAML 工具会自动可用。
提供商
provider |
类型 | 密钥(env) | 默认基础地址 |
|---|---|---|---|
firecrawl(默认) |
搜索+抓取 | FIRECRAWL_API_KEY |
https://api.firecrawl.dev |
tavily |
搜索 | TAVILY_API_KEY |
https://api.tavily.com |
brave |
搜索 | BRAVE_API_KEY |
https://api.search.brave.com |
serper |
Google SERP | SERPER_API_KEY |
https://google.serper.dev |
serpapi |
Google SERP | SERPAPI_API_KEY |
https://serpapi.com |
exa |
语义 | EXA_API_KEY |
https://api.exa.ai |
google |
Google CSE | GOOGLE_API_KEY + cx |
https://www.googleapis.com |
searxng |
自托管,无需密钥 | —(base_url 为必填) |
你的部署实例 |
所有提供商都会将响应规范化为 { title, url, description }。base_url
可以被覆盖(自托管/代理)。提供商也可以针对每次调用单独选择:工具参数中的 provider 会覆盖配置。
web_search — 调用参数(由 LLM 指定)
query(必填)— 搜索查询。limit(1–20,默认 5)— 返回多少个结果。provider(默认firecrawl)— 上述列表中的一项。
结果是 JSON:
{ "provider": "firecrawl", "query": "…", "count": 3,
"results": [ { "title": "…", "url": "https://…", "description": "…" } ] }
工具配置
# tools/web_search.yaml
kind: web_search
name: web_search
description: Поиск в интернете (title, url, snippet).
# provider: tavily # по умолчанию firecrawl
# api_key: tvly-... # явный ключ (не хранить в git)
# api_key_env: TAVILY_API_KEY # имя переменной окружения (по умолчанию — по провайдеру)
# base_url: https://api.tavily.com
# cx: <google-cse-id> # только для provider: google
# limit: 5
API 密钥
密钥按以下顺序解析:配置中的 api_key → 环境变量
api_key_env(默认情况下每个提供商各有自己的变量,见表格)。
提供商 searxng 不需要密钥。密钥也可以通过
设置 模块(设置 页面)指定:值会保存到数据库,并投影到相应的 env 变量,无需重启。.env/env.overrides.yaml 中的手动值
具有更高优先级。
演示智能体
searchers-demo 由模块以 config 包的形式提供,并会在 config/agents/ 旁边
自动加载(名称相同时,来自
config/agents 的智能体优先)。智能体声明了 tool_files: [tools/web_search.yaml],
该工具会自动添加到它的列表中。
智能体示例
# config/agents/my-search-agent/agent.yaml
name: my-search-agent
instructions: |
Ты — исследовательский ассистент. Для актуальных фактов вызывай web_search,
возвращай ответ и ссылки с краткими описаниями. Не выдумывай URL.
tool_files:
- tools/web_search.yaml