@gagansd/pi-web-search

中文文档
0.4.0发布于 2026/10/26MITES Module零依赖构建来源已验证近 30 天下载 3670

一个搜索工具,用于公共网络/代码,URL提取,以及本地证据的续作. 引用,上下文高效,默认无密钥.

中文使用文档
文档目录16 节
  1. 安装
  2. 分类器 API
  3. 结构和模型支助
  4. 用您已有的 Pi 登录尝试 Jev
  5. 工具和实例
  6. 无需其他网络请求即可读取更多信息
  7. 代码修饰符
  8. 完整配置
  9. 可选彻底搜索和Jev
  10. 全权证书
  11. 可选勇士搜索
  12. 提供者的行为和限制
  13. 超时、倒计时和错误
  14. 数据处理
  15. 开发和包装检查
  16. 许可证

pi-web-搜索

Pi 统一网络和公共编码搜索: 1 search 用于查询、URL提取和本地证据的继续的工具.

  • 默认无密钥 : Exa,相通,Jina Reader(只取URL),grep.app,和Sourcegraph. 可选 Jev 过滤重用您的 Pi 登录/ key .
  • 一个平面图: 完全一个 query, (中文(简体) ), urls,或 ref附加可选 scope, (中文(简体) ), effort, (中文(简体) ), find,以及 cursor。没有选择提供者的参数.
  • 两项努力: fast (默认)使用一个配置的提供者加倒计时; thorough 粉丝横跨合格来源 由 research.enabled。 。 。 .
  • 可选 Pi-native Jev 排名,过滤,和安全分类. 默认关闭.

安装

需要皮条 0.99.0或更新。 。 。 .

  1. 安装 : pi install npm:@gagansd/pi-web-search

  2. 第一个互动会话显示了一个一次性的设置,即为已有的Exa,GitHub和并行的证书. 对于密钥和设置, 随时运行 /web-search。 。 。 .

无密钥配置有 Exa 和 并行 设定的限制 .

命令它会做什么
/web-search菜单:状态,提供者密钥,分类器. 无头指印状态.
/web-search status提供商、证书存在(从未有密钥)和分类针.
/web-search provider [name]添加或修改检索密钥。 采取器为色码:无键,可选,或需要;有或缺失.
/web-search classifier [none|provider/model]从列表中选择或禁用 none。 。 。 .

分类器 API

可选分类法增加了判决 effort: "thorough" 电话; 快速 search 电话从不运行.

  • 等级: 倾向于相关、自成一体的摘录并惩罚非专题结果.
  • 过滤器 : 抑制有自信地标出即时注射、钓鱼或有害内容.
  • 检查覆盖范围 : 判断获取的证据是否足以回答询问.

结构和模型支助

Retrieval → Pi classifier API → ranking/filtering policy → cited results

分类器接收查询和候选标题,URL,以及作为状态的节选,加上打出布尔和选择问题. 它返回概率;代码应用权重和阈值. Pi拥有目录,认证,以及 classify()。这个包裹针出一个精确 provider编号 :model。 。 。 .

分类符支助
杰维 通过 TypeSafe、Vercel AI Gateway 或 OpenRouter 访问现在可用; 重复使用 Pi 认证 .
任意 Pi 分类器 包括马拉马.cpp把它钉住 provider编号 :model。 。 。 .
OpenAI 决定和其他决定模式在 Pi 中注册为分类器时支持; 给确切的提供者/ 模型打针 .

提供者-独立边界使得其他分类者可以不重写检索或排名. 将任何注册的 Pi 分类器按下 /web-search classifier。 。 。 .

用您已有的 Pi 登录尝试 Jev

对于 OpenRouter :

  1. 运行 /login openrouter 只有Pi还没有被认证。 。 。 .
  2. 运行 /web-search classifier 选择 openrouter/~typesafe/jev-latest,或 /web-search classifier openrouter/~typesafe/jev-latest。 。 。 .
  3. 运行 /reload。 。 。 .
  4. 问:“用彻底的搜索来搜索网页以中止Signal.timeout。”
使用设置命令默认模式
类型安全/web-search classifier typesafe/jev-latestjev-latest
Vercel AI 网关/web-search classifier vercel-ai-gateway/typesafe-ai/jevtypesafe-ai/jev
打开路透社/web-search classifier openrouter/~typesafe/jev-latest~typesafe/jev-latest
打开代码/web-search classifier opencode/jev-1.13jev-1.13
OpenAI 决定/web-search classifier vercel-ai-gateway/openai/gpt-6-luna-decisionsopenai/gpt-6-luna-decisions
大赦国际/web-search classifier 并选择列出的克拉夫/杰夫型号目录

