Structure de l'objet Skill Sync
Vue d'ensemble
L'objet skillSync permet aux administrateurs de refléter des Skills provenant de sources externes. Dans la v1.3.13, GitHub est le fournisseur pris en charge.
GitHub Skill Sync lit les fichiers SKILL.md et leurs fichiers groupés à partir des chemins de dépôt configurés, les stocke en tant que Skills avec source: "github", et maintient les lignes mises en miroir alignées avec le dépôt amont lors des synchronisations ultérieures.
Exemple
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-idIdentifiants
Utilisez soit token, soit credentialKey pour chaque source, mais pas les deux. token doit être une référence de variable d'environnement telle que ${GITHUB_SKILLS_TOKEN}. Utilisez un jeton d'accès personnel GitHub à grain fin limité au dépôt sélectionné avec des autorisations de lecture seule pour Contents et Metadata.
Champs de haut niveau
skillSync.github
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | Active ou désactive la synchronisation des compétences GitHub. | enabled: true |
| github.intervalMinutes | Number | Fréquence d'exécution de la synchronisation planifiée des compétences GitHub. Doit être comprise entre 5 et 35791 minutes. | intervalMinutes: 60 |
| github.runOnStartup | Boolean | Exécute GitHub Skill Sync au démarrage du serveur. | runOnStartup: true |
| github.sources | Array of Objects | Dépôts GitHub et chemins à analyser pour les Skills. Requis lorsque la synchronisation des Skills GitHub est activée. |
Par défaut :
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Champs sources
Chaque entrée github.sources configure une source de dépôt.
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | Identifiant source unique et stable. Doit commencer par une lettre ou un chiffre et ne contenir que des lettres, des chiffres, des underscores ou des tirets. | id: librechat-skills |
| owner | String | Nom d'utilisateur ou organisation GitHub. | owner: your-org |
| repo | String | Nom du dépôt GitHub. | repo: your-skills-repo |
| ref | String | Référence Git, branche, tag ou commit à lire. Par défaut sur `main`. | ref: main |
| paths | Array of Strings | Chemins du dépôt à analyser. Utilisez `.` pour analyser à partir de la racine du dépôt. | paths: ["skills"] |
| skillDiscoveryDepth | Number | Profondeur de répertoire sous chaque chemin configuré pour rechercher `SKILL.md`. La valeur par défaut est `2` ; le maximum est `10`. | skillDiscoveryDepth: 2 |
| token | String | Référence de variable d'environnement contenant un jeton GitHub. S'exclut mutuellement avec `credentialKey`. | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | Clé d'identification GitHub stockée, gérée via les endpoints d'identification Skill Sync de l'admin. S'exclut mutuellement avec `token`. | credentialKey: production-skills |
| tenantId | String | Identifiant de tenant optionnel qui possède les Skills mis en miroir lorsque l'isolation des tenants est activée. | tenantId: tenant-a |
Identité de la source
The id field is part of the mirror identity. Keep it stable. Repointing a source to a renamed repository or a new ref keeps mirrored Skills linked to the same source id, while changing the source id creates a new mirror.
Lorsque tenantId est défini, les lectures et écritures de synchronisation s'exécutent dans le contexte d'isolation de ce tenant. Considérez tenantId comme immuable pour un identifiant source : le modifier, l'ajouter ou le supprimer ultérieurement laisse les Skills précédemment mis en miroir dans l'ancien tenant.
Comportement de synchronisation
Synchronisation des compétences GitHub :
- Découvre les fichiers
SKILL.mdsous chaque chemin configuré. - Importe le corps, le frontmatter et les fichiers groupés de
SKILL.md. - Stocke les métadonnées de la source telles que source id, owner, repo, ref, skill path, commit SHA et blob SHA.
- Met à jour les Skills en miroir lorsque le fichier amont est modifié.
- Supprime les Skills et les fichiers mis en miroir qui ont été retirés de la source configurée.
- Utilise un verrou de synchronisation afin qu'une seule exécution de synchronisation GitHub ne puisse se dérouler à la fois.
Endpoints d'administration
L'API d'administration expose le statut de la synchronisation des compétences GitHub, les exécutions manuelles et la gestion des identifiants stockés :
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | Renvoie l'état activé, les paramètres de planification, le statut de la source, la présence d'identifiants et les nombres de synchronisations récentes. | |
| POST /api/admin/skills/sync/run | Endpoint | Démarre une exécution de synchronisation manuelle lorsque l'appelant dispose de la capacité Skills d'administration requise. | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Stocke ou fait pivoter un jeton GitHub pour une clé d'identification. | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Supprime un jeton GitHub stocké pour une clé d'identification. |
La lecture du statut nécessite un accès administrateur et l'autorisation de lecture Skills. Les exécutions manuelles et l'écriture d'identifiants nécessitent une autorisation de gestion Skills au niveau de la plateforme.
Que pensez-vous de ce guide ?