Zum Inhalt springen

Agents

Konfigurieren und verwenden Sie spezialisierte Agenten.

Agents sind spezialisierte KI-Assistenten, die fur spezifische Aufgaben und Workflows konfiguriert werden konnen. Sie ermoglichen es Ihnen, fokussierte Tools mit benutzerdefinierten Prompts, Modellen und Tool-Zugriff zu erstellen.

Sie konnen wahrend einer Sitzung zwischen Agents wechseln oder sie mit der @-Erwahnung aufrufen.


Typen

Es gibt zwei Arten von Agents in OpenCode; primare Agents und Subagents.


Primare Agents

Primare Agents sind die Hauptassistenten, mit denen Sie direkt interagieren. Sie konnen mit der Tab-Taste oder Ihrem konfigurierten switch_agent-Keybind zwischen ihnen wechseln. Diese Agents verwalten Ihr Hauptgesprach und konnen auf alle konfigurierten Tools zugreifen.

OpenCode wird mit zwei integrierten primaren Agents geliefert, Build und Plan. Wir werden uns diese unten ansehen.


Subagents

Subagents sind spezialisierte Assistenten, die primare Agents fur spezifische Aufgaben aufrufen konnen. Sie konnen sie auch manuell aufrufen, indem Sie sie in Ihren Nachrichten @ erwahnen.

OpenCode wird mit zwei integrierten Subagents geliefert, General und Explore. Wir werden uns dies unten ansehen.


Integriert

OpenCode wird mit zwei integrierten primaren Agents und zwei integrierten Subagents geliefert.


Build

Modus: primary

Build ist der standardmabige primare Agent mit allen aktivierten Tools. Dies ist der Standard-Agent fur Entwicklungsarbeiten, bei denen Sie vollstandigen Zugriff auf Dateioperationen und Systembefehle benotigen.


Plan

Modus: primary

Ein eingeschrankter Agent, der fur Planung und Analyse konzipiert ist. Wir verwenden ein Berechtigungssystem, um Ihnen mehr Kontrolle zu geben und unbeabsichtigte Anderungen zu verhindern. Standardmabig ist folgendes auf ask eingestellt:

  • Dateibearbeitungen: Alle Schreib-, Patch- und Editiervorgange
  • bash: Alle Bash-Befehle

Dieser Agent ist nutzlich, wenn Sie mochten, dass das LLM Code analysiert, Anderungen vorschlagt oder Plane erstellt, ohne tatsachliche Anderungen an Ihrer Codebase vorzunehmen.


General

Modus: subagent

Ein Allzweck-Agent fur die Untersuchung komplexer Fragen, die Suche nach Code und die Ausfuhrung mehrschrittiger Aufgaben. Verwenden Sie dies beim Suchen nach Schlusselwortern oder Dateien, wenn Sie nicht sicher sind, dass Sie im ersten Versuch die richtige Ubereinstimmung finden.


Explore

Modus: subagent

Ein schneller Agent, der fur die Erkundung von Codebasen spezialisiert ist. Verwenden Sie dies, wenn Sie schnell Dateien nach Mustern finden, Code nach Schlusselwortern suchen oder Fragen zur Codebase beantworten mochten.


Verwendung

  1. Fur primare Agents verwenden Sie die Tab-Taste, um wahrend einer Sitzung zwischen ihnen zu wechseln. Sie konnen auch Ihr konfiguriertes switch_agent-Keybind verwenden.

  2. Subagents konnen aufgerufen werden:

    • Automatisch von primaren Agents fur spezialisierte Aufgaben basierend auf deren Beschreibungen.

    • Manuell durch @ Erwahnen eines Subagents in Ihrer Nachricht. Zum Beispiel.

      @general hilf mir, diese Funktion zu suchen
  3. Navigation zwischen Sitzungen: Wenn Subagents ihre eigenen untergeordneten Sitzungen erstellen, konnen Sie zwischen der ubergeordneten Sitzung und allen untergeordneten Sitzungen navigieren, indem Sie verwenden:

    • <Leader>+Right (oder Ihr konfiguriertes session_child_cycle-Keybind) um vorwarts zu zyklisieren uber parent -> child1 -> child2 -> … -> parent
    • <Leader>+Left (oder Ihr konfiguriertes session_child_cycle_reverse-Keybind) um ruckwarts zu zyklisieren uber parent <- child1 <- child2 <- … <- parent

    Dies ermoglicht es Ihnen, nahtlos zwischen dem Hauptgesprach und der spezialisierten Subagent-Arbeit zu wechseln.