/web-search classifier 列出当前每个分类器 Pi 注册,加 无分类符不出现在 /model;这个取取器是搜索专用的接针. Pinning 允许多源搜索和判断 web-search.json,保留您的其他设置. 不需要第二个 API 键 . Pi重新使用其存储,环境,运行时间,或模型认证. 如果需要的话,请用Pi的 /login 给那个供货商.

/web-search classifier none 禁用判断; 继续搜索 。 托管的分类费用记入固定账户.

默认取消分类。 如果启用时没有明确的提供者/模型对,则使用 杰维 (单位:千美元)vercel-ai-gateway/typesafe-ai/jev) (中文(简体) ). 其他 Pi 分类器可以被明确固定. 配置用途 classifier旧的 jev 块和 backend 字段被拒绝,而不是迁移。 失败者会以警告方式获取证据。 主机分类器在输出剪接前收到节录;安全判断不是安全边界. 见 所有设置和限制。 。 。 .

工具和实例

使用 search 用于公共文档、当前信息、文字公共编码模式、已知的URL以及所储存的证据:

search 是唯一注册的工具。 直接和代码调用器使用相同的接口.

投入使用
query搜索条款或问题。 与 scope: "code",使用文字标识符或片段.
urls在不请求搜索的情况下提取一个或多个已知的 HTTP( S) 页面 .
ref本地读取存储的证据 。 接受手柄( 列表) 或 <resultId>:<oneBasedIndex> (读).
scopeweb (违约), code,或 both。 。 。 . both 默认为 effort: "thorough"。 。 。 .
effortfast (默认;一个提供者加倒置)或 thorough (当前来源;需要) research.enabled) (中文(简体) ).
find 编号 : cursor改进a ref 读取时使用文字上的通道搜索或继续光标.

就是其中一个 query, (中文(简体) ), urls,或 ref 需要时间。 冲突、不适当的字段和未知参数都以短暂的错误而失败,而不是被默默地忽略.

实例:

{ "query": "AbortSignal.timeout", "scope": "web" }
{ "query": "useSyncExternalStore repo:vercel/next.js", "scope": "code" }
{ "query": "AbortSignal.timeout", "scope": "both", "effort": "thorough" }
{ "urls": ["https://example.com/docs"] }

使用 repo:<owner/name> 财务报告和审定财务报表 language:<name> 用于常见的代码-过滤子集;其他 GitHub 修饰语是依赖提供者的。 仅当您想要提取时才提供 URL 字符串; 它们不能与 query 或者说 ref。 。 。 . urls 接受最多20个字符串;空白被忽略,无效/非HTTP(S) URL生成警告. 只使用 URL 调用需要至少一个有效的 URL 。 提取返回提供者选择的证据,而非完整浏览器页面 。 未声明的工具参数,例如 limit, (中文(简体) ), provider,或 path 在错误中拒绝并命名.

无需其他网络请求即可读取更多信息

搜索返回已绑定的预览外加会话本地 resultId 当证据可以存储。 传出手柄作为 ref 通过同一工具列出或读取证据:

const index = await tools.search({ ref: "<returned handle>" });
text(index);
const passage = await tools.search({ ref: "<returned handle>:1", find: "timeout" });
text(passage);

