Open WebUI 工具调用一文讲透:5 分钟让 LLM 长出能干活的「手」 📅 发布时间:2026/8/28 11:41:58 👁 浏览次数: Open WebUI 工具调用一文讲透5 分钟让 LLM 长出能干活的「手」【免费下载链接】open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)项目地址: https://gitcode.com/GitHub_Trending/op/open-webuiOpen WebUI 是一个自托管 AI 助手平台对接本地 Ollama 或任意 OpenAI 兼容 API全程跑在你自己的服务器上数据不出手。它解决的是一个很实际的痛点裸模型只能聊天而 Open WebUI 给它配了一套完整的工具调用体系——搜网页、读知识库、跑代码、写笔记、建自动化让对话框变成一个真正能动手的自托管 AI 助手。Open WebUI能做什么——能力全景速览模型接入一锅端本地 Ollama 和任意 OpenAI 兼容 APIvLLM、Groq、Mistral、OpenRouter 等都能接同一个窗口还能让多个模型同台对话本地 RAG 知识库支持 ChromaDB、PGVector、Qdrant 等 9 种向量数据库文档混合检索BM25 向量离线也能查️工具与插件体系内置搜网页、抓取 URL、生图、代码执行、长期记忆、笔记、日历等 40 工具还能通过 MCP 和 OpenAPI 接入外部工具服务器记忆与自动化模型跨对话记住关于你的事实也支持定时跑提示词Automations把 AI 排进日程细粒度权限RBAC 角色、用户分组、每个工具独立控制谁能用5 分钟跑通从零搭出第一次带工具的对话安装并启动pip 两条命令搞定需要 Python 3.11pip install open-webui open-webui serve想从源码跑也可以git clone https://gitcode.com/GitHub_Trending/op/open-webui后按仓库内说明安装方便改工具代码。指个模型过来环境变量OLLAMA_BASE_URL填 Ollama 地址或在管理面板填 OpenAI 兼容 API 的 URL。打开http://localhost:8080注册第一个管理员账号进 Tools 页面把内置工具如 Web Search启用并绑定到模型。直接提问「搜一下 Python 3.14 的新特性总结给我」——模型会自动调起搜索工具并返回带来源的总结全程不用写一行代码。拆解核心工具注册表 与 智能匹配管线工具注册表一份 Python 文件就是一个插件输入是一份 Python 源码加描述处理是加载与缓存输出是模型可调用的函数。每个工具在数据库里就是一张记录结构非常直白class Tool(Base): __tablename__ tool id Column(String, primary_keyTrue) name Column(Text) # 工具名称 content Column(Text) # Python 源码 specs Column(JSONField) # 函数规格 valves Column(JSONField) # 运行时参数源码和数据模型见 backend/open_webui/models/tools.py。也就是说「注册一个工具」本质是存了一份 Python 文件valves留给管理员在界面上调参specs则是给模型看的函数说明书。智能匹配不猜关键词让模型「看说明书」自己决定Open WebUI 没有单独写一套关键词匹配算法会话时把该用户、该模型有权限的所有工具specs转成函数参数交给模型靠模型原生的 function calling 决定调哪个工具、传什么参数。这是个明确的设计取舍——好处是省掉一个独立的 NLU 组件匹配质量随模型升级自动变强代价是模型读到的描述函数 docstring必须写得清楚否则它根本不会选这个工具。所以内置工具在 backend/open_webui/tools/builtin.py 里全是普通 async 函数docstring 就是模型看到的唯一「广告」。真正执行前backend/open_webui/utils/tools.py 里的get_tools会先过权限校验再按内容缓存加载代码——内容没变就不重新编译最后注入 valves 参数才放行执行。进阶玩法自定义工具 3 步配置与权限要点写函数在 Tools 页面贴一个带 docstring 的函数比如async def query_stock(symbol: str)前端通过 src/lib/apis/tools/ 的接口提交给后端。自动生成规格系统从函数签名和 docstring 推导 OpenAPI 风格 spec你补上名称和描述即可发布。配置访问在访问控制里指定这个工具对哪些用户/分组可见把 API Key 之类的敏感值放进valves。安全上抓两个关键点就够access_grants决定谁能看到工具加载和执行两层都会再查一次valves是加密存储的模型只能拿到解析后的值拿不到密钥原文。落地场景Open WebUI 在日常中怎么用场景一个人知识库问答用户输入「我上传的入职手册里报销流程是怎么走的」 系统行为模型自动调用search_knowledge_files等内置检索工具从你上传的文档中取出相关片段作为上下文。 输出结果逐步带出处地回答还能继续追问细节全程数据不出内网。场景二脚本生成加验证用户输入「写个脚本把项目里所有 md 文件的旧域名批量替换掉然后跑一下验证」 系统行为模型调用代码执行工具生成脚本并运行看到报错输出后自动修正再跑。 输出结果你得到一个已验证可运行的脚本和实际执行结果不用切去本地终端复制粘贴。性能与扩展工具模块按源码内容做缓存重复调用不重新编译会话状态走 Redis WebSocket可以水平扩到多实例。工具生态本身也开放MCP 和 OpenAPI tool server 协议让你不改一行代码就能接入现成的第三方工具服务。常见问题FAQQ能完全离线跑吗A能。配合本地 Ollama模型推理、知识库、文件存储全部在本机。Q加工具要自己写 OpenAPI spec 吗A不用。写一个带 docstring 的 Python 函数系统自动从签名生成规格。Q能限制某个模型只能用部分工具吗A可以。工具在模型和用户层面都可以绑定执行前还有一层权限复查。QAPI Key 这种密钥放哪A放进工具valves加密存储不会暴露给模型。Q小团队单机部署够吗A挂个数据卷就行高并发时加 Redis 做多实例横向扩展。Open WebUI 工具调用体系做的其实就一件事给模型配了一套「有权限边界的手脚」把只会聊天的界面变成能干活的自托管助手。无论是个人笔记管理还是团队知识库问答这套「注册表 function calling」的架构都能按你的需求往上长东西等模型的多工具协同再强一点这层权限与注册机制大概率会直接变成 AI 代理时代的安全带。【免费下载链接】open-webuiUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)项目地址: https://gitcode.com/GitHub_Trending/op/open-webui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考