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-idKredensial
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
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | Mengaktifkan atau menonaktifkan GitHub Skill Sync. | enabled: true |
| github.intervalMinutes | Number | Seberapa sering sinkronisasi Skill GitHub terjadwal dijalankan. Harus antara 5 hingga 35791 menit. | intervalMinutes: 60 |
| github.runOnStartup | Boolean | Menjalankan GitHub Skill Sync saat server dimulai. | runOnStartup: true |
| github.sources | Array of Objects | Repositori GitHub dan jalur untuk dipindai guna mencari Skills. Diperlukan saat GitHub Skill Sync diaktifkan. |
Default:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Bidang Sumber
Setiap entri github.sources mengonfigurasi satu sumber repositori.
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | ID sumber unik yang stabil. Harus diawali dengan huruf atau angka dan hanya boleh berisi huruf, angka, garis bawah, atau tanda hubung. | id: librechat-skills |
| owner | String | Nama organisasi atau pengguna GitHub. | owner: your-org |
| repo | String | Nama repositori GitHub. | repo: your-skills-repo |
| ref | String | Git ref, branch, tag, atau commit untuk dibaca. Default-nya adalah `main`. | ref: main |
| paths | Array of Strings | Jalur repositori untuk dipindai. Gunakan `.` untuk memindai dari akar repositori. | paths: ["skills"] |
| skillDiscoveryDepth | Number | Kedalaman direktori di bawah setiap path yang dikonfigurasi untuk memindai `SKILL.md`. Defaultnya adalah `2`; maksimumnya adalah `10`. | skillDiscoveryDepth: 2 |
| token | String | Referensi variabel lingkungan yang berisi token GitHub. Saling eksklusif dengan `credentialKey`. | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | Kunci kredensial GitHub tersimpan yang dikelola melalui endpoint kredensial Skill Sync admin. Saling eksklusif dengan `token`. | credentialKey: production-skills |
| tenantId | String | ID 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.mddi 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:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | Mengembalikan status aktif, pengaturan jadwal, status sumber, keberadaan kredensial, dan jumlah sinkronisasi terkini. | |
| POST /api/admin/skills/sync/run | Endpoint | Memulai proses sinkronisasi manual saat pemanggil memiliki kapabilitas Skills admin yang diperlukan. | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Menyimpan atau merotasi token GitHub untuk kunci kredensial. | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Menghapus 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?