Gå til innholdet

Agenter

Konfigurer og bruk spesialiserte agenter.

Agenter er spesialiserte AI-assistenter som kan konfigureres for spesifikke oppgaver og arbeidsflyter. De lar deg lage fokuserte verktøy med tilpassede meldinger, modeller og verktøytilgang.

Du kan bytte mellom agenter under en økt eller påkalle dem med @-omtalen.


Typer

Det er to typer agenter i OpenCode; primære agenter og subagenter.


Primæragenter

Primæragenter er de viktigste assistentene du samhandler direkte med. Du kan bla gjennom dem ved å bruke Tab-tasten, eller din konfigurerte switch_agent-tastebinding. Disse agentene håndterer hovedsamtalen din. Verktøytilgang konfigureres via tillatelser - for eksempel har Build alle verktøy aktivert mens Plan er begrenset.

OpenCode kommer med to innebygde primære agenter, Build og Plan. Vi ser nærmere på disse nedenfor.


Subagenter

Subagenter er spesialiserte assistenter som primære agenter kan påkalle for spesifikke oppgaver. Du kan også starte dem manuelt ved å @ nevne dem i meldingene dine.

OpenCode kommer med to innebygde subagenter, General og Explore. Vi skal se på dette nedenfor.


Innebygd

OpenCode kommer med to innebygde primære agenter og to innebygde subagenter.


Bruk Build

Modus: primary

Build er standard primæragent med alle verktøy aktivert. Dette er standardagenten for utviklingsarbeid der du trenger full tilgang til filoperasjoner og systemkommandoer.


Bruk Plan

Modus: primary

En begrenset agent designet for planlegging og analyse. Vi bruker et tillatelsessystem for å gi deg mer kontroll og forhindre utilsiktede endringer. Som standard er alt av følgende satt til ask:

  • file edits: Alle skrivinger, patcher og redigeringer
  • bash: Alle bash-kommandoer

Denne agenten er nyttig når du vil at LLM skal analysere kode, foreslå endringer eller lage planer uten å gjøre noen faktiske endringer i kodebasen.


Bruk General

Modus: subagent

En generell agent for å undersøke komplekse spørsmål og utføre flertrinnsoppgaver. Har full verktøytilgang (unntatt todo), slik at den kan gjøre filendringer når det er nødvendig. Bruk denne til å kjøre flere arbeidsenheter parallelt.


Bruk Explore

Modus: subagent

En rask, skrivebeskyttet agent for å utforske kodebaser. Kan ikke endre filer. Bruk dette når du raskt trenger å finne filer etter mønstre, søke i kode etter nøkkelord eller svare på spørsmål om kodebasen.


Bruk Compaction

Modus: primary

Skjult systemagent som komprimerer lang kontekst til et mindre sammendrag. Den kjører automatisk ved behov og kan ikke velges i UI.


Bruk Title

Modus: primary

Skjult systemagent som genererer korte økttitler. Den kjører automatisk og kan ikke velges i UI.


Bruk Summary

Modus: primary

Skjult systemagent som lager øktsammendrag. Den kjører automatisk og kan ikke velges i UI.


Bruk

  1. For primære agenter, bruk Tab-tasten for å bla gjennom dem under en økt. Du kan også bruke din konfigurerte switch_agent nøkkelbinding.

  2. Subagenter kan påkalles:

    • Automatisk av primære agenter for spesialiserte oppgaver basert på deres beskrivelser.

    • Manuelt ved å @ nevne en underagent i meldingen. For eksempel.

      @general help me search for this function
  3. Navigering mellom økter: Når underagenter oppretter sine egne underordnede økter, kan du navigere mellom overordnede økter og alle underordnede økter ved å bruke:

    • <Leader>+Right (eller din konfigurerte session_child_cycle-tastebinding) for å gå videre gjennom forelder → barn1 → barn2 → … → forelder
    • <Leader>+Left (eller din konfigurerte session_child_cycle_reverse-tastebinding) for å gå bakover gjennom forelder ← barn1 ← barn2 ← … ← forelder

    Dette lar deg sømløst bytte mellom hovedsamtalen og spesialisert underagentarbeid.


