你的 AI 助手是个瞎子——3.7K 人花一行命令给它装了 18 只眼,还不要钱

你的 AI 助手刚搜了个技术问题,Tavily 扣了 0.008 刀。再搜一个,Firecrawl 又扣 0.01 刀。一天下来搜了 200 次,账单 2 刀。一个月 60 刀——光搜索就 60 刀,还没算模型调用费。

3,739 个人决定不给这个钱了。

wigolo:一行命令,18 个搜索引擎同时跑

wigolo 是一个本地优先的 MCP 服务器,给 Claude Code、Cursor、Codex 等 AI 编程助手装上"上网大脑"——搜索、抓取、爬虫、提取、缓存、研究,全跑在你本地,零 API Key,每次查询 $0。

npx wigolo init --agents=claude-code,cursor

一行命令,自动下载浏览器引擎和本地 ML 模型,配置好 MCP 客户端。装完就能用。

10 个工具,覆盖 Agent 全部上网需求

工具 干什么 需要 API Key?
search 18 个搜索引擎并行查询,ML 重排序
fetch 抓单个 URL,三层路由自动升级
crawl 爬整个站点,自动处理分页
extract 从页面提取结构化内容
cache 查询结果自动缓存,语义搜索可复用
find_similar 找相似网页(关键词+语义+实时三路融合)
research 拆解问题→多源搜索→合成带引用的报告 ⚠️ 可选配 Gemini 免费 Key
agent 自主收集循环:计划→搜索→抓取→合成 ⚠️ 同上
diff 对比网页变化
watch 监控网页更新,变化推送到 webhook

核心 6 个工具完全不需要 API Key。researchagent 如果要答案合成,配一个 Gemini 免费 Key 就行——免费额度对 wigolo 绰绰有余。

怎么做到 $0/查询?

wigolo 的搜索层不调任何搜索 API。它直接通过 18 个适配器访问搜索引擎的网页版:

查询 "Rust async runtime comparison"
    ├── Google 适配器 → 结果集 A
    ├── Bing 适配器 → 结果集 B
    ├── DuckDuckGo 适配器 → 结果集 C
    ├── Brave 适配器 → 结果集 D
    ├── ... 共 18 个引擎并行
    └── 倒数排名融合(RRF)→ ML 交叉编码器重排序
        └── 每条结果带可解释的逐条分数

重排序用的是本地 ML 模型(交叉编码器),跑在你机器上。缓存存到 ~/.wigolo/,下次搜类似的东西直接命中,不重复查询。

抓取层也是三层路由自动升级:

  1. HTTP 直连——最快,能抓就抓
  2. TLS 模拟——绕基础反爬
  3. 无头浏览器——处理 SPA 页面和验证码挑战

而且 wigolo 会记住每个域名最有效的策略(per-domain learning),下次直接走最快路径。

服务器部署:Docker 一键起

wigolo 不只能跑在本地。它原生支持服务器部署,三种方式:

方式一:Docker(推荐)

# HTTP 服务器模式——多客户端远程访问
docker run -p 3333:3333 -v wigolo-data:/data   -e WIGOLO_API_TOKEN=your-secret-token   ghcr.io/knockoutez/wigolo serve --host 0.0.0.0

# stdio MCP 模式——单客户端直连
docker run -i --rm -v wigolo-data:/data ghcr.io/knockoutez/wigolo
  • 镜像:ghcr.io/knockoutez/wigolo 或 Docker Hub towhid69420/wigolo
  • slim 镜像懒加载模型;:full 镜像预装浏览器引擎
  • 绑定非 loopback **必须设 WIGOLO_API_TOKEN**,否则拒绝连接

方式二:REST API

wigolo serve    # 默认 127.0.0.1:3333

POST /v1/{tool} 覆盖全部 10 个工具,GET /openapi.json 提供 OpenAPI 3.1 文档,/mcp + /sse 同时服务远程 MCP 客户端。可以接入 n8n、Hermes 等自托管 Agent。

方式三:SDK 嵌入

