↑阅读之前记得关注+星标⭐️,😄,每天才能第一时间接收到更新
大家好,我是杰克王,AI 算法 6 年老兵。
你有没有遇到过这种场景:
让Claude Code帮你对接一个第三方SDK,它把文档URL直接放进了代码注释——却不去读它。
或者让Codex帮你查某个API的最新参数,它翻了训练数据里的缓存,给你一个已经废弃的旧写法,代码跑不起来你还不知道为什么。
或者让Cursor帮你找一个npm包的最新版本,它给你一个三个月前的旧版本号。
AI编程助手能帮你写代码,但它不会上网。它能理解一切,但它的眼睛是闭着的。
真正的开发工作,有一半时间在查文档、找资料、验证版本。这部分,绝大多数AI编程工具没有解决好。
解决这件事,要么接入付费服务——Firecrawl、Exa、Tavily,都要注册账号,按查询计费。要么让AI自己搜——但原生WebSearch的质量参差不齐,而且不是所有工具都默认开着。
现在有了另一个选择。
wigolo:AI 编程助手的本地网络层
wigolo是一个开源的MCP服务器,专门为AI编程助手提供搜索、抓取、爬取、研究等能力。
截至2026年8月3日,4114 Stars,276 Forks,还在快速增长。
一句话描述它的核心价值:给Claude Code、Codex、Cursor这样的AI助手配一双本地的眼睛,$0/次查询,数据不离机。

它支持的AI工具开箱即用:Claude Code、Codex、Cursor、Gemini CLI、OpenCode、VS Code、Windsurf、Zed、Antigravity。
安装极简,两条命令完成:
# 安装并初始化本地引擎
npx wigolo init
# 同时绑定你日常使用的编程助手(Claude Code、Codex、Cursor 任选)
npx wigolo init --agents=claude-code,codex,cursor
第一条命令会自动下载浏览器引擎和本地模型,做健康检查,把每个组件的状态都报出来。第二条在初始化的同时,帮你把MCP配置写进指定工具里,一步到位。
8 个工具,覆盖 AI 编程的所有网络需求
wigolo 不是一个简单的搜索框。它给了 AI 助手 8 个独立的网络能力:

🔎 search — 多引擎并行搜索
18 个直接适配的搜索引擎,结果经过 ML 重排序,每条结果都有可解释的评分。支持传入 query 数组并行查询,按域名、时间范围、精确短语过滤。
📄 fetch — 智能网页抓取
自动升级的抓取策略:先用普通 HTTP,遇到反爬墙或 SPA 页面自动切到无头浏览器。返回干净 Markdown + 元数据 + 链接。支持 PDF、需要登录的页面、页面交互操作(点击/输入/滚动)。
🕸️ crawl — 多页爬取
BFS/DFS/Sitemap 三种模式。自动遵守 robots.txt,去除重复内容,支持按域名设置速率限制。
🧩 extract — 结构化数据提取
从页面里提取表格、JSON-LD、品牌信息、命名 Schema(Article/Recipe/Product)或任意自定义 JSON Schema。
💾 cache — 本地缓存查询
所有抓过的内容都缓存在本地(~/.wigolo/),支持关键字搜索或语义搜索。同一内容问第二次,零延迟,零成本。
🧲 find_similar — 相似页发现
给一个 URL 或一个概念,找相似的页面,用关键字 + 语义 + 实时网络三路融合。
🧠 research — 自动研究报告
把一个问题分解为子查询,并行抓取多个来源,合成一份有引用的报告。配上免费的 Gemini API Key 就能直出完整答案,不配也能返回原始证据让 AI 自己整理。
🤖 agent — 自主 Gather 循环
完全自主的信息收集:计划 → 搜索 → 抓取 → 提取 → 合成,有步骤日志、时间预算,支持结构化输出。
和付费服务比,差距在哪里
wigolo 和 Firecrawl、Exa、Tavily 的能力相当,有一列它独有:

