Buckets:
| title: "Habilidades do Agente" | |
| description: "Defina comportamentos reutilizáveis via definições de SKILL.md" | |
| 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. | |
| ## Colocar arquivos | |
| 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` | |
| ## Entender a descoberta | |
| 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`. | |
| ## Escrever frontmatter | |
| 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. | |
| ## Validar nomes | |
| `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: | |
| ```text | |
| ^[a-z0-9]+(-[a-z0-9]+)*$ | |
| ``` | |
| ## Seguir regras de comprimento | |
| `description` deve ter de 1 a 1024 caracteres. | |
| Mantenha-a específica o suficiente para que o agente escolha corretamente. | |
| ## Usar um exemplo | |
| Crie `.opencode/skills/git-release/SKILL.md` assim: | |
| ```markdown | |
| 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. | |
| ``` | |
| ## Reconhecer descrição da ferramenta | |
| O opencode lista as habilidades disponíveis na descrição da ferramenta `skill`. | |
| Cada entrada inclui o nome e a descrição da habilidade: | |
| ```xml | |
| <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" }) | |
| ``` | |
| ## Configurar permissões | |
| Controle quais habilidades os agentes podem acessar usando permissões baseadas em padrões em `opencode.json`: | |
| ```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. | |
| ## Substituir por agente | |
| Dê a agentes específicos permissões diferentes das configurações globais padrão. | |
| **Para agentes personalizados** (no frontmatter do agente): | |
| ```yaml | |
| permission: | |
| skill: | |
| "documents-*": "allow" | |
| ``` | |
| **Para agentes embutidos** (em `opencode.json`): | |
| ```json | |
| { | |
| "agent": { | |
| "plan": { | |
| "permission": { | |
| "skill": { | |
| "internal-*": "allow" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| ## Desativar a ferramenta de habilidades | |
| Desative completamente as habilidades para agentes que não devem usá-las: | |
| **Para agentes personalizados**: | |
| ```yaml | |
| tools: | |
| skill: false | |
| ``` | |
| **Para agentes embutidos**: | |
| ```json | |
| { | |
| "agent": { | |
| "plan": { | |
| "tools": { | |
| "skill": false | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| Quando desativado, a seção `<available_skills>` é omitida completamente. | |
| ## Solucionar problemas de carregamento | |
| Se uma habilidade não aparecer: | |
| 1. Verifique se `SKILL.md` está escrito em letras maiúsculas | |
| 2. Verifique se o frontmatter inclui `name` e `description` | |
| 3. Certifique-se de que os nomes das habilidades sejam únicos em todos os locais | |
| 4. Verifique as permissões—habilidades com `deny` estão ocultas dos agentes | |
Xet Storage Details
- Size:
- 5.25 kB
- Xet hash:
- e0296670378365d1cd1afa6148d5602f75a55df03d62350071e75800951d9d29
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.