# Argus：AI Agent 的多源搜索代理，统一接入五大搜索引擎

> Argus 是一个开源的多提供商搜索代理，为 AI 智能体提供统一的搜索接口。它支持 SearXNG、Brave、Serper、Tavily、Exa 五大搜索源，具备智能路由、RRF 结果排序、预算控制和内容提取等功能，且仅依赖 SQLite，无需外部数据库。

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-04-01T22:28:53.000Z
- 最近活动: 2026-04-01T22:49:47.574Z
- 热度: 158.7
- 关键词: AI Agent, 搜索代理, 多源搜索, SearXNG, Brave Search, Tavily, Exa, Serper, RRF排序, 内容提取, MCP, 开源工具
- 页面链接: https://www.zingnex.cn/forum/thread/argus-ai-agent
- Canonical: https://www.zingnex.cn/forum/thread/argus-ai-agent
- Markdown 来源: ingested_event

---

# Argus：AI Agent 的多源搜索代理，统一接入五大搜索引擎

在 AI 智能体（AI Agent）的开发过程中，搜索能力往往是决定其智能水平的关键因素之一。然而，面对市场上众多的搜索 API——从免费自托管的 SearXNG 到商业化的 Brave、Serper、Tavily、Exa——开发者常常陷入选择困难：到底该用哪一个？如何平衡成本与效果？当某个服务失效时如何优雅降级？

**Argus** 正是为解决这些痛点而生的开源项目。它作为一个搜索代理中间件，将多个搜索提供商整合为单一端点，让 AI Agent 开发者无需关心底层细节，即可获得稳定、经济、高质量的搜索结果。

## 项目背景与设计理念

Argus 由开发者 Khamel83 创建，采用 MIT 许可证开源。项目的核心设计理念可以概括为三个关键词：**统一、智能、轻量**。

所谓统一，是指 Argus 将五个主流搜索源封装为一致的接口。无论你配置了多少个提供商，调用方式都完全相同。这种抽象让上层应用可以无缝切换或扩展搜索能力，而无需修改业务代码。

智能体现在 Argus 的路由策略上。它不是简单地将请求广播给所有提供商，而是根据预设的搜索模式（discovery、recovery、grounding、research）选择最优的查询顺序。系统会优先尝试成本较低的提供商，当获取到足够优质的结果时便提前终止，避免不必要的 API 调用。这种"便宜优先"的策略配合自动降级机制，既保证了可靠性，又控制了成本。

轻量则是 Argus 最引人注目的特性。整个项目仅依赖 SQLite 作为数据存储，无需 Redis、PostgreSQL 等外部数据库。这意味着部署极其简单——一个 Docker 容器即可运行，非常适合个人开发者和小型团队。

## 核心功能详解

### 多提供商搜索路由

Argus 目前支持五大搜索提供商，每个都有其独特优势：

- **SearXNG**：完全免费的开源元搜索引擎，可自托管，隐私友好
- **Brave Search**：Brave 浏览器推出的 API，免费额度 2000 次/月
- **Serper**：专为 LLM 优化的 Google 搜索 API，免费额度 2500 次/月
- **Tavily**：面向 AI 应用的搜索服务，提供结构化结果，免费额度 1000 次/月
- **Exa**：基于嵌入的语义搜索引擎，适合研究场景，免费额度 1000 次/月

Argus 为不同使用场景设计了四种搜索模式：

| 模式 | 适用场景 | 提供商调用顺序 |
|------|---------|---------------|
| discovery | 发现相关页面和权威来源 | searxng → brave → exa → tavily → serper |
| recovery | 恢复失效或移动的 URL | searxng → brave → serper → tavily → exa |
| grounding | 事实核查，少量精确来源 | brave → serper → searxng |
| research | 广泛的探索性检索 | tavily → exa → brave → serper |

这种精细化的路由策略让开发者可以根据具体需求选择最合适的查询路径，而非一刀切地使用所有资源。

### RRF 结果排序与去重

当多个提供商返回结果时，Argus 使用 **Reciprocal Rank Fusion (RRF)** 算法进行结果融合。RRF 是一种简单而有效的多列表排序方法，它根据结果在不同列表中的排名计算综合得分，无需依赖相关性分数或训练数据。

具体而言，RRF 公式为：

```
score(d) = Σ(1 / (k + r(d)))
```

其中 r(d) 是文档 d 在某个列表中的排名，k 是常数（通常取 60）。这意味着在多个列表中都排名靠前的文档会获得更高的综合得分。

配合智能去重机制，Argus 能够合并来自不同源的相似结果，为用户提供干净、有序的搜索列表。

### 内容提取与缓存

搜索只是第一步，AI Agent 往往还需要读取网页内容。Argus 内置了强大的内容提取功能：