| 功能 | wigolo | Firecrawl | Exa | Tavily |
|---|---|---|---|---|
| 多引擎网络搜索 | ✅ | ✅ | ✅ | ✅ |
| 抓取与结构化提取 | ✅ | ✅ | ✅ | ✅ |
| 全站爬取 | ✅ | ✅ | — | ✅ |
| 逐字节锁定的原文摘录 | ✅ | — | — | — |
| 可解释的分结果评分 | ✅ | — | — | — |
| 本地持久缓存,离线可查 | ✅ | — | — | — |
| 查询数据留在本机 | ✅ | — | — | — |
| 需要 API Key / 账户 | 不需要 | 必须 | 必须 | 必须 |
| 每次查询费用 | $0 | 按量计费 | 按量计费 | 按量计费 |
数据来源:各官方文档,2026年7月
最后两行才是最关键的。Firecrawl/Exa/Tavily 都需要注册账号,都按查询量付费。AI 编程助手在写代码时会做大量的查询——查文档、验版本、确认 API 变化——这些费用在高强度使用下会快速累积。
wigolo 的搜索用直接适配器访问公开引擎,重排序模型和 Embedding 在本地设备上运行。查询一次是零,查 1000 次还是零。
搜索结果长什么样
wigolo 的每条搜索结果不只有 URL 和摘要,它包含:
逐字节锁定的原文摘录:AI 引用的内容和来源精确对应,不是模糊截取 可解释的评分分解:为什么这条结果得分高,每个维度拆开看 失败引擎的报告:哪个引擎没返回结果,为什么,而不是悄悄丢掉

当一个网页被反爬保护拦截时,wigolo 返回的是一个明确标注 blocked_by_challenge 的失败状态,而不是把挑战页的 HTML 当作内容返回。这个区别很重要:AI 助手知道"这个页面我没读到",比它拿着一堆无效内容去生成代码要可靠得多。
Fetch 的升级梯子
对于需要处理反爬虫的页面,wigolo 内置了一套自动升级策略:

从最轻量的普通 HTTP 开始,遇到障碍自动升级到更重型的抓取方式,直到能拿到内容为止。每一层失败都有明确标注,而不是静默地给出错误内容。
多引擎 Rank Fusion 原理

多个搜索引擎的结果通过排名融合算法合并,再经过本地 ML 重排序,把最相关的结果推到前面。这是付费服务里常见的技术,wigolo 把它带到了零成本的本地运行上。
不只是 MCP,还能用 REST 和 SDK
wigolo 提供三种接入方式:
MCP(给编程助手用):
直接在 ~/.wigolo/ 里写配置,任何支持 MCP 的编程工具都能用。
REST API:
wigolo serve # 启动在 127.0.0.1:3333
curl -sX POST http://127.0.0.1:3333/v1/search \
-H 'Content-Type: application/json' \
-d '{"query":"local-first software","max_results":5}'
SDK:
# Python
from wigolo import local_client
with local_client() as client:
res = client.search(query="local-first web search", max_results=5)
for r in res["results"]:
print(r["title"], r["url"])
// TypeScript
import { createLocalClient } from 'wigolo-sdk/local';
const { client, close } = await createLocalClient();
const res = await client.search({ query: 'local-first web search', max_results: 5 });
还支持 LangChain、CrewAI、LlamaIndex、Vercel AI SDK 的集成包,直接接到你已有的 Agent 框架里。
值得注意的一点
wigolo 使用公开搜索引擎的直接适配器,不是你自己的企业账号。在数据中心 IP 下运行时,部分有 IP 信誉评分的网站可能会拦截,本地网络连接通常没问题。官方在自托管文档里有代理配置说明,如果有这类需求可以参考。
另外,项目当前是 Public Beta(最新版 v0.2.1,2026年7月19日发布),功能还在快速迭代中,生产使用建议关注 Release Notes。
项目信息
GitHub:https://github.com/KnockOutEZ/wigolo[1] 官网:https://knockoutez.github.io/wigolo/[2] 安装要求:Node ≥ 20,~1.5GB 硬盘(macOS/Linux/Windows) 作者:@yourtowhid(X),欢迎 PR 和 Feedback
觉得有收获,点个在看支持一下 👇 感谢阅读。我是杰克王,欢迎加微交流 🚀
引用链接
[1]https://github.com/KnockOutEZ/wigolo
[2]https://knockoutez.github.io/wigolo/
夜雨聆风