初级调用方 + 管理员
给任意模型统一加联网搜索,不重写 RAG
网关层搜索劫持:按客户端协议合成原生搜索块,开源模型也能 search grounding —— 失败降级不阻塞,劫持搜索不计入计费。
社区真正在抱怨什么
开源 / 自托管模型没有 search 能力,问时效性问题就露怯;为这事上一套 RAG 又太重。各家厂商的 search API 格式不一、按次计费,换个模型集成就得重做。
「能不能在网关层统一给所有模型加搜索」是集成方反复出现的诉求。
GateLLM 怎么做
GateLLM 在网关层做搜索劫持:配置搜索引擎(serper,行内可测)后,按模型三态开关(跟随能力声明 / 强制开 / 强制关)决定哪些模型走搜索;命中后先检索、把结果作为参考资料注入用户消息,再调上游模型——绝不直接返回厂商文本。
注入内容按客户端协议合成原生搜索块(Anthropic server_tool_use / OpenAI url_citation / Responses web_search_call),客户端拿到的是各 SDK 的原生引用格式。
搜索失败全降级、不阻塞请求,且劫持搜索不计入用量计费。
落地的 5 个手段
- 引擎管理:serper API Key + 行内测试 + 多引擎优先级
- 模型级三态开关:跟随能力 / 强制开 / 强制关,优先链 模型 > 上游 > 能力声明
- 协议原生搜索块:Anthropic / OpenAI / Responses 各归各的引用格式
- 安全降级:搜索失败不阻塞请求,降级原因进日志通知区
- 计费透明:劫持搜索不计入用量计费,内存占用有天花板公式