packages/web/src/content/docs/bs/skills.mdx
Agent skills omogucavaju OpenCode da pronade uputstva koja se mogu ponovo koristiti iz repozitorija ili home direktorija.
Skills se ucitavaju po potrebi kroz ugradeni skill alat - agenti vide dostupne skills i ucitavaju puni sadrzaj kad zatreba.
Kreirajte jedan folder po nazivu skill-a i stavite SKILL.md unutar njega.
OpenCode pretrazuje ove lokacije:
.opencode/skills/<name>/SKILL.md~/.config/opencode/skills/<name>/SKILL.md.claude/skills/<name>/SKILL.md~/.claude/skills/<name>/SKILL.md.agents/skills/<name>/SKILL.md~/.agents/skills/<name>/SKILL.mdZa projektne lokalne putanje, OpenCode ide prema gore od trenutnog radnog direktorija dok ne dode do git worktree-ja.
Usput ucitava sve odgovarajuce skills/*/SKILL.md u .opencode/ i odgovarajuce .claude/skills/*/SKILL.md ili .agents/skills/*/SKILL.md.
Globalne definicije se takoder ucitavaju iz ~/.config/opencode/skills/*/SKILL.md, ~/.claude/skills/*/SKILL.md i ~/.agents/skills/*/SKILL.md.
Svaki SKILL.md mora poceti YAML frontmatter-om.
Prepoznaju se samo ova polja:
name (obavezno)description (obavezno)license (opcionalno)compatibility (opcionalno)metadata (opcionalno, mapa string->string)Nepoznata frontmatter polja se ignorisu.
name mora:
---SKILL.mdEkvivalentni regex:
^[a-z0-9]+(-[a-z0-9]+)*$
description mora imati 1-1024 karaktera.
Neka bude dovoljno precizan da agent moze pravilno odabrati.
Kreirajte .opencode/skills/git-release/SKILL.md ovako:
---
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.
OpenCode navodi dostupne skills u opisu skill alata.
Svaki unos sadrzi naziv i opis skill-a:
<available_skills>
<skill>
<name>git-release</name>
<description>Create consistent releases and changelogs</description>
</skill>
</available_skills>
Agent ucitava skill pozivom alata:
skill({ name: "git-release" })
Kontrolisite kojim skills agenti mogu pristupiti pomocu dozvola baziranih na obrascima u opencode.json:
{
"permission": {
"skill": {
"*": "allow",
"pr-review": "allow",
"internal-*": "deny",
"experimental-*": "ask"
}
}
}
| Dozvola | Ponasanje |
|---|---|
allow | Skill se ucitava odmah |
deny | Skill je skriven od agenta, pristup odbijen |
ask | Korisnik mora odobriti prije ucitavanja |
Obrasci podrzavaju wildcard znakove: internal-* poklapa internal-docs, internal-tools itd.
Dajte odredenim agentima drugacije dozvole od globalnih defaulta.
Za prilagodene agente (u frontmatter-u agenta):
---
permission:
skill:
"documents-*": "allow"
---
Za ugradene agente (u opencode.json):
{
"agent": {
"plan": {
"permission": {
"skill": {
"internal-*": "allow"
}
}
}
}
}
Potpuno iskljucite skills za agente koji ih ne bi trebali koristiti:
Za prilagodene agente:
---
tools:
skill: false
---
Za ugradene agente:
{
"agent": {
"plan": {
"tools": {
"skill": false
}
}
}
}
Kada je iskljuceno, sekcija <available_skills> se potpuno izostavlja.
Ako se skill ne pojavi:
SKILL.md napisan velikim slovimaname i descriptiondeny su skriveni od agenata