@amaster.ai/pi-web-access

中文文档
0.1.37发布于 2026/11/09Apache-2.0TypeScriptES Module近 30 天下载 5929

用于网页搜索、URL内容提取和图像搜索的 Pi 扩展名( Cloudflare, Tavily, Kimi, DeepSeek, Mimo, Z.AI, DashScope, Unsplash等)

中文使用文档
文档目录19 节
  1. 工具
  2. web_search
  3. web_fetch
  4. x_search
  5. image_search
  6. 结构化工具成果
  7. 供应商
  8. 深搜索和获取
  9. 云浮网络搜索
  10. 配置
  11. search
  12. fetch
  13. imageSearch
  14. providers
  15. 建筑
  16. 工具登记规则
  17. 安装
  18. 发展
  19. 工具失败

pi-web-访问

pi-web-access preview

Pi扩展用于网页搜索和URL内容提取.

工具

web_search

腾讯网. 也可通过 /web-search <query>。当键盘搜索提供者可用或当无键时注册 parallel 明确选择提供者.

参数类型需求说明
query字符串对搜索查询
maxResults编号没有返回的最大结果( 默认 5)
topic"general" | "news"没有专题类别
timeRange"day" | "week" | "month" | "year"没有紧急过滤器
includeDomains字符串 []没有只包括这些领域的成果
excludeDomains字符串 []没有排除这些领域的结果

web_fetch

获取一个 URL并返回其内容 。 也可通过 /web-fetch <url> [extraction instructions];省略时,指示默认“放大本页”。 何时 fetch.summary 配置,摘要模型将使用 prompt; 否则直接返回取回的内容 prompt 为相容性而保留,但被忽略。 仅在 fetch.provider 或者说 fetch.summary 已配置.

参数类型需求说明
url字符串对公共 HTTP( S) URL; 拒绝私有、 回回、 链接本地、 元数据、 认证和不安全的重定向目的地
prompt字符串对关于已配置摘要模型的说明; 为兼容性而保留, 但当 fetch.summary 未配置

x_search

Search X (Twitter) 为帖子和社交媒体内容. 仅在xai 提供者有 API 密钥时注册 .

参数类型需求说明
query字符串对X 上的搜索查询
allowedHandles字符串 []没有仅包括这些手柄的员额(最多20个)
excludedHandles字符串 []没有从这些手柄中不包括员额(最多20个)
fromDate字符串没有开始日期( YYYY- MM- DD)
toDate字符串没有结束日期( YYYY- MM- DD)

image_search

搜索网络图像 。 仅在图像搜索提供者时注册( E)dashscope 或者说 unsplash)有API键. 也可以直接通过 /image-search <query> 命令.

参数类型需求说明
query字符串对要搜索的图像描述

结构化工具成果

在有结构化工具支持的 Pi 运行时,代码代号接收来自这些工具的对象,而不是解析它们的Markdown. web_search, (中文(简体) ), x_search,以及 image_search 返回时 { provider, query, answer?, results, truncated },其中每个来源有 title, (中文(简体) ), url, (中文(简体) ), content,可选 score。 。 。 . web_fetch 返回时 { url, title, content, truncated }; 内容是配置摘要模型时的摘要。 可读工具结果仍然可用.

结果有限度 truncated 表示缩短的文本或省略的源;保留源 URL从不缩短。 调用失败返回 { error } 与 isError: true,所以脚本必须检查 error 在读取结果字段之前。 取消仍然中止通话 。 年长的Pi 运行时间保持他们的文本结果行为.

供应商