Konfigurer

Du kan tilpasse de innebygde agentene eller lage dine egne gjennom konfigurasjon. Agenter kan konfigureres på to måter:


JSON

Konfigurer agenter i konfigurasjonsfilen opencode.json:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"mode": "primary",
"model": "anthropic/claude-sonnet-4-20250514",
"prompt": "{file:./prompts/build.txt}",
"tools": {
"write": true,
"edit": true,
"bash": true
}
},
"plan": {
"mode": "primary",
"model": "anthropic/claude-haiku-4-20250514",
"tools": {
"write": false,
"edit": false,
"bash": false
}
},
"code-reviewer": {
"description": "Reviews code for best practices and potential issues",
"mode": "subagent",
"model": "anthropic/claude-sonnet-4-20250514",
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
"tools": {
"write": false,
"edit": false
}
}
}
}

Markdown

Du kan også definere agenter ved å bruke markdown-filer. Plasser dem i:

  • Globalt: ~/.config/opencode/agents/
  • Per prosjekt: .opencode/agents/
~/.config/opencode/agents/review.md
---
description: Reviews code for quality and best practices
mode: subagent
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
write: false
edit: false
bash: false
---
You are in code review mode. Focus on:
- Code quality and best practices
- Potential bugs and edge cases
- Performance implications
- Security considerations
Provide constructive feedback without making direct changes.

Markdown-filnavnet blir agentnavnet. For eksempel oppretter review.md en review-agent.


Alternativer

La oss se på disse konfigurasjonsalternativene i detalj.


Beskrivelse

Bruk alternativet description for å gi en kort beskrivelse av hva agenten gjør og når den skal brukes.

opencode.json
{
"agent": {
"review": {
"description": "Reviews code for best practices and potential issues"
}
}
}

Dette er et obligatorisk konfigurasjonsalternativ.


Temperatur

Kontroller tilfeldigheten og kreativiteten til LLMs svar med temperature-konfigurasjonen.

Lavere verdier gjør svarene mer fokuserte og deterministiske, mens høyere verdier øker kreativiteten og variasjonen.

opencode.json
{
"agent": {
"plan": {
"temperature": 0.1
},
"creative": {
"temperature": 0.8
}
}
}

Temperaturverdier varierer vanligvis fra 0,0 til 1,0:

  • 0.0-0.2: Veldig fokuserte og deterministiske svar, ideell for kodeanalyse og planlegging
  • 0,3-0,5: Balanserte svar med litt kreativitet, bra for generelle utviklingsoppgaver
  • 0.6-1.0: Mer kreative og varierte svar, nyttig for idédugnad og utforskning
opencode.json
{
"agent": {
"analyze": {
"temperature": 0.1,
"prompt": "{file:./prompts/analysis.txt}"
},
"build": {
"temperature": 0.3
},
"brainstorm": {
"temperature": 0.7,
"prompt": "{file:./prompts/creative.txt}"
}
}
}

Hvis ingen temperatur er spesifisert, bruker OpenCode modellspesifikke standardinnstillinger; typisk 0 for de fleste modeller, 0,55 for Qwen-modeller.


Maks trinn

Kontroller det maksimale antallet agentiske iterasjoner en agent kan utføre før den blir tvunget til å svare kun med tekst. Dette lar brukere som ønsker å kontrollere kostnadene sette en grense for agenthandlinger.

Hvis dette ikke er satt, vil agenten fortsette å iterere til modellen velger å stoppe eller brukeren avbryter økten.

opencode.json
{
"agent": {
"quick-thinker": {
"description": "Fast reasoning with limited iterations",
"prompt": "You are a quick thinker. Solve problems with minimal steps.",
"steps": 5
}
}
}

Når grensen er nådd, mottar agenten en spesiell systemmelding som instruerer den om å svare med en oppsummering av arbeidet og anbefalte gjenværende oppgaver.


Deaktiver

Sett til true for å deaktivere agenten.

