| 1 | # 独立网页搜索 |
| 2 | |
| 3 | Reasonix 将 `web_search` 暴露为普通函数工具。每次搜索单独发送一个模型请求, |
| 4 | 其中只包含查询和搜索后端的原生搜索工具。主对话收到有大小限制的 JSON 结果: |
| 5 | `summary`、`sources`(标题和 URL)以及可选的 `truncated` 标记。 |
| 6 | 搜索产生的 reasoning、加密网页内容及 Responses 回放项不进入主对话历史。 |
| 7 | 主模型可以使用 Chat Completions,搜索独立使用 Messages 或 Responses。 |
| 8 | |
| 9 | ## 账号选择 |
| 10 | |
| 11 | 优先使用当前对话账号:该账号需要已配置且已开启搜索;否则按配置顺序选择第一个 |
| 12 | 已配置、已启用搜索的账号。当前支持搜索的账号显式设置 `web_search = false` 时, |
| 13 | 不会改用其他账号。搜索账号与模型在本次运行时组装后固定,重建时重新选择。 |
| 14 | |
| 15 | 官方 DeepSeek 账号省略 `web_search` 时默认开启。精确匹配的官方 Messages、Responses |
| 16 | 及 Chat Completions 地址(后者可带 `/v1`)均使用同一账号与模型,独立请求 |
| 17 | `https://api.deepseek.com/anthropic`,以取得原生结果中的结构化来源。自定义请求 |
| 18 | URL 不会被自动转换。主对话协议不变。 |
| 19 | 第三方 Messages 或 Responses 账号须显式设置 `web_search = true`,搜索仍使用该 |
| 20 | 账号配置的端点和凭据;不会把中转站密钥发送到 DeepSeek 官方。 |
| 21 | |
| 22 | Desktop 原有搜索开关继续生效。不增加配置字段,也不迁移会话格式。 |
| 23 | 如果 `[tools].enabled` 是显式工具白名单,需要包含 `web_search`。 |
| 24 | 离线模式不注册搜索工具。仅由远程 broker 或扩展提供的模型不意味着本地拥有搜索凭据, |
| 25 | 仍需一个已启用的本地搜索账号。 |
| 26 | |
| 27 | ## 指定搜索模型 |
| 28 | |
| 29 | 在 Desktop「模型偏好 → 模型分配 → 网页搜索」选择「自动」或具体连接中的模型。 |
| 30 | 默认自动保持上述账号选择规则。手动指定时,搜索只使用所选连接和模型; |
| 31 | 检查该连接的搜索开关,不受主对话账号的搜索开关影响。 |
| 32 | |
| 33 | ```toml |
| 34 | [agent] |
| 35 | web_search_model = "my-search-connection/deepseek-v4-flash" |
| 36 | ``` |
| 37 | |
| 38 | 字段缺失、空字符串或 `"auto"` 表示自动。显式值使用 `连接名/模型名`,模型名可以包含 `/`。 |
| 39 | 离线模式、工具白名单以及连接访问限制仍然生效。第三方候选仅表示配置允许采用原生 |
| 40 | 搜索协议,不代表模型已通过实时联网验证。 |
| 41 | |
| 42 | Desktop 保存用户全局设置;项目 `reasonix.toml` 覆盖此字段时,界面标明项目实际值。 |
| 43 | 搜索配置在运行时创建时固定。空闲会话保存设置后重建;进行中的任务禁止通过此设置 |
| 44 | 强制重建,其他已有运行时在下次重建时使用新配置。 |
| 45 | |
| 46 | 指定连接被删除、关闭搜索或失去凭据时,保留引用并显示不可用原因。新运行时不注册 |
| 47 | 搜索工具并通知一次,普通聊天仍可继续,不会自动换账号。选择自动或有效模型即可恢复。 |
| 48 | 查询和搜索用量归属实际指定的连接及模型,不改变主对话模型。 |
| 49 | |
| 50 | 新增字段不要求配置版本迁移,不改变会话格式。旧版可以忽略该字段继续读取配置, |
| 51 | 但仍按旧规则选搜索账号;旧版通用配置保存会重新渲染配置,可能丢失该字段、注释或 |
| 52 | 未知字段。因此降级不保留显式搜索账号保证。新版此设置的保存仅更新该字段,保留 |
| 53 | 其余配置内容。 |
| 54 | |
| 55 | 仅在两个有效搜索模型之间切换时,主模型可见的工具定义保持不变。搜索工具启停会 |
| 56 | 改变工具列表,可能使已有提示缓存前缀失效。 |
| 57 | |
| 58 | ## 请求与结果 |
| 59 | |
| 60 | 搜索请求只携带查询,因此应将必要背景写入查询。搜索服务不会读取对话、附件、工作区 |
| 61 | 或其他搜索的历史。并发搜索使用独立的 provider 实例,不向搜索模型提供本地工具。 |
| 62 | 如果后端只返回普通回答,没有完成原生搜索结果,则报告工具错误。 |
| 63 | |
| 64 | 每次搜索限时 90 秒,输出预算为 8192 token。最多保留八个不重复的 HTTP(S) 来源及 |
| 65 | 有大小限制的总结;编码后的结果最多 24000 字节,避免常规工具输出上限截断 JSON。 |
| 66 | 总结不足时可用 `web_fetch` 阅读原始网页。检索内容作为不可信数据处理,不作为指令。 |
| 67 | 搜索请求不会跟随重定向。 |
| 68 | |
| 69 | 搜索 token 用量和 HTTP 请求次数单独以 `web-search` 来源上报,使用所选账号的价格 |
| 70 | 计入任务用量。每次搜索额外产生一次模型请求,费用和延迟取决于模型及端点。 |
| 71 | 失败通过普通工具错误返回。第三方后端如果完成了搜索却未提供结构化来源, |
| 72 | `sources` 为空;不会从生成的总结中猜测或补造来源。 |
| 73 | |
| 74 | ## 兼容性与缓存影响 |
| 75 | |
| 76 | 原有搜索开关及显式关闭值保持不变。旧的 `server_search` 记录和原生 Responses 项 |
| 77 | 仍能读取与回放。新结果是普通工具消息,旧版本可以读取,但旧版来源卡片可能将 JSON |
| 78 | 作为文本显示。当前 CLI 和 Desktop 同时支持结构化结果与旧的标题、URL 格式。 |
| 79 | |
| 80 | 把原生工具声明换成普通函数 schema 会改变 provider 可见的工具列表,可能使已有缓存 |
| 81 | 前缀失效。同一次配置不变的运行时内,工具 schema 与顺序保持固定;查询和结果通过 |
| 82 | 普通工具轮次追加。搜索不改写系统提示词、历史消息或主模型的 thinking 设置。 |
| 83 | 不能预先保证总费用降低或缓存命中率提高。 |
| 84 | |
| 85 | 独立搜索不修复主模型其他工具调用中的 reasoning 缺失;这些调用仍遵循各自 provider |
| 86 | 的 reasoning 回放策略。 |
| 87 | |
| 88 | ## 默认供应商升级 |
| 89 | |
| 90 | 新安装的 CLI 默认账号 `deepseek-flash`、`deepseek-pro` 和 Desktop 官方模板 |
| 91 | `deepseek` 使用 Chat Completions,Flash 默认、思考开启、强度 high,搜索默认开启。 |
| 92 | 配置版本 9 会将已有 DeepSeek 官方标准端点迁移为 Chat Completions,包含重命名账号、 |
| 93 | Anthropic/Responses 预设和标准请求 URL;标准覆盖项会被清除,以继续使用派生端点 |
| 94 | 及其独立搜索。模型、密钥变量、headers、extra_body、思考设置、价格和搜索开关均保留。 |
| 95 | 第三方网关、自定义路径及含查询参数的地址不迁移。 |
| 96 | 迁移完成后再次手动选择其他协议会保留;项目配置与历史会话文件不重写。 |
| 97 | 版本 7、8 配置仅修改协议、地址和版本标记,注释与未知字段保留。 |
| 98 | 更早版本仍先执行已有的配置升级步骤。旧版本能读取新配置中的 OpenAI 协议, |
| 99 | 但没有独立搜索功能;同时运行仍带旧协议迁移的旧二进制可能再次改变旧式精简账号。 |
| 100 | |
| 101 | | 字段或格式 | 旧数据在新版中的行为 | 旧版读取新版数据 | 结论 | |
| 102 | | --- | --- | --- | --- | |
| 103 | | `kind` / `base_url` / 请求 URL | 迁移官方标准端点 | 能读取既有 OpenAI 协议值 | 未增加协议枚举 | |
| 104 | | `config_version` | 一次性升级为 9,未来版本不改写 | 可解析版本数字;旧自动迁移见上文限制 | 不应混用仍带旧迁移的二进制 | |
| 105 | | 模型、价格、思考与搜索开关 | 本次协议迁移保留 | 字段格式不变 | 保留用户设置 | |
| 106 | | 会话文件 | 不重写,由现有适配器投影历史消息 | 文件格式不变 | 无会话格式迁移 | |
| 107 | |
| 108 | 官方主机的 Chat Completions 请求对精确内测 ID `DeepSeek-V4.1-Flash-Expires-On-0910` |
| 109 | 使用显式请求别名 `deepseek-v4.1-flash-expires-on-0910`。保存的 ID 和覆盖设置归属不变, |
| 110 | 不会将任意模型 ID 转成小写;别名不会授予内测权限或延长可用期。 |
| 111 | 切换协议可能影响后续首次请求的前缀缓存复用。 |
| 112 |