import { createLocalClient } from 'wigolo-sdk/local';
const { client, close } = await createLocalClient();
const res = await client.search({ query: 'xxx', max_results: 5 });
await close();

Python SDK:pip install wigolo

服务器部署注意事项

事项 说明
数据中心 IP 信誉差 某些反爬严格的网站会按 IP 信誉打分,数据中心 IP 过不了家庭宽带能过的验证。wigolo 标注 blocked_by_challenge,官方提供 opt-in 代理方案
SSRF 漏洞 Issue #206/#207/#210 是一系列 SSRF 漏洞,服务器暴露面更大,务必升级到最新版
AGPL-3.0 协议 可以在公司内自部署使用,但如果修改了代码作为网络服务运行,必须开源修改后的源码
资源需求 ML 重排序模型 + 浏览器引擎,建议 2C4G 起步

竞品对比:wigolo vs Tavily vs Firecrawl vs Exa

wigolo Tavily Firecrawl Exa
定价 $0/查询 $0.008/credit $0.003-0.01/页 $0.001/搜索
API Key 不需要 需要 需要 需要
搜索引擎 18 个并行 自研 自研 自研
本地运行 ❌ 云端 ❌ 云端 ❌ 云端
数据隐私 全本地 数据过云 数据过云 数据过云
重排序 本地 ML 模型 云端 云端 云端
语义缓存
MCP 支持 ✅ 原生
Docker 部署
REST API
SDK TS + Python Python TS + Python Python

wigolo 的差异化:免费 + 本地 + 多引擎 + 可自部署。Tavily/Firecrawl/Exa 都是云端按次计费,wigolo 把整个搜索-抓取-重排序链路搬到本地。

代价清醒:4 个必须知道的问题

1. SSRF 漏洞没完全补完

Issue #206 是最初的 SSRF 报告,#207 是后续修复——pin socket 到已验证 IP 防 DNS rebinding / TOCTOU 攻击。说明之前的修复不完整。Issue #210 是第三轮。让一个有 SSRF 问题的工具访问内网?服务器部署场景风险更大。

2. 中文搜索质量拉胯

Issue #232 "preserve CJK relevance signals"——中文搜索结果相关性有问题,需要专门修复。18 个引擎直连的设计对英文效果好,但百度、搜狗等中文引擎的适配质量参差不齐。

3. 巴士因子 = 1

KnockOutEZ 一个人贡献了 1,881 / 总共约 1,900 commits。第二贡献者只有 7 commits。作者一旦停更,项目基本就死了。 3.7K Star 但只有 15 个 subscriber watching——大多数人装了就用,没人守着。

4. "免费"的根本矛盾

18 个搜索引擎直连 = 绕过官方 API 免费用。搜索引擎随时可以改反爬策略封杀。Tavily/Firecrawl 付费是因为它们和搜索引擎有商业协议,wigolo 的"免费"建立在"搜索引擎暂时没封"的基础上。README 自己也承认:> Degraded backends are reported in the output——引擎挂了不藏着,但挂了就是挂了。

趋势判断

wigolo 切中的需求是真实的:AI Agent 的搜索层不应该是一个持续计费的云端黑盒。搜索引擎的原始数据是公开的,重排序和提取可以本地跑,查询历史可以缓存——这在技术上完全成立。

但它也暴露了本地优先路线的固有边界:反爬对抗是军备竞赛,单开发者扛不住。巴士因子 1 + 18 个引擎的适配维护 = 每次搜索引擎改版都可能断一个适配器。

适合:用 Claude Code/Cursor 写代码、需要 AI 助手联网查资料、不想付 Tavily/Firecrawl 月费的个人开发者。本地跑,数据不出门,搜索免费——这个承诺目前成立。

不适合:需要高可靠生产搜索的团队(SSRF 漏洞 + 巴士因子 1 + 中文搜索弱)、需要 SLA 保障的企业用户、搜索质量不能有任何下降的场景。


相关链接:

评论

暂无评论。

登录后可发表评论。