Gå til indhold

Agentferdigheter

Definer gjenbrugbar atferd via SKILL.md-definisjoner

Agentferdigheter lar OpenCode oppdage gjenbrugbare instruksjoner fra repo- eller hjemmekatalogen din. Ferdigheter lastes inn på forespørsel via det opprinnelige skill-verktøyet – agenter ser tilgængelige ferdigheter og kan laste inn hele innholdet når det er nødvendig.


Plasser filer

Opret én mappe per ferdighetsnavn og tilføj inn en SKILL.md i den. OpenCode søker etter disse stedene:

  • Prosjektkonfigurasjon: .opencode/skills/<name>/SKILL.md
  • Global konfigurasjon: ~/.config/opencode/skills/<name>/SKILL.md
  • Prosjekt Claude-kompatibel: .claude/skills/<name>/SKILL.md
  • Global Claude-kompatibel: ~/.claude/skills/<name>/SKILL.md
  • Prosjektagent-kompatibel: .agents/skills/<name>/SKILL.md
  • Global agent-kompatibel: ~/.agents/skills/<name>/SKILL.md

Forstå oppdagelsen

For prosjektlokale stier går OpenCode opp fra din nåværende arbejdskatalog 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:

^[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.


Brug et eksempel

Lag .opencode/skills/git-release/SKILL.md slik:

---
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 tilgængelige ferdigheter i skill verktøybeskrivelsen. Hver oppføring inneholder ferdighetsnavnet og beskrivelsen:

<available_skills>
<skill>
<name>git-release</name>
<description>Create consistent releases and changelogs</description>
</skill>
</available_skills>

Agenten laster inn en ferdighet ved at kalle verktøyet:

skill({ name: "git-release" })

Konfigurer tillatelser

Kontroller hvilke ferdigheter agenter har tilgang til ved at bruge mønsterbaserte tillatelser i opencode.json:

{
"permission": {
"skill": {
"*": "allow",
"pr-review": "allow",
"internal-*": "deny",
"experimental-*": "ask"
}
}
}
TillatelseAtferd
allowFerdigheter lastes umiddelbart
denyFerdighet skjult for agent, tilgang avvist
askBruger 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):

---
permission:
skill:
"documents-*": "allow"
---

For innebygde agenter (i opencode.json):

{
"agent": {
"plan": {
"permission": {
"skill": {
"internal-*": "allow"
}
}
}
}
}

Deaktiver ferdighetsverktøyet

Deaktiver ferdigheter fullstendig for agenter som ikke bør bruge dem:

For egendefinerte agenter:

---
tools:
skill: false
---

For innebygde agenter:

{
"agent": {
"plan": {
"tools": {
"skill": false
}
}
}
}

Når den er deaktivert, blir <available_skills>-delen utelatt helt.


Feilsøk lasting

Hvis en ferdighet ikke vises:

  1. Kontroller at SKILL.md er stavet med store bokstaver
  2. Tjek at frontmatter inkluderer name og description
  3. Sørg for at ferdighetsnavnene er unike på alle steder
  4. Tjek tillatelser – ferdigheter med deny er skjult for agenter