Agentic 网络搜索与 URL 抓取 🌐
Open WebUI 的网络搜索已经不再只是简单地注入结果片段 ,而是演进为完整的 agentic research system。当你启用 Native Function Calling (Agentic Mode) 后,高质量模型就可以自主探索网页、校验事实并继续跟进链接。
Agentic web search 最适合 GPT-5、Claude 4.5+、Gemini 3+、MiniMax M2.5 这类 frontier 模型,因为它们更擅长理解搜索结果并决定何时继续深挖。较小的本地模型可能难以完成这种多步骤推理。
关于所有内置 agentic 工具(包括 web search、knowledge bases、memory 等)的完整说明,请参阅 Native/Agentic Mode Tools Guide。
Native Mode 与传统 RAG 的区别
| 维度 | 传统 RAG(默认) | Agentic Search(Native Mode) |
|---|---|---|
| 搜索决策 | 由 Open WebUI 基于提示词分析决定是否搜索 | 由模型自己决定是否需要搜索、何时搜索 |
| 数据处理 | 拉取全部结果、切块并执行 RAG | 直接返回 snippets;不切块,也不使用 Vector DB |
| 链接跟随 | 将顶部结果的 snippet 注入上下文 | 模型使用 fetch_url 直接读取整页内容 |
| 模型上下文 | 仅获取相关片段(Top-K chunks) | 通过 fetch_url 获取整段文本(最高约 50,000 字符) |
| 推理方式 | 模型在系统注入数据后再处理 | 模型可以搜索、阅读、核查,然后再次搜索 |
如何启用 Agentic 行为
要解锁这些能力,你的模型必须支持原生工具调用,并具备较强推理能力(如 GPT-5、Claude 4.5 Sonnet、Gemini 3 Flash、MiniMax M2.5)。这些内置系统工具的管理员级配置请参阅 Central Tool Calling Guide。
- 全局启用 Web Search:确保已在 Admin Panel → Settings → Web Search 中配置搜索引擎
- 启用模型能力:前往 Admin Panel → Settings → Models,选中目标模型并启用 Web Search capability
- 启用默认功能:在同一模型设置中,找到 Default Features,勾选 Web Search。这决定
search_web与fetch_url是否会默认出现在新聊天中 - 启用 Native Mode (Agentic Mode):
- 在同一模型设置的 Advanced Parameters 中,将 Function Calling 设为
Native
- 在同一模型设置的 Advanced Parameters 中,将 Function Calling 设为
- 使用高质量模型:请确保你使用的是推理能力强的 frontier 模型,以获得最佳效果
以上步骤使用的是管理面板(推荐方式)。如果你通过环境变量来管理实例,可使用 DEFAULT_MODEL_PARAMS: '{"function_calling": "native"}' 设置全局默认值——并没有独立的 FUNCTION_CALLING_MODE 变量。详情见中央工具指南。
在 Native Mode(当前受支持模式)下,search_web 与 fetch_url 工具要求同时满足:模型启用了 Web Search capability,且模型设置中的 Default Features 里也勾选了 Web Search(或在聊天中手动打开)。只要缺少其中任一项,这两个工具就不会被注入——即使其他 builtin tools 仍可能可用。
这里提到 Default Mode 下的 RAG 式注入行为,仅用于兼容历史部署。Default Mode 已不再受支持;所有模型都应配置为 Native Mode。
重要: 如果你关闭了模型的 web_search capability,但又使用 Native Mode,那么即使你在聊天中手动打开 Web Search,相关工具依然不会可用。
Native Tools 如何处理数据(Agentic Mode)
🔗 需要特别理解的是:Native Mode(Agentic Mode)的工作方式,与标准模型中全局 “Web Search” 开关背后的机制 完全不同。
search_web(仅返回摘要片段)
当模型调用 search_web 时:
- 动作:它会查询你的搜索引擎,并收到标题、链接和 snippet 列表
- 结果数量行为:如果模型没有传入
count,Open WebUI 会使用管理员配置的WEB_SEARCH_RESULT_COUNT。如果模型传入了count,其值也会被限制在同一管理员上限内 - 无 RAG:与传统搜索不同,不会有任何数据写入 Vector DB,也不会执行切块或 embedding
- 结果:模型看到的内容,就像人类在搜索结果页上看到的东西一样。如果 snippet 已经包含答案,模型就会直接回答;如果不够,它就必须自己决定是否要“深挖”某个链接
fetch_url(整页上下文)
如果模型判断搜索 snippet 不足以回答问题,它就会调用 fetch_url:
- 直接访问:该工具会访问指定 URL,并使用你配置的 Web Loader 提取主要文本
- 原始上下文:提取后的文本会被直接注入模型上下文窗口(硬编码截断为最多 50,000 字符,以防止上下文溢出)
- Agentic 优势:由于不使用 RAG,模型拿到的是网页的“完整画面”,而不是零散片段。这使它能更好执行复杂页面级指令(例如:“Summarize the technical specifications table from this documentation link”)
通过把 search_web 与 fetch_url 分离,并且不经过 RAG,模型就能像一个真正的 Information Retrieval agent 一样,自主判断哪些来源值得阅读全文。
深度研究与交错式思考 🧠
因为模型可以多次调用 search_web,并且自主决定何时进一步深挖,它实际上可以通过 Interleaved Thinking 完成真正的 “Deep Research”。这会形成一个强大的研究闭环,让模型像研究助手一样工作。
Interleaved Thinking 如何运作
Interleaved Thinking 指的是模型在连续循环中交替执行 推理 与 行动。它不会只搜索一次然后直接回答,而是可以:
📖 详细研究流程示例
用户提问: “React 生态系统中最新的安全漏洞有哪些?”
步骤 1:初步分析 🤔
- 模型思考:“我需要关于 React 安全问题的最新信息,先做一个宽泛搜索。”
步骤 2:第一次搜索 🔍
Model calls: search_web("React security vulnerabilities 2026")
- 收到若干 snippets,数量取决于管理员配置的
WEB_SEARCH_RESULT_COUNT(或模型提供的更小count) - 发现结果中提到了 npm 包和 CVE 数据库
步骤 3:缺口分析 🤔
- 模型思考:“这些 snippets 提到了 CVE,但细节不够,我应该抓取某个具体安全公告页面。”
步骤 4:定向抓取 📄
Model calls: fetch_url("https://example.com/react-security-advisory-2026")
- 读取完整的 50k 字符安全文档内容
- 识别具体漏洞类型(XSS、注入等)
步骤 5:细化方向 🤔
- 模型思考:“我已经找到服务端漏洞信息,再专门搜索一下前端侧问题。”
步骤 6:二次精确搜索 🔍
Model calls: search_web("React client-side XSS CVE 2026")
- 获得更具体的跨站脚本问题结果
- 识别对应缓解策略
步骤 7:综合整理 🤔
- 模型思考:“我已经从多个权威来源获得了足够信息,现在可以综合回答。”
步骤 8:最终回答 ✅
- 给出带来源依据的详尽回答
- 包括具体 CVE 编号、受影响版本和缓解步骤
Agentic 研究闭环
模型会持续循环以下阶段,直到掌握足够信息:
- 🤔 THINK:分析当前知识缺口,判断还缺什么
- 🔍 ACT:执行 web search 或抓取特定 URL
- 📊 EVALUATE:评估获取信息的质量与完整度
- ❓ DECIDE:判断是否还需要继续研究,还是已经足够回答
- 🔄 ITERATE:若仍有缺口,则返回第 1 步,并以更精确方向继续搜索
- ✅ SYNTHESIZE:当信息足够后,综合整理并输出最终答案
这个循环会自动持续,直到模型有足够、可靠的信息来高置信度回答你的问题。
关键优势
🎯 自适应精度:模型不会只搜一次然后直接接受表面结果。它会根据已发现的信息不断优化搜索策略。如果最初的宽泛搜索只得到浅层信息,模型会自动收缩范围,转向更具体的技术术语、产品名、版本号或专业词汇。每轮搜索都会越来越精确,从广义概念逐步深入到具体细节,使最终答案兼顾广度与准确度。
🔗 深度跟链与发现能力:不同于只使用 snippet 的传统 RAG 系统,模型在 snippet 不够时可以阅读整页内容。更强的是,当模型用 fetch_url 阅读一个页面时,它还能发现页面中提到的新 URL,并继续抓取这些新链接。例如,一个页面引用了技术规格文档、官方 changelog 或研究论文时,模型可以再次调用 fetch_url 深挖这些新资源。这让模型呈现出类似“网页浏览”的自然行为:沿着引用链深入阅读,探索相关资源,并像人类研究者一样通过多来源建立完整理解。
✅ 事实核验与交叉验证:模型可以自主通过多个独立来源交叉验证信息。如果一个来源提出某项说法,模型可以继续搜索权威来源进行佐证、对照官方文档中的版本号,或回溯到一手来源验证事实。这种多源校验显著减少幻觉,提高答案可靠性。
🧩 智能补全信息缺口:如果初始搜索结果缺少关键内容,或只覆盖了问题的一部分,模型会识别这些缺口,并用不同关键词、不同表达方式或更精确的问题自动发起后续搜索。例如,搜索 “React performance issues” 如果没覆盖某个特定优化技术,模型就可能进一步搜索 “React useMemo optimization” 或 “React.memo vs useMemo comparison” 来补齐知识缺口。这让复杂问题能够通过多轮搜索被完整覆盖。
🌐 多源综合:模型不会只返回单一来源的信息,而是把多个网页、文档站点、论坛和文章中的信息综合起来,形成更完整、更平衡的回答。
📚 上下文感知式来源选择:模型会智能判断:什么时候 snippet 已足够,什么时候必须抓整页内容;也能判断何时该停止继续研究,从而在效率与完整性之间取得平衡。
这种 Thought → Action → Thought 的循环会持续下去,直到模型有足够信息以最高准确度回答你的请求。
若要进一步了解 Interleaved Thinking 如何在所有 agentic 工具中工作(不仅限于 web search),请参阅 Interleaved Thinking Guide。
下一步
- 保存你的研究结果:了解如何将 web search 结果直接保存到 Knowledge Base
- 故障排查:若遇到问题,请查看 Web Search 故障排查指南