Struktura obiektu Skill Sync
Przegląd
Obiekt skillSync pozwala administratorom na synchronizację Skills ze źródeł zewnętrznych. W wersji v1.3.13 obsługiwanym dostawcą jest GitHub.
GitHub Skill Sync odczytuje pliki SKILL.md oraz powiązane z nimi pliki ze skonfigurowanych ścieżek repozytorium, zapisuje je jako Skills z source: "github" i utrzymuje zsynchronizowane wiersze zgodnie z repozytorium nadrzędnym podczas kolejnych synchronizacji.
Przykład
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-idPoświadczenia
Użyj albo token, albo credentialKey dla każdego źródła, nie obu jednocześnie. token musi być odwołaniem do zmiennej środowiskowej, takiej jak ${GITHUB_SKILLS_TOKEN}. Użyj precyzyjnego osobistego tokena dostępu (fine-grained personal access token) GitHub, ograniczonego do wybranego repozytorium z uprawnieniami tylko do odczytu (read-only) dla zawartości (Contents) i metadanych (Metadata).
Pola najwyższego poziomu
skillSync.github
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | Włącza lub wyłącza GitHub Skill Sync. | enabled: true |
| github.intervalMinutes | Number | Jak często uruchamiana jest zaplanowana synchronizacja GitHub Skill. Musi wynosić od 5 do 35791 minut. | intervalMinutes: 60 |
| github.runOnStartup | Boolean | Uruchamia GitHub Skill Sync podczas startu serwera. | runOnStartup: true |
| github.sources | Array of Objects | Repozytoria GitHub i ścieżki do skanowania w poszukiwaniu Skills. Wymagane, gdy włączona jest synchronizacja GitHub Skill Sync. |
Domyślne:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Pola źródłowe
Każdy wpis github.sources konfiguruje jedno źródło repozytorium.
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | Stabilny unikalny identyfikator źródła. Musi zaczynać się od litery lub cyfry i zawierać tylko litery, cyfry, podkreślniki lub myślniki. | id: librechat-skills |
| owner | String | Nazwa organizacji lub użytkownika w serwisie GitHub. | owner: your-org |
| repo | String | Nazwa repozytorium GitHub. | repo: your-skills-repo |
| ref | String | Git ref, branch, tag lub commit do odczytania. Domyślnie `main`. | ref: main |
| paths | Array of Strings | Ścieżki repozytorium do przeskanowania. Użyj `.`, aby skanować od katalogu głównego repozytorium. | paths: ["skills"] |
| skillDiscoveryDepth | Number | Głębokość katalogów poniżej każdej skonfigurowanej ścieżki do przeszukania pod kątem `SKILL.md`. Wartość domyślna to `2`; maksimum wynosi `10`. | skillDiscoveryDepth: 2 |
| token | String | Odniesienie do zmiennej środowiskowej zawierającej token GitHub. Wzajemnie wyklucza się z `credentialKey`. | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | Zapisany klucz poświadczeń GitHub zarządzany przez punkty końcowe poświadczeń Skill Sync w panelu administratora. Wzajemnie wykluczający się z `token`. | credentialKey: production-skills |
| tenantId | String | Opcjonalny identyfikator dzierżawcy (tenant id), do którego należą odzwierciedlone umiejętności (Skills), gdy włączona jest izolacja dzierżawców. | tenantId: tenant-a |
Tożsamość źródła
Pole id jest częścią tożsamości lustrzanej (mirror identity). Należy zachować jego stałość. Przekierowanie źródła do zmienionego repozytorium lub nowej referencji (ref) sprawia, że odzwierciedlone (mirrored) Skills pozostają powiązane z tym samym identyfikatorem źródła, podczas gdy zmiana identyfikatora źródła tworzy nowe lustro.
Gdy tenantId jest ustawione, operacje odczytu i zapisu synchronizacji są wykonywane wewnątrz kontekstu izolacji tego tenanta. Traktuj tenantId jako niezmienne dla danego identyfikatora źródła: zmiana, dodanie lub usunięcie go w późniejszym czasie spowoduje pozostawienie wcześniej zreplikowanych Skills w starym tennancie.
Zachowanie synchronizacji
GitHub Skill Sync:
- Wyszukuje pliki
SKILL.mdw każdej ze skonfigurowanych ścieżek. - Importuje treść
SKILL.md, frontmatter oraz dołączone pliki. - Przechowuje metadane źródła, takie jak source id, owner, repo, ref, skill path, commit SHA oraz blob SHA.
- Aktualizuje odzwierciedlone Skills, gdy zmienia się plik nadrzędny.
- Usuwa zduplikowane Skills i pliki, które zostały usunięte ze skonfigurowanego źródła.
- Używa blokady synchronizacji, dzięki czemu w danym momencie może być uruchomiona tylko jedna synchronizacja z GitHub.
Punkty końcowe administratora (Admin Endpoints)
API administratora udostępnia status synchronizacji umiejętności GitHub, uruchomienia ręczne oraz zarządzanie przechowywanymi poświadczeniami:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | Zwraca stan włączenia, ustawienia harmonogramu, status źródła, obecność poświadczeń oraz liczbę ostatnich synchronizacji. | |
| POST /api/admin/skills/sync/run | Endpoint | Uruchamia ręczne uruchomienie synchronizacji, gdy wywołujący posiada wymaganą uprawnienie admin Skills. | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Przechowuje lub rotuje token GitHub dla klucza uwierzytelniającego. | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Usuwa zapisany token GitHub dla klucza poświadczeń. |
Odczyty statusu wymagają uprawnień administratora oraz uprawnienia do odczytu Skills. Ręczne uruchomienia oraz zapisywanie poświadczeń wymagają uprawnienia do zarządzania Skills na poziomie platformy.
Jaka jest ta instrukcja?