跳到主要内容

🧩 Skills 技能

通过纯文本指令,教导您的 AI 如何完成一项任务。

技能(Skills)是可重用的、基于 Markdown 的指令集,您可以将其绑定到模型上,也可以在聊天对话中即时进行调用。不同于需要编写 Python 可执行脚本的工具(Tools),技能(Skills)是纯文本形式的指令库:例如代码审查指南、特定写作风格规范、故障排除排查手册以及数据分析工作流。模型在收到后便会遵循它们开展工作。

在聊天中通过键入 $ 提及某项技能,即可在当前消息中即时注入其完整内容。或者,您可以将多项技能直接绑定到某个模型 preset 上,从而使其随时处于就绪状态,并通过按需加载的方式来保证上下文窗口的最佳能效。


为什么选择 Skills?

无需编写代码的指令

仅需在 Markdown 中编写您的业务指南即可。不需要编写 Python、不需要进行 API 调用、也不需要执行任何复杂的部署。只要您能撰写文档,您就拥有创建技能的能力。

按需加载上下文

绑定到模型的技能采用延迟加载(lazy loading)机制。默认情况下,只会在系统提示词中注入一份轻量级的清单(包含技能名称与描述)。只有当模型分析确定需要使用这些指令时,它才会通过调用内置的 view_skill 工具来实时加载其完整指令。

可跨模型复用

只需创建一份“代码审查指南”技能,便能直接将其附加到所有相关的编程模型上。未来仅需在这一个地方更新技能,所有的模型都将自动应用最新版的审查标准。

可与工具随心组合

可以将技能与 Open Terminal 或任何外部工具服务器完美结合。技能负责教导模型如何使用这些工具(例如如何检查退出状态码、如何处理报错、针对长耗时命令如何启用流式输出等),而工具则负责提供真实的操作能力


核心功能

📝 Markdown 内容格式使用纯 Markdown 语法撰写指令
聊天中通过 $ 提及键入 $ 在聊天输入框中,即可即时将技能的完整内容注入到当前会话中
🤖 绑定到模型将技能绑定到模型上,使其随时随地开箱可用
📦 延迟加载 (Lazy Loading)绑定到模型的技能默认仅注入清单;只有在确有需要时才按需加载完整内容
📥 导入/导出支持导入带有 YAML Frontmatter 的 .md 文件;支持导出为 JSON
🔒 访问控制默认私有,支持精细共享给特定的个人用户或用户组
🔀 激活/未激活开关无需删除即可快速将某个技能暂时搁置停用

技能的工作原理

用户选择的技能 ($ 提及触发)

在聊天输入栏中键入 $,便会弹出技能选择器。选中某项技能后,其完整指令内容会直接被注入到当前的系统提示词中。模型将拥有对整篇业务规范的即时且完全的阅读能力。

绑定到模型的技能

绑定到模型的技能采用延迟加载机制:

  1. 注入清单:仅将技能名称与描述追加到系统提示词中。
  2. 按需加载:模型会同时获得一个内置的 view_skill 工具。当模型在交互过程中研判自己需要参考某项技能的完整内容时,它将自主调用 view_skill(skill_name) 来将其读取出来。

这就意味着,您可以将十几种技能同时绑定到一个模型上,而不需要担心它们会在平时吞噬和挤占宝贵的上下文窗口空间。


创建技能

导航至 Workspace > Skills,然后点击 + New Skill(新建技能)。

字段描述
Name易于阅读的友好显示名称(例如 “代码审查指南”)
Skill ID唯一的短路径(Slug),基于名称自动生成。可在创建时自定义修改,创建完成后只读
Description展示在轻量级清单中的简短摘要。对于绑定模型的技能,模型会基于它来决定是否调用 view_skill 工具
Content使用 Markdown 编写的完整技能指令库

从 Markdown 文件导入

点击 Import 并选择一个 .md 文件。如果该文件最开始包含了带有 name 和/或 description 字段的 YAML Frontmatter,这些值会被自动识别并填充到表单中:

---
name: code-review-guidelines
description: 详尽的代码审查指南步骤
---

# 代码审查指南

1. 检查代码正确性...

