grok原生互联网搜索能力具有一定特色,站内也有不少提供grok的公益站,之前我一直没用明白grok的内置互联网搜索能力,近期研究了研究,分享一下成果。 整体分为两步,第一步验证中转站的grok模型是否支持内置搜索能力,第二步安装并修改插件,以实现在pi中流畅使用grok进行搜索。 前置条件: grok原生互联网搜索能力需要通过 openai-responses 接口 添加 tools: [{ “type”: “web_search” }] 参数 就可以触发内置搜索能力。 但是有的中转站只提供openai-completions接口,或者openai-responses接口不标准,所以第一步先验证中转站是否满足前置条件: curl http://**/v1/responses \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ "model": "grok-4.6", "input": "今天有什么重大新闻?", "tools": [{"type": "web_search"}] }' 如果能正常返回没报错,就说明中转站的grok模型可以调用内置搜索能力。 接下来安装pi-web-search插件 pi install npm:pi-web-search 也有其他插件可以调用grok的内置搜索能力,但是都需要xai账号,对第三方中转站支持不够友好,而pi-web-search对第三方中转站支持比较友好,所以用它。 不过pi-web-search也有个小问题,需要修改代码 ~/.pi/agent/npm/node_modules/pi-web-search/src/providers/openai.ts文件,把 const isXai = getProviderKind(model) === "xai"; 替换为 const isXai = getProviderKind(model) === "xai" || model.id.toLowerCase().includes("grok"); 原来的判断逻辑是要求供应商名称是xai,但是我们用第三方中转站不满足这个要求,会导致请求时增加额外参数导致请求报错。修改后的逻辑是供应商的名称是xai,或者模型ID包含grok,就被认为是xai的模型,不会添加不兼容的模型导致报错。 这样在pi中使用grok进行对话时,需要检索互联网时,就会自动触发grok的内置搜索能力了,不然pi会使用curl搜索。 如果希望在主模型使用非grok模型,有想用grok进行搜索,就增加一个 ~/.pi/agent/web-search.json配置文件,在里面写上希望使用哪个模型进行搜索,例如我的配置文件 { "provider": "*", "model": "grok-4.20-multi-agent-0309", "baseUrl": "http://**/v1", "apiKey": "**" } 至于说如何在pi中优雅的使用第三方供应商,请看 使用pi时优雅的管理第三方供应商 站内其他方案都是以mcp为主,可以参考: ai_search_mcp [开源自荐]ContextX MCP 【开源推广】aether-search [开源] 占用内存不到 5MB?GrokSearch MCP Rust 【Searchix】公益 Tavily/Serper API Grok Search 1 个帖子 - 1 位参与者 阅读完整话题


  • 情报分类:服务器与云资源
  • 分类依据:内容涉及服务器、云资源或网络线路
  • 信息来源:服务器 / LINUX DO - 最新话题
  • 发布时间:2026/9/18 11:15:15