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
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
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | Aktiviert oder deaktiviert GitHub Skill Sync. | enabled: true |
| github.intervalMinutes | Number | Wie oft der geplante GitHub Skill Sync ausgeführt wird. Muss zwischen 5 und 35791 Minuten liegen. | intervalMinutes: 60 |
| github.runOnStartup | Boolean | Führt GitHub Skill Sync beim Starten des Servers aus. | runOnStartup: true |
| github.sources | Array of Objects | GitHub-Repositories und Pfade, die nach Skills durchsucht werden sollen. Erforderlich, wenn GitHub Skill Sync aktiviert ist. |
Standardwerte:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Quellfelder
Jeder github.sources-Eintrag konfiguriert eine Repository-Quelle.
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | Stabile, eindeutige Quell-ID. Muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur Buchstaben, Ziffern, Unterstriche oder Bindestriche enthalten. | id: librechat-skills |
| owner | String | GitHub-Organisation oder Benutzername. | owner: your-org |
| repo | String | Name des GitHub-Repositorys. | repo: your-skills-repo |
| ref | String | Git-Referenz, Branch, Tag oder Commit zum Lesen. Standardmäßig `main`. | ref: main |
| paths | Array of Strings | Zu scannende Repository-Pfade. Verwenden Sie `.`, um vom Repository-Stammverzeichnis aus zu scannen. | paths: ["skills"] |
| skillDiscoveryDepth | Number | Verzeichnistiefe unterhalb jedes konfigurierten Pfads, um nach `SKILL.md` zu suchen. Standardwert ist `2`; das Maximum ist `10`. | skillDiscoveryDepth: 2 |
| token | String | Umgebungsvariablenreferenz, die ein GitHub-Token enthält. Schließt sich gegenseitig mit `credentialKey` aus. | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | Gespeicherter GitHub-Anmeldedaten-Schlüssel, der über die Admin-Skill-Sync-Anmeldedaten-endpoints verwaltet wird. Schließt sich gegenseitig mit `token` aus. | credentialKey: production-skills |
| tenantId | String | Optionale 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.mdBody, 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:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | Gibt den aktivierten Status, die Zeitplaneinstellungen, den Quellenstatus, das Vorhandensein von Anmeldeinformationen und die Anzahl der letzten Synchronisierungen zurück. | |
| POST /api/admin/skills/sync/run | Endpoint | Startet einen manuellen Synchronisierungslauf, wenn der Aufrufer über die erforderliche Admin-Skills-Berechtigung verfügt. | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Speichert oder rotiert ein GitHub-Token für einen Anmeldedatenschlüssel. | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Lö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?