File size: 4,780 Bytes
89a2873 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | ---
title: Vještine agenata
description: "Definisite ponasanje koje se moze ponovo koristiti"
---
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.
---
## Postavite datoteke
Kreirajte jedan folder po nazivu skill-a i stavite `SKILL.md` unutar njega.
OpenCode pretrazuje ove lokacije:
- Konfiguracija projekta: `.opencode/skills/<name>/SKILL.md`
- Globalna konfiguracija: `~/.config/opencode/skills/<name>/SKILL.md`
- Claude kompatibilno u projektu: `.claude/skills/<name>/SKILL.md`
- Globalno Claude kompatibilno: `~/.claude/skills/<name>/SKILL.md`
- Agent kompatibilno u projektu: `.agents/skills/<name>/SKILL.md`
- Globalno agent kompatibilno: `~/.agents/skills/<name>/SKILL.md`
---
## Razumijte otkrivanje
Za 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`.
---
## Pisanje frontmatter-a
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.
---
## Validirajte nazive
`name` mora:
- Imati 1-64 karaktera
- Biti malim slovima i brojevima sa jednim crticama kao razdvajacima
- Ne pocinjati ni zavrsavati sa `-`
- Ne sadrzavati uzastopno `--`
- Odgovarati nazivu direktorija koji sadrzi `SKILL.md`
Ekvivalentni regex:
```text
^[a-z0-9]+(-[a-z0-9]+)*$
```
---
## Pravila dužine
`description` mora imati 1-1024 karaktera.
Neka bude dovoljno precizan da agent moze pravilno odabrati.
---
## Primjer
Kreirajte `.opencode/skills/git-release/SKILL.md` ovako:
```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.
```
---
## Opis alata
OpenCode navodi dostupne skills u opisu `skill` alata.
Svaki unos sadrzi naziv i opis skill-a:
```xml
<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" })
```
---
## Konfiguracija dozvola
Kontrolisite kojim skills agenti mogu pristupiti pomocu dozvola baziranih na obrascima u `opencode.json`:
```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.
---
## Nadjačavanje po agentu
Dajte odredenim agentima drugacije dozvole od globalnih defaulta.
**Za prilagodene agente** (u frontmatter-u agenta):
```yaml
---
permission:
skill:
"documents-*": "allow"
---
```
**Za ugradene agente** (u `opencode.json`):
```json
{
"agent": {
"plan": {
"permission": {
"skill": {
"internal-*": "allow"
}
}
}
}
}
```
---
## Isključivanje skill alata
Potpuno iskljucite skills za agente koji ih ne bi trebali koristiti:
**Za prilagodene agente**:
```yaml
---
tools:
skill: false
---
```
**Za ugradene agente**:
```json
{
"agent": {
"plan": {
"tools": {
"skill": false
}
}
}
}
```
Kada je iskljuceno, sekcija `<available_skills>` se potpuno izostavlja.
---
## Rješavanje problema s učitavanjem
Ako se skill ne pojavi:
1. Provjerite da je naziv `SKILL.md` napisan velikim slovima
2. Provjerite da frontmatter sadrzi `name` i `description`
3. Potvrdite da su nazivi skill-ova jedinstveni na svim lokacijama
4. Provjerite dozvole - skills sa `deny` su skriveni od agenata
|