Skills

Criando Skills

Skills ensinam ao agente como e quando usar ferramentas. Cada habilidade é um diretório contendo um arquivo SKILL.md com frontmatter YAML e instruções em markdown. O OpenClaw carrega Skills de várias raízes em uma ordem de precedência definida.

Crie sua primeira habilidade

  • Crie o diretório da habilidade

    Skills ficam na pasta skills/ do seu workspace. Crie um diretório para sua nova habilidade:

    bash
    mkdir -p ~/.openclaw/workspace/skills/hello-world

    Você pode agrupar Skills em subpastas para organização — a habilidade ainda é nomeada pelo frontmatter do SKILL.md, não pelo caminho da pasta:

    bash
    mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-world
  • Escreva o SKILL.md

    Crie SKILL.md dentro do diretório. O frontmatter define metadados; o corpo fornece instruções ao agente.

    markdown
    ---name: hello-worlddescription: A simple skill that prints a greeting.--- # Hello World When the user asks for a greeting, use the `exec` tool to run: ```bashecho "Hello from your custom skill!"
    Code
     Regras de nomenclatura:- Use letras minúsculas, dígitos e hífens para `name`.- Mantenha o nome do diretório e o `name` do frontmatter alinhados.- `description` é exibido para o agente e na descoberta de comandos de barra —  mantenha em uma linha e com menos de 160 caracteres.  OPENCLAW_DOCS_MARKER:stepClose:   OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSJWZXJpZmlxdWUgc2UgYSBoYWJpbGlkYWRlIGZvaSBjYXJyZWdhZGEi ```bashopenclaw skills list

    Por padrão, o OpenClaw monitora arquivos SKILL.md nas raízes de Skills. Se o monitor estiver desativado ou você estiver continuando uma sessão existente, inicie uma nova para que o agente receba a lista atualizada:

    bash
    # From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restart
  • Teste

    Envie uma mensagem que deve acionar a habilidade:

    bash
    openclaw agent --message "give me a greeting"

    Ou abra um chat e pergunte diretamente ao agente. Use /skill hello-world para invocá-la explicitamente pelo nome.

  • Referência do SKILL.md

    Campos obrigatórios

    Campo Descrição
    name Slug único usando letras minúsculas, dígitos e hífens
    description Descrição em uma linha exibida ao agente e na saída de descoberta

    Chaves opcionais do frontmatter

    Campo Padrão Descrição
    user-invocable true Expõe a habilidade como um comando de barra do usuário
    disable-model-invocation false Mantém a habilidade fora do prompt de sistema do agente (ainda executa via /skill)
    command-dispatch Defina como tool para rotear o comando de barra diretamente para uma ferramenta, ignorando o modelo
    command-tool Nome da ferramenta a invocar quando command-dispatch: tool estiver definido
    command-arg-mode raw Para despacho de ferramenta, encaminha a string de argumentos bruta para a ferramenta
    homepage URL exibida como "Site" na UI de Skills do macOS

    Para campos de controle de acesso (requires.bins, requires.env etc.), veja Skills — Controle de acesso.

    Usando {baseDir}

    Use {baseDir} no corpo da habilidade para referenciar arquivos dentro do diretório da habilidade sem codificar caminhos fixos:

    markdown
    Run the helper script at `{baseDir}/scripts/run.sh`.

    Adicionando ativação condicional

    Restrinja sua habilidade para que ela só carregue quando suas dependências estiverem disponíveis:

    markdown
    ---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---
    Opções de controle de acesso
    Chave Descrição
    requires.bins Todos os binários devem existir no PATH
    requires.anyBins Pelo menos um binário deve existir no PATH
    requires.env Cada variável de ambiente deve existir no processo ou na configuração
    requires.config Cada caminho de openclaw.json deve ser verdadeiro
    os Filtro de plataforma: ["darwin"], ["linux"], ["win32"]
    always Defina como true para ignorar todos os controles e sempre incluir a habilidade

    Referência completa: Skills — Controle de acesso.

    Ambiente e chaves de API

    Vincule uma chave de API a uma entrada de habilidade em openclaw.json:

    json5
    {  skills: {    entries: {      "gemini-search": {        enabled: true,        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },      },    },  },}

    A chave é injetada no processo host apenas para aquela rodada do agente. Ela não chega ao sandbox — veja variáveis de ambiente em sandbox.

    Proponha via Workshop de Habilidades

    Para Skills redigidas pelo agente ou quando você quiser revisão do operador antes de uma habilidade entrar em produção, use propostas do Workshop de Habilidades em vez de escrever SKILL.md diretamente.

    bash
    # Propose a brand-new skillopenclaw skills workshop propose-create \  --name "hello-world" \  --description "A simple skill that prints a greeting." \  --proposal ./PROPOSAL.md # Propose an update to an existing skillopenclaw skills workshop propose-update hello-world \  --proposal ./PROPOSAL.md \  --description "Updated greeting skill"

    Use --proposal-dir quando a proposta incluir arquivos de suporte:

    bash
    openclaw skills workshop propose-create \  --name "hello-world" \  --description "A simple skill that prints a greeting." \  --proposal-dir ./hello-world-proposal/

    O diretório deve conter PROPOSAL.md. Arquivos de suporte podem ficar em assets/, examples/, references/, scripts/ ou templates/.

    Após a revisão:

    bash
    openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>

    Veja Workshop de Habilidades para o ciclo de vida completo da proposta.

    Publicando no ClawHub

  • Garanta que seu SKILL.md esteja completo

    Certifique-se de que name, description e quaisquer campos de controle metadata.openclaw estejam definidos. Adicione uma URL homepage se você tiver uma página do projeto.

  • Instale a habilidade do ClawHub

    A habilidade do ClawHub documenta o formato atual do comando de publicação e os metadados obrigatórios:

    bash
    openclaw skills install @openclaw/clawhub-publish
  • Publique

    bash
    clawhub publish

    Veja ClawHub — Publicação para o fluxo completo.

  • Boas práticas

    Relacionados

    Was this useful?
    On this page

    On this page