diff options
Diffstat (limited to 'packages/web/src/content/docs/nb/agents.mdx')
| -rw-r--r-- | packages/web/src/content/docs/nb/agents.mdx | 747 |
1 files changed, 747 insertions, 0 deletions
diff --git a/packages/web/src/content/docs/nb/agents.mdx b/packages/web/src/content/docs/nb/agents.mdx new file mode 100644 index 000000000..1a0c3f076 --- /dev/null +++ b/packages/web/src/content/docs/nb/agents.mdx @@ -0,0 +1,747 @@ +--- +title: Agenter +description: 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. + +:::tupp +Bruk planagenten til å analysere kode og gjennomgå forslag uten å gjøre noen kodeendringer. +::: + +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. + +:::tupp +Du kan bruke **Tab**-tasten for å bytte mellom primære agenter under en økt. +::: + +OpenCode kommer med to innebygde primære agenter, **Build** og **Plan**. Godt +se 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` + +Bygg 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 generelt + +_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 utforske + +_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 komprimering + +_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 tittel + +_Modus_: `primary` + +Skjult systemagent som genererer korte økttitler. Den kjører automatisk og kan ikke velges i UI. + +--- + +### Bruk sammendrag + +_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. + + ```txt frame="none" + @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>+Høyre** (eller din konfigurerte `session_child_cycle`-tastebinding) for å gå videre gjennom forelder → barn1 → barn2 → ... → forelder + - **\<Leader>+Venstre** (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`: + +```json title="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/` + +```markdown title="~/.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. + +```json title="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. + +```json title="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 + +```json title="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. + +```json title="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. + +:::forsiktighet +Det gamle `maxSteps`-feltet er avviklet. Bruk `steps` i stedet. +::: + +--- + +### Deaktiver + +Sett til `true` for å deaktivere agenten. + +```json title="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. + +```json title="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. + +:::tupp +Hvis du ikke spesifiserer en modell, bruker primæragenter [modell globalt konfigurert](/docs/config#models) mens subagenter vil bruke modellen til primæragenten som påkalte subagenten. +::: + +```json title="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](/docs/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`. + +```json title="opencode.json" {3-6,9-12} +{ + "$schema": "https://opencode.ai/config.json", + "tools": { + "write": true, + "bash": true + }, + "agent": { + "plan": { + "tools": { + "write": false, + "bash": false + } + } + } +} +``` + +:::note +Den agentspesifikke konfigurasjonen overstyrer den globale konfigurasjonen. +::: + +Du kan også bruke jokertegn for å kontrollere flere verktøy samtidig. For eksempel, for å deaktivere alle verktøy fra en MCP-server: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "readonly": { + "tools": { + "mymcp_*": false, + "write": false, + "edit": false + } + } + } +} +``` + +[Finn ut mer om verktøy](/docs/tools). + +--- + +### 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 + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "deny" + } +} +``` + +Du kan overstyre disse tillatelsene per agent. + +```json title="opencode.json" {3-5,8-10} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "deny" + }, + "agent": { + "build": { + "permission": { + "edit": "ask" + } + } + } +} +``` + +Du kan også angi tillatelser i Markdown-agenter. + +```markdown title="~/.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. + +```json title="opencode.json" {7} +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "build": { + "permission": { + "bash": { + "git push": "ask", + "grep *": "allow" + } + } + } + } +} +``` + +Dette kan ta et globmønster. + +```json title="opencode.json" {7} +{ + "$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. + +```json title="opencode.json" {8} +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "build": { + "permission": { + "bash": { + "*": "ask", + "git status *": "allow" + } + } + } + } +} +``` + +[Finn ut mer om tillatelser](/docs/permissions). + +--- + +### Modus + +Kontroller agentens modus med `mode`-konfigurasjonen. Alternativet `mode` brukes til å bestemme hvordan agenten kan brukes. + +```json title="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. + +```json title="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. + +:::note +Gjelder kun `mode: subagent`-agenter. +::: + +--- + +### Oppgavetillatelser + +Kontroller hvilke subagenter en agent kan påkalle via oppgaveverktøyet med `permission.task`. Bruker glob-mønstre for fleksibel matching. + +```json title="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. + +:::tupp +Reglene evalueres i rekkefølge, og den **siste samsvarsregelen vinner**. I eksemplet ovenfor samsvarer `orchestrator-planner` med både `*` (avslå) og `orchestrator-*` (tillat), men siden `orchestrator-*` kommer etter `*`, er resultatet `allow`. +::: + +:::tupp +Brukere kan alltid starte en hvilken som helst underagent direkte via `@` autofullføringsmenyen, selv om agentens oppgavetillatelser ville nekte det. +::: + +--- + +### 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`. + +```json title="opencode.json" +{ + "agent": { + "creative": { + "color": "#ff6b6b" + }, + "code-reviewer": { + "color": "accent" + } + } +} +``` + +--- + +### Topp P + +Kontroller responsmangfoldet med alternativet `top_p`. Alternativ til temperatur for å kontrollere tilfeldighet. + +```json title="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: + +```json title="opencode.json" {6,7} +{ + "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. + +:::tupp +Kjør `opencode models` for å se en liste over tilgjengelige modeller. +::: + +--- + +## Opprett agenter + +Du kan opprette nye agenter ved å bruke følgende kommando: + +```bash +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. + +:::tupp +Har du en agent du vil dele? [Send inn en PR](https://github.com/anomalyco/opencode). +::: + +--- + +### Dokumentasjonsagent + +```markdown title="~/.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 + +```markdown title="~/.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 +``` |
