Estructura del objeto Skill Sync
Descripción general
El objeto skillSync permite a los administradores replicar Skills desde fuentes externas. En la versión v1.3.13, GitHub es el proveedor compatible.
GitHub Skill Sync lee los archivos SKILL.md y sus archivos adjuntos desde las rutas del repositorio configuradas, los almacena como Skills con source: "github" y mantiene las filas reflejadas alineadas con el repositorio original en sincronizaciones posteriores.
Ejemplo
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-idCredenciales
Utilice token o credentialKey para cada fuente, pero no ambos. token debe ser una referencia a una variable de entorno como ${GITHUB_SKILLS_TOKEN}. Utilice un personal access token de GitHub de tipo fine-grained con alcance al repositorio seleccionado y con permisos de solo lectura para Contents y Metadata.
Campos de nivel superior
skillSync.github
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | Habilita o deshabilita la sincronización de habilidades de GitHub. | enabled: true |
| github.intervalMinutes | Number | Con qué frecuencia se ejecuta la sincronización programada de GitHub Skill. Debe ser entre 5 y 35791 minutos. | intervalMinutes: 60 |
| github.runOnStartup | Boolean | Ejecuta GitHub Skill Sync cuando se inicia el servidor. | runOnStartup: true |
| github.sources | Array of Objects | Repositorios de GitHub y rutas a escanear para Skills. Requerido cuando GitHub Skill Sync está habilitado. |
Valores predeterminados:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Campos de origen
Cada entrada de github.sources configura una fuente de repositorio.
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | ID de fuente único y estable. Debe comenzar con una letra o dÃgito y contener solo letras, dÃgitos, guiones bajos o guiones. | id: librechat-skills |
| owner | String | Nombre de usuario u organización de GitHub. | owner: your-org |
| repo | String | Nombre del repositorio de GitHub. | repo: your-skills-repo |
| ref | String | Git ref, rama, etiqueta o commit para leer. El valor predeterminado es `main`. | ref: main |
| paths | Array of Strings | Rutas del repositorio a escanear. Use `.` para escanear desde la raÃz del repositorio. | paths: ["skills"] |
| skillDiscoveryDepth | Number | Profundidad de directorio por debajo de cada ruta configurada para buscar `SKILL.md`. El valor predeterminado es `2`; el máximo es `10`. | skillDiscoveryDepth: 2 |
| token | String | Referencia de variable de entorno que contiene un token de GitHub. Mutuamente excluyente con `credentialKey`. | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | Clave de credencial de GitHub almacenada, gestionada a través de los endpoints de credenciales de Skill Sync del administrador. Excluyente con `token`. | credentialKey: production-skills |
| tenantId | String | ID de inquilino opcional que posee las Skills reflejadas cuando el aislamiento de inquilinos está habilitado. | tenantId: tenant-a |
Identidad de origen
El campo id es parte de la identidad del espejo. Mantenlo estable. Redirigir una fuente a un repositorio renombrado o a una nueva referencia mantiene las Skills espejadas vinculadas al mismo id de fuente, mientras que cambiar el id de la fuente crea un nuevo espejo.
Cuando tenantId está configurado, las lecturas y escrituras de sincronización se ejecutan dentro del contexto de aislamiento de ese inquilino. Trate tenantId como inmutable para un id de origen: cambiarlo, añadirlo o eliminarlo posteriormente deja las Skills reflejadas anteriormente en el inquilino antiguo.
Comportamiento de sincronización
Sincronización de habilidades de GitHub:
- Descubre archivos
SKILL.mddebajo de cada ruta configurada. - Importa el cuerpo, el frontmatter y los archivos incluidos de
SKILL.md. - Almacena metadatos de origen como source id, owner, repo, ref, skill path, commit SHA y blob SHA.
- Actualiza las Skills reflejadas cuando el archivo original cambia.
- Elimina las Skills y archivos reflejados que fueron eliminados de la fuente configurada.
- Utiliza un bloqueo de sincronización para que solo se ejecute una sincronización de GitHub a la vez.
Endpoints de administración
La API de administración expone el estado de GitHub Skill Sync, las ejecuciones manuales y la gestión de credenciales almacenadas:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | Devuelve el estado habilitado, la configuración de programación, el estado de la fuente, la presencia de credenciales y los recuentos de sincronización recientes. | |
| POST /api/admin/skills/sync/run | Endpoint | Inicia una ejecución de sincronización manual cuando el llamador tiene la capacidad de Skills de administrador requerida. | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Almacena o rota un token de GitHub para una clave de credencial. | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Elimina un token de GitHub almacenado para una clave de credencial. |
Las lecturas de estado requieren acceso de administrador y permiso de lectura de Skills. Las ejecuciones manuales y las escrituras de credenciales requieren permiso de gestión de Skills a nivel de plataforma.
¿Qué te parece esta guÃa?