@agntn/web

中文文档
0.9.1发布于 2026/10/29MITTypeScriptES Module构建来源已验证近 30 天下载 1.3万

统一网络搜索和读取代理和CLI的提供者.

中文使用文档
文档目录13 节
  1. 为什么?
  2. * 特性
  3. QQ 安装
  4. 第一次通话
  5. 图标
  6. 图书馆
  7. 提供商
  8. 代理人
  9. ~ 这不起作用 ~
  10. ++ 添加提供者
  11. 发展
  12. 谢谢
  13. 许可证

@agntn/web (韩语)

npm version npm downloads license Ask DeepWiki

十三个搜索API,一个 { url, title, snippet }。你用同样的方式问 Exa, Brave 或你自己的 SearXNG, 你读的页面 后面的一击相同的方式, 没有人会记得 哪个键走进哪个标题.

为什么?

每个搜索API都卖出相同的东西,有10个有标题和片段的链接,每个链接都采用不同的顺序. 埃克萨想要一个POST与 x-api-key勇于行动 X-Subscription-Token塔维利把钥匙放在JSON体内 为什么不呢? 将其中的3个连接到一个特工中 你有三个客户 3个响应形状 以及3个关于日期的想法 所以这是其中13个前面的一个类形状, 搜索,读取和反向图像搜索, 不管是谁回答, 相同的对象都出来了.

医生和一个活探险家: 互联网档案馆的存檔,存档日期2013-12-04。 。 。 .

* 特性

  • 🧩 13个后台,一个合同. Brave, Contex.dev, Exa, Firecrawl, Jina, 玛吉纳利娅, Mojeek, OpenAI Codex, SearXNG, SerpAPI, SerpBase, Tavily and TinyFish, 从你这边看, 区别是弦.
  • 🔎 搜索,读取,反向图像. 查询结果, URL 到Markdown, 图像 URL 到它显示的页面 。 三个电话,不是三个包裹.
  • 🕵️ 页面所隐藏的. 注释,隐藏的形式字段,隐形字符,白上白文字. web reveal 从 HTML 直接逐行列出.
  • 🌐 all 意为一切. 每一个有钥匙的供应商都有一个查询, 被URL拆掉的UTM垃圾.
  • 🛟 退后不写. 从Firecrawl的信贷中, 利率限制在 SerpAPI 上? 下一个配置的提供者会得到查询和实际回复的答案名.
  • 📏 读者有天花板. maxChars 准确的,在代码点中计算, 和一页不匹配的手 一个续作符而不是你没有要求的 400 kB.
  • 📄 第二页存在. 勇者斗恶龙、马吉纳利亚、莫杰克、SaerXNG、SerpAPI、SerpBase和TinyFish的页面通过结果显示不透明符号.
  • 🤖 一个包裹,六个门. CLI,库,AI SDK工具,一款MCP服务器,一款Pi扩展和一款OMP扩展,出道后JSON每款都是一样的.
  • 🔐 钥匙不在你的日志里. 关键是从 URL 中被擦去的 在有错误说出来之前.
  • 🧠 已登录的编码搜索 . 已签入 Codex, Pi, OMP 或 OpenCode 吗 ? OpenAI网络搜索运行于此,没有API密钥.

QQ 安装

pnpm add @agntn/web

节点.js 26或更新. AI SDK 工具打开 @agntn/web/ai 请求 ai 旁边有7个 主条目从来不碰它:

pnpm add ai

第一次通话

npx @agntn/web "how many r in strawberry"
How many 'r's are in strawberry? And do LLMs know how to spell? - DEV Community
  https://dev.to/savannah_norem/how-many-rs-are-in-strawberry-and-do-llms-know-how-to-spell-2513
  Well the short answers are three and kind of… but not really. ... Any which way you cut it, there are three ‘r’s in stra...

Language Log » "The cosmic jam from whence it came"
  https://languagelog.ldc.upenn.edu/nll/?p=66206
  Elle Cordova offers an update from ChatGPT on the number of Rs in "strawberry": ... As of this morning, ChatGPT 4o gives...

How many r are in strawberry? | AI Roundtable by Opper
  https://opper.ai/ai-roundtable/questions/how-many-r-are-in-strawberry-fc2d3d2d
  Answer: There are exactly three "r"s in the word "strawberry". (All 4 models agreed) ... Answer: There are 3 “r” letters...

