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

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

Credenziali

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

KeyTypeDescriptionExample
github.enabledBooleanAbilita o disabilita GitHub Skill Sync.enabled: true
github.intervalMinutesNumberFrequenza di esecuzione della sincronizzazione programmata delle Skill di GitHub. Deve essere compresa tra 5 e 35791 minuti.intervalMinutes: 60
github.runOnStartupBooleanEsegue GitHub Skill Sync all'avvio del server.runOnStartup: true
github.sourcesArray of ObjectsRepository GitHub e percorsi da scansionare per le Skills. Obbligatorio quando GitHub Skill Sync è abilitato.

Predefiniti:

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

Campi Sorgente

Ogni voce github.sources configura una sorgente di repository.

KeyTypeDescriptionExample
idStringID sorgente univoco stabile. Deve iniziare con una lettera o una cifra e contenere solo lettere, cifre, trattini bassi o trattini.id: librechat-skills
ownerStringNome dell'organizzazione o dell'utente GitHub.owner: your-org
repoStringNome del repository GitHub.repo: your-skills-repo
refStringGit ref, branch, tag o commit da leggere. Il valore predefinito è `main`.ref: main
pathsArray of StringsPercorsi del repository da scansionare. Usa `.` per scansionare dalla root del repository.paths: ["skills"]
skillDiscoveryDepthNumberProfondità della directory sotto ogni percorso configurato per la scansione di `SKILL.md`. Il valore predefinito è `2`; il massimo è `10`.skillDiscoveryDepth: 2
tokenStringRiferimento alla variabile d'ambiente contenente un token GitHub. Si esclude a vicenda con `credentialKey`.token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyStringChiave delle credenziali GitHub memorizzata, gestita tramite gli endpoint delle credenziali di Skill Sync dell'amministratore. Mutuamente esclusiva con `token`.credentialKey: production-skills
tenantIdStringID 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.md sotto 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:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpointRestituisce 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/runEndpointAvvia un'esecuzione di sincronizzazione manuale quando il chiamante dispone della funzionalità admin Skills richiesta.
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpointMemorizza o ruota un token GitHub per una chiave di credenziali.
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpointElimina 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?