opencode.json
{
"agent": {
"review": {
"disable": true
}
}
}

Spør

Spesifiser en tilpasset systemmeldingsfil for denne agenten med prompt-konfigurasjonen. Spørrefilen skal inneholde instruksjoner som er spesifikke for agentens formål.

opencode.json
{
"agent": {
"review": {
"prompt": "{file:./prompts/code-review.txt}"
}
}
}

Denne banen er i forhold til hvor konfigurasjonsfilen er plassert. Så dette fungerer for både den globale OpenCode-konfigurasjonen og den prosjektspesifikke konfigurasjonen.


Modell

Bruk model-konfigurasjonen for å overstyre modellen for denne agenten. Nyttig for bruk av ulike modeller optimalisert for ulike oppgaver. For eksempel en raskere modell for planlegging, en mer kapabel modell for implementering.

opencode.json
{
"agent": {
"plan": {
"model": "anthropic/claude-haiku-4-20250514"
}
}
}

Modellen ID i OpenCode-konfigurasjonen din bruker formatet provider/model-id. For eksempel, hvis du bruker OpenCode Zen, vil du bruke opencode/gpt-5.1-codex for GPT 5.1 Codex.


Verktøy

Kontroller hvilke verktøy som er tilgjengelige i denne agenten med tools-konfigurasjonen. Du kan aktivere eller deaktivere spesifikke verktøy ved å sette dem til true eller false.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"tools": {
"write": true,
"bash": true
},
"agent": {
"plan": {
"tools": {
"write": false,
"bash": false
}
}
}
}

Du kan også bruke jokertegn for å kontrollere flere verktøy samtidig. For eksempel, for å deaktivere alle verktøy fra en MCP-server:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"readonly": {
"tools": {
"mymcp_*": false,
"write": false,
"edit": false
}
}
}
}

Finn ut mer om verktøy.


Tillatelser

Du kan konfigurere tillatelser for å administrere hvilke handlinger en agent kan utføre. For øyeblikket kan tillatelsene for verktøyene edit, bash og webfetch konfigureres til:

  • "ask" — Be om godkjenning før du kjører verktøyet
  • "allow" — Tillat alle operasjoner uten godkjenning
  • "deny" — Deaktiver verktøyet
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny"
}
}

Du kan overstyre disse tillatelsene per agent.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny"
},
"agent": {
"build": {
"permission": {
"edit": "ask"
}
}
}
}

Du kan også angi tillatelser i Markdown-agenter.

~/.config/opencode/agents/review.md
---
description: Code review without edits
mode: subagent
permission:
edit: deny
bash:
"*": ask
"git diff": allow
"git log*": allow
"grep *": allow
webfetch: deny
---
Only analyze code and suggest changes.

Du kan angi tillatelser for spesifikke bash-kommandoer.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"permission": {
"bash": {
"git push": "ask",
"grep *": "allow"
}
}
}
}
}

Dette kan ta et globmønster.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"permission": {
"bash": {
"git *": "ask"
}
}
}
}
}

Og du kan også bruke jokertegnet * for å administrere tillatelser for alle kommandoer. Siden den siste samsvarsregelen har forrang, setter du jokertegnet * først og spesifikke regler etter.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"permission": {
"bash": {
"*": "ask",
"git status *": "allow"
}
}
}
}
}

Finn ut mer om tillatelser.


Modus

Kontroller agentens modus med mode-konfigurasjonen. Alternativet mode brukes til å bestemme hvordan agenten kan brukes.

opencode.json
{
"agent": {
"review": {
"mode": "subagent"
}
}
}

Alternativet mode kan settes til primary, subagent eller all. Hvis ingen mode er spesifisert, er den standard til all.


Skjult

Skjul en underagent fra @ autofullføringsmenyen med hidden: true. Nyttig for interne underagenter som bare skal påkalles programmatisk av andre agenter via oppgaveverktøyet.

opencode.json
{
"agent": {
"internal-helper": {
"mode": "subagent",
"hidden": true
}
}
}