Konfigurieren

Sie konnen die integrierten Agents anpassen oder Ihre eigenen durch Konfiguration erstellen. Agents konnen auf zwei Arten konfiguriert werden:


JSON

Konfigurieren Sie Agents in Ihrer opencode.json-Konfigurationsdatei:

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": "Uberpruft Code auf Best Practices und potenzielle Probleme",
"mode": "subagent",
"model": "anthropic/claude-sonnet-4-20250514",
"prompt": "Sie sind ein Code-Reviewer. Konzentrieren Sie sich auf Sicherheit, Leistung und Wartbarkeit.",
"tools": {
"write": false,
"edit": false
}
}
}
}

Markdown

Sie konnen Agents auch mit Markdown-Dateien definieren. Platzieren Sie sie in:

  • Global: ~/.config/opencode/agent/
  • Projektbezogen: .opencode/agent/
~/.config/opencode/agent/review.md
---
description: Uberpruft Code auf Qualitat und Best Practices
mode: subagent
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
write: false
edit: false
bash: false
---
Sie sind im Code-Review-Modus. Konzentrieren Sie sich auf:
- Codequalitat und Best Practices
- Potenzielle Bugs und Grenzfalle
Leistungsauswirkungen
- Sicherheitsuberlegungen
Geben Sie konstruktives Feedback, ohne direkte Anderungen vorzunehmen.

Der Markdown-Dateiname wird zum Agent-Namen. Zum Beispiel erstellt review.md einen review-Agenten.


Optionen

Lassen Sie uns diese Konfigurationsoptionen im Detail betrachten.


Beschreibung

Verwenden Sie die Option description, um eine kurze Beschreibung bereitzustellen, was der Agent tut und wann er verwendet werden soll.

opencode.json
{
"agent": {
"review": {
"description": "Uberpruft Code auf Best Practices und potenzielle Probleme"
}
}
}

Dies ist eine erforderliche Konfigurationsoption.


Temperatur

Steuern Sie die Zufalligkeit und Kreativitat der LLM-Antworten mit der Konfiguration temperature.

Niedrigere Werte machen Antworten fokussierter und deterministischer, wahrend hohere Werte die Kreativitat und Variabilitat erhohen.

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

Temperaturwerte reichen typischerweise von 0,0 bis 1,0:

  • 0,0-0,2: Sehr fokussierte und deterministische Antworten, ideal fur Codeanalyse und Planung
  • 0,3-0,5: Ausgewogene Antworten mit etwas Kreativitat, gut fur allgemeine Entwicklungsaufgaben
  • 0,6-1,0: Kreativere und vielfaltigere Antworten, nutzlich fur Brainstorming und Erkundung
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}"
}
}
}

Wenn keine Temperatur angegeben ist, verwendet OpenCode modellspezifische Standardwerte; typischerweise 0 fur die meisten Modelle, 0,55 fur Qwen-Modelle.


Max Schritte

Steuern Sie die maximale Anzahl von Agenten-Iterationen, die ein Agent ausfuhren kann, bevor er gezwungen wird, nur mit Text zu antworten. Dies ermoglicht Benutzern, die Kosten kontrollieren mochten, eine Grenze fur Agenten-Aktionen festzulegen.

Wenn dies nicht festgelegt ist, wird der Agent weiterhin iterieren, bis das Modell beschliebt, zu stoppen, oder der Benutzer die Sitzung unterbricht.

