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

Struktur des Skill Sync-Objekts

Übersicht

Das skillSync-Objekt ermöglicht es Administratoren, Skills aus externen Quellen zu spiegeln. In v1.3.13 ist GitHub der unterstützte Anbieter.

GitHub Skill Sync liest SKILL.md-Dateien und die dazugehörigen gebündelten Dateien aus konfigurierten Repository-Pfaden, speichert sie als Skills mit source: "github" und hält gespiegelte Zeilen bei späteren Synchronisierungen mit dem Upstream-Repository synchron.

Beispiel

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

Anmeldedaten

Verwenden Sie für jede Quelle entweder token oder credentialKey, nicht beides. token muss ein Verweis auf eine Umgebungsvariable sein, wie z. B. ${GITHUB_SKILLS_TOKEN}. Verwenden Sie ein fein abgestimmtes persönliches Zugriffstoken (fine-grained personal access token) von GitHub, das auf das ausgewählte Repository beschränkt ist und über schreibgeschützte Berechtigungen für Inhalte (Contents) und Metadaten (Metadata) verfügt.

Top-Level Fields

skillSync.github

KeyTypeDescriptionExample
github.enabledBooleanAktiviert oder deaktiviert GitHub Skill Sync.enabled: true
github.intervalMinutesNumberWie oft der geplante GitHub Skill Sync ausgeführt wird. Muss zwischen 5 und 35791 Minuten liegen.intervalMinutes: 60
github.runOnStartupBooleanFührt GitHub Skill Sync beim Starten des Servers aus.runOnStartup: true
github.sourcesArray of ObjectsGitHub-Repositories und Pfade, die nach Skills durchsucht werden sollen. Erforderlich, wenn GitHub Skill Sync aktiviert ist.

Standardwerte:

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

Quellfelder

Jeder github.sources-Eintrag konfiguriert eine Repository-Quelle.

KeyTypeDescriptionExample
idStringStabile, eindeutige Quell-ID. Muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur Buchstaben, Ziffern, Unterstriche oder Bindestriche enthalten.id: librechat-skills
ownerStringGitHub-Organisation oder Benutzername.owner: your-org
repoStringName des GitHub-Repositorys.repo: your-skills-repo
refStringGit-Referenz, Branch, Tag oder Commit zum Lesen. Standardmäßig `main`.ref: main
pathsArray of StringsZu scannende Repository-Pfade. Verwenden Sie `.`, um vom Repository-Stammverzeichnis aus zu scannen.paths: ["skills"]
skillDiscoveryDepthNumberVerzeichnistiefe unterhalb jedes konfigurierten Pfads, um nach `SKILL.md` zu suchen. Standardwert ist `2`; das Maximum ist `10`.skillDiscoveryDepth: 2
tokenStringUmgebungsvariablenreferenz, die ein GitHub-Token enthält. Schließt sich gegenseitig mit `credentialKey` aus.token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyStringGespeicherter GitHub-Anmeldedaten-Schlüssel, der über die Admin-Skill-Sync-Anmeldedaten-endpoints verwaltet wird. Schließt sich gegenseitig mit `token` aus.credentialKey: production-skills
tenantIdStringOptionale Mandanten-ID, die gespiegelte Skills besitzt, wenn die Mandantenisolierung aktiviert ist.tenantId: tenant-a

Quellidentität

Das id-Feld ist Teil der Spiegel-Identität. Halten Sie es stabil. Das Umleiten einer Quelle auf ein umbenanntes Repository oder eine neue Referenz behält die gespiegelten Skills mit derselben Quell-ID verknüpft, während das Ändern der Quell-ID einen neuen Spiegel erstellt.

Wenn tenantId festgelegt ist, werden Synchronisierungs-Lese- und Schreibvorgänge innerhalb des Isolationskontexts dieses Mandanten ausgeführt. Betrachten Sie tenantId als unveränderlich für eine Quell-ID: Das nachträgliche Ändern, Hinzufügen oder Entfernen führt dazu, dass zuvor gespiegelte Skills im alten Mandanten verbleiben.

Synchronisierungsverhalten

GitHub Skill Sync:

  • Durchsucht SKILL.md-Dateien unterhalb jedes konfigurierten Pfads.
  • Importiert den SKILL.md Body, das Frontmatter und die gebündelten Dateien.
  • Speichert Quell-Metadaten wie source id, owner, repo, ref, skill path, commit SHA und blob SHA.
  • Aktualisiert gespiegelte Skills, wenn sich die Upstream-Datei ändert.
  • Löscht gespiegelte Skills und Dateien, die aus der konfigurierten Quelle entfernt wurden.
  • Verwendet eine Synchronisierungssperre, sodass jeweils nur ein GitHub-Synchronisierungsvorgang ausgeführt wird.

Admin-Endpoints

Die Admin-API stellt den Status der GitHub Skill Sync, manuelle Ausführungen und die Verwaltung gespeicherter Anmeldedaten bereit:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpointGibt den aktivierten Status, die Zeitplaneinstellungen, den Quellenstatus, das Vorhandensein von Anmeldeinformationen und die Anzahl der letzten Synchronisierungen zurück.
POST /api/admin/skills/sync/runEndpointStartet einen manuellen Synchronisierungslauf, wenn der Aufrufer über die erforderliche Admin-Skills-Berechtigung verfügt.
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpointSpeichert oder rotiert ein GitHub-Token für einen Anmeldedatenschlüssel.
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpointLöscht ein gespeichertes GitHub-Token für einen Anmeldedaten-Schlüssel.

Statusabfragen erfordern Administratorzugriff sowie die Berechtigung „Skills read“. Manuelle Ausführungen und das Schreiben von Anmeldeinformationen erfordern die Berechtigung zur Verwaltung von Skills auf Plattformebene.

Wie finden Sie diese Anleitung?