- **主提取器**：使用 Trafilatura 库进行本地提取，速度快、资源占用低
- **备用提取器**：当 Trafilatura 失败时，自动回退到 Jina Reader 服务
- **多级缓存**：提取结果先存入内存缓存，再持久化到 SQLite，默认 TTL 为 168 小时

这种设计确保了即使面对大量 URL 提取请求，系统也能保持高效响应，同时避免重复调用外部服务造成不必要的开销。

### 多轮会话支持

对于需要上下文感知的对话式 AI，Argus 提供了会话（session）机制。通过传递 `session_id` 参数，系统会记住用户之前的查询历史，并在后续请求中自动丰富上下文。

例如，用户先问"Python Web 框架"，再问"哪个性能最好"，Argus 能够理解第二个问题是在第一个问题的上下文中提出的，从而返回更精准的结果。会话数据同样持久化到 SQLite，重启后依然可用。

### 预算控制与额度追踪

Argus 内置了精细的预算管理系统。开发者可以为每个提供商设置 API 调用额度，系统会自动追踪使用情况并在接近上限时发出警告。对于 Jina Reader 等按 token 计费的服务，还支持 token 余额的精确管理。

这种透明的成本控制对于生产环境至关重要，特别是在使用多个付费 API 时，能够有效防止意外超支。

## 部署与使用方式

Argus 提供了多种接入方式，适应不同的使用场景：

### HTTP API

基于 FastAPI 构建的 RESTful API 是最直接的接入方式。所有端点都支持 OpenAPI 规范，可自动生成文档。主要接口包括：

- `POST /api/search` - 执行搜索
- `POST /api/extract` - 提取 URL 内容
- `POST /api/recover-url` - 尝试恢复失效链接
- `POST /api/expand` - 扩展查询相关链接
- `GET /api/health` - 健康检查
- `GET /api/budgets` - 查看预算状态

### 命令行工具

对于脚本化和自动化场景，Argus 提供了完整的 CLI：

```bash
# 执行搜索
argus search -q "Python web framework" --mode research -n 20

# 带会话的搜索
argus search -q "FastAPI" --session my-session

# 提取网页内容
argus extract -u "https://example.com/article"

# 管理预算
argus set-balance -s jina -b 9833638
```

### MCP 协议支持

Argus 实现了 Model Context Protocol (MCP) 服务器，可与 Claude Code 等支持 MCP 的 AI 编程工具无缝集成。配置后，AI 助手可以直接调用搜索和内容提取功能，无需额外的 API 调用代码。

### Python SDK

对于 Python 开发者，Argus 提供了原生的异步 SDK：

```python
from argus.broker.router import create_broker
from argus.models import SearchQuery, SearchMode

broker = create_broker()

response = await broker.search(
    SearchQuery(query="Python web frameworks", mode=SearchMode.DISCOVERY)
)
for r in response.results:
    print(f"{r.title}: {r.url} (score: {r.score:.3f})")
```

## 技术架构解析

Argus 的代码结构清晰，模块化程度高：

- `argus/core/`：通用工具，包括 TTL 缓存和滑动窗口限流器
- `argus/broker/`：核心路由逻辑，负责查询分发、结果排序和去重
- `argus/providers/`：五个搜索提供商的适配器实现
- `argus/extraction/`：URL 内容提取模块
- `argus/sessions/`：多轮会话存储管理
- `argus/api/`：FastAPI HTTP 服务实现
- `argus/cli/`：Click 命令行界面
- `argus/mcp/`：MCP 服务器实现
- `argus/persistence/`：SQLite 数据持久化层

这种分层架构使得代码易于理解和扩展。如果需要添加新的搜索提供商，只需在 `providers` 目录下实现对应的适配器即可；如果要更换存储后端，也只需修改 `persistence` 模块。

## 适用场景与价值

Argus 特别适合以下场景：

1. **AI Agent 开发**：为智能体提供可靠的搜索能力，无需自己处理多源集成
2. **成本敏感的应用**：通过智能路由和预算控制，在保证质量的同时最小化 API 支出
3. **隐私优先的部署**：可完全基于 SearXNG 自托管，无需将查询发送到商业服务
4. **研究与内容聚合**：利用多源搜索和内容提取，构建知识库或进行竞品分析
5. **链接恢复与验证**：专门的 recovery 模式可帮助找回失效的网页内容

## 总结

Argus 代表了 AI 基础设施领域的一个重要趋势：将复杂的多源集成抽象为简单、可靠、经济的服务。它不是又一个搜索引擎，而是搜索能力的编排者——让开发者能够以最少的配置获得最大的覆盖。

对于那些正在构建 AI Agent 或需要可靠搜索能力的开发者来说，Argus 提供了一个值得认真考虑的选择。其零外部依赖的设计哲学、智能的成本控制机制，以及多样化的接入方式，都体现了开发者体验至上的产品思维。

项目地址：https://github.com/Khamel83/argus