三个 所有四个模式都同意,对它们有好处

没有副指挥 没有旗帜 任何没有的 search, (中文(简体) ), read, (中文(简体) ), search-image, (中文(简体) ), reveal, (中文(简体) ), providers 或者说 mcp 是一个查询。 哪个供应商回答? 第一个在您的嵌入器中带有密钥, 按此顺序检查 : exa, Brave, Contex. dev, Firecrawl, Jina, Tavily, TinyFish, SerpAPI, SerpBase, Mojeek, 玛吉纳利亚, 然后是保存的 Codex 登录, 然后是 SearXNG 打开 localhost:8080任何地方都找不到钥匙,就意味着没人可以打电话说. --provider brave 如果你宁愿选择.

阅读是不同的,一个工作 在你的洞里没有任何:

web read https://example.com
[provider=jina requested=auto] read https://example.com/
Example Domain
  https://example.com/

This domain is for use in documentation examples without needing permission. Avoid use in operations.

[Learn more](https://iana.org/domains/example)

读数从Jina开始 r.jina.ai,不需要钥匙,然后转到背景。 德夫,Firecrawl,TinyFish,Tavily或Exa 当Jina失利,利率受限,下行或以409的回答. 第一行告诉你谁做了这个工作.

还有几把钥匙,允许:

web search "typescript 7" "node.js 26" --provider all --json
web search "rust 2027 edition" --provider brave --max-results 3
web search "typescript 7" --provider exa --summary --full-text
web search "typescript 7" --include-domains '["github.com"]' --start-published-date 2026-01-01
web read https://example.com --format markdown --max-chars 20000 --json
web search-image https://example.com/image.jpg --max-results 5
web providers

图标

命令它会做什么示例
web <query>用第一个配置的提供者搜索web "typescript 7"
web search <query...>一个查询或批次,一个提供者或 allweb search "a" "b" --provider all --json
web search-image <url>包含或类似于公共图像的页面web search-image https://.../logo.png
web read <url...>一个 URL 或一个批次进入规范内容web read https://example.com --max-chars 20000
web reveal <url>页面对读者的隐瞒web reveal https://gsmg.io/theseedisplanted
web providers谁被配置,谁能做什么web providers
web mcpStdio上的 MCP 服务器web mcp

--provider 财务报告和审定财务报表 --max-results 在每次搜索中工作。 域名,出处,分类和日期过滤器到了解它们的提供者那里去,被报道为忽略了那些没有被忽略的提供者. 列表为JSON阵列. 无 --json 你读一个模型读 --json 打印下的数据 result,同一对象的MCP发送。 满旗名单在 CLI 指南。 。 。 .

图书馆

import { create, readUrl, searchAll } from "@agntn/web";

const exa = await create("exa"); // reads EXA_API_KEY, loads the Exa adapter and nothing else
const results = await exa.search("typescript runtime benchmarks", { maxResults: 5 });

for (const result of results) {
  console.log(result.title, result.url);
}

const everything = await searchAll("typescript runtime benchmarks"); // every configured provider, deduplicated
console.log(everything.map((result) => [result.url, result.providers]));

const page = await readUrl("https://example.com", { format: "markdown", maxChars: 20_000 });
console.log(page.title, page.truncated, page.continuation);

这是大部分,真的. create("brave") 改为 create("exa") 代码里没有其他变化 导入包装入没有适配器, create() 输入您命名的, 然后再运行. searchWithFallback() 选择 CLI 会告诉你的提供者 attempts 他们沿途辍学. searchProviderDetailed() 是同一个搜索与 pagination 附加,通过 continuation 回到第二页 错误是一个家族: 401是 AuthError,使用过的贷项为: PaymentError 不管他们隐藏什么身份 429是 RateLimitError 与 retryAfter,没有任何反应 HTTPError 与状态0 和下面的真正原因。 细节和教训: 搜索中, (中文(简体) ), 风扇出, (中文(简体) ), 阅读, (中文(简体) ), 反向图像搜索。 。 。 .

提供商

提供者认证对过滤器页 次
勇士们BRAVE_API_KEY搜索日期对
上下文CONTEXT_DEV_API_KEY搜索, 读取域
exa (英语)EXA_API_KEY搜索, 读取域、 类别、 日期
相接线FIRECRAWL_API_KEY搜索, 读取域、来源、类别
吉纳JINA_API_KEY改为:搜索, 读取包括域、 类别
边际MARGINALIA_API_KEY, (中文(简体) ), public 名称时键搜索无对
摩吉克语nameMOJEEK_API_KEY搜索域,日期对
打开编码x现有登录, 可选 OPENAI_CODEX_ACCESS_TOKEN搜索无
搜索没有,你自己的情况搜索类别对
塞尔帕皮SERPAPI_API_KEY搜索, 搜索图像日期对
螺旋基团SERPBASE_API_KEY搜索类别对
轻快地TAVILY_API_KEY搜索, 读取域、 类别、 日期
小鱼TINYFISH_API_KEY搜索, 读取域、 类别、 日期对

Codex是出局的奇数:没有密钥,它借用了您已经在Codex, Pi, OMP 或 OpenCode 中的登录,以及 snippet 由于模型的答案不是页取出,所以返回为空. 每一个都填什么, 过滤它的荣誉和它咬的地方: 供应商。 。 。 .

代理人

web mcp
pi install git:github.com/agntn/web
omp install @agntn/web
{
  "mcpServers": {
    "web": { "command": "npx", "args": ["-y", "@agntn/web", "mcp"] }
  }
}

web_search, (中文(简体) ), web_image_search, (中文(简体) ), web_read, (中文(简体) ), web_reveal 财务报告和审定财务报表 web_providers,每个定义一个, AI SDK上的同一套(@agntn/web/ai),MCP,Pi,OMP和CLI. 除非模型要求更多,否则阅读会停留在20000个字符,页面链接列表和搜索结果的favicon URL不在此列,除非它也要求这些,所以没有人偶然将整个网站输入上下文窗口. Pi也会得到 /web 财务报告和审定财务报表 /web-providers每个主机的外观和信封: 代理指南。 。 。 .

~ 这不起作用 ~

没有浏览器 。 这里没有任何东西可以让JavaScript,爬行一个站点或取一个截图,以及 search-image 发送一个 URL 并获取页面返回, 它后面没有 OCR 或图像分析 。 昨天的页面版本是 @agntn/存档。 。 。 .

++ 添加提供者

错过你最喜欢的引擎了吗? 扩展 Provider,执行 search, (中文(简体) ), read 或者说 searchByImage电话 register(),和CLI,工具和 all 查看它时没有要编辑的名称 tuple。 一个建筑在其中 得到一个条目 在清单在 src/providers/index.ts 相反,凭借它的能力和懒惰 import() 中,加上其行码 builtinProviders。 。 。 . test/index.test.ts 财务报告和审定财务报表 test/unit/providers-manifest.test.ts 如果你忘了,会告诉你的 合同规定: 自定义提供者。 。 。 .

发展

vp install       # installs the library and docs
vp check         # format, lint and type-check
vp test
vp run build     # obuild, straight into dist/
vp run docs      # Docus on :3000, bundling src/ itself

谢谢

这个软件包的存在得益于两个开源程序, Claude 打开源代码 在雅典和纽约 开源代码 在开放AI.

许可证

麻省理工学院

版本与发布记录

@agntn/web 共发布 20 个版本,首次发布于 2026/08/26;过去 12 个月发布了 20 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.9.1latest2026/10/299 天前
0.9.02026/10/1523 天前
0.8.02026/10/061 个月前
0.7.52026/10/061 个月前
0.7.42026/10/011 个月前
0.7.32026/09/241 个月前

关于 @agntn/web 的常见问题

@agntn/web 是什么?

统一网络搜索和读取代理和CLI的提供者.

如何安装 @agntn/web?

在项目目录运行 npm install @agntn/web,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 web,可以用 npx web 直接运行。

@agntn/web 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@agntn/web 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@agntn/web 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=26。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@agntn/web 可以商用吗?

@agntn/web 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@agntn/web 的下载量有多少?

根据 npm 官方下载统计,@agntn/web 在 2026/10/05 – 2026/11/03 这 30 天内被下载 13,180 次,日均约 439 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@agntn/web 还在维护吗?

最新版本 0.9.1 发布于 2026/10/29(9 天前);至今共发布 20 个版本,其中过去 12 个月发布了 20 个;首次发布于 2026/08/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。