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

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-id

Identifiants

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

KeyTypeDescriptionExample
github.enabledBooleanActive ou désactive la synchronisation des compétences GitHub.enabled: true
github.intervalMinutesNumberFréquence d'exécution de la synchronisation planifiée des compétences GitHub. Doit être comprise entre 5 et 35791 minutes.intervalMinutes: 60
github.runOnStartupBooleanExécute GitHub Skill Sync au démarrage du serveur.runOnStartup: true
github.sourcesArray of ObjectsDépôts GitHub et chemins à analyser pour les Skills. Requis lorsque la synchronisation des Skills GitHub est activée.

Par défaut :

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

Champs sources

Chaque entrée github.sources configure une source de dépôt.

KeyTypeDescriptionExample
idStringIdentifiant 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
ownerStringNom d'utilisateur ou organisation GitHub.owner: your-org
repoStringNom du dépôt GitHub.repo: your-skills-repo
refStringRéférence Git, branche, tag ou commit à lire. Par défaut sur `main`.ref: main
pathsArray of StringsChemins du dépôt à analyser. Utilisez `.` pour analyser à partir de la racine du dépôt.paths: ["skills"]
skillDiscoveryDepthNumberProfondeur de répertoire sous chaque chemin configuré pour rechercher `SKILL.md`. La valeur par défaut est `2` ; le maximum est `10`.skillDiscoveryDepth: 2
tokenStringRéférence de variable d'environnement contenant un jeton GitHub. S'exclut mutuellement avec `credentialKey`.token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyStringClé 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
tenantIdStringIdentifiant 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.md sous 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 :

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpointRenvoie 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/runEndpointDémarre une exécution de synchronisation manuelle lorsque l'appelant dispose de la capacité Skills d'administration requise.
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpointStocke ou fait pivoter un jeton GitHub pour une clé d'identification.
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpointSupprime 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 ?