Open WebUI 必备核心 (Essentials)
您已经完成了 Open WebUI 的安装、连接了模型服务商,并进行了第一次 AI 对话。本页面涵盖了六大核心要素,能将一个基础的聊天 UI 升级为一套非常契合日常高频工作流的高效系统。这些要素虽然都不是强制要求的,但绝大多数用户在第一周内都会陆续用到它们。
您可以按顺序阅读,或直接跳转到您感兴趣的章节:
- 工具调用 (Tool calling)
- 插件生态 (Plugins)
- 任务模型 (Task models)
- 上下文管理 (Context management)
- 基础检索增强生成 (Basic RAG)
- 打开终端 (Open Terminal)
- 常见故障排除 (Troubleshooting)
如果您正在为多用户团队搭建 Open WebUI,请同步阅读 大规模扩展 Open WebUI 指南。该指南涵盖了基础设施层面的决策(如 PostgreSQL 数据库、Redis 缓存、外部向量数据库、共享存储等),这与本页面侧重于功能层面的核心要素是相辅相成的。这两份指南相得益彰——阅读本篇以掌握日常使用的核心功能,阅读扩展指南以构建多用户基础设施。
工具调用 (Tool calling)
如果没有工具,大语言模型(LLM)就只能生成纯文本。而一旦赋予工具,它就能查阅实时信息、执行代码并代您执行操作。您只需将一个 Tool (工具) 绑定到对话(或模型)中,模型在响应过程中就会自主决定何时调用它、以及传入什么参数。Open WebUI 会代为执行该工具调用,将运行结果反馈给模型,模型随后结合这些新获取的 信息继续生成回答。
工具调用是把聊天模型升级为智能 Agent(代理)的关键钥匙。搞定这一步,将解锁本页面后续涵盖的大部分高级特性。
在起步阶段,有两点非常值得提前了解。
1. 理解工具调用模式 (Tool-calling modes)
Open WebUI 提供了两种将模型与工具连接的方式。这里最容易让人感到困惑的是:被标记为“Default(默认)”的模式,反而并不是绝大多数人应该使用的模式。一旦您了解了发展历史和 Open WebUI 的设计哲学,其命名就非常合乎逻辑了。
Default Mode 是历史遗留方案,旨在提供最广泛的兼容性。如果您的模型本身支持函数调用/工具调用(几乎所有现代大模型均原生支持),Native Mode 是远比其优秀的绝佳选择。请参阅下文了解如何进行切换。
Open WebUI 的一个核心目标是提供最广泛的模型兼容性,从前沿的闭源商业 API 到运行在 树莓派 (Raspberry Pi) 上的微型量化本地模型全线支持。在 Open WebUI 首次引入工具调用时,绝大多数模型还没有提供内置的函数调用(Function-calling)API。当时给模型赋予工具的唯一方法,是在系统提示词(System Prompt)中用纯文本向其描述这些工具,然后通过解析模型输出的文本,来人肉判断模型想要调用哪个工具。这种基于提示词引导的方案在 Open WebUI 中被称为 Default Mode。它是最初的(也是在当时唯一的)实现方案,现在被视为老旧的遗留机制。它之所以依然是系统默认值,是因为它代表了“最低通用标准”:任何只要能够遵循系统提示词指令的模型都能使用它,完全不需要 API 层面的特殊支持。
此后,几乎所有的主流模型服务商都加入了原生的函数调用支持。Open WebUI 将此称为 Native Mode。在这种模式下,工具的定义会作为 API 请求中结构化的一部分发送给模型,模型则在其响应中返回结构化的工具调用参数。这种方式速度更快、准确度极高、能完美保留 KV 缓存,并且是 Open WebUI 所有内置系统级工具(如记忆 Memory、便签 Notes、知识库 Knowledge、网页搜索 Web Search、图像生成 Image Gen、代码解释器 Code Interpreter)的硬性要求 。所有开发的新型工具调用功能均只针对 Native Mode。不过它仅适用于那些真正暴露了函数调用 API 的模型,这也就是为什么它无法被设为一刀切的通用默认值。
在实际使用中,绝大多数用户都应该开启 Native Mode。当前所有的主流模型(OpenAI, Anthropic, Gemini, Llama 3.1+, Qwen 2.5+, DeepSeek, GLM 等)都原生支持它。您只需一步即可为全站实例进行全局配置:
管理员面板 (Admin Panel) > 设置 (Settings) > 模型 (Models) → 点击模型列表右上方的 设置 (Settings) 按钮 → 将 Function Calling (函数调用) 设为 Native → 保存。从此,当前及未来新增的所有模型都将默认继承这一设置。
- 针对单个模型配置: 管理员面板 > 设置 > 模型 > [您的模型] > 模型参数 (Model Parameters) > Function Calling = Native
- 针对单个对话配置: 在对话的**右侧边栏(Chat Controls 聊天控制)**中进行勾选。
如果您运行的是较老的本地模型,或是没有暴露函数调 用 API 的特定微调模型,请将该特定模型保持在 Default Mode。除此之外的绝大多数场景,选择 Native Mode 都是明智之举。
2. 选择并启用工具
很多用户苦苦寻找的工具,其实早就已经内置在 Open WebUI 中了,只需在后台一键开启即可:网页搜索、代码执行、图片生成、记忆以及知识库检索均已开箱即用,无需安装任何插件。一旦开启,它们在 Native Mode 下会自动作为系统工具呈现给模型。
其中大部分工具仅需极为简单的配置(选择服务商、填入 API 密钥或开启开关)。以下是常用工具的配置指南:
- 网页搜索 (Web Search) — 连接搜索服务商(Google, Brave, DuckDuckGo, SearXNG 等),让模型可以联网查阅实时信息。
- 图像生成 (Image Generation) — 连接图片服务商(OpenAI DALL-E, ComfyUI, Automatic1111 等)在对话中直接作图。
- 代码执行 (Code Execution) — 直接在对话中运行代码块(默认在浏览器中运行 Pyodide,或连接 Jupyter 在服务器端执行)。
- 记忆 (Memory) — 让模型在跨越不同的对话时,依然能够记住关于您的偏好与事实。
对于系统没有内置的定制化功 能,非常推荐到 Open WebUI Community 官方社区网站 上浏览淘金。以下是部分已有的热门分类,以供参考:
- 可观测性与成本追踪:Langfuse, OpenLit, Portkey。将每一次对话的交互、Token 使用量和响应延迟无损记录到您自己的技术栈中。
- 智能家居与自动化:连接 Home Assistant 工具,让大模型能直接控制家中的智能设备、场景和自动化流水线。
- 学术科研:arXiv, PubMed, Semantic Scholar, Wolfram Alpha。提供带真实权威文献引用的结构化科研结果。
- 工单管理与协同沟通:Jira, Linear, GitHub Issues, Slack, Discord, Email 等。
- 数据库与 API 交互:针对您自有的数据库执行只读 SQL 查询,或直接调用您的内部 API 接口。
- 生活娱乐:天气查询、股票行情、加密货币、快递追踪、菜谱搜索等等。
工具会呈现在输入框的 + 菜单中。模型仅能看到并使用您为该次对话所启用了的工具。
Open WebUI Community 社区 托管了数以千计的由全球开发者贡献的实用插件。在您决定自己动手手写代码之前,不妨先去社区检索一下:按热度排序、按分类过滤,翻阅几页。绝大多数时候,早就有人已经帮您写好了您所需要的工具(或者其代码已经十分接近,您可以直接 Fork 过来微调)。
更多参考详情:
插件生态 (Plugins)
Open WebUI 开箱即提供了非常丰富的功能,但其真正的魅力在于强大的可扩展性。很多让人惊叹的高级演示功能(例如自动双语翻译、Token/成本费用精准监控、自定义响应后处理、特定云端服务商连接等),其实都是基于平台底层的插件 (Plugins) 架构实现的。理解插件生态,是新用户快速玩转平台的终极钥匙。
插件主要分为两大核心家族:Tools (工具) 和 Functions (函数)。
Tools 赋予模型在生成回答时可以主动调用的外部能力:
| 来源分类 | 核心作用 | 典型 示例 |
|---|---|---|
| 内置系统工具 | Open WebUI 自带的系统工具,只需在管理员面板启用即可,无需安装 | 网页搜索 (Web Search)、代码解释器 (Code Interpreter)、图像生成 (Image Generation)、记忆 (Memory)、便签 (Notes)、知识库检索 |
| 自定义插件 | ||
| ↳ 自定义 Tool | 您自己手写或从 社区官方网站 一键安装的 Python 代码。在 工作区 (Workspace) > 工具 (Tools) 中进行管理 | Langfuse / OpenLit 链路追踪监控、连接 Home Assistant 智能家居、arXiv / PubMed 学术检索、Wolfram Alpha 复杂计算、Jira / Linear 工单系统、执行 SQL 查询等 |
| ↳ 外部工具服务器 | 通过 MCP (Model Context Protocol) 或 OpenAPI 接入的外部微服务。在 管理员面板 > 设置 > 工具 中进行连接 | 您自有的微服务接口、第三方 API、现有的 MCP 服务器 |
Functions 则运行在平台系统级层面,可以直接干预并改变 Open WebUI 自身的交互行为。它包含三种形态:
| 类型 | 核心作用 | 典型示例 |
|---|---|---|
| Pipes (管道) | 在模型选择下拉菜单中注册一个全新的虚拟“模型”,其背后由自定义的 Python 代码驱动 | 根据提示词复杂度智能选择路由(简单句用便宜模型,复杂句路由给昂贵旗舰模型)、多步骤智能 Agent 环路、接入自定义 LLM 后端 |
| Filters (过滤器) | 在每一次请求发送给大模型前、以及大模型响应返回给用户时进行自动过滤拦截(对每一次对话轮次静默生效) | 自动剔除上下文过长历史、敏感信息脱敏(PII Scrubbing)、Token 数量与 API 开销计量、Langfuse 链路观测、输出格式强制重写 |
| Actions (动作按钮) | 在每一条消息的正下方新增一个自定义的动作按钮,供用户点击触发执行特定 Python 脚本 | “一键生成后续追问”、“一键翻译该条回答”、“一键置顶本条消息”、“一键保存至知识库” |
无论是 Tools 还是 Functions,您都可以非常方便地在 Open WebUI Community 社区网站 上一键预览和安装。您也可以直接在管理员面板里从零编写自己的插件代码。
如何安装插件
Open WebUI Community 社区网站 为 Tools 和 Functions 提供了一键安装目录。只需挑选您中意的插件,点击 "Get",将其代码复制并粘贴进您的 Open WebUI 管理员面板,开启它,并配置好其对应的 Valves (阀门,即该插件的配置 项) 即可。
当您脑海中冒出“要是 Open WebUI 能实现某个功能就好了”的想法时,通常早就有开发者通过插件实现了这一功能。社区里有数以千计的高质量插件,您需要的往往就在那里。即便没有百分之百匹配的,您也可以在管理员面板里直接一键 Fork 最接近的插件代码,通常只需微调个 20 来行代码就能完全契合您的专属诉求。
深入阅读参考: