# LobeHub

> 在自托管部署中，将 Search1API 配置为 LobeHub 内置 Web Search 的搜索与抓取提供方。

Canonical URL: https://s1.dev/zh/docs/integrations/lobehub

Search1API 已内置于 LobeHub，可同时作为搜索提供方和页面抓取器。在自托管的 LobeHub 部署中，你可以用它查找最新来源，并读取这些结果背后的页面，无需安装市场插件。

> **info:** 本指南适用于自托管部署中 LobeHub 原生的 **Web Search** 技能。LobeHub
> Cloud 已自行管理搜索基础设施。如果你希望把 Search1API 作为一组独立的
> Agent 工具使用，请参见 [MCP 服务器](https://s1.dev/zh/docs/integrations/mcp)。

## 开始之前

你需要：

- 一个自托管的 LobeHub 部署；
- 能够修改其服务端环境变量；以及
- 一个 Search1API API 密钥。

登录 [app.s1.dev](https://app.s1.dev)，打开 **API Keys** 并创建密钥。请将密钥保存在服务端，不要暴露在浏览器代码中，也不要提交到代码仓库。

## 配置搜索与页面读取

在 LobeHub 服务端的环境中添加以下变量：

```bash
SEARCH_PROVIDERS="search1api"
CRAWLER_IMPLS="search1api,naive"
SEARCH1API_API_KEY="YOUR_SEARCH1API_KEY"
```

然后重启或重新部署 LobeHub，使服务端进程读取新的值。

这份配置让 Search1API 承担两个角色：

| 变量 | 控制内容 |
| --- | --- |
| `SEARCH_PROVIDERS` | LobeHub 用于查找网页结果的提供方。 |
| `CRAWLER_IMPLS` | LobeHub 读取结果页面时可用的抓取器。 |
| `SEARCH1API_API_KEY` | Search1API 搜索和抓取请求共用的密钥。 |

对于普通 URL，`CRAWLER_IMPLS="search1api,naive"` 会让 LobeHub 先尝试 Search1API，在 Search1API 返回错误或内容不足时回退到其内置抓取器。对于特定类型的 URL，LobeHub 可能会应用自己的抓取规则。

## 使用独立的密钥

如果希望分别统计流量并能单独撤销，可以创建两个 Search1API 密钥，按用途分别配置：

```bash
SEARCH_PROVIDERS="search1api"
CRAWLER_IMPLS="search1api,naive"
SEARCH1API_SEARCH_API_KEY="YOUR_SEARCH_KEY"
SEARCH1API_CRAWL_API_KEY="YOUR_CRAWL_KEY"
```

LobeHub 按以下规则选择密钥：

| 操作 | 首选 | 回退 |
| --- | --- | --- |
| 搜索 | `SEARCH1API_SEARCH_API_KEY` | `SEARCH1API_API_KEY` |
| 抓取 | `SEARCH1API_CRAWL_API_KEY` | `SEARCH1API_API_KEY` |

同一 Search1API 账户下的所有密钥共用同一积分余额。使用独立密钥便于识别用量，也可以撤销其中一个集成而不影响另一个。

## 添加其他回退提供方

`SEARCH_PROVIDERS` 同样是有序的。LobeHub 从左到右依次尝试提供方，当前一个提供方出错或没有返回可用结果时，转向下一个已配置的提供方。

例如：

```bash
SEARCH_PROVIDERS="search1api,searxng"
SEARXNG_URL="https://your-searxng-instance.example"
```

如果希望 Search1API 作为主要搜索提供方，请将 `search1api` 放在第一位。每个回退提供方都需要配置各自必需的环境变量。

## 启用并验证 Web Search

部署重启后：

1. 在 LobeHub 中打开某个 Agent 的 **Profile**。
2. 选择 **+ Add Skill** 并启用 **Web Search**。
3. 开始一个新对话并输入：`Search the web for the latest LobeHub release notes and cite the sources.`
4. 打开其中一个引用的页面，或让 Agent 读取并总结该来源。

第一个请求验证搜索。读取引用的 URL 则单独验证抓取器。LobeHub 应显示其搜索溯源界面，包含查询词和引用来源。

## 故障排查

### Web Search 没有运行

- 确认 `SEARCH_PROVIDERS` 包含精确的小写值 `search1api`。
- 确认该 Agent 已启用 Web Search。
- 确认变量配置在 LobeHub 服务端进程上，而不只是你本地的 shell。
- 修改环境变量后重启或重新部署 LobeHub。

### 搜索正常，但页面没有被读取

- 确认 `CRAWLER_IMPLS` 包含 `search1api`。
- 分别测试搜索和 URL 读取；二者使用不同的 LobeHub 实现，也可能使用不同的密钥。
- 如果希望以 LobeHub 内置抓取器作为回退，请将 `naive` 保留在 `search1api` 之后。

### `401 Unauthorized`

API 密钥无效或已被撤销。创建一个替换密钥，更新 LobeHub 环境变量，重启部署，确认新密钥的请求正常后，再删除旧密钥。参见[认证](https://s1.dev/zh/docs/essentials/authentication)。

### `402 Payment Required`

要么密钥没有传到 LobeHub 进程，要么 Search1API 账户积分不足。先重新检查环境变量，再查看账户余额。参见[积分与限制](https://s1.dev/zh/docs/essentials/credits-and-limits)。

### 搜索没有返回结果

尝试不带站点或时间限制的更宽泛查询。LobeHub 不会指定搜索引擎，因此 Search1API 使用默认引擎（Google）；而且 LobeHub 并不会把所有搜索过滤条件都传给 Search1API。

## 内置提供方还是 MCP？

如果你想要 LobeHub 原生的 Web Search 体验，包括其搜索溯源界面和引用，请使用**内置提供方**，并按本页的环境变量进行配置。

如果你希望在 LobeHub 或其他 MCP 客户端中使用显式的 `search`、`news`、`ask`、`crawl`、`sitemap` 和 `trending` 工具，请使用 **Search1API MCP 服务器**。MCP 是独立的集成，LobeHub 内置的 Web Search 并不依赖它。

两者可以同时启用，但无论通过哪种方式发起的调用都会消耗 Search1API 积分。建议先用内置提供方获得 LobeHub 原生的 Web Search，只有在需要额外工具或直接控制工具调用时再添加 MCP。

## 相关文档

- [搜索 API](https://s1.dev/zh/docs/basic/search)
- [抓取 API](https://s1.dev/zh/docs/basic/crawl)
- [认证](https://s1.dev/zh/docs/essentials/authentication)
- [积分与限制](https://s1.dev/zh/docs/essentials/credits-and-limits)
- [LobeHub：配置联网搜索](https://lobehub.com/docs/self-hosting/advanced/online-search)