统一的网页搜索与网页抓取工具
本文基于 OpenRouter 公告翻译整理,重点提炼对模型聚合平台有参考价值的产品与接口设计。
OpenRouter 新增了两类服务端工具:openrouter:web_search 和 openrouter:web_fetch。开发者只需要在请求中声明工具类型,模型就可以在推理过程中自主决定是否搜索、何时搜索、搜索几次,以及是否抓取某个页面内容。
这解决了一个长期存在的问题:不同模型 Provider 的内置搜索工具 schema 不一致,切换模型时往往要重写工具定义和结果解析逻辑。
一致的工具定义
新的服务端工具把搜索和抓取能力抽象为统一接口:
openrouter:web_search:让模型自行发起 0 到 N 次搜索。openrouter:web_fetch:让模型抓取指定 URL 的页面内容,通常用于读取搜索结果中的网页。
开发者可以指定搜索引擎、结果数量、上下文大小,以及允许或禁止访问的域名。对于需要稳定行为的企业应用,这比直接依赖 Provider 原生搜索更可控。
成本与边界
搜索工具支持不同引擎,费用取决于所选引擎和结果数量。抓取工具也可以选择不同实现,有的用于直接 HTTP 抓取,有的用于结构化内容抽取。
实际接入时,需要重点关注:
- 总搜索结果上限,避免 Agent 在循环中无限搜索。
- 域名白名单与黑名单,避免抓取不该访问的内容。
- 抓取内容 token 上限,避免上下文被长网页占满。
- 搜索与抓取成本是否纳入账单和审计。
对 GlobalRouter 的启发
统一工具定义和统一模型入口是一致的产品逻辑。模型聚合平台不只是在“转发请求”,更应消除 Provider 差异,让调用方用稳定的抽象来接入能力。
对于 GlobalRouter,这类能力可以沉淀为:
- 标准化工具 schema。
- 可配置的工具供应商。
- 成本与 token 预算保护。
- 每次工具调用的日志、审计和路由解释。
当模型、工具、账单和日志都进入同一个控制面板,团队才能真正比较不同 Provider 的表现,而不是在多个控制台之间拼接线索。