// Package search 实现 web-search 工具的「搜索后端(provider)」层: // 一 provider 一文件、统一窄接口、统一归一化结果 // (DevDocs/design/27-网络搜索与检索提供商.md §4,照 Open WebUI 的 provider 范式,不自创)。 // // 三条不变量(design/27 §1): // // - **能力 ≠ 单一后端**:能力面对模型只有一把工具(`web-search`),后端由配置选定; // 换 provider 不改工具 schema。 // - **provider 是一等公民、各自独立配置**:未配置的家**不出现**在注册表里(fail-closed), // 绝不「挂着报错」。 // - **诚实**:provider 报错与空结果必须如实区分(空结果是空结果,不是成功); // 密钥只从配置读,**绝不进日志/响应/提示词**。 // // provider 只负责「发命令、取回 JSON、按 spec 归一化」:**不做域名过滤/去重/排序** // —— 那些统一在归一化之后做一次(见 Finalize)。零新依赖:一律标准库 `net/http`。 package search