Estrutura do Objeto Skill Sync
Visão geral
O objeto skillSync permite que administradores espelhem Skills de fontes externas. Na v1.3.13, o GitHub é o provedor suportado.
O GitHub Skill Sync lê arquivos SKILL.md e seus arquivos agrupados a partir de caminhos de repositório configurados, armazena-os como Skills com source: "github" e mantém as linhas espelhadas alinhadas com o repositório upstream em sincronizações posteriores.
Exemplo
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-idCredenciais
Use token ou credentialKey para cada fonte, não ambos. token deve ser uma referência de variável de ambiente, como ${GITHUB_SKILLS_TOKEN}. Use um fine-grained personal access token do GitHub com escopo para o repositório selecionado, com permissões de leitura apenas para Contents e Metadata.
Campos de Nível Superior
skillSync.github
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | Ativa ou desativa o GitHub Skill Sync. | enabled: true |
| github.intervalMinutes | Number | Com que frequência a sincronização agendada do GitHub Skill é executada. Deve estar entre 5 e 35791 minutos. | intervalMinutes: 60 |
| github.runOnStartup | Boolean | Executa o GitHub Skill Sync quando o servidor inicia. | runOnStartup: true |
| github.sources | Array of Objects | Repositórios do GitHub e caminhos para verificar em busca de Skills. Obrigatório quando o GitHub Skill Sync está ativado. |
Padrões:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Campos de Origem
Cada entrada github.sources configura uma fonte de repositório.
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | ID de origem único e estável. Deve começar com uma letra ou dígito e conter apenas letras, dígitos, sublinhados ou hifens. | id: librechat-skills |
| owner | String | Nome de usuário ou organização do GitHub. | owner: your-org |
| repo | String | Nome do repositório no GitHub. | repo: your-skills-repo |
| ref | String | Git ref, branch, tag ou commit para leitura. O padrão é `main`. | ref: main |
| paths | Array of Strings | Caminhos do repositório para verificar. Use `.` para verificar a partir da raiz do repositório. | paths: ["skills"] |
| skillDiscoveryDepth | Number | Profundidade de diretório abaixo de cada caminho configurado para buscar por `SKILL.md`. O padrão é `2`; o máximo é `10`. | skillDiscoveryDepth: 2 |
| token | String | Referência de variável de ambiente contendo um token do GitHub. Mutuamente exclusivo com `credentialKey`. | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | Chave de credencial do GitHub armazenada, gerenciada através dos endpoints de credenciais do Skill Sync no painel administrativo. Mutuamente exclusiva com `token`. | credentialKey: production-skills |
| tenantId | String | ID de tenant opcional que possui as Skills espelhadas quando o isolamento de tenant está ativado. | tenantId: tenant-a |
Identidade da Fonte
O campo id é parte da identidade do espelho. Mantenha-o estável. Redirecionar uma fonte para um repositório renomeado ou uma nova referência mantém as Skills espelhadas vinculadas ao mesmo id de fonte, enquanto alterar o id de fonte cria um novo espelho.
Quando tenantId é definido, as leituras e gravações de sincronização são executadas dentro do contexto de isolamento desse tenant. Trate tenantId como imutável para um source id: alterá-lo, adicioná-lo ou removê-lo posteriormente deixará Skills espelhadas anteriormente no tenant antigo.
Comportamento de Sincronização
Sincronização de Habilidades do GitHub:
- Descobre arquivos
SKILL.mdabaixo de cada caminho configurado. - Importa o corpo, o frontmatter e os arquivos agrupados do
SKILL.md. - Armazena metadados da fonte, como source id, owner, repo, ref, skill path, commit SHA e blob SHA.
- Atualiza as Skills espelhadas quando o arquivo upstream é alterado.
- Exclui Skills e arquivos espelhados que foram removidos da fonte configurada.
- Usa um bloqueio de sincronização para que apenas uma execução de sincronização do GitHub ocorra por vez.
Admin Endpoints
A API de administrador expõe o status do GitHub Skill Sync, execuções manuais e gerenciamento de credenciais armazenadas:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | Retorna o estado habilitado, configurações de agendamento, status da fonte, presença de credenciais e contagens de sincronização recentes. | |
| POST /api/admin/skills/sync/run | Endpoint | Inicia uma execução de sincronização manual quando o chamador possui a capacidade de Skills de administrador necessária. | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Armazena ou rotaciona um token do GitHub para uma chave de credencial. | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Exclui um token do GitHub armazenado para uma chave de credencial. |
As leituras de status exigem acesso de administrador e permissão de leitura de Skills. Execuções manuais e gravações de credenciais exigem permissão de gerenciamento de Skills em nível de plataforma.
Como está este guia?