提供者搜索获取X 搜索图像搜索默认基址信封瓦尔默认模式
cloudflare✓✗✗✗https://api.cloudflare.com/client/v4CLOUDFLARE_API_TOKEN- 说吧
parallel✓✗✗✗https://search.parallel.ai/mcp无密钥- 说吧
tavily✓✓✗✗https://api.tavily.comTAVILY_API_KEY- 说吧
brave✓✗✗✗https://api.search.brave.comBRAVE_API_KEY- 说吧
firecrawl✓✓✗✗https://api.firecrawl.devFIRECRAWL_API_KEY- 说吧
kimi✓✗✗✗https://api.moonshot.cn/v1MOONSHOT_API_KEYkimi-k3
mimo✓✗✗✗https://api.xiaomimimo.com/v1MIMO_API_KEYmimo-v2.5-pro
zai✓✓✗✗https://api.z.aiZAI_API_KEY- 说吧
gemini✓✗✗✗https://generativelanguage.googleapis.com/v1betaGEMINI_API_KEYgemini-2.5-flash
perplexity✓✓✗✗https://api.perplexity.aiPERPLEXITY_API_KEYopenai/gpt-5.5
deepseek✓✓✗✗https://api.deepseek.comDEEPSEEK_API_KEY- 说吧
openrouter✓✓✗✗https://openrouter.ai/api/v1OPENROUTER_API_KEYopenai/gpt-4.1-mini
xai✓✗✓✗https://api.x.ai/v1XAI_API_KEYgrok-4.3
openai✓✗✗✗https://api.openai.com/v1OPENAI_API_KEYgpt-5.5
anthropic✓✓✗✗https://api.anthropic.com/v1ANTHROPIC_API_KEYclaude-sonnet-4-6
dashscope✓✓✗✓https://dashscope.aliyuncs.com/compatible-mode/v1DASHSCOPE_API_KEYqwen3.8-flash
unsplash✗✗✗✓https://api.unsplash.comUNSPLASH_ACCESS_KEY- 说吧
you✓✓✗✗https://ydc-index.ioYDC_API_KEY- 说吧

深搜索和获取

深层搜索使用 搜索和获取 API数字 : POST /v1/tools/search 返回带有长摘要的排序来源,以及 POST /v1/tools/fetch 返回 Markdown。 设定 search.provider 和(或) fetch.provider 改为 "deepseek" 供应 DEEPSEEK_API_KEY 或者说 providers.deepseek.apiKey现有 " 深搜索 " 设置继续发挥作用; model 被忽略, 搜索不再返回合成 answer根和根 /v1 支持基础 URL.

搜索请求的使用 count (违约5,API限制50)和 need_content: false; 获取其全体的结果 URL。 域过滤器变为 site: 编号 : -site: 语法,以及 timeRange 成为 after:YYYY-MM-DD 过滤器 (1/7/30/365天,协调世界时). 包括过滤器在内的完整查询必须包含1–128个Unicode字符. topic 忽略; 使用查询术语搜索新闻。 Raw DeepSeek搜索语法也可以直接包含在查询中.

设定 search.provider 改为 "cloudflare"编辑 Cloudflare 网络搜索 REST API 需要账户标识, API 令牌, 与 工人AI:阅读 财务报告和审定财务报表 AI 网关: 已读 ,以及带有信用或存储提供者密钥的AI Gateway. 默认网关是 default; 默认搜索提供者是 ceramic。 。 。 .

{
  "pi-web-access": {
    "search": { "provider": "cloudflare" },
    "providers": {
      "cloudflare": {
        "apiKey": "${CLOUDFLARE_API_TOKEN}",
        "accountId": "${CLOUDFLARE_ACCOUNT_ID}",
        "gatewayId": "default",
        "searchProvider": "ceramic"
      }
    }
  }
}

apiKey 财务报告和审定财务报表 accountId 倒计时 CLOUDFLARE_API_TOKEN 财务报告和审定财务报表 CLOUDFLARE_ACCOUNT_ID. Cloudflare 在现有搜索提供者之后,也可以自动选择两者。 在用户或代理设置中配置插值;信任的项目设置不会扩展环境变量.

Cloudflare 唯一的提供者设置 :

外地说明
accountIdCloudflare 账户 ID( 需要; 支持环境回落) .
gatewayIdAI 网关 ID( 默认) default) (中文(简体) ).
searchProviderceramic, (中文(简体) ), exa,或 linkup (默认) ceramic) (中文(简体) ).
byokAliasAI Gateway中存储的提供者密钥的可选别名. 如果在网关上缺失,API会失败,而不是回到信用.

