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

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

Credenciales

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

KeyTypeDescriptionExample
github.enabledBooleanHabilita o deshabilita la sincronización de habilidades de GitHub.enabled: true
github.intervalMinutesNumberCon qué frecuencia se ejecuta la sincronización programada de GitHub Skill. Debe ser entre 5 y 35791 minutos.intervalMinutes: 60
github.runOnStartupBooleanEjecuta GitHub Skill Sync cuando se inicia el servidor.runOnStartup: true
github.sourcesArray of ObjectsRepositorios de GitHub y rutas a escanear para Skills. Requerido cuando GitHub Skill Sync está habilitado.

Valores predeterminados:

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

Campos de origen

Cada entrada de github.sources configura una fuente de repositorio.

KeyTypeDescriptionExample
idStringID 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
ownerStringNombre de usuario u organización de GitHub.owner: your-org
repoStringNombre del repositorio de GitHub.repo: your-skills-repo
refStringGit ref, rama, etiqueta o commit para leer. El valor predeterminado es `main`.ref: main
pathsArray of StringsRutas del repositorio a escanear. Use `.` para escanear desde la raíz del repositorio.paths: ["skills"]
skillDiscoveryDepthNumberProfundidad de directorio por debajo de cada ruta configurada para buscar `SKILL.md`. El valor predeterminado es `2`; el máximo es `10`.skillDiscoveryDepth: 2
tokenStringReferencia de variable de entorno que contiene un token de GitHub. Mutuamente excluyente con `credentialKey`.token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyStringClave 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
tenantIdStringID 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.md debajo 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:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpointDevuelve 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/runEndpointInicia una ejecución de sincronización manual cuando el llamador tiene la capacidad de Skills de administrador requerida.
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpointAlmacena o rota un token de GitHub para una clave de credencial.
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpointElimina 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?