参考书系单行线(<resultId>:1 是第一个存储结果。 奥米 find 和使用情况 cursor 继续读取。 处理在闲置了10分钟后过期(成功读取更新,最多60分钟),驱逐、关闭或重新装入。 没有写到磁盘上。 所储存的证据是有限度的,而且可能已被提供者截断 未保证全页内容。直接呼叫者可以复制返回的 search({ref, cursor}) 继续调用; 不需要代码 。 见 效率和限制。 。 。 .

代码修饰符

repo:<owner/name> 财务报告和审定财务报表 language:<name> 是文件的常见子集。 在grep.app和Sourcegraph上,这些被取入过滤器;引出含有空格的限定值. 第一个不空地 repo: 值被使用,重复的语言被去除. grep.app 语言过滤不可靠 并总是在使用时添加警告;避免用于第一次搜索,并将零点击视为没有定论.

其他限定词依赖提供者:grep.app叶 path:, (中文(简体) ), filename:,而字形图案中的类似语法,而GitHub接收原始查询时没有改变并解释自己的语法. 零重击警告意味着可能的补救办法,而不是确认不存在代码的原因或证明. grep.app和公用源代码并非每个 GitHub 寄存器索引; repo:facebook/react 经常错过这些来源.

完整配置

配置路径是 <agent-dir>/web-search.json,通常情况下 ~/.pi/agent/web-search.json。 。 。 . PI_WEB_SEARCH_CONFIG 覆盖此路径 . PI_CODING_AGENT_DIR 更改 Pi 代理目录 .

扩展不会自动读取工程 .pi/web-search.json 或将 Pi 合并 settings.json。工程本地安装不会改变配置位置.

缺失文件使用这些默认 :

{
  "web": { "provider": "exa", "fallback": ["parallel"] },
  "code": { "provider": "grep", "fallback": ["sourcegraph", "github"] },
  "research": { "enabled": false },
  "timeoutMs": 20000,
  "maxResults": 8
}

所有字段都是可选的. 将更改合并到已有文件 。 网络操作每次读取配置;即使配置不正确,Ref读取仍停留在本地. 在本地 MCP 注册或证书更改后重新加载 .

  • web 接受 exa, (中文(简体) ), parallel,以及 brave. Jina是只提取的,不是搜索链供应商. code 接受 grep, (中文(简体) ), sourcegraph,以及 github。 。 。 .
  • maxResults 切到整数,然后夹到 1–20 (中文(简体) )它既限制了提供者的请求,也限制了 全局返回的预览数,包括URL摘录. 所请求的 URL 摘录被优先排序; 可通过 search({ref}). 提供者可能返回较少的结果或忽略所要求的限制.
  • timeoutMs 切换为整数毫秒。 积极价值有: 最低1,000毫秒使用的非正值 20 000毫瓦时。这些数值调整不会发出警告.
  • 无效的 JSON, 未知字段/ 提供者, 以及形状错误的块生成 invalid_config。错误的家庭提供者触发警告和违约或删除。 一些无效的分类器值触发带有警告的默认值. 仅字面 true 启用 classifier.enabled。 。 。 .

见 配置解析器 用于验证细节.

可选彻底搜索和Jev

  1. 运行 /web-search 以识别配置路径.
  2. 合并 {"research":{"enabled":true}} 进入文件.
  3. 运行 /reload。 。 。 .

effort: "thorough" 将相同的查询同时发送到 scope. Fan-out 被限制:最多 每个家庭两次实际运输 按配置顺序,最多4个 both; 缺失的运输不消耗一个槽. fallback: [] 不排除来源。 它不检查协议或发起进一步搜查. scope: "both" 默认为彻底; 明确 effort: "fast" 与 both 被拒绝,以及 research.enabled 一定是事实 快来电从不刻意打出去.

捷夫需要单独的选入. 匿名检索不需要分类证书 。 见 分类器设置, (中文(简体) ), 调音,以及 失败行为。 。 。 .

全权证书

Exa MCP,并列原生MCP,grep.app,和Sourcegraph不需要搜索密钥. Jina Reader以匿名方式处理只取URL;勇者搜索需要自己的密钥. 匿名并行有较低的服务器控制率限制. 平行密钥是可选的 .

搜索证书使用之前的第一个非空白环境别名 <agent-dir>/auth.jsonGitHub 然后尝试已有的 gh auth login 符号 .

存储的ID环境别名,优先行为
exaEXA_API_KEY选择 REST 而不是无密钥 MCP .
parallelPARALLEL_API_KEY为更高的限制添加一个 Bearer 头.
githubGITHUB_TOKEN, (中文(简体) ), GH_TOKEN需要一个标志。 返回只核实公开结果.
braveBRAVE_API_KEY, (中文(简体) ), BRAVE_SEARCH_API_KEY可选的 REST 搜索提供者; 需要密钥 .
  • 设置环境变量 启动 Pi 之前。在另一个外壳中导出不能改变运行中的 Pi 进程。 随着环境的改变,Pi重新开始.
  • 扩展读取 Exa/GitHub 存储每个操作的密钥.
  • 同时在MCP注册时捕捉到它的"熊"(Bearer)头. 运行 /reload 更改其键后.

合并此条目为已存在的 auth.json 不替换其他全权证书:

{ "parallel": { "type": "api_key", "key": "<your-api-key>" } }
  • 私下替换占位符 .
  • 从版本控制中排除认证文件 .
  • 使用窄范围密钥/托盘 .

这个 检索证书解析器 读取正文 .key 字符串,而不是 shell 命令,嵌入环境引用,或者 OAuth 刷新证书 。 无法读取/ malform auth 表示没有存储的密钥 .

/web-search provider 在 auth.json 并显示创建地点。 密钥从不命令参数, 也从不写给 web-search.json,然后在键入后从不显示。 环境化名仍然能赢得存储值.

Pi 提供可选的主机对等器. 此软件包没有安装另一个 Pi 副本 。 见 npm 咨询说明。 。 。 .

Pi单独解决判断时的分类认证. Jev不需要单独的钥匙.

每个供应商都控制配额和账单。 钥匙不能保证配额或价格变化。 其他来源不能保证结果或可获得性.

/web-search 显示认证快照,而不是活键有效性测试 。 它从来不显示钥匙.

运行 /web-search provider brave 并合并到 web-search.json数字 :

{ "web": { "provider": "brave", "fallback": ["exa", "parallel"] } }

勇者号使用一个 REST 请求并返回排序片段,而不是生成答案或额外片段. 它的查询仅限于400个字符和50个单词;较长的查询明显失败,而不是默默地被缩短. 没有钥匙,勇者就跳过了。 彻底 search 在出示证书时考虑这一点,但须遵守配置的供应商命令和每家双向运输的限制。 被应用的URL被无密钥的Jina取出,从不与查询结合.

仅限 URL search({ urls }) 使用 Jina Reader ,而不论搜索提供者的选择,现有网页提取作为可重试倒计时. Jina不是一个搜索引擎,不需要设置,只接收请求的URL,而不是搜索查询. Jina Markdown省略了图像和链接目的地,以减少输出噪音。 新提供者共享现有的预览和本地续作预算;不添加新的LLM指令或工具.

提供者的行为和限制

  • 默认链 : Exa − 平行 财务报告和审定财务报表 grep.app – sourcegraph – GitHub 页面存档备份,存于互联网档案馆 Grep.app – sourcegraph – GitHub。 。 。 .
  • 空的网络结果不会触发回落 。 空代码结果或可重试失败继续通过 供应商链。 。 。 .
  • 结果包含链接和摘录,不保证完整页。 确切的重复证据已经倒塌,而不同的段落和代码锚仍然保留。 搜索片段在直接输出和结构输出中被封为400个字符. 每条产出路径都有8 000个特点的全球预算;过多的引用被全部省去,并附有通知,从未缩短。 所储存的通道可以在有指针和光标的有约束的窗口中被读取. 见 结构化产出。 。 。 .
  • HTTP直接取回已限定30秒会话再用和飞行中分解. 限速供应商输入一个短冷却. 平行的嵌入式呼叫总是通过 Pi 执行,所以权限检查永远不会被再利用. 见 效率和限制。 。 。 .

超时、倒计时和错误

检索和判决分担违约 20秒钟 预算。 清净能取更久. Jev 失败后会带着警告返回未经判断的证据. 检索截止日期已过,或呼叫者取消呼叫失败.

检查警告和 /web-search启用 /mcp 平行连接问题.

数据处理

不要发送秘密或私人密码. 外部提供者接受查询和URL. 可选Jev在输出剪接前接收候选标题,URL,和提供者节选.

获取的内容是不信任的. Jev不是快速注射防火墙或真相保障.

扩展不会将工作空间文件或会话历史作为搜索有效载荷发送. Pi可以在会话历史中保留工具调用.

查询,URL,出错,和摘录可以包含敏感文本.

开发和包装检查

  1. 运行 cd pi-web-search。 。 。 .
  2. 运行 npm ci --ignore-scripts --no-audit --no-fund。 。 。 .
  3. 运行 npm test。 。 。 .
  4. 运行 npm run typecheck。 。 。 .
  5. 运行 npm run audit:prod。 。 。 .
  6. 运行 npm run pack:check。 。 。 .
  7. 运行 npm run bench:context 用于离线上下文脚印测量(特征-代用估计,而不是计费的代用计数).

可选检索检查 : npm run smoke:live。它会发出公开的测试询问,没有您的全权证书。 可选决定模式检查 : npm run smoke:classifier 使用您的 Pi 认证( billing application) 给默认的 Jev 模式进行四个直播。 它验证排名,注射抑制,证据不足,以及普通代码. 测试另一对,使用 npm run smoke:classifier -- <provider> <model>。见 释放检查和限制。 。 。 .

SDK 用户必须装入 Pi 的 MCP 扩展名,用于本地并行呼叫和呼叫 bindExtensions()代码是可选的;直接 search 要求继续支持。 见 SDK 实例。 。 。 .

许可证

麻省理工学院 - 加根・德瓦吉里

版本与发布记录

@gagansd/pi-web-search 共发布 7 个版本,首次发布于 2026/10/02;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.0latest2026/10/2621 天前
0.3.12026/10/2027 天前
0.3.02026/10/141 个月前
0.2.12026/10/071 个月前
0.2.02026/10/021 个月前
0.1.02026/10/021 个月前

关于 @gagansd/pi-web-search 的常见问题

@gagansd/pi-web-search 是什么?

一个搜索工具,用于公共网络/代码,URL提取,以及本地证据的续作. 引用,上下文高效,默认无密钥.

如何安装 @gagansd/pi-web-search?

在项目目录运行 npm install @gagansd/pi-web-search,或使用 pnpm add / yarn add / bun add。

@gagansd/pi-web-search 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/gagansd__pi-web-search 是否存在。

@gagansd/pi-web-search 支持 ESM 还是 CommonJS?

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

@gagansd/pi-web-search 需要什么版本的 Node.js?

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

@gagansd/pi-web-search 可以商用吗?

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

@gagansd/pi-web-search 的下载量有多少?

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

@gagansd/pi-web-search 还在维护吗?

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