请求使用 POST {baseUrl}/accounts/{accountId}/ai/websearch/。查询必须包含1–1024个字符. maxResults 默认为5并上限为10; topic, (中文(简体) ), timeRange, (中文(简体) ), includeDomains,以及 excludeDomains 被忽略,因为该 API 不支持它们。 结果包含标题,URL,和描述片段,没有被合成的答案;大片段被截取. Cloudflare 只支持搜索 .

自定义 Kimi 基础 URL 必须支持两者 /chat/completions 财务报告和审定财务报表 /formulas/*。 。 。 .

You.com search return web and news results in one call; 中文网 中文网 中文网; topic: "news" 更喜欢新闻结果并应用一周的新鲜度窗口。 内容 API/v1/contents返回干净的Markdown for web_fetch。获取密钥到 api- keys (中文(简体) )。 。 。 .

自定义 DashScope 基址必须指向一个与 OpenAI 兼容的响应 API 根 —— ${baseUrl}/responses 需要所有的能力。 对于国际站点或专用的工作空间端点,例如使用. https://dashscope-intl.aliyuncs.com/compatible-mode/v1中 web_extractor 工具和图像搜索用途 web_search_image; 两者都是代理式工具,每次呼叫需要几分钟时间(默认超时5分钟,调制通过 timeoutMs) (中文(简体) ). DashScope搜索只支持基本的网络搜索—— includeDomains编号 :excludeDomains 过滤器被忽略 .

获取倒计时 (当 fetch.provider 未设置 :r.jina.ai- 本地HTTP + 关闭。 两个阶段,包括目的地和重新定位DNS验证,共享一个 timeoutMs 截止时间(默认为30秒),Jina得到的预算最多一半,因此阅读者缓慢,仍然留有时间回落。 Jina和本地响应机构在文本/HTML转换前被封顶为2 MiB,超大小的响应返回了标记为部分的前缀. 部分旗能活过总和;使用有重点的搜索或浏览器检查来取回缺失的证据,而不是重复同样的全取. 配置的提供者适配器保留自己的响应和超时政策.

配置

设置密钥 : pi-web-access

项目 .pi/settings.json 数值只有在项目信任被接受之后才被加载,而不是环境插入。 用户和代理设置保留了环境插值.

{
  "pi-web-access": {
    "search": {
      "provider": "kimi"
    },
    "fetch": {
      "provider": "zai",
      "summary": {
        "provider": "amaster",
        "model": "deepseek-v4-flash"
      }
    },
    "providers": {
      "kimi": {
        "apiKey": "AMASTER_API_KEY",
        "baseUrl": "https://credits.amaster.ai/v1"
      },
      "zai": {
        "apiKey": "${ZAI_API_KEY}"
      },
      "xai": {
        "apiKey": "${XAI_API_KEY}"
      }
    }
  }
}
外地说明
provider用于网页搜索的哪个提供者 。 不设置 = 用密钥自动选择第一个提供者 。 明确选择 parallel 启用无密钥搜索; 否则没有密钥表示工具没有注册 .

fetch

外地说明
provider用于获取 URL 的哪个提供者 。 未设置=jina Reader = 本地倒计时.
summary用于摘要抓取内容的模型配置 .
summary.provider模式提供者名称(通过pi模式注册解决).
summary.model型号编号.

如果没有 fetch.provider 也没有 fetch.summary 已配置, web_fetch 未注册.

imageSearch

外地说明
provider用于图像搜索的哪个提供者( E)dashscope 或者说 unsplash) (中文(简体) ). 不设置 = 用密钥自动选择第一个提供者 。 没有密钥 = 工具未注册 .

providers

提供方配置 。 每个提供者支持:

外地说明
apiKeyAPI密钥. 用户和代理设置支持 $ENV_VAR 财务报告和审定财务报表 ${ENV_VAR}; 仅支持带括号的窗体 :-fallback。项目设置保留占位符文字.
baseUrl覆盖默认 API 终点 .
model覆盖默认模式 .
headers额外的信头合并到每个请求中.

环境变量在 apiKey 未设置在配置中.

平行是选入, 只支持搜索 : 它从未启用图像搜索或 web_fetch,它不进行 URL 获取或提取。 当选中时, 搜索目标和查询会离开机器 https://search.parallel.ai/mcp;这可以包括代理生成的寄存器上下文和这些目标或查询中包含的用户提供的URL. 现有的自动提供者选择,提供者命令,以及按键提供者行为不变.

建筑

每个提供者执行 WebProvider 接口通过 BaseProvider数字 :

// providers/base.ts
export interface WebProvider {
  readonly id: BuiltInProviderId;
  search(params: SearchParams, provider: ResolvedProvider): Promise<SearchResponse>;
  fetch(url: string, provider: ResolvedProvider): Promise<FetchResponse>;
  imageSearch(params: ImageSearchParams, provider: ResolvedProvider): Promise<SearchResponse>;
}

export abstract class BaseProvider implements WebProvider {
  abstract readonly id: BuiltInProviderId;
  // Default implementations throw "not supported"
  async search(...) { throw new Error(`${this.id} does not support web_search.`); }
  async fetch(...) { throw new Error(`${this.id} does not support web_fetch.`); }
  async imageSearch(...) { throw new Error(`${this.id} does not support image_search.`); }
}

提供者只超越他们所支持的方法。 供应商专用能力(如: XaiProvider.xsearch)作为课上的额外方法被曝光.

工具登记规则

  • web_search 财务报告和审定财务报表 /web-search <query> ——当搜索提供者拥有 API 密钥,或者当无密钥时注册 parallel 明确选择.
  • web_fetch 财务报告和审定财务报表 /web-fetch <url> [extraction instructions] 登记时间: fetch.provider 或者说 fetch.summary 已配置.
  • x_search ——xai供应商拥有API密钥时注册.
  • image_search ——当图像搜索提供者(dashscope, unsplash)拥有API密钥时注册; /image-search 命令与它一起注册。 一个 imageSearch.provider 不支持图像搜索(例如). "openai")作为未配置处理.
  • 如果没有配置, 扩展加载将默默无声, 没有注册工具 .

安装

pi install npm:@amaster.ai/pi-web-access

发展

pnpm build      # tsc -b
pnpm typecheck  # tsc -b --pretty false
pnpm test       # vitest run src

工具失败

web_search, (中文(简体) ), web_fetch, (中文(简体) ), x_search,以及 image_search 返回时 isError: true 有保险箱 error 信息、信息和 errorCategory数字 : timeout 请求截止日期, http_error 用于识别的 HTTP 失败( 有数字) httpStatus, (中文(简体) ), network_error 对公认的运输故障, cancelled 为上游取消, configuration_error 编号 : invalid_request 编号 : invalid_response 用于经审查的本地验证失败,或 request_failed 对未分类的失败。 原始提供者出错,响应机构,URL,和资质被排除在这些故障结果和诊断日志之外. 呼叫取消会传播到运行时间. 这个 /web-search, (中文(简体) ), /web-fetch,以及 /image-search 命令使用相同的安全信息和日志分类。 超时并不意味着提供者配置无效 .

版本与发布记录

@amaster.ai/pi-web-access 共发布 106 个版本,首次发布于 2026/06/09;过去 12 个月发布了 106 个版本。

版本发布日期距今
0.1.37latest2026/11/09今天
0.1.2-beta.91beta2026/11/072 天前
0.1.2-beta.902026/11/062 天前
0.1.2-beta.892026/11/053 天前
0.1.2-beta.882026/11/054 天前
0.1.362026/11/054 天前

关于 @amaster.ai/pi-web-access 的常见问题

@amaster.ai/pi-web-access 是什么?

用于网页搜索、URL内容提取和图像搜索的 Pi 扩展名( Cloudflare, Tavily, Kimi, DeepSeek, Mimo, Z.AI, DashScope, Unsplash等)

如何安装 @amaster.ai/pi-web-access?

在项目目录运行 npm install @amaster.ai/pi-web-access,或使用 pnpm add / yarn add / bun add。

@amaster.ai/pi-web-access 支持 TypeScript 吗?

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

@amaster.ai/pi-web-access 支持 ESM 还是 CommonJS?

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

@amaster.ai/pi-web-access 可以商用吗?

@amaster.ai/pi-web-access 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@amaster.ai/pi-web-access 的下载量有多少?

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

@amaster.ai/pi-web-access 还在维护吗?

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