将技能绑定到模型

  1. 转到 Workspace > Models
  2. 编辑需要绑定的模型,向下滑动到 Skills 章节。
  3. 勾选您希望该模型在运行时随时能够参考的所有技能。
  4. 点击 Save(保存)。

所选技能的清单会自动与模型结合,模型将在交互中根据需要调用 view_skill 延迟加载其完整文本。


技能管理

在技能工作区列表中,点击任何项右侧的省略号菜单(...):

操作描述
Edit修改内容、名称或描述
Clone克隆该技能(副本的 ID 会自动加上 -clone 后缀)
Export下载为 JSON 格式配置文件
Delete永久删除该技能(配合 Shift + 点击可以跳过二次确认直接快速删除)

批量导出:点击技能页面顶部的 Export 按钮,可以一键将您有权访问的所有技能打包导出为一个 JSON 文件。

激活/未激活开关:被设置为未激活的技能会被完全排除在清单之外,即使之前已被绑定或在聊天中输入 $ 也将无法被模型加载参考。


访问控制

技能与平台上的其他工作区资源一样,均遵循统一的 角色访问控制(RBAC) 系统:

  • 默认私有:新创建的技能默认仅对创建者本人可见、可用和可编辑。
  • 共享给个人或用户组:通过点击 Access 按钮,可以对特定的用户或用户组授予 read(读取)或 write(写入)权限。
  • 只读访问:获得只读访问权限的用户只能参考该技能,但无权编辑,其编辑器界面会显示 “Read Only” 徽章。
被绑定的技能依然受制于用户的访问权限

将某项技能绑定到模型上并不能绕过系统的访问控制机制。当用户与模型对话时,Open WebUI 会严格检查该用户是否拥有该模型下每一项绑定技能的 read(读取)权限。如果用户无权访问某项绑定的技能,系统会将其静默排除。

例如:管理员创建了一个只有自己可见的私有技能,并将其绑定到了全员共享的模型上。普通用户在使用该模型聊天时,将无法享受该技能的好处,因为他们在权限校验中被默默排除在外了。

解决方案:确保需要使用该模型技能的所有用户,同时也已被授予了对各单项技能的 read 权限(可以通过精细授权、赋予用户组权限、或将技能设为公开可见来解决)。

必需的权限配置

权限控制的内容
Workspace > Skills Access访问技能工作区以及创建/管理技能的权限
Sharing > Share Skills与特定的个人或用户组共享技能的权限
Sharing > Public Skills将技能发布并设为全员公开可见/可用的权限

关于详细的配置说明,请参阅 Permissions 文档


使用场景

代码审查标准

将您团队的审查 Checklist 写成一个技能:例如命名规范、常见错误处理模式、测试覆盖率底线等。将其绑定到研发模型上,确保每一次生成的审查建议都对标相同的严格质量水平。

撰写风格指南

在技能中规范语气、排版格式要求和专业名词拼写。将其绑定到文案创作模型上。这样生成的每一篇草稿都能完美传递您专属的品牌调性。

故障排查手册

将解决常见问题的故障排查流程写成技能:“优先排查日志、确认配置文件、测试网络连通性、在 X 条件下进行问题上报。” 使得模型能遵循如同资深系统架构师般的专业诊断步骤。

工具使用操作指南

将技能与 Open Terminal 相结合,教导模型如何更好地在终端开展工作。“始终要检查退出状态码。在 shell 脚本中使用 set -e。对于执行超过 10 秒的命令,务必采用流式输出。”


局限性

仅限纯文本

技能本质上是操作规程指令,而不是可以直接在后台运行的物理代码。对于任何需要执行实际计算、发起网络 API 调用、或需要深入操作系统层面的动作,请使用工具(Tools)替代。

$ 提及方式下的上下文窗口

当通过键入 $ 在对话中提及某项技能时,技能的完整内容会被全量注入到系统提示词中。如果技能极为冗长,且所绑定的模型上下文窗口较小,可能会迅速挤占并磨灭掉较早的会话历史记录。

延迟加载(Lazy Loading)需要函数调用支持

绑定到模型的延迟加载技能高度依赖内置的 view_skill 工具,这需要在系统中开启了 原生函数调用(Native Function Calling) 模式。如果未启用函数调用模式,模型仅会收到一份干瘪的清单,而无法实际加载和阅读其内部的完整业务指令。

This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.