| --- |
| title: Agenter |
| description: Konfigurer og brug specialiserede agenter. |
| --- |
| |
| Agenter er specialiserede AI-assistenter, der kan konfigureres til specifikke opgaver og arbejdsgange. De giver dig mulighed for at oprette en central værktøj med brugerdefinerede prompter, modeller og værktøjsadgang. |
|
|
| :::tip |
| Brug planagenten til at analysere kode og gennemgå forslag uden at foretage nogen kodeændringer. |
| ::: |
|
|
| Du kan skifte mellem agenter under en session eller kalde dem med `@`-omtalen. |
|
|
| --- |
| |
| |
|
|
| Der er to typer agenter i OpenCode; primære agenter og subagenter. |
|
|
| --- |
| |
| |
|
|
| Primære agenter er de vigtigste assistenter, du interagerer direkte med. Du kan bladre gennem dem ved at bruge **Tab**-tasten eller din konfigurerede `switch_agent`-tastebinding. Disse agenter håndterer din hovedsamtale. Værktøjsadgang konfigureres via tilladelser - for eksempel har Build alle aktiveret, mens Plan er begrænset. |
|
|
| :::tip |
| Du kan bruge **Tab**-tasten til at skifte mellem primære agenter under en session. |
| ::: |
|
|
| OpenCode leveres med indbyggede primære agenter, **Build** og **Plan**. Vi vil |
| se på disse nedenfor. |
|
|
| --- |
| |
| |
|
|
| Subagenter er specialiserede assistenter, som primære agenter kan påbegynde sig til specifikke opgaver. Du kan også kalde dem manuelt ved at **@ nævne** dem i dine beskeder. |
|
|
| OpenCode leveres med tre indbyggede subagenter, **General**, **Explore** og **Scout**. Vi ser nærmere på dem nedenfor. |
|
|
| --- |
| |
| |
|
|
| OpenCode leveres med to indbyggede primære agenter og tre indbyggede subagenter. |
|
|
| --- |
| |
| |
|
|
| _Tilstand_: `primary` |
|
|
| Byg er den **standard** primære agent med alle aktiveret. Dette er standardagenten til udviklingsarbejde, hvor du har brug for fuld adgang til filhandlinger og systemkommandoer. |
|
|
| --- |
| |
| |
|
|
| _Tilstand_: `primary` |
|
|
| En begrænset agent designet til planlægning og analyse. Vi bruger et tilladelsessystem til at give dig mere kontrol og forhindre utilsigtede ændringer. |
| Som standard er alle følgende indstillet til `ask`: |
|
|
| - `file edits`: Alle skrivninger, patches og redigeringer |
| - `bash`: Alle bash-kommandoer |
|
|
| Denne agent er nyttig, når du vil have LLM til at analysere kode, foreslå ændringer eller oprette planer uden at foretage egentlige ændringer af din kodebase. |
|
|
| --- |
| |
| |
|
|
| _Tilstand_: `subagent` |
|
|
| En agent til generelt formål at undersøge komplekse spørgsmål og udføre opgaver i flere trin. Har fuld værktøjsadgang (undtagen todo), så den kan foretage filændringer, når det er nødvendigt. Brug dette til at køre flere arbejdsenheder parallelt. |
|
|
| --- |
| |
| |
|
|
| _Tilstand_: `subagent` |
|
|
| En hurtig, skrivebeskyttet agent til at udforske kodebaser. Kan ikke ændre filer. Brug dette, når du hurtigt skal finde filer efter mønstre, søge kode efter nøgleord eller besvare spørgsmål om kodebasen. |
|
|
| --- |
| |
| |
|
|
| _Tilstand_: `subagent` |
|
|
| En skrivebeskyttet agent til eksterne docs og research af dependencies. Brug denne, når du har brug for at klone et dependency-repository ind i OpenCode's administrerede cache, inspicere kildekoden i et bibliotek eller krydstjekke lokal kode mod upstream-implementeringer uden at ændre dit workspace. |
|
|
| --- |
| |
| |
|
|
| _Tilstand_: `primary` |
|
|
| Skjult systemagent, der komprimerer lang kontekst til et mindre resumé. Det kører automatisk, når det er nødvendigt og ikke kan vælges i brugergrænsefladen. |
|
|
| --- |
| |
| |
|
|
| _Tilstand_: `primary` |
|
|
| Skjult systemagent, der genererer korte sessionstitler. Den kører automatisk og kan ikke vælges i brugergrænsefladen. |
|
|
| --- |
| |
| |
|
|
| _Tilstand_: `primary` |
|
|
| Skjult systemagent, der opretter sessionsoversigter. Den kører automatisk og kan ikke vælges i brugergrænsefladen. |
|
|
| --- |
| |
| |
|
|
| 1. For primære agenter skal du bruge tasten **Tab** til at bladre gennem dem under en session. Du kan også bruge din konfigurerede `switch_agent` nøglebinding. |
|
|
| 2. Subagenter kan påberåbes: |
| - **Automatisk** af primære agenter til specialiserede opgaver baseret på deres beskrivelser. |
| - Manuelt ved at **@ nævne** en underagent i din besked. F.eks. |
|
|
| ```txt frame="none" |
| @general help me search for this function |
| ``` |
|
|
| 3. **Navigation mellem sessioner**: Når underagenter opretter deres egne underordnede sessioner, kan du navigere mellem den overordnede session og alle underordnede sessioner ved hjælp af: |
| - **\<Leader>+Højre** (eller din konfigurerede `session_child_cycle`-tastebinding) for at cykle fremad gennem forælder → barn1 → barn2 →... → forælder |
| - **\<Leader>+Venstre** (eller din konfigurerede `session_child_cycle_reverse`-tastebinding) for at cykle baglæns gennem forælder ← barn1 ← barn2 ←... ← forælder |
|
|
| Dette giver dig mulighed for problemfrit at skifte mellem hovedsamtalen og specialiseret subagent arbejde. |
|
|
| --- |
| |
| |
|
|
| Du kan tilpasse de indbyggede agenter eller oprette dine egne gennem konfiguration. Agenter kan konfigureres på følgende måder: |
|
|
| --- |
| |
| |
|
|
| Konfigurer agent i din `opencode.json`-konfigurationsfil: |
|
|
| ```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 |
| } |
| } |
| } |
| } |
| ``` |
|
|
| --- |
| |
| |
|
|
| Du kan også definere agenter ved hjælp af markdown-filer. Placer dem i: |
|
|
| - Globalt: `~/.config/opencode/agents/` |
| - Pr. projekt: `.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 bliver agentnavnet. For eksempel opretter `review.md` og `review`-agent. |
|
|
| --- |
| |
| |
|
|
| Lad os se nærmere på disse konfigurationsmuligheder. |
|
|
| --- |
| |
| |
|
|
| Brug indstillingen `description` til at give en kort beskrivelse af, hvad agenten gør, og hvornår den skal bruges. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "review": { |
| "description": "Reviews code for best practices and potential issues" |
| } |
| } |
| } |
| ``` |
|
|
| Dette er en **påkrævet** konfigurationsindstilling. |
|
|
| --- |
| |
| |
|
|
| Styr tilfældigheden og kreativiteten af LLMs svar med `temperature`-konfigurationen. |
|
|
| Lavere værdier gør svar mere fokuserede og deterministiske, mens højere værdier øger kreativitet og variabilitet. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "plan": { |
| "temperature": 0.1 |
| }, |
| "creative": { |
| "temperature": 0.8 |
| } |
| } |
| } |
| ``` |
|
|
| Temperaturværdier typisk fra 0,0 til 1,0: |
|
|
| - **0.0-0.2**: Meget fokuseret og deterministisk svar, ideel til kodeanalyse og planlægning |
| - **0,3-0,5**: Afbalancerede svar med en vis kreativitet, god til generelle udviklingsopgaver |
| - **0.6-1.0**: Mere kreative og varierede svar, nyttige til brainstorming og udforskning |
|
|
| ```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 angivet, bruger OpenCode modelspecifikke standardindstillinger; typisk 0 for de fleste modeller, 0,55 for Qwen-modeller. |
|
|
| --- |
| |
| |
|
|
| Kontrollerer det maksimale antal agent-gentagelser, som en agent kan udføre, før han bliver tvunget til kun at svare med tekst. Dette giver brugere, der ønsker at kontrollere, mulighed for at sætte en grænse for agenthandlinger. |
|
|
| Hvis dette ikke er indstillet, vil agenten fortsætte med at iterere, indtil modellen vælger at stoppe, eller brugeren afbryder sessionen. |
|
|
| ```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 grænsen er nået, modtager agenten en speciel systemprompt, der instruerer den om at svare med en opsummering af sit arbejde og anbefalede resterende opgaver. |
|
|
| :::caution |
| Det gamle `maxSteps`-felt er forældet. Brug `steps` i stedet. |
| ::: |
|
|
| --- |
| |
| |
|
|
| Indstil til `true` for at deaktivere agenten. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "review": { |
| "disable": true |
| } |
| } |
| } |
| ``` |
|
|
| --- |
| |
| |
|
|
| Angiv en brugerdefineret systempromptfil for denne agent med `prompt`-konfigurationen. Promptfilen skal indeholde instruktioner, der er specifikke for agentens formål. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "review": { |
| "prompt": "{file:./prompts/code-review.txt}" |
| } |
| } |
| } |
| ``` |
|
|
| Denne sti er i forhold til, hvor konfigurationsfilen er placeret. Så dette virker både for den globale OpenCode-konfiguration og den projektspecifikke konfiguration. |
|
|
| --- |
| |
| |
|
|
| Brug `model`-konfigurationen til at tilsidesætte modeller for denne agent. Nyttigt til brug af forskellige modeller optimeret til forskellige opgaver. For eksempel en hurtigere model til planlægning, en dygtig model til implementering. |
|
|
| :::tip |
| Hvis du ikke angiver en model, bruger primære agenter [model konfigureret globalt](/docs/config#models), mens subagenter vil bruge modeller for den primære agent, der påkaldte subagenten. |
| ::: |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "plan": { |
| "model": "anthropic/claude-haiku-4-20250514" |
| } |
| } |
| } |
| ``` |
|
|
| Model-id'et i din OpenCode-konfiguration brugerformatet `provider/model-id`. For eksempel, hvis du bruger [OpenCode Zen](/docs/zen), vil du bruge `opencode/gpt-5.1-codex` til GPT 5.1 Codex. |
|
|
| --- |
| |
| |
|
|
| Kontroller, hvilke værktøjer der er tilgængelige i denne agent med `tools`-konfigurationen. Du kan aktivere eller deaktivere specifikke redskaber ved at indstille 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 agentspecifikke konfiguration tilsidesætter den globale konfiguration. |
| ::: |
|
|
| Du kan også bruge jokertegn til at styre flere værktøjer på én gang. For eksempel, for at deaktivere alle værktøjer fra en MCP-server: |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "agent": { |
| "readonly": { |
| "tools": { |
| "mymcp_*": false, |
| "write": false, |
| "edit": false |
| } |
| } |
| } |
| } |
| ``` |
|
|
| [Læs mere om værktøjer](/docs/tools). |
|
|
| --- |
| |
| |
|
|
| Du kan konfigurere tilladelser til at administrere, hvilke handlinger og agenter kan udføre. I øjeblikket kan tilladelserne til værktøjerne `edit`, `bash` og `webfetch` konfigureres til: |
|
|
| - `"ask"` — Bed om godkendelse, før du kører værktøjet |
| - `"allow"` — Tillad alle operationer uden godkendelse |
| - `"deny"` — Deaktiver værktøjet |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "edit": "deny" |
| } |
| } |
| ``` |
|
|
| Du kan tilsidesætte disse tilladelser pr. 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å angive tilladelser 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 indstille tilladelser til specifikke bash-kommandoer. |
|
|
| ```json title="opencode.json" {7} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "agent": { |
| "build": { |
| "permission": { |
| "bash": { |
| "git push": "ask", |
| "grep *": "allow" |
| } |
| } |
| } |
| } |
| } |
| ``` |
|
|
| Dette kan tage et globmønster. |
|
|
| ```json title="opencode.json" {7} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "agent": { |
| "build": { |
| "permission": { |
| "bash": { |
| "git *": "ask" |
| } |
| } |
| } |
| } |
| } |
| ``` |
|
|
| Og du kan også bruge jokertegnet `*` til at administrere tilladelser for alle kommandoer. |
| Da den sidste matchningsregel har forrang, skal du sætte jokertegnet `*` først og specifikke regler efter. |
|
|
| ```json title="opencode.json" {8} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "agent": { |
| "build": { |
| "permission": { |
| "bash": { |
| "*": "ask", |
| "git status *": "allow" |
| } |
| } |
| } |
| } |
| } |
| ``` |
|
|
| [Læs mere om tilladelser](/docs/permissions). |
|
|
| --- |
| |
| |
|
|
| Styr agentens tilstand med `mode`-konfigurationen. Indstillingen `mode` bruges til at bestemme, hvordan agenten kan bruges. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "review": { |
| "mode": "subagent" |
| } |
| } |
| } |
| ``` |
|
|
| Indstillingen `mode` kan indstilles til `primary`, `subagent` eller `all`. Hvis der ikke er angivet nogen `mode`, er den som standard `all`. |
|
|
| --- |
| |
| |
|
|
| Skjul en underagent fra `@` autofuldførelsesmenuen med `hidden: true`. Nyttigt for interne underagenter, der kun bør startes programmatisk af andre agenter via opgaveværktøjet. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "internal-helper": { |
| "mode": "subagent", |
| "hidden": true |
| } |
| } |
| } |
| ``` |
|
|
| Dette påvirker kun brugerens synlighed i autofuldførelsesmenuen. Skjulte agenter kan stadig påkaldes af modellen via opgaveværktøjet, hvis tilladelser tillader det. |
|
|
| :::note |
| Gælder kun for `mode: subagent`-agent. |
| ::: |
|
|
| --- |
| |
| |
|
|
| Kontroller, hvilke subagenter en agent kan påkalde via opgaveværktøjet med `permission.task`. Bruger glob-mønstre til fleksibel matchning. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "orchestrator": { |
| "mode": "primary", |
| "permission": { |
| "task": { |
| "*": "deny", |
| "orchestrator-*": "allow", |
| "code-reviewer": "ask" |
| } |
| } |
| } |
| } |
| } |
| ``` |
|
|
| Når den er indstillet til `deny`, fjernes subagenten helt fra opgaveværktøjsbeskrivelsen, så modeller vil ikke forsøge at starte den. |
|
|
| :::tip |
| Reglerne vurderer i rækkefølge, og den **sidste matchende regel vinder**. I eksemplet ovenfor matcher `orchestrator-planner` både `*` (afvis) og `orchestrator-*` (tillad), men da `orchestrator-*` kommer efter `*`, er resultatet `allow`. |
| ::: |
|
|
| :::tip |
| Brugere kan altid påkalde enhver underagent direkte via `@` autofuldførelsesmenuen, nægt agentens opgavetilladelser ville det. |
| ::: |
|
|
| --- |
| |
| |
|
|
| Tilpas agentens visuelle udseende i brugergrænsefladen med muligheden `color`. Dette påvirker, hvordan agenter vises i grænsefladen. |
|
|
| Brug en gyldig hex-farve (f.eks. `#FF5733`) eller temafarve: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "creative": { |
| "color": "#ff6b6b" |
| }, |
| "code-reviewer": { |
| "color": "accent" |
| } |
| } |
| } |
| ``` |
|
|
| --- |
| |
| |
|
|
| Styr responsdiversiteten med `top_p`-muligheden. Alternativ til temperatur for at kontrollere tilfældighed. |
|
|
| ```json title="opencode.json" |
| { |
| "agent": { |
| "brainstorm": { |
| "top_p": 0.9 |
| } |
| } |
| } |
| ``` |
|
|
| Værdier spænder fra 0,0 til 1,0. Lavere værdier er mere fokuserede, højere værdier mere forskelligartede. |
|
|
| --- |
| |
| |
|
|
| Alle andre muligheder, du angiver i din agentkonfiguration, vil blive **overført direkte** til udbyderen som modelvalg. Dette giver dig mulighed for at bruge udbyderspecifikke funktioner og parametre. |
|
|
| For eksempel, med OpenAIs ræsoneringsmodeller kan du styre ræsonnementindsatsen: |
|
|
| ```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 yderligere muligheder er model- og udbyderspecifikke. Tjek din udbyders dokumentation for tilgængelige parametre. |
|
|
| :::tip |
| Kør `opencode models` for at se en liste over de tilgængelige modeller. |
| ::: |
|
|
| --- |
| |
| |
|
|
| Du kan oprette nye agenter ved hjælp af følgende kommando: |
|
|
| ```bash |
| opencode agent create |
| ``` |
|
|
| Denne interaktive kommando vil: |
|
|
| 1. Spørg, hvor agenten skal gemmes; globalt eller projektspecifikt. |
| 2. Beskrivelse af, hvad agenten skal gøre. |
| 3. Generer en passende systemprompt og identifikator. |
| 4. Lad dig vælge, hvilke værktøjer agenter har adgang til. |
| 5. Til sidst skal du oprette en markdown-fil med agentkonfigurationen. |
|
|
| --- |
| |
| |
|
|
| Her er nogle almindelige use cases for forskellige agenter. |
|
|
| - **Byggeagent**: Fuldt udviklingsarbejde med alle aktiveret |
| - **Planagent**: Analyse og planlægning uden ændringer |
| - **Anmeldelsesagent**: Kodegennemgang med skrivebeskyttet adgang plus dokumentationsværktøjer |
| - **Debug agent**: Fokuseret på undersøgelse med bash og læseværktøjer aktiveret |
| - **Docs-agent**: Dokumentationsskrivning med filhandlinger, men ingen systemkommandoer |
|
|
| --- |
| |
| |
|
|
| Her er nogle eksempler på agenter, du kan finde nyttige. |
|
|
| :::tip |
| Har du en agent, du gerne vil dele? [Send en PR](https://github.com/anomalyco/opencode). |
| ::: |
|
|
| --- |
| |
| |
|
|
| ```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 |
| ``` |
|
|
| --- |
| |
| |
|
|
| ```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 |
| ``` |
|
|