Skill Sync 对象结构
概述
skillSync 对象允许管理员从外部源镜像 Skills。在 v1.3.13 版本中,GitHub 是受支持的提供商。
GitHub Skill Sync 会从配置的仓库路径中读取 SKILL.md 文件及其捆绑文件,将它们存储为 source: "github" 的 Skills,并在后续同步时保持镜像行与上游仓库同步。
示例
skillSync:
github:
enabled: true
intervalMinutes: 60
runOnStartup: true
sources:
- id: librechat-skills
owner: your-org
repo: your-skills-repo
ref: main
paths:
- skills
skillDiscoveryDepth: 2
token: '${GITHUB_SKILLS_TOKEN}'
# credentialKey: production-skills
# tenantId: your-tenant-id凭据
每个源请使用 token 或 credentialKey 中的一个,不要同时使用。token 必须是环境变量引用,例如 ${GITHUB_SKILLS_TOKEN}。请使用针对所选仓库设置的 GitHub 精细化个人访问令牌(fine-grained personal access token),并授予其只读的 Contents 和 Metadata 权限。
顶层字段
skillSync.github
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | 启用或禁用 GitHub Skill Sync。 | enabled: true |
| github.intervalMinutes | Number | GitHub Skill Sync 的定时运行频率。必须介于 5 到 35791 分钟之间。 | intervalMinutes: 60 |
| github.runOnStartup | Boolean | 在服务器启动时运行 GitHub Skill Sync。 | runOnStartup: true |
| github.sources | Array of Objects | 用于扫描 Skills 的 GitHub 仓库和路径。当启用 GitHub Skill Sync 时为必填项。 |
默认值:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Source Fields
每个 github.sources 条目配置一个仓库源。
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | 稳定的唯一源 ID。必须以字母或数字开头,且只能包含字母、数字、下划线或连字符。 | id: librechat-skills |
| owner | String | GitHub 组织或用户名。 | owner: your-org |
| repo | String | GitHub 仓库名称。 | repo: your-skills-repo |
| ref | String | 要读取的 Git 引用、分支、标签或提交。默认为 `main`。 | ref: main |
| paths | Array of Strings | 要扫描的仓库路径。使用 `.` 从仓库根目录开始扫描。 | paths: ["skills"] |
| skillDiscoveryDepth | Number | 扫描 `SKILL.md` 时,每个已配置路径下的目录深度。默认为 `2`;最大值为 `10`。 | skillDiscoveryDepth: 2 |
| token | String | 包含 GitHub token 的环境变量引用。与 `credentialKey` 互斥。 | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | 通过管理员 Skill Sync 凭据端点管理的已存储 GitHub 凭据密钥。与 `token` 互斥。 | credentialKey: production-skills |
| tenantId | String | 当启用租户隔离时,用于拥有镜像 Skills 的可选租户 ID。 | tenantId: tenant-a |
源身份
id 字段是镜像标识的一部分。请保持其稳定。将源指向重命名后的仓库或新的 ref 会使镜像的 Skills 继续链接到同一个源 id,而更改源 id 则会创建一个新的镜像。
当设置了 tenantId 时,同步读写操作将在该租户的隔离上下文中运行。请将 tenantId 视为特定源 ID 的不可变属性:后续对其进行更改、添加或移除,会导致之前镜像的 Skills 保留在旧租户中。
同步行为
GitHub Skill Sync:
- 发现每个配置路径下的
SKILL.md文件。 - 导入
SKILL.md正文、frontmatter 和捆绑文件。 - 存储源元数据,例如 source id、owner、repo、ref、skill path、commit SHA 和 blob SHA。
- 当上游文件发生更改时,更新镜像的 Skills。
- 删除已从配置源中移除的镜像 Skills 和文件。
- 使用同步锁,确保同一时间只有一个 GitHub 同步任务在运行。
管理员端点 (Admin Endpoints)
Admin API 公开 GitHub Skill Sync 状态、手动运行和存储的凭据管理:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | 返回启用状态、计划设置、源状态、凭据是否存在以及最近的同步计数。 | |
| POST /api/admin/skills/sync/run | Endpoint | 当调用者拥有所需的 admin Skills 权限时,启动一次手动同步运行。 | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | 存储或轮换用于凭据密钥的 GitHub 令牌。 | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | 删除凭据密钥对应的已存储 GitHub 令牌。 |
状态读取需要管理员访问权限和 Skills 读取权限。手动运行和凭据写入需要平台级的 Skills 管理权限。
这篇指南怎么样?