Dette påvirker kun brukersynlighet i autofullfør-menyen. Skjulte agenter kan fortsatt påkalles av modellen via oppgaveverktøyet hvis tillatelser tillater det.


Oppgavetillatelser

Kontroller hvilke subagenter en agent kan påkalle via oppgaveverktøyet med permission.task. Bruker glob-mønstre for fleksibel matching.

opencode.json
{
"agent": {
"orchestrator": {
"mode": "primary",
"permission": {
"task": {
"*": "deny",
"orchestrator-*": "allow",
"code-reviewer": "ask"
}
}
}
}
}

Når den er satt til deny, fjernes subagenten fullstendig fra oppgaveverktøybeskrivelsen, så modellen vil ikke forsøke å starte den.


Farge

Tilpass agentens visuelle utseende i UI med alternativet color. Dette påvirker hvordan agenten vises i grensesnittet.

Bruk en gyldig sekskantfarge (f.eks. #FF5733) eller temafarge: primary, secondary, accent, success, warning, error, info.

opencode.json
{
"agent": {
"creative": {
"color": "#ff6b6b"
},
"code-reviewer": {
"color": "accent"
}
}
}

Topp P

Kontroller responsmangfoldet med alternativet top_p. Alternativ til temperatur for å kontrollere tilfeldighet.

opencode.json
{
"agent": {
"brainstorm": {
"top_p": 0.9
}
}
}

Verdiene varierer fra 0,0 til 1,0. Lavere verdier er mer fokuserte, høyere verdier mer mangfoldige.


Tillegg

Eventuelle andre alternativer du spesifiserer i agentkonfigurasjonen vil bli overført direkte til leverandøren som modellalternativer. Dette lar deg bruke leverandørspesifikke funksjoner og parametere.

For eksempel, med OpenAIs resonneringsmodeller kan du kontrollere resonnementinnsatsen:

opencode.json
{
"agent": {
"deep-thinker": {
"description": "Agent that uses high reasoning effort for complex problems",
"model": "openai/gpt-5",
"reasoningEffort": "high",
"textVerbosity": "low"
}
}
}

Disse tilleggsalternativene er modell- og leverandørspesifikke. Sjekk leverandørens dokumentasjon for tilgjengelige parametere.


Opprett agenter

Du kan opprette nye agenter ved å bruke følgende kommando:

Terminal window
opencode agent create

Denne interaktive kommandoen vil:

  1. Spør hvor du skal lagre agenten; global eller prosjektspesifikk.
  2. Beskrivelse av hva agenten skal gjøre.
  3. Generer en passende systemmelding og identifikator.
  4. La deg velge hvilke verktøy agenten har tilgang til.
  5. Lag til slutt en nedmerkingsfil med agentkonfigurasjonen.

Brukstilfeller

Her er noen vanlige brukstilfeller for forskjellige agenter.

  • Byggagent: Fullstendig utviklingsarbeid med alle verktøy aktivert
  • Planagent: Analyse og planlegging uten å gjøre endringer
  • Anmeldelsesagent: Kodegjennomgang med skrivebeskyttet tilgang pluss dokumentasjonsverktøy
  • Feilsøkingsagent: Fokusert på etterforskning med bash og leseverktøy aktivert
  • Docs-agent: Dokumentasjonsskriving med filoperasjoner, men ingen systemkommandoer

Eksempler

Her er noen eksempler på agenter du kan finne nyttige.


Dokumentasjonsagent

~/.config/opencode/agents/docs-writer.md
---
description: Writes and maintains project documentation
mode: subagent
tools:
bash: false
---
You are a technical writer. Create clear, comprehensive documentation.
Focus on:
- Clear explanations
- Proper structure
- Code examples
- User-friendly language

Sikkerhetsrevisor

~/.config/opencode/agents/security-auditor.md
---
description: Performs security audits and identifies vulnerabilities
mode: subagent
tools:
write: false
edit: false
---
You are a security expert. Focus on identifying potential security issues.
Look for:
- Input validation vulnerabilities
- Authentication and authorization flaws
- Data exposure risks
- Dependency vulnerabilities
- Configuration security issues