opencode.json
{
"agent": {
"quick-thinker": {
"description": "Schnelles Denken mit begrenzten Iterationen",
"prompt": "Sie sind ein schneller Denker. Losen Sie Probleme mit minimalen Schritten.",
"maxSteps": 5
}
}
}

Wenn die Grenze erreicht ist, erhalt der Agent einen speziellen System-Prompt, der ihn anweist, mit einer Zusammenfassung seiner Arbeit und empfohlenen verbleibenden Aufgaben zu antworten.


Deaktivieren

Auf true setzen, um den Agenten zu deaktivieren.

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

Prompt

Geben Sie eine benutzerdefinierte System-Prompt-Datei fur diesen Agenten mit der Konfiguration prompt an. Die Prompt-Datei sollte Anweisungen enthalten, die spezifisch fur den Zweck des Agents sind.

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

Dieser Pfad ist relativ zum Speicherort der Konfigurationsdatei. Dies funktioniert also sowohl fur die globale OpenCode-Konfiguration als auch fur die projektspezifische Konfiguration.


Modell

Verwenden Sie die Konfiguration model, um das Modell fur diesen Agenten zu uberschreiben. Nutzlich fur die Verwendung verschiedener Modelle, die fur verschiedene Aufgaben optimiert sind. Zum Beispiel ein schnelleres Modell fur Planung, ein fahigeres Modell fur Implementierung.

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

Die Modell-ID in Ihrer OpenCode-Konfiguration verwendet das Format anbieter/modell-id. Wenn Sie beispielsweise OpenCode Zen verwenden, wurden Sie opencode/gpt-5.1-codex fur GPT 5.1 Codex verwenden.


Tools

Steuern Sie, welche Tools in diesem Agenten verfugbar sind, mit der Konfiguration tools. Sie konnen spezifische Tools aktivieren oder deaktivieren, indem Sie sie auf true oder false setzen.

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

Sie konnen auch Platzhalter verwenden, um mehrere Tools gleichzeitig zu steuern. Um beispielsweise alle Tools von einem MCP-Server zu deaktivieren:

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

Weitere Informationen uber Tools.


Berechtigungen

Sie konnen Berechtigungen konfigurieren, um zu steuern, welche Aktionen ein Agent ausfuhren kann. Derzeit konnen die Berechtigungen fur die Tools edit, bash und webfetch konfiguriert werden fur:

  • "ask" - Vor dem Ausfuhren des Tools nach Genehmigung fragen
  • "allow" - Alle Operationen ohne Genehmigung zulassen
  • "deny" - Tool deaktivieren
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny"
}
}

Sie konnen diese Berechtigungen pro Agent uberschreiben.

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

Sie konnen auch Berechtigungen in Markdown-Agents festlegen.

~/.config/opencode/agent/review.md
---
description: Code-Review ohne Bearbeitungen
mode: subagent
permission:
edit: deny
bash:
"*": ask
"git diff": allow
"git log*": allow
webfetch: deny
---
Nur Code analysieren und Anderungen vorschlagen.

Sie konnen Berechtigungen fur spezifische Bash-Befehle festlegen.

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

Dies kann ein Glob-Muster annehmen.

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

Und Sie konnen auch den Platzhalter * verwenden, um Berechtigungen fur alle Befehle zu verwalten. Da die letzte ubereinstimmende Regel Vorrang hat, setzen Sie den Platzhalter * zuerst und spezifische Regeln danach.

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

Weitere Informationen uber Berechtigungen.


Modus

Steuern Sie den Modus des Agents mit der Konfiguration mode. Die Option mode wird verwendet, um zu bestimmen, wie der Agent verwendet werden kann.

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

Die Option mode kann auf primary, subagent oder all eingestellt werden. Wenn kein mode angegeben ist, ist er standardmabig all.


Versteckt

Verbergen Sie einen Subagenten im @-Autocomplete-Menü mit hidden: true. Nutzlich fur interne Subagents, die nur programmgesteuert von anderen Agents uber das Task-Tool aufgerufen werden sollten.

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

