--- title: "Agentferdigheter" description: "Definer gjenbrukbar atferd via SKILL.md-definisjoner" --- Agentferdigheter lar OpenCode oppdage gjenbrukbare instruksjoner fra repo- eller hjemmekatalogen din. Ferdigheter lastes inn på forespørsel via det opprinnelige `skill`-verktøyet – agenter ser tilgjengelige ferdigheter og kan laste inn hele innholdet når det er nødvendig. --- ## Plasser filer Opprett én mappe per ferdighetsnavn og legg inn en `SKILL.md` i den. OpenCode søker etter disse stedene: - Prosjektkonfigurasjon: `.opencode/skills//SKILL.md` - Global konfigurasjon: `~/.config/opencode/skills//SKILL.md` - Prosjekt Claude-kompatibel: `.claude/skills//SKILL.md` - Global Claude-kompatibel: `~/.claude/skills//SKILL.md` - Prosjektagent-kompatibel: `.agents/skills//SKILL.md` - Global agent-kompatibel: `~/.agents/skills//SKILL.md` --- ## Forstå oppdagelsen For prosjektlokale stier går OpenCode opp fra din nåværende arbeidskatalog til den når git-arbeidstreet. Den laster alle matchende `skills/*/SKILL.md` i `.opencode/` og alle matchende `.claude/skills/*/SKILL.md` eller `.agents/skills/*/SKILL.md` underveis. Globale definisjoner lastes også inn fra `~/.config/opencode/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` og `~/.agents/skills/*/SKILL.md`. --- ## Skriv frontmaterie Hver `SKILL.md` må starte med YAML frontmatter. Bare disse feltene gjenkjennes: - `name` (påkrevd) - `description` (påkrevd) - `license` (valgfritt) - `compatibility` (valgfritt) - `metadata` (valgfritt, streng-til-streng kart) Ukjente frontmatter-felter ignoreres. --- ## Bekreft navn `name` må: - Bestå av 1–64 tegn - Vær alfanumerisk med små bokstaver med skilletegn med enkelt bindestrek - Ikke begynne eller slutte med `-` - Ikke inneholde påfølgende `--` - Match katalognavnet som inneholder `SKILL.md` Ekvivalent regulært uttrykk: ```text ^[a-z0-9]+(-[a-z0-9]+)*$ ``` --- ## Følg lengdereglene `description` må bestå av 1-1024 tegn. Hold det spesifikt nok til at agenten kan velge riktig. --- ## Bruk et eksempel Lag `.opencode/skills/git-release/SKILL.md` slik: ```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. ``` --- ## Gjenkjenne verktøybeskrivelsen OpenCode viser tilgjengelige ferdigheter i `skill` verktøybeskrivelsen. Hver oppføring inneholder ferdighetsnavnet og beskrivelsen: ```xml git-release Create consistent releases and changelogs ``` Agenten laster inn en ferdighet ved å kalle verktøyet: ``` skill({ name: "git-release" }) ``` --- ## Konfigurer tillatelser Kontroller hvilke ferdigheter agenter har tilgang til ved å bruke mønsterbaserte tillatelser i `opencode.json`: ```json { "permission": { "skill": { "*": "allow", "pr-review": "allow", "internal-*": "deny", "experimental-*": "ask" } } } ``` | Tillatelse | Atferd | | ---------- | ------------------------------------------ | | `allow` | Ferdigheter lastes umiddelbart | | `deny` | Ferdighet skjult for agent, tilgang avvist | | `ask` | Bruker bedt om godkjenning før lasting | Mønstre støtter jokertegn: `internal-*` samsvarer med `internal-docs`, `internal-tools` osv. --- ## Overstyring per agent Gi spesifikke agenter andre tillatelser enn de globale standardinnstillingene. **For egendefinerte agenter** (i agent frontmatter): ```yaml --- permission: skill: "documents-*": "allow" --- ``` **For innebygde agenter** (i `opencode.json`): ```json { "agent": { "plan": { "permission": { "skill": { "internal-*": "allow" } } } } } ``` --- ## Deaktiver ferdighetsverktøyet Deaktiver ferdigheter fullstendig for agenter som ikke bør bruke dem: **For egendefinerte agenter**: ```yaml --- tools: skill: false --- ``` **For innebygde agenter**: ```json { "agent": { "plan": { "tools": { "skill": false } } } } ``` Når den er deaktivert, blir ``-delen utelatt helt. --- ## Feilsøk lasting Hvis en ferdighet ikke vises: 1. Kontroller at `SKILL.md` er stavet med store bokstaver 2. Sjekk at frontmatter inkluderer `name` og `description` 3. Sørg for at ferdighetsnavnene er unike på alle steder 4. Sjekk tillatelser – ferdigheter med `deny` er skjult for agenter