技能
创建可重复使用的 SKILL.md 指令,供智能体手动、自动或在每一轮对话中调用。
Skills 是 LibreChat Agent 可重用的指令包。一个 Skill 以 SKILL.md 文件为核心:Frontmatter 用于描述何时应使用该 Skill,而 Markdown 正文则为 Agent 提供需要遵循的流程、规则、示例或参考信息。
Skills 对于可重复的工作非常有用,例如:
- 应用品牌或写作指南
- 遵循内部审查清单
- 运行标准研究工作流
- 启动专门的工具工作流
- 将可重用的脚本、引用和资源与指令文件打包在一起
启用 Skills
skills 代理功能默认处于启用状态。管理员可以将其从 agents 端点的功能列表中移除,以向用户隐藏 Skills。
角色权限还控制着谁可以使用、创建、共享以及公开共享 Skills。
部署技巧
管理员可以通过 DEPLOYMENT_SKILLS_DIR 从文件系统发布只读的 Skills。
该目录默认为项目根目录下的 ./skill。LibreChat 在启动时会加载部署的 Skills,并将其提供给启用了 Skills 功能的用户。
部署技能:
- 在 UI 中为只读
- 使用
deployment作为它们的来源 - 优先于同名的持久化 Skills
- 在添加、移除或更改文件后,需要重启 LibreChat
GitHub Skill Sync
管理员可以通过 librechat.yaml 中的 skillSync.github 从 GitHub 仓库镜像 Skills。
GitHub Skill Sync:
- 扫描配置的仓库路径以查找
SKILL.md - 在每个技能旁边导入捆绑文件
- 存储带有
source: "github"的镜像 Skills - 当上游仓库发生变更时,同步更新镜像的 Skills
- 移除在已配置的源中不再存在的镜像 Skills
- 支持定时、启动时以及手动管理员触发的运行
使用具有所选存储库的只读 Contents 和 Metadata 权限的 GitHub 细粒度个人访问令牌。有关所有字段、凭据选项、租户范围和管理员同步端点的信息,请参阅 Skill Sync Object Structure。
创建 Skill
从侧边栏打开 Skills。你可以直接在 LibreChat 中编写技能,或者上传包含 SKILL.md 的 .md、.zip 或 .skill 文件。
最小的 SKILL.md:
Frontmatter
| Key | Type | Description | Example |
|---|---|---|---|
| name | String | 稳定的 kebab-case 标识符。它必须以小写字母或数字开头,且只能包含小写字母、数字和连字符。 | name: brand-guidelines |
| description | String | 最重要的触发文本。描述模型应在何时使用该技能。 | description: Use when writing public-facing launch copy. |
| always-apply | Boolean | 当该技能处于激活状态时,自动将其预置到每一轮对话中。 | always-apply: true |
| user-invocable | Boolean | 设置为 false 以隐藏手动 `$` 调用的技能。默认值:true。 | user-invocable: false |
| disable-model-invocation | Boolean | 设置为 true 以从模型调用的技能目录中排除该技能。除非 `user-invocable` 为 false,否则仍允许手动调用。 | disable-model-invocation: true |
| allowed-tools | Array/List of Strings | 当手动或始终应用该技能时,将这些工具临时合并到代理的有效工具集中。 | allowed-tools: ["execute_code"] |
调用模式
Skills 可以通过以下三种方式到达 agent:
- 手动: 用户在聊天中输入
$并从弹窗中选择一个技能。 - Model-invoked:模型从注入的技能目录中选择一项技能并调用该技能工具。
- Always apply:当启用时,该技能会在每一轮对话中被预加载。
手动调用是明确的用户意图。只要 user-invocable 不为 false,它就可以使用在模型调用中通过 disable-model-invocation: true 隐藏的技能。
Agent Scope
在 Agent 使用目录之前,必须先启用 Skills。
- 如果持久化 Agent 上的
skills_enabled为 false 或未设置,则该 Agent 的技能将处于非活动状态。 - 如果
skills_enabled为 true 且未设置任何技能白名单,则智能体可以使用用户可见的完整活跃目录。 - 如果
skills_enabled为 true 且skills包含特定的技能 ID,则该智能体将仅限于使用该列表中的技能。
这允许管理员全局启用 Skills 功能,同时保持每个智能体可用的技能集保持专注。
活跃和共享的 Skills
用户可以切换技能的启用或禁用状态。拥有的技能默认为启用。共享技能将使用管理员配置的默认设置,直到用户对其进行覆盖。
未激活的技能将从以下内容中排除:
$气泡框- 模型调用的技能目录
- 始终应用预设 (Always-apply priming)
捆绑文件
上传的技能包可以包含除 SKILL.md 之外的文件,例如:
references/...scripts/...assets/...
后端会将这些文件与该技能一起存储。当技能处于激活状态且在作用域内时,智能体可以解析技能文件。
创作提示
保持 description 的具体性。它是模型调用技能时最强的信号。简短或模糊的描述会导致触发不足。
这篇指南怎么样?