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

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

Credenciais

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

KeyTypeDescriptionExample
github.enabledBooleanAtiva ou desativa o GitHub Skill Sync.enabled: true
github.intervalMinutesNumberCom que frequência a sincronização agendada do GitHub Skill é executada. Deve estar entre 5 e 35791 minutos.intervalMinutes: 60
github.runOnStartupBooleanExecuta o GitHub Skill Sync quando o servidor inicia.runOnStartup: true
github.sourcesArray of ObjectsRepositórios do GitHub e caminhos para verificar em busca de Skills. Obrigatório quando o GitHub Skill Sync está ativado.

Padrões:

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

Campos de Origem

Cada entrada github.sources configura uma fonte de repositório.

KeyTypeDescriptionExample
idStringID 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
ownerStringNome de usuário ou organização do GitHub.owner: your-org
repoStringNome do repositório no GitHub.repo: your-skills-repo
refStringGit ref, branch, tag ou commit para leitura. O padrão é `main`.ref: main
pathsArray of StringsCaminhos do repositório para verificar. Use `.` para verificar a partir da raiz do repositório.paths: ["skills"]
skillDiscoveryDepthNumberProfundidade de diretório abaixo de cada caminho configurado para buscar por `SKILL.md`. O padrão é `2`; o máximo é `10`.skillDiscoveryDepth: 2
tokenStringReferência de variável de ambiente contendo um token do GitHub. Mutuamente exclusivo com `credentialKey`.token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyStringChave 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
tenantIdStringID 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.md abaixo 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:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpointRetorna 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/runEndpointInicia 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/:credentialKeyEndpointArmazena ou rotaciona um token do GitHub para uma chave de credencial.
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpointExclui 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?