# Agent Web Search
**为 AI Agent 而生的原生联网搜索层 — 将模型原生 Grounding 与 Agent 专属搜索 API 统一于中立契约之下。**
[English](https://github.com/JerryLiu369/agent-web-search/blob/main/README.md) | **简体中文**
[](https://www.python.org/)
[](https://pypi.org/project/agent-web-search-mcp/)
[](https://github.com/JerryLiu369/agent-web-search/actions/workflows/ci.yml)
[](https://modelcontextprotocol.io/)
[](https://github.com/JerryLiu369/agent-web-search/blob/main/LICENSE)
一键部署远程 MCP
支持 **Codex CLI**、**Claude Code**、**OpenCode**、**Hermes**、**DeepSeek Harness (DSH)**、普通命令行脚本、Python 应用和远程 Streamable HTTP MCP 客户端。
[快速上手](#安装与快速上手) · [给 Agent 使用](#给-agent-使用) · [搜索服务](#搜索服务) · [配置](#配置)
[统一接口](#统一请求与响应) · [其他接口](#其他接口) · [故障排查](#故障排查) · [常见问题](#常见问题) · [架构](https://github.com/JerryLiu369/agent-web-search/blob/main/ARCHITECTURE.md) · [开发](#开发)
---
Agent Web Search(PyPI 包名 `agent-web-search-mcp`)是一个开源、MIT 许可的
AI Agent 联网搜索 MCP 服务器、CLI 和 Python 库。它为 Agent 提供三种接入同一个
搜索核心的方式:原生 MCP 工具、原生插件(Hermes、DeepSeek Harness),或者由标准 Agent Skill 教会 Agent 调用 CLI。
> **如果你是 AI Agent:** 用 `pipx install agent-web-search-mcp` 安装(或用
> `uvx --from agent-web-search-mcp agent-web-search "<问题>"` 免安装直接体验),
> 然后阅读 [`skills/agent-web-search/SKILL.md`](https://github.com/JerryLiu369/agent-web-search/blob/main/skills/agent-web-search/SKILL.md) ——
> 它只教 CLI 形态(走 MCP 请看[形态一](#option-1-mcp)),[`llms.txt`](https://github.com/JerryLiu369/agent-web-search/blob/main/llms.txt)
> 是机器可读的文档索引。
它不是 Google、Bing、百度那种传统搜索引擎聚合器。传统聚合器通常把一个
关键词请求分发给多个搜索引擎,再合并搜索结果页;Agent Web Search 聚合的是
专门面向 Agent 的搜索能力:模型原生联网搜索、面向 Agent 的搜索 API,以及
适合直接放入上下文的高信号来源。它们接受自然语言问题,返回模型回答、引用
或结构化证据,Agent 可以直接使用。当前 Provider 集合中,只有 DDGS 属于
传统搜索后端。
```text
Natural-language question
|
v
SearchEngine
+-----------+-----------+
| | |
v v v
DDGS Model Agent
grounding APIs
(Responses, (Exa,
ARK, Grok, Parallel,
Gemini...) Tavily...)
```
## 安装与快速上手
三步约一分钟:免安装先体验,装一次永久用,再接你的 Agent。
**环境要求:** Python 3.10+。默认启用的 Provider 组合(**DDGS、Exa、Parallel**)**完全免 API Key**,开箱即用。
### 免安装即刻体验
使用 `uvx` 体验即时搜索,不修改本地任何环境和 PATH:
```bash
# 直接用免 Key 默认源发起自然语言搜索
uvx --from agent-web-search-mcp agent-web-search "OpenAI Codex CLI 最新版本有哪些变化?"
# 查看 MCP 服务器运行参数
uvx agent-web-search-mcp --help
```
### 一键安装
推荐使用 `pipx` 隔离安装到全局环境(只需一次):
```bash
# 推荐:全局隔离安装
pipx install agent-web-search-mcp
# 或安装到当前 Python 环境
python -m pip install agent-web-search-mcp
```
### 验证运行
```bash
# 1. 验证 CLI 并进行真实搜索
agent-web-search --version
agent-web-search "OpenAI Codex CLI 最新版本有哪些变化?"
# 2. 验证 MCP 服务器命令
agent-web-search-mcp --help
```
> **两个命令分工明确:**
> - `agent-web-search`:面向终端交互、Shell 脚本与 Agent Skill 的直接搜索命令行工具。
> - `agent-web-search-mcp`:面向 MCP 客户端的 Stdio 与 Streamable HTTP MCP 服务器。
### 选择接入形态
| 接入形态 | 适用环境 / 客户端 | 一键接入命令 |
| :--- | :--- | :--- |
| **CLI + Skill** *(推荐)* | 具备终端命令执行能力的 Agent(Claude Code、Codex、OpenCode、Hermes) | `npx skills add JerryLiu369/agent-web-search --skill agent-web-search`([详细说明](#agent-skill)) |
| **MCP (Stdio)** | Codex CLI、Claude Code、Cursor、Cline、Roo Code | `codex mcp add agent-web-search -- agent-web-search-mcp`([详细说明](#option-1-mcp)) |
| **DSH 原生插件** | DeepSeek Harness(桌面端与网页端) | `dsh plugin --profile desktop add github:JerryLiu369/agent-web-search`([详细说明](#deepseek-harness-原生插件)) |
| **Hermes 原生插件** | Hermes Agent | `hermes plugins install JerryLiu369/agent-web-search`([详细说明](#hermes-原生插件)) |
> [!TIP]
> **为什么对有终端能力的 Agent 推荐 CLI + Skill:** 如果你的 Agent 自身具备 Bash/命令行执行能力(如 Claude Code、Codex CLI、OpenCode 或 Hermes),CLI + Skill 是心智负担最小、最可靠的形态:无需配置繁杂的 MCP JSON 文件,没有后台常驻进程挂死或清理问题,单次命令即返回结构化高信噪比的 JSON 证据。
## 为什么选择 Agent Web Search
传统搜索聚合(Google/Bing/百度封装、抓取 SERP)把关键词查询发给传统搜索引擎再合并结果页。Agent Web Search 聚合的是**为 Agent 构建的搜索能力**:一次工具调用返回结构化、可直接引用的证据——或通过模型原生 grounding 提供商返回带明确引用的综合回答。[实测基准](https://github.com/JerryLiu369/agent-web-search/blob/main/docs/benchmark-2026-09-06.md)显示了实际差异:在一个要求官方来源的中文自然语言查询上,传统 SERP 后端前 5 条结果没有任何政府域名,而 grounding 提供商返回了海关总署数据并附可用引用链接。
- **从设计上就是 Agent-native。** 主要输入是完整的自然语言问题,而不是把关键词简单分发给 Google、Bing 或百度。
- **模型原生搜索后端。** ARK、Gemini、Grok、DeepSeek、Messages、智谱 Chat Search 和 Codex Alpha 可以把联网检索、模型综合回答与明确引用结合起来。
- **Agent 搜索提供商。** Exa、Parallel、Brave、Perplexity、Tavily、You.com 和智谱 Web Search 提供面向 Agent 的搜索 API,输出结构化、适合引用或适合放入上下文的证据。
- **统一的 Provider-neutral 契约。** 所有后端都通过同一个 MCP 工具、CLI、Python API 和统一的 `results` 返回;模型后端还可以返回 `answer`。
- **Provider 相互独立。** 选中的 Provider 会并发执行,一个 Provider 失败不会丢弃其他 Provider 的成功结果。
- **保留一个简单的 DDGS 后端。** DDGS 是唯一的传统搜索后端,不需要 API Key;Exa 和 Parallel 默认也可以免 Key 使用。
- **无遥测、不共享密钥。** Provider Key 只存在于运行环境变量中,项目不提供共享 API Key 服务。
## 搜索服务
下面按搜索能力类型划分 Provider。DDGS 是唯一的传统搜索后端;其余 Provider
分别属于模型原生搜索或面向 Agent 的搜索服务。
> **默认免费、无需 Key:** DDGS、Exa 和 Parallel 都可以不配置 API Key
> 直接使用。Exa 和 Parallel 只有在提供付费 API Key 后才会切换到付费接口,
> 否则自动使用免费 MCP。
### 传统搜索后端
| Provider | 官网 | 搜索后端 | API Key | 默认启用 |
| --- | --- | --- | --- | :---: |
| **DDGS** | [DuckDuckGo](https://duckduckgo.com) | 传统 DuckDuckGo 搜索 | **免费 · 无需 Key** | 是 |
### 大模型提供商
这类 Provider 使用模型原生联网搜索或 grounding 能力。响应可以同时包含模型
生成的回答,以及明确的引用或其他搜索证据。
| Provider | 官网 | 模型原生搜索能力 | API Key | 默认启用 |
| --- | --- | --- | --- | :---: |
| **ARK** | [火山引擎 Ark](https://www.volcengine.com/product/ark) | Responses API + 豆包联网搜索 | `ARK_API_KEY` | 否 |
| **Codex Alpha**(实验性) | 兼容 Alpha Search 的反代网关 | 模型驱动的 Alpha Search | `AGENT_WEB_SEARCH_CODEX_ALPHA_API_KEY` | 否 |
| **DeepSeek** | [DeepSeek API](https://api-docs.deepseek.com/) | Anthropic Messages API 原生网页搜索 | `DEEPSEEK_API_KEY` | 否 |
| **Gemini** | [Google AI](https://ai.google.dev/gemini-api/docs/google-search) | Gemini Google Search grounding | `GEMINI_API_KEY` | 否 |
| **Grok** | [xAI](https://docs.x.ai/docs/guides/tools/overview) | xAI 网页搜索和 X Search | `XAI_API_KEY` | 否 |
| **Responses** | 兼容 Responses API 的网关 | 通用 OpenAI Responses API 网页搜索 | `AGENT_WEB_SEARCH_RESPONSES_API_KEY` | 否 |
| **Messages** | 兼容 Messages API 的网关 | 通用 Anthropic Messages API 网页搜索 | `AGENT_WEB_SEARCH_MESSAGES_API_KEY` | 否 |
| **智谱 Chat Search** | [智谱 AI](https://open.bigmodel.cn/) | GLM Chat Completions 原生联网搜索 | `ZHIPU_CHAT_SEARCH_API_KEY` | 否 |
### Agent 搜索提供商
这类 Provider 面向 Agent 提供搜索服务:支持自然语言查询,并返回结构化来源、
高信号摘录或适合引用的元数据,而不是传统搜索页面式体验。
| Provider | 官网 | 面向 Agent 的搜索能力 | API Key | 默认启用 |
| --- | --- | --- | --- | :---: |
| **Exa** | [Exa](https://exa.ai) | 语义 Search API 或免费 MCP 后端 | **无 Key 免费** · 可选 `EXA_API_KEY` | 是 |
| **Parallel** | [Parallel](https://parallel.ai) | 面向上下文的搜索 API 或免费 MCP | **无 Key 免费** · 可选 `PARALLEL_API_KEY` | 是 |
| **Brave** | [Brave Search](https://brave.com/search/api/) | 结构化 Web Search API | `BRAVE_SEARCH_API_KEY` | 否 |
| **Perplexity** | [Perplexity API](https://www.perplexity.ai/api-platform) | 原生结构化 Search API | `PERPLEXITY_API_KEY` | 否 |
| **Tavily** | [Tavily](https://tavily.com) | 面向 Agent 的 Search API | `TAVILY_API_KEY` | 否 |
| **You.com** | [You.com API](https://you.com/platform/api) | 统一网页与新闻 Search API | `YDC_API_KEY` | 否 |
| **智谱 Web Search** | [智谱 AI](https://open.bigmodel.cn/) | 独立的结构化 Web Search API | `ZHIPU_WEB_SEARCH_API_KEY` | 否 |
Provider 架构是开放的:添加新的搜索后端时,不需要修改 MCP、Hermes、CLI 或 Python 接口。
## 给 Agent 使用
> **前置要求:** 请先完成 [安装与快速上手](#安装与快速上手)。下文针对各接入形态提供详细的客户端配置与命令参考。
### 形态一:MCP