Dies betrifft nur die Benutzersichtbarkeit im Autocomplete-Menü. Versteckte Agents konnen vom Modell immer noch uber das Task-Tool aufgerufen werden, wenn Berechtigungen dies zulassen.


Aufgabenberechtigungen

Steuern Sie, welche Subagents ein Agent uber das Task-Tool aufrufen kann, mit permission.task. Verwendet Glob-Muster fur flexible Ubereinstimmung.

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

Wenn auf deny eingestellt, wird der Subagent vollstandig aus der Task-Tool-Beschreibung entfernt, sodass das Modell nicht versuchen wird, ihn aufzurufen.


Zusatzlich

Alle anderen Optionen, die Sie in Ihrer Agentenkonfiguration angeben, werden direkt weitergegeben an den Anbieter als Modelloptionen. Dies ermoglicht es Ihnen, anbieterspezifische Funktionen und Parameter zu verwenden.

Zum Beispiel konnen Sie mit OpenAIs Reasoning-Modellen den Reasoning-Aufwand steuern:

opencode.json
{
"agent": {
"deep-thinker": {
"description": "Agent, der hohen Reasoning-Aufwand fur komplexe Probleme verwendet",
"model": "openai/gpt-5",
"reasoningEffort": "high",
"textVerbosity": "low"
}
}
}

Diese zusatzlichen Optionen sind modell- und anbieterspezifisch. Konsultieren Sie die Dokumentation Ihres Anbieters fur verfugbare Parameter.


Agents erstellen

Sie konnen neue Agents mit dem folgenden Befehl erstellen:

Terminal-Fenster
opencode agent create

Dieser interaktive Befehl wird:

  1. Fragen, wo der Agent gespeichert werden soll; global oder projektspezifisch.
  2. Beschreibung dessen, was der Agent tun soll.
  3. Einen entsprechenden System-Prompt und Bezeichner generieren.
  4. Sie auswahlen lassen, auf welche Tools der Agent zugreifen kann.
  5. SchlieBlich eine Markdown-Datei mit der Agentenkonfiguration erstellen.

Anwendungsfalle

Hier sind einige gangige Anwendungsfalle fur verschiedene Agents.

  • Build-Agent: Vollstandige Entwicklungsarbeit mit allen aktivierten Tools
  • Plan-Agent: Analyse und Planung ohne Anderungen vorzunehmen
  • Review-Agent: Code-Review mit schreibgeschutztem Zugriff plus Dokumentationstools
  • Debug-Agent: Fokussiert auf Untersuchung mit aktivierten Bash- und Lesetools
  • Dokumentations-Agent: Dokumentationsschreibung mit Dateioperationen aber ohne Systembefehle

Beispiele

Hier sind einige Beispiel-Agents, die Sie nutzlich finden konnten.


Dokumentations-Agent

~/.config/opencode/agent/docs-writer.md
---
description: Schreibt und pflegt Projektdokumentation
mode: subagent
tools:
bash: false
---
Sie sind ein technischer Redakteur. Erstellen Sie klare, umfassende Dokumentation.
Konzentrieren Sie sich auf:
- Klare Erklarungen
- Angemessene Struktur
- Codebeispiele
- Benutzerfreundliche Sprache

Sicherheitsauditor

~/.config/opencode/agent/security-auditor.md
---
description: Fuhrt Sicherheitsaudits durch und identifiziert Schwachstellen
mode: subagent
tools:
write: false
edit: false
---
Sie sind ein Sicherheitsexperte. Konzentrieren Sie sich auf die Identifizierung potenzieller Sicherheitsprobleme.
Suchen Sie nach:
- Eingabevalidierungs-Schwachstellen
- Authentifizierungs- und Autorisierungsschwachen
- Datenexpositionsrisiken
- Abhangigkeits-Schwachstellen
- Konfigurationssicherheitsprobleme