Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

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

凭据

每个源请使用 tokencredentialKey 中的一个,不要同时使用。token 必须是环境变量引用,例如 ${GITHUB_SKILLS_TOKEN}。请使用针对所选仓库设置的 GitHub 精细化个人访问令牌(fine-grained personal access token),并授予其只读的 Contents 和 Metadata 权限。

顶层字段

skillSync.github

KeyTypeDescriptionExample
github.enabledBoolean启用或禁用 GitHub Skill Sync。enabled: true
github.intervalMinutesNumberGitHub Skill Sync 的定时运行频率。必须介于 5 到 35791 分钟之间。intervalMinutes: 60
github.runOnStartupBoolean在服务器启动时运行 GitHub Skill Sync。runOnStartup: true
github.sourcesArray of Objects用于扫描 Skills 的 GitHub 仓库和路径。当启用 GitHub Skill Sync 时为必填项。

默认值:

  • enabled: false
  • intervalMinutes: 60
  • runOnStartup: false
  • sources: []

Source Fields

每个 github.sources 条目配置一个仓库源。

KeyTypeDescriptionExample
idString稳定的唯一源 ID。必须以字母或数字开头,且只能包含字母、数字、下划线或连字符。id: librechat-skills
ownerStringGitHub 组织或用户名。owner: your-org
repoStringGitHub 仓库名称。repo: your-skills-repo
refString要读取的 Git 引用、分支、标签或提交。默认为 `main`。ref: main
pathsArray of Strings要扫描的仓库路径。使用 `.` 从仓库根目录开始扫描。paths: ["skills"]
skillDiscoveryDepthNumber扫描 `SKILL.md` 时,每个已配置路径下的目录深度。默认为 `2`;最大值为 `10`。skillDiscoveryDepth: 2
tokenString包含 GitHub token 的环境变量引用。与 `credentialKey` 互斥。token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyString通过管理员 Skill Sync 凭据端点管理的已存储 GitHub 凭据密钥。与 `token` 互斥。credentialKey: production-skills
tenantIdString当启用租户隔离时,用于拥有镜像 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 状态、手动运行和存储的凭据管理:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpoint返回启用状态、计划设置、源状态、凭据是否存在以及最近的同步计数。
POST /api/admin/skills/sync/runEndpoint当调用者拥有所需的 admin Skills 权限时,启动一次手动同步运行。
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpoint存储或轮换用于凭据密钥的 GitHub 令牌。
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpoint删除凭据密钥对应的已存储 GitHub 令牌。

状态读取需要管理员访问权限和 Skills 读取权限。手动运行和凭据写入需要平台级的 Skills 管理权限。

这篇指南怎么样?