Struttura dell'oggetto Skill Sync
Panoramica
L'oggetto skillSync consente agli amministratori di replicare le Skills da fonti esterne. Nella versione v1.3.13, GitHub è il provider supportato.
GitHub Skill Sync legge i file SKILL.md e i relativi file in bundle dai percorsi del repository configurati, li archivia come Skill con source: "github" e mantiene le righe rispecchiate allineate con il repository upstream nelle sincronizzazioni successive.
Esempio
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-idCredenziali
Usa token oppure credentialKey per ogni sorgente, non entrambi. token deve essere un riferimento a una variabile d'ambiente come ${GITHUB_SKILLS_TOKEN}. Usa un personal access token GitHub "fine-grained" limitato al repository selezionato con permessi di sola lettura per Contents e Metadata.
Campi di primo livello
skillSync.github
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | Abilita o disabilita GitHub Skill Sync. | enabled: true |
| github.intervalMinutes | Number | Frequenza di esecuzione della sincronizzazione programmata delle Skill di GitHub. Deve essere compresa tra 5 e 35791 minuti. | intervalMinutes: 60 |
| github.runOnStartup | Boolean | Esegue GitHub Skill Sync all'avvio del server. | runOnStartup: true |
| github.sources | Array of Objects | Repository GitHub e percorsi da scansionare per le Skills. Obbligatorio quando GitHub Skill Sync è abilitato. |
Predefiniti:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Campi Sorgente
Ogni voce github.sources configura una sorgente di repository.
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | ID sorgente univoco stabile. Deve iniziare con una lettera o una cifra e contenere solo lettere, cifre, trattini bassi o trattini. | id: librechat-skills |
| owner | String | Nome dell'organizzazione o dell'utente GitHub. | owner: your-org |
| repo | String | Nome del repository GitHub. | repo: your-skills-repo |
| ref | String | Git ref, branch, tag o commit da leggere. Il valore predefinito è `main`. | ref: main |
| paths | Array of Strings | Percorsi del repository da scansionare. Usa `.` per scansionare dalla root del repository. | paths: ["skills"] |
| skillDiscoveryDepth | Number | Profondità della directory sotto ogni percorso configurato per la scansione di `SKILL.md`. Il valore predefinito è `2`; il massimo è `10`. | skillDiscoveryDepth: 2 |
| token | String | Riferimento alla variabile d'ambiente contenente un token GitHub. Si esclude a vicenda con `credentialKey`. | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | Chiave delle credenziali GitHub memorizzata, gestita tramite gli endpoint delle credenziali di Skill Sync dell'amministratore. Mutuamente esclusiva con `token`. | credentialKey: production-skills |
| tenantId | String | ID tenant facoltativo che possiede le Skills replicate quando l'isolamento del tenant è abilitato. | tenantId: tenant-a |
Identità della sorgente
Il campo id fa parte dell'identità del mirror. Mantienilo stabile. Reindirizzare una sorgente verso un repository rinominato o un nuovo ref mantiene gli Skill mirrorati collegati allo stesso id sorgente, mentre modificare l'id sorgente crea un nuovo mirror.
Quando tenantId è impostato, le operazioni di lettura e scrittura della sincronizzazione vengono eseguite all'interno del contesto di isolamento di quel tenant. Considera tenantId come immutabile per un id di origine: modificarlo, aggiungerlo o rimuoverlo in seguito lascerà le Skill precedentemente replicate nel vecchio tenant.
Comportamento di sincronizzazione
Sincronizzazione competenze GitHub:
- Rileva i file
SKILL.mdsotto ogni percorso configurato. - Importa il corpo, il frontmatter e i file in bundle di
SKILL.md. - Memorizza i metadati della sorgente come source id, owner, repo, ref, skill path, commit SHA e blob SHA.
- Aggiorna le Skills replicate quando il file upstream viene modificato.
- Elimina le Skills e i file rispecchiati che sono stati rimossi dalla sorgente configurata.
- Utilizza un blocco di sincronizzazione in modo che venga eseguita solo una sincronizzazione GitHub alla volta.
Endpoint di amministrazione
L'API di amministrazione espone lo stato della sincronizzazione delle competenze GitHub, le esecuzioni manuali e la gestione delle credenziali archiviate:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | Restituisce lo stato di abilitazione, le impostazioni della pianificazione, lo stato della sorgente, la presenza delle credenziali e i conteggi delle sincronizzazioni recenti. | |
| POST /api/admin/skills/sync/run | Endpoint | Avvia un'esecuzione di sincronizzazione manuale quando il chiamante dispone della funzionalità admin Skills richiesta. | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Memorizza o ruota un token GitHub per una chiave di credenziali. | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Elimina un token GitHub memorizzato per una chiave di credenziale. |
Le letture di stato richiedono l'accesso come amministratore e l'autorizzazione di lettura Skills. Le esecuzioni manuali e le scritture di credenziali richiedono l'autorizzazione di gestione Skills a livello di piattaforma.
Com’è questa guida?