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

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

Poś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

KeyTypeDescriptionExample
github.enabledBooleanWłącza lub wyłącza GitHub Skill Sync.enabled: true
github.intervalMinutesNumberJak często uruchamiana jest zaplanowana synchronizacja GitHub Skill. Musi wynosić od 5 do 35791 minut.intervalMinutes: 60
github.runOnStartupBooleanUruchamia GitHub Skill Sync podczas startu serwera.runOnStartup: true
github.sourcesArray of ObjectsRepozytoria GitHub i ścieżki do skanowania w poszukiwaniu Skills. Wymagane, gdy włączona jest synchronizacja GitHub Skill Sync.

Domyślne:

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

Pola źródłowe

Każdy wpis github.sources konfiguruje jedno źródło repozytorium.

KeyTypeDescriptionExample
idStringStabilny 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
ownerStringNazwa organizacji lub użytkownika w serwisie GitHub.owner: your-org
repoStringNazwa repozytorium GitHub.repo: your-skills-repo
refStringGit ref, branch, tag lub commit do odczytania. Domyślnie `main`.ref: main
pathsArray of StringsŚcieżki repozytorium do przeskanowania. Użyj `.`, aby skanować od katalogu głównego repozytorium.paths: ["skills"]
skillDiscoveryDepthNumberGłę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
tokenStringOdniesienie do zmiennej środowiskowej zawierającej token GitHub. Wzajemnie wyklucza się z `credentialKey`.token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyStringZapisany 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
tenantIdStringOpcjonalny 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.md w 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:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpointZwraca stan włączenia, ustawienia harmonogramu, status źródła, obecność poświadczeń oraz liczbę ostatnich synchronizacji.
POST /api/admin/skills/sync/runEndpointUruchamia ręczne uruchomienie synchronizacji, gdy wywołujący posiada wymaganą uprawnienie admin Skills.
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpointPrzechowuje lub rotuje token GitHub dla klucza uwierzytelniającego.
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpointUsuwa 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?