Habilidades do Agente
As habilidades do agente permitem que o opencode descubra instruções reutilizáveis do seu repositório ou diretório pessoal.
As habilidades são carregadas sob demanda através da ferramenta nativa skill—os agentes veem as habilidades disponíveis e podem carregar o conteúdo completo quando necessário.
Crie uma pasta por nome de habilidade e coloque um SKILL.md dentro dela.
O opencode pesquisa nesses locais:
- Configuração do projeto:
.opencode/skills/<name>/SKILL.md - Configuração global:
~/.config/opencode/skills/<name>/SKILL.md - Projeto compatível com Claude:
.claude/skills/<name>/SKILL.md - Global compatível com Claude:
~/.claude/skills/<name>/SKILL.md - Projeto compatível com agente:
.agents/skills/<name>/SKILL.md - Global compatível com agente:
~/.agents/skills/<name>/SKILL.md
Para caminhos locais do projeto, o opencode sobe a partir do seu diretório de trabalho atual até alcançar a árvore de trabalho do git.
Ele carrega qualquer skills/*/SKILL.md correspondente em .opencode/ e qualquer .claude/skills/*/SKILL.md ou .agents/skills/*/SKILL.md ao longo do caminho.
As definições globais também são carregadas de ~/.config/opencode/skills/*/SKILL.md, ~/.claude/skills/*/SKILL.md e ~/.agents/skills/*/SKILL.md.
Cada SKILL.md deve começar com frontmatter YAML.
Somente estes campos são reconhecidos:
name(obrigatório)description(obrigatório)license(opcional)compatibility(opcional)metadata(opcional, mapa de string para string)
Campos de frontmatter desconhecidos são ignorados.
name deve:
- Ter de 1 a 64 caracteres
- Ser alfanumérico em minúsculas com separadores de hífen simples
- Não começar ou terminar com
- - Não conter
--consecutivos - Combinar com o nome do diretório que contém
SKILL.md
Regex equivalente:
^[a-z0-9]+(-[a-z0-9]+)*$description deve ter de 1 a 1024 caracteres.
Mantenha-a específica o suficiente para que o agente escolha corretamente.
Crie .opencode/skills/git-release/SKILL.md assim:
---
name: git-release
description: Create consistent releases and changelogs
license: MIT
compatibility: opencode
metadata:
audience: maintainers
workflow: github
---
## What I do
- Draft release notes from merged PRs
- Propose a version bump
- Provide a copy-pasteable `gh release create` command
## When to use me
Use this when you are preparing a tagged release.
Ask clarifying questions if the target versioning scheme is unclear.O opencode lista as habilidades disponíveis na descrição da ferramenta skill.
Cada entrada inclui o nome e a descrição da habilidade:
<available_skills>
<skill>
<name>git-release</name>
<description>Create consistent releases and changelogs</description>
</skill>
</available_skills>O agente carrega uma habilidade chamando a ferramenta:
skill({ name: "git-release" })Controle quais habilidades os agentes podem acessar usando permissões baseadas em padrões em opencode.json:
{
"permission": {
"skill": {
"*": "allow",
"pr-review": "allow",
"internal-*": "deny",
"experimental-*": "ask"
}
}
}| Permissão | Comportamento |
|---|---|
allow | Habilidade carrega imediatamente |
deny | Habilidade oculta do agente, acesso rejeitado |
ask | Usuário solicitado para aprovação antes de carregar |
Padrões suportam curingas: internal-* corresponde a internal-docs, internal-tools, etc.
Dê a agentes específicos permissões diferentes das configurações globais padrão.
Para agentes personalizados (no frontmatter do agente):
---
permission:
skill:
"documents-*": "allow"
---Para agentes embutidos (em opencode.json):
{
"agent": {
"plan": {
"permission": {
"skill": {
"internal-*": "allow"
}
}
}
}
}Desative completamente as habilidades para agentes que não devem usá-las:
Para agentes personalizados:
---
tools:
skill: false
---Para agentes embutidos:
{
"agent": {
"plan": {
"tools": {
"skill": false
}
}
}
}Quando desativado, a seção <available_skills> é omitida completamente.
Se uma habilidade não aparecer:
- Verifique se
SKILL.mdestá escrito em letras maiúsculas - Verifique se o frontmatter inclui
nameedescription - Certifique-se de que os nomes das habilidades sejam únicos em todos os locais
- Verifique as permissões—habilidades com
denyestão ocultas dos agentes