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

Struktur Objek Skill Sync

Ikhtisar

Objek skillSync memungkinkan admin untuk mencerminkan (mirror) Skill dari sumber eksternal. Pada v1.3.13, GitHub adalah penyedia yang didukung.

GitHub Skill Sync membaca file SKILL.md beserta file yang dibundel dari jalur repositori yang dikonfigurasi, menyimpannya sebagai Skill dengan source: "github", dan menjaga baris yang dicerminkan tetap selaras dengan repositori hulu pada sinkronisasi berikutnya.

Contoh

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

Kredensial

Gunakan salah satu dari token atau credentialKey untuk setiap sumber, jangan keduanya. token harus berupa referensi variabel lingkungan seperti ${GITHUB_SKILLS_TOKEN}. Gunakan fine-grained personal access token GitHub yang dicakup ke repositori yang dipilih dengan izin Contents dan Metadata bersifat read-only.

Top-Level Fields

skillSync.github

KeyTypeDescriptionExample
github.enabledBooleanMengaktifkan atau menonaktifkan GitHub Skill Sync.enabled: true
github.intervalMinutesNumberSeberapa sering sinkronisasi Skill GitHub terjadwal dijalankan. Harus antara 5 hingga 35791 menit.intervalMinutes: 60
github.runOnStartupBooleanMenjalankan GitHub Skill Sync saat server dimulai.runOnStartup: true
github.sourcesArray of ObjectsRepositori GitHub dan jalur untuk dipindai guna mencari Skills. Diperlukan saat GitHub Skill Sync diaktifkan.

Default:

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

Bidang Sumber

Setiap entri github.sources mengonfigurasi satu sumber repositori.

KeyTypeDescriptionExample
idStringID sumber unik yang stabil. Harus diawali dengan huruf atau angka dan hanya boleh berisi huruf, angka, garis bawah, atau tanda hubung.id: librechat-skills
ownerStringNama organisasi atau pengguna GitHub.owner: your-org
repoStringNama repositori GitHub.repo: your-skills-repo
refStringGit ref, branch, tag, atau commit untuk dibaca. Default-nya adalah `main`.ref: main
pathsArray of StringsJalur repositori untuk dipindai. Gunakan `.` untuk memindai dari akar repositori.paths: ["skills"]
skillDiscoveryDepthNumberKedalaman direktori di bawah setiap path yang dikonfigurasi untuk memindai `SKILL.md`. Defaultnya adalah `2`; maksimumnya adalah `10`.skillDiscoveryDepth: 2
tokenStringReferensi variabel lingkungan yang berisi token GitHub. Saling eksklusif dengan `credentialKey`.token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyStringKunci kredensial GitHub tersimpan yang dikelola melalui endpoint kredensial Skill Sync admin. Saling eksklusif dengan `token`.credentialKey: production-skills
tenantIdStringID penyewa opsional yang memiliki Skill yang dicerminkan saat isolasi penyewa diaktifkan.tenantId: tenant-a

Identitas Sumber

Bidang id adalah bagian dari identitas mirror. Jaga agar tetap stabil. Mengarahkan ulang sumber ke repositori yang diganti namanya atau referensi baru akan tetap menjaga Skill yang di-mirror tertaut ke id sumber yang sama, sementara mengubah id sumber akan membuat mirror baru.

Saat tenantId diatur, pembacaan dan penulisan sinkronisasi berjalan di dalam konteks isolasi penyewa tersebut. Anggap tenantId sebagai sesuatu yang tidak dapat diubah (immutable) untuk id sumber: mengubah, menambah, atau menghapusnya di kemudian hari akan meninggalkan Skill yang sebelumnya dicerminkan di penyewa lama.

Perilaku Sinkronisasi

Sinkronisasi Skill GitHub:

  • Menemukan file SKILL.md di bawah setiap path yang dikonfigurasi.
  • Mengimpor isi, frontmatter, dan file yang dibundel dari SKILL.md.
  • Menyimpan metadata sumber seperti source id, owner, repo, ref, skill path, commit SHA, dan blob SHA.
  • Memperbarui Skills yang dicerminkan saat file upstream berubah.
  • Menghapus Skills dan file yang dicerminkan (mirrored) yang telah dihapus dari sumber yang dikonfigurasi.
  • Menggunakan kunci sinkronisasi sehingga hanya satu proses sinkronisasi GitHub yang berjalan dalam satu waktu.

Admin Endpoints

API admin mengekspos status GitHub Skill Sync, eksekusi manual, dan manajemen kredensial yang tersimpan:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpointMengembalikan status aktif, pengaturan jadwal, status sumber, keberadaan kredensial, dan jumlah sinkronisasi terkini.
POST /api/admin/skills/sync/runEndpointMemulai proses sinkronisasi manual saat pemanggil memiliki kapabilitas Skills admin yang diperlukan.
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpointMenyimpan atau merotasi token GitHub untuk kunci kredensial.
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpointMenghapus token GitHub yang tersimpan untuk kunci kredensial.

Pembacaan status memerlukan akses admin dan izin baca Skills. Eksekusi manual dan penulisan kredensial memerlukan izin pengelolaan Skills tingkat platform.

Bagaimana panduan ini?