Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Este é um guia de contribuição para desenvolvedores do núcleo do OpenClaw. Se você está
criando um plugin externo, consulte Criando plugins
em vez disso. Para a referência aprofundada de arquitetura (modelo de capacidades, propriedade,
pipeline de carregamento, auxiliares de tempo de execução), consulte Detalhes internos de Plugin.
- plugin = limite de propriedade
- capacidade = contrato compartilhado do núcleo
Quando criar uma capacidade
Crie uma nova capacidade quando todas estas condições forem verdadeiras:- Mais de um fornecedor poderia implementá-la de forma plausível.
- Canais, ferramentas ou plugins de recursos devem consumi-la sem se importar com o fornecedor.
- O núcleo precisa ser responsável por fallback, política, configuração ou comportamento de entrega.
A sequência padrão
- Defina o contrato tipado do núcleo.
- Adicione o registro de plugin para esse contrato.
- Adicione um auxiliar compartilhado de tempo de execução.
- Conecte um plugin de fornecedor real como prova.
- Mova consumidores de recursos/canais para o auxiliar de tempo de execução.
- Adicione testes de contrato.
- Documente a configuração voltada ao operador e o modelo de propriedade.
O que fica onde
Núcleo:- Tipos de solicitação/resposta.
- Registro de provedores + resolução.
- Comportamento de fallback.
- Esquema de configuração com metadados de documentação
title/descriptionpropagados em nós de objeto aninhado, curinga, item de array e composição. - Superfície do auxiliar de tempo de execução.
- Chamadas de API do fornecedor.
- Tratamento de autenticação do fornecedor.
- Normalização de solicitação específica do fornecedor.
- Registro da implementação da capacidade.
- Chama
api.runtime.*ou o auxiliarplugin-sdk/*-runtimecorrespondente. - Nunca chama diretamente uma implementação de fornecedor.
Seams de provedor e harness
Use hooks de provedor quando o comportamento pertencer ao contrato do provedor de modelo, e não ao loop genérico do agente. Exemplos incluem parâmetros de solicitação específicos do provedor após a seleção de transporte, preferência de perfil de autenticação, sobreposições de prompt e roteamento de fallback de acompanhamento após failover de modelo/perfil. Use hooks de harness de agente quando o comportamento pertencer ao tempo de execução que está executando um turno. Harnesses podem classificar resultados de tentativa bem-sucedidos, mas inutilizáveis, como respostas vazias, somente de raciocínio ou somente de planejamento, para que a política externa de fallback de modelo possa tomar a decisão de nova tentativa. Mantenha ambos os seams estreitos:- O núcleo é responsável pela política de nova tentativa/fallback.
- Plugins de provedor são responsáveis por dicas específicas de solicitação/autenticação/roteamento do provedor.
- Plugins de harness são responsáveis pela classificação de tentativa específica do tempo de execução.
- Plugins de terceiros retornam dicas, não mutações diretas do estado do núcleo.
Checklist de arquivos
Para uma nova capacidade, espere tocar nestas áreas:src/<capability>/types.tssrc/<capability>/...registry/runtime.tssrc/plugins/types.tssrc/plugins/registry.tssrc/plugins/captured-registration.tssrc/plugins/contracts/registry.tssrc/plugins/runtime/types-core.tssrc/plugins/runtime/index.tssrc/plugin-sdk/<capability>.tssrc/plugin-sdk/<capability>-runtime.ts- Um ou mais pacotes de plugins incluídos.
- Configuração, documentação, testes.
Exemplo trabalhado: geração de imagens
A geração de imagens segue o formato padrão:- O núcleo define
ImageGenerationProvider. - O núcleo expõe
registerImageGenerationProvider(...). - O núcleo expõe
runtime.imageGeneration.generate(...). - Os plugins
openai,google,faleminimaxregistram implementações apoiadas por fornecedores. - Fornecedores futuros registram o mesmo contrato sem alterar canais/ferramentas.
agents.defaults.imageModelanalisa imagens.agents.defaults.imageGenerationModelgera imagens.
Checklist de revisão
Antes de entregar uma nova capacidade, verifique:- Nenhum canal/ferramenta importa código de fornecedor diretamente.
- O auxiliar de tempo de execução é o caminho compartilhado.
- Pelo menos um teste de contrato afirma a propriedade incluída.
- A documentação de configuração nomeia o novo modelo/chave de configuração.
- A documentação de Plugin explica o limite de propriedade.
Relacionados
- Detalhes internos de Plugin — modelo de capacidades, propriedade, pipeline de carregamento, auxiliares de tempo de execução.
- Criando plugins — tutorial do primeiro plugin.
- Visão geral do SDK — mapa de importação e referência da API de registro.
- Criando Skills — superfície complementar para contribuidores.