概览
搜索用于发现网址,抓取用于读取已知网址。免 Key 的 HTTP 抓取适合公开文档,但不能替代搜索引擎,也不能保证读取依赖 JavaScript 的页面。
希望免 Key 使用 Exa MCP 并提取多种格式,可从 pi-web-access 开始;希望明确选择后端,可用 rpiv-web-tools;已有匹配本地 Ollama 端点时,再考虑 @ollama/pi-web-search。
按用途比较
表格可横向滚动;详细配置与来源见下方。
| 资源与用途 | 介入环节 | 依赖与 Key | 外发数据 | 失败行为 | 核验证据 |
|---|---|---|---|---|---|
| pi-web-access 在同一扩展中搜索网页、提取正文、读取 PDF 和分析视频。 | 注册 Pi 原生工具。搜索通过供应商 API 或 Exa MCP;普通网址先走直接 HTTP 与本地 HTML 提取,再按配置降级。GitHub 仓库网址另有本地克隆路径。 | 需要 Pi 和可访问外网的网络。Exa MCP 免 Key,其他 API 需对应凭据。GitHub 克隆需要 Git;PDF 本地文字提取使用包内 unpdf/pdf.js;视频抽帧可选安装 ffmpeg 和 yt-dlp。 | 查询发送给选中的搜索服务。托管提取服务接收网址;配置 Datalab/Gemini 的 PDF 处理会发送 PDF 文件内容;本地视频分析可能上传视频到 Gemini。浏览器 Cookie 读取需显式启用。 | 自动搜索尝试可用降级来源;指定供应商时严格使用该来源。来源耗尽返回诊断。远程托管 HTTP 提取须启用 fetchRouting.allowRemoteHostedProviders。 | Search routing source ↗ |
| @juicesharp/rpiv-web-tools 在商业搜索 API 和自托管服务端点之间选择一个搜索后端。 | 注册 web_search 与 web_fetch。单次调用指定的 provider 优先于环境变量、配置文件及默认 Brave。抓取优先使用供应商提取接口,否则直接 HTTP 转文本。 | 需要 Node.js ≥ 22 和 Pi。Brave、Tavily、Exa 需要 Key;SearXNG 需要可达且启用 JSON 输出的实例;Ollama 需要可用的网络搜索端点,本地与云端路径不同。 | 选中的服务接收搜索查询与需要提取的网址;直接 HTTP 抓取访问目标网站。SearXNG 还可能将查询转发到配置的搜索引擎。 | 缺少商业服务凭据会报错提示配置,不会改用其他服务。SearXNG 403 可能表示 JSON 输出关闭;连接错误可能表示本地 Ollama 未启动。 | Provider selection and credentials ↗ |
| @ollama/pi-web-search 为已运行的本地 Ollama 网络搜索服务提供轻量接入。 | 0.0.5 发布源码注册 web_search、web_fetch,POST 到 localhost:11434/api/experimental/web_search 与 /web_fetch;扩展本身不加载本地语言模型。 | 需要 Pi 及提供这些实验 API 的 Ollama 服务。401 响应提示运行 ollama signin;扩展没有 API Key 配置字段。 | 查询与抓取网址发送给本地 Ollama 守护进程;扩展不控制守护进程的上游路由。 | API 与连接错误返回给 Pi;没有备用供应商降级。 | Published package and source archive ↗ |
安装与运行边界
pi-web-access
在同一扩展中搜索网页、提取正文、读取 PDF 和分析视频。
pi install npm:pi-web-access- 实现机制
- 注册 Pi 原生工具。搜索通过供应商 API 或 Exa MCP;普通网址先走直接 HTTP 与本地 HTML 提取,再按配置降级。GitHub 仓库网址另有本地克隆路径。
- 前置依赖
- 需要 Pi 和可访问外网的网络。Exa MCP 免 Key,其他 API 需对应凭据。GitHub 克隆需要 Git;PDF 本地文字提取使用包内 unpdf/pdf.js;视频抽帧可选安装 ffmpeg 和 yt-dlp。
- 数据范围
- 查询发送给选中的搜索服务。托管提取服务接收网址;配置 Datalab/Gemini 的 PDF 处理会发送 PDF 文件内容;本地视频分析可能上传视频到 Gemini。浏览器 Cookie 读取需显式启用。
- 失败行为
- 自动搜索尝试可用降级来源;指定供应商时严格使用该来源。来源耗尽返回诊断。远程托管 HTTP 提取须启用 fetchRouting.allowRemoteHostedProviders。
- 已知限制
- 免 Key 不代表离线或无限额度。DuckDuckGo 需显式选择;PDF 本地兜底没有 OCR;私密或年龄受限的 YouTube 视频可能失败,也不保证获取付费墙后的正文。
已查阅源码 / 文档 · v0.30.0 · 6c5afa1d0d43eef8552284ad73f4bd9f0612a378
@juicesharp/rpiv-web-tools
在商业搜索 API 和自托管服务端点之间选择一个搜索后端。
pi install npm:@juicesharp/rpiv-web-tools- 实现机制
- 注册 web_search 与 web_fetch。单次调用指定的 provider 优先于环境变量、配置文件及默认 Brave。抓取优先使用供应商提取接口,否则直接 HTTP 转文本。
- 前置依赖
- 需要 Node.js ≥ 22 和 Pi。Brave、Tavily、Exa 需要 Key;SearXNG 需要可达且启用 JSON 输出的实例;Ollama 需要可用的网络搜索端点,本地与云端路径不同。
- 数据范围
- 选中的服务接收搜索查询与需要提取的网址;直接 HTTP 抓取访问目标网站。SearXNG 还可能将查询转发到配置的搜索引擎。
- 失败行为
- 缺少商业服务凭据会报错提示配置,不会改用其他服务。SearXNG 403 可能表示 JSON 输出关闭;连接错误可能表示本地 Ollama 未启动。
- 已知限制
- 没有跨供应商自动降级。普通 HTTP 抓取不会执行任意 JavaScript。自托管入口不代表离线运行,也不证明上游搜索不会离开本地网络。
已查阅源码 / 文档 · v2.10.1 · 0fdf4f813980d380e826b84d1280a4960e5d088e
@ollama/pi-web-search
为已运行的本地 Ollama 网络搜索服务提供轻量接入。
pi install npm:@ollama/pi-web-search- 实现机制
- 0.0.5 发布源码注册 web_search、web_fetch,POST 到 localhost:11434/api/experimental/web_search 与 /web_fetch;扩展本身不加载本地语言模型。
- 前置依赖
- 需要 Pi 及提供这些实验 API 的 Ollama 服务。401 响应提示运行 ollama signin;扩展没有 API Key 配置字段。
- 数据范围
- 查询与抓取网址发送给本地 Ollama 守护进程;扩展不控制守护进程的上游路由。
- 失败行为
- API 与连接错误返回给 Pi;没有备用供应商降级。
- 已知限制
- npm 源码将地址固定为 localhost:11434,虽然 README 提到 OLLAMA_HOST;实际工具名也与 README 不同。端点兼容性取决于 Ollama。本地入口不保证离线或只在本地搜索。
已查阅源码 / 文档 · npm 0.0.5 · shasum c36fd7dabda15c15e01566f4c4b3dbdf5ef34af4
免 Key 路径与降级边界
pi-web-access 可通过 Exa MCP 免 Key 搜索。配置过的 SearXNG 优先;当前模型为 Codex 时可优先使用已授权的 OpenAI 搜索。DuckDuckGo HTML 搜索需指定 provider: "duckduckgo",不参加自动选择和 provider: "all"。
已知网址先经过本地 HTTP/HTML 提取;远程托管网页提取器需显式开启。搜索降级与正文提取降级是两套机制,换搜索引擎不一定能读取被拦截的网页。
Brave、Tavily 与 Exa API
rpiv-web-tools 中,Brave 使用 BRAVE_SEARCH_API_KEY,网页读取走直接 HTTP;Tavily 使用 TAVILY_API_KEY 及其提取服务;Exa 使用 EXA_API_KEY 及其正文接口。这些是有凭据的 API 路径,和 pi-web-access 的免 Key Exa MCP 不同。
运行 /web-tools 选择后端。缺少凭据会报错,不会自动切换。比较结果前,用 /web-tools --show 确认生效配置;额度与费用由各供应商账号决定。
“本地”具体指什么
rpiv-web-tools 接受 SEARXNG_URL、OLLAMA_HOST。SearXNG 须启用 JSON 搜索;它是元搜索服务,仍可能查询公共引擎。Ollama 的本地和云端网络搜索路径不同,本地守护进程也可能需要登录或访问上游。
这些包不会让公共互联网离线可用。@ollama/pi-web-search 0.0.5 发布源码固定访问 localhost:11434,并注册 web_search/web_fetch,与 README 的工具名及 OLLAMA_HOST 描述不同;应以发布源码判断兼容边界。
分别验证搜索与抓取
建议一次启用一个网页扩展,这些包可能注册同名工具。在 Pi 中要求执行下面的调用,检查返回的供应商和来源链接,再读取一条结果。
这样能分别确认路由与正文提取,不代表搜索完整或答案准确。示例是验证方法;本指南核对源码与文档,未执行付费供应商调用。
下方调用仅适用于 pi-web-access。rpiv 与 Ollama 使用各自的 web_search/web_fetch 接口,不接受这里的 DuckDuckGo provider 参数。
web_search({ query: "Pi coding agent extension documentation", provider: "duckduckgo", numResults: 3 })
fetch_content({ url: "https://pi.dev/" })一手来源与核验范围
本文区分源码 / 文档核验与实际运行测试。未标注“已实测”的功能、性能和节省比例不代表本站测量结果。