File size: 5,274 Bytes
0dbc9de | 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: "Umiejętności Agenta"
description: "Definiuj powtarzalne zachowania za pomocą definicji SKILL.md"
---
Umiejętności agenta pozwalają opencode odkryć instrukcje wielokrotnego użytku z repozytorium lub katalogu domowego.
Umiejętności są ładowane na żądanie za pośrednictwem natywnego narzędzia `skill` — agenci widzą dostępne umiejętności i w razie potrzeby mogą załadować pełną zawartość.
---
## Lokalizacja plików
Utwórz jeden folder na nazwę umiejętności i umieść w nim `SKILL.md`.
opencode przeszukuje te lokalizacje:
- Project config: `.opencode/skills/<name>/SKILL.md`
- Global config: `~/.config/opencode/skills/<name>/SKILL.md`
- Project Claude-compatible: `.claude/skills/<name>/SKILL.md`
- Global Claude-compatible: `~/.claude/skills/<name>/SKILL.md`
- Project agent-compatible: `.agents/skills/<name>/SKILL.md`
- Global agent-compatible: `~/.agents/skills/<name>/SKILL.md`
---
## Zrozumienie wykrywania
W przypadku ścieżek lokalnych projektu opencode przechodzi od bieżącego katalogu roboczego, aż dotrze do drzewa roboczego git.
Ładuje po drodze dowolne pasujące `skills/*/SKILL.md` w `.opencode/` i dowolne pasujące `.claude/skills/*/SKILL.md` lub `.agents/skills/*/SKILL.md`.
Ładowane są także definicje globalne z `~/.config/opencode/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` i `~/.agents/skills/*/SKILL.md`.
---
## Tworzenie frontmatter
Każdy `SKILL.md` musi zaczynać się od treści YAML.
Rozpoznawane są tylko te pola:
- `name` (wymagane)
- `description` (wymagane)
- `license` (opcjonalnie)
- `compatibility` (opcjonalnie)
- `metadata` (opcjonalnie, mapa string-to-string)
Nieznane pola frontmatter są ignorowane.
---
## Walidacja nazw
`name` musi:
- Mieć od 1 do 64 znaków
- Należy używać małych liter alfanumerycznych i oddzielać je pojedynczym łącznikiem
- Nie zaczyna się ani nie kończy na `-`
- Nie może zawierać następujących po sobie `--`
- Dopasuj nazwę katalogu zawierającą `SKILL.md`
Odpowiednik wyrażenia regularnego:
```text
^[a-z0-9]+(-[a-z0-9]+)*$
```
---
## Zasady dotyczące długości
`description` musi mieć od 1 do 1024 znaków.
Zadbaj o to, aby agent mógł dokonać prawidłowego wyboru.
---
## Przykład użycia
Utwórz `.opencode/skills/git-release/SKILL.md` w ten sposób:
```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 narzędzia
opencode wymienia dostępne umiejętności w opisie narzędzia `skill`.
Każdy wpis zawiera nazwę i opis umiejętności:
```xml
<available_skills>
<skill>
<name>git-release</name>
<description>Create consistent releases and changelogs</description>
</skill>
</available_skills>
```
Agent ładuje umiejętność wywołując narzędzie:
```
skill({ name: "git-release" })
```
---
## Konfiguracja uprawnień
Kontroluj, do których umiejętności agenci mogą uzyskać dostęp, używając uprawnień opartych na wzorcach w `opencode.json`:
```json
{
"permission": {
"skill": {
"*": "allow",
"pr-review": "allow",
"internal-*": "deny",
"experimental-*": "ask"
}
}
}
```
| Permission | Behavior |
| ---------- | ------------------------------------------------------ |
| `allow` | Umiejętność ładuje się natychmiast |
| `deny` | Umiejętność ukryta przed agentem, dostęp odrzucony |
| `ask` | Użytkownik proszony o zatwierdzenie przed załadowaniem |
Wzorce obsługują symbole wieloznaczne: `internal-*` odpowiada `internal-docs`, `internal-tools` itd.
---
## Nadpisywanie dla agenta
Nadaj konkretnym agentom inne uprawnienia niż globalne ustawienia domyślne.
**Dla agentów niestandardowych** (w temacie agentów):
```yaml
---
permission:
skill:
"documents-*": "allow"
---
```
**Dla agentów wbudowanych** (w `opencode.json`):
```json
{
"agent": {
"plan": {
"permission": {
"skill": {
"internal-*": "allow"
}
}
}
}
}
```
---
## Wyłączanie narzędzia umiejętności
Całkowicie wyłącz umiejętności agentów, którzy nie powinni ich używać:
**Dla agentów niestandardowych** (w temacie agentów):
```yaml
---
tools:
skill: false
---
```
**W przypadku agentów wbudowanych**:
```json
{
"agent": {
"plan": {
"tools": {
"skill": false
}
}
}
}
```
Jeśli opcja jest wyłączona, sekcja `<available_skills>` jest całkowicie pomijana.
---
## Rozwiązywanie problemów z ładowaniem
Jeśli umiejętność nie pojawi się:
1. Sprawdź, czy `SKILL.md` jest napisane wielkimi literami
2. Sprawdź, czy frontmatter zawiera `name` i `description`
3. Upewnij się, że nazwy umiejętności są unikalne we wszystkich lokalizacjach
4. Sprawdź uprawnienia — umiejętności z `deny` są ukryte przed agentami
|