大家在使用AI Agent的时候有没有想过一个问题:问问题被检索过的网页,再问一次,往往还要从头搜索,这明显是不必要的!
问题在大多数 Web 工具把结果当成一次性回答。链接返回来,摘要用完了,下一次任务又重新付出搜索、抓取和阅读成本。
Wigolo 把搜索、抓取、内容提取和本地索引放进同一个进程,让 Agent 查过的网页不只服务眼前的问题,还能成为下一次检索的起点。
项目简介
Wigolo 是一套面向 AI Agent 的本地优先 Web 工具层。它可以通过 MCP 接入大模型智能体,也可以从命令行、REST API 或 TypeScript/Python SDK 调用。
当 Agent 发出查询时,Wigolo 会并行使用多个搜索适配器,然后做 URL 规范化、跨引擎去重、排名融合和本地模型重排。它返回的不只是标题与网址,还可以附上原文摘录、引用编号、原文位置和评分信号。

特点
wigolo 不是付费工具的免费替代品,是为你的 Agent 量身打造的聚焦网页层:它们可直接调用的 MCP 与 REST 表面,具备付费服务所收费的搜索与提取质量。其独特之处:
- 专为 Agent 构建。
一次 MCP 调用即可在多个引擎上并行扇出多个查询,这是串行宿主工具循环无法复制的。每个结果都透明的逐结果评分,输出对预算敏感。 - 诚实输出。
过期缓存、失败抓取、降级后端和截断都会在结果中明确呈现。当受机器人保护的页面无法读取时,你会得到标记为 blocked_by_challenge 的失败,而不是把挑战壳作为内容返回。 - 每查询 $0,可免费重查。
默认搜索通过直接适配器与公共引擎通信;重排序器和嵌入在设备上运行。每个响应都被缓存,因此再次询问即时且零成本。 - 默认私有。
缓存、嵌入、模型和配置都位于 ~/.wigolo/ 下。除非你明确选择 LLM 进行综合,否则没有任何内容会到达第三方。
以下是一个真实结果的解剖。它包含失败的引擎和弱结果,因为这些也是答案的一部分:
十个工具,实际是一条连续动作
Wigolo 对外提供十种工具,如下图所示:

search负责找到候选来源,fetch读取单个页面,crawl沿站点继续展开,extract把表格、元数据或指定 Schema 变成结构化结果。内容进入本地以后,再由 cache、find_similar、diff和 watch完成复用与跟踪。
剩下的 research和 agent把前面的动作串起来:拆分问题、扩展查询、抓取来源,再输出带引用的研究结果或结构化材料。它们需要生成完整答案时,可以连接 各大模型等 或本地 Ollama;不配置 LLM,也能先把证据交给宿主 Agent 整理。
快速开始
Wigolo 当前最直接的使用方式是 npm,需要 Node.js 20 或更高版本。给 Codex 接入只要运行:
npx wigolo init --agents=codexnpx wigolo doctor初始化完成后,可以先不用 Agent,直接在终端观察一次搜索结果:
npx wigolo search "local-first AI agent" --limit=3真正值得看的不是它有没有返回三条链接,而是结果里是否有足够清楚的摘录、来源、评分和失败状态。再用同一个问题查询一次,也能更直观地感受本地缓存是否适合自己的工作频率。
第一次完整准备需要下载浏览器引擎和本地模型,官方建议预留约 1.5GB 空间。需要注意的是:所谓“本地优先”也不等于完全离线,搜索仍要访问公开搜索引擎,抓取仍要连接目标网站;依赖 IP 信誉或严格验证的网站也可能无法读取。

项目地址
GitHub:
https://github.com/KnockOutEZ/wigolo
夜雨聆风