Deutsch
Dokumentation
Modi

Modi

Verschiedene Modi für verschiedene Anwendungsfälle.

Achtung: Modi werden jetzt über die Agent-Option in der opencode-Konfiguration konfiguriert. Die mode-Option ist veraltet. Mehr erfahren.

Modi in opencode ermöglichen es Ihnen, das Verhalten, die Werkzeuge und die Prompts für verschiedene Anwendungsfälle anzupassen.

Es gibt zwei integrierte Modi: build und plan. Sie können diese anpassen oder eigene über die opencode-Konfiguration erstellen.

Sie können während einer Sitzung zwischen Modi wechseln oder sie in Ihrer Konfigurationsdatei festlegen.


Integrierte Modi

opencode wird mit zwei integrierten Modi geliefert.

Build

Build ist der Standardmodus mit allen aktivierten Werkzeugen. Dies ist der Standardmodus für Entwicklungsarbeit, bei der Sie vollen Zugriff auf Dateioperationen und Systembefehle benötigen.

Plan

Ein eingeschränkter Modus für Planung und Analyse. Im Plan-Modus sind die folgenden Werkzeuge standardmäßig deaktiviert:

  • write – Kann keine neuen Dateien erstellen
  • edit – Kann keine bestehenden Dateien ändern, außer Dateien unter .opencode/plans/*.md, um den Plan selbst zu dokumentieren
  • patch – Kann keine Patches anwenden
  • bash – Kann keine Shell-Befehle ausführen

Dieser Modus ist nützlich, wenn Sie möchten, dass die KI Code analysiert, Änderungen vorschlägt oder Pläne erstellt, ohne tatsächliche Änderungen an Ihrer Codebasis vorzunehmen.


Wechseln

Sie können während einer Sitzung mit der Tab-Taste zwischen Modi wechseln. Oder verwenden Sie Ihre konfigurierte switch_mode-Tastenkombination.

Siehe auch: Formatierer für Informationen zur Code-Formatierungskonfiguration.


Konfigurieren

Sie können die integrierten Modi anpassen oder eigene über die Konfiguration erstellen. Modi können auf zwei Arten konfiguriert werden:

JSON-Konfiguration

Konfigurieren Sie Modi in Ihrer opencode.json-Konfigurationsdatei:

opencode.json

{
  "$schema": "https://opencode.ai/config.json",
  "mode": {
    "build": {
      "model": "anthropic/claude-sonnet-4-20250514",
      "prompt": "{file:./prompts/build.txt}",
      "tools": {
        "write": true,
        "edit": true,
        "bash": true
      }
    },
    "plan": {
      "model": "anthropic/claude-haiku-4-20250514",
      "tools": {
        "write": false,
        "edit": false,
        "bash": false
      }
    }
  }
}

Markdown-Konfiguration

Sie können Modi auch mit Markdown-Dateien definieren. Legen Sie diese ab unter:

  • Global: ~/.config/opencode/modes/
  • Projekt: .opencode/modes/

~/.config/opencode/modes/review.md

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

Der Dateiname der Markdown-Datei wird zum Modusnamen (z. B. review.md erstellt einen review-Modus).

Schauen wir uns diese Konfigurationsoptionen im Detail an.


Model

Verwenden Sie die model-Konfiguration, um das Standardmodell für diesen Modus zu überschreiben. Nützlich, um verschiedene Modelle für verschiedene Aufgaben zu verwenden. Zum Beispiel ein schnelleres Modell für die Planung, ein leistungsfähigeres Modell für die Implementierung.

opencode.json

{
  "mode": {
    "plan": {
      "model": "anthropic/claude-haiku-4-20250514"
    }
  }
}

Temperature

Steuern Sie die Zufälligkeit und Kreativität der KI-Antworten mit der temperature-Konfiguration. Niedrigere Werte machen Antworten fokussierter und deterministischer, während höhere Werte Kreativität und Variabilität erhöhen.

opencode.json

{
  "mode": {
    "plan": {
      "temperature": 0.1
    },
    "creative": {
      "temperature": 0.8
    }
  }
}

Temperature-Werte liegen typischerweise zwischen 0,0 und 1,0:

  • 0.0-0.2: Sehr fokussierte und deterministische Antworten, ideal für Codeanalyse und Planung
  • 0.3-0.5: Ausgewogene Antworten mit etwas Kreativität, gut für allgemeine Entwicklungsaufgaben
  • 0.6-1.0: Kreativere und vielfältigere Antworten, nützlich für Brainstorming und Erkundung

opencode.json

{
  "mode": {
    "analyze": {
      "temperature": 0.1,
      "prompt": "{file:./prompts/analysis.txt}"
    },
    "build": {
      "temperature": 0.3
    },
    "brainstorm": {
      "temperature": 0.7,
      "prompt": "{file:./prompts/creative.txt}"
    }
  }
}

Wenn keine Temperature angegeben ist, verwendet opencode modellspezifische Standardwerte (typischerweise 0 für die meisten Modelle, 0,55 für Qwen-Modelle).


Prompt

Geben Sie eine benutzerdefinierte System-Prompt-Datei für diesen Modus mit der prompt-Konfiguration an. Die Prompt-Datei sollte Anweisungen enthalten, die spezifisch für den Zweck des Modus sind.

opencode.json

{
  "mode": {
    "review": {
      "prompt": "{file:./prompts/code-review.txt}"
    }
  }
}

Dieser Pfad ist relativ zum Speicherort der Konfigurationsdatei. Dies funktioniert sowohl für die globale opencode-Konfiguration als auch für die projektspezifische Konfiguration.


Tools

Steuern Sie, welche Werkzeuge in diesem Modus verfügbar sind, mit der tools-Konfiguration. Sie können bestimmte Werkzeuge aktivieren oder deaktivieren, indem Sie sie auf true oder false setzen.

{
  "mode": {
    "readonly": {
      "tools": {
        "write": false,
        "edit": false,
        "bash": false,
        "read": true,
        "grep": true,
        "glob": true
      }
    }
  }
}

Wenn keine Werkzeuge angegeben sind, sind standardmäßig alle Werkzeuge aktiviert.

Verfügbare Werkzeuge

Hier sind alle Werkzeuge, die über die Modus-Konfiguration gesteuert werden können.

WerkzeugBeschreibung
bashShell-Befehle ausführen
editBestehende Dateien ändern
writeNeue Dateien erstellen
readDateiinhalte lesen
grepDateiinhalte durchsuchen
globDateien nach Muster finden
listVerzeichnisinhalte auflisten
patchPatches auf Dateien anwenden
todowriteTodo-Listen verwalten
todoreadTodo-Listen lesen
webfetchWebinhalte abrufen

Benutzerdefinierte Modi

Sie können eigene benutzerdefinierte Modi erstellen, indem Sie sie zur Konfiguration hinzufügen. Hier sind Beispiele mit beiden Ansätzen:

Mit JSON-Konfiguration

opencode.json

{
  "$schema": "https://opencode.ai/config.json",
  "mode": {
    "docs": {
      "prompt": "{file:./prompts/documentation.txt}",
      "tools": {
        "write": true,
        "edit": true,
        "bash": false,
        "read": true,
        "grep": true,
        "glob": true
      }
    }
  }
}

Mit Markdown-Dateien

Erstellen Sie Modus-Dateien in .opencode/modes/ für projektspezifische Modi oder ~/.config/opencode/modes/ für globale Modi:

.opencode/modes/debug.md

---
temperature: 0.1
tools:
  bash: true
  read: true
  grep: true
  write: false
  edit: false
---
 
You are in debug mode. Your primary goal is to help investigate and diagnose issues.
 
Focus on:
- Understanding the problem through careful analysis
- Using bash commands to inspect system state
- Reading relevant files and logs
- Searching for patterns and anomalies
- Providing clear explanations of findings
 
Do not make any changes to files. Only investigate and report.

~/.config/opencode/modes/refactor.md

---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.2
tools:
  edit: true
  read: true
  grep: true
  glob: true
---
 
You are in refactoring mode. Focus on improving code quality without changing functionality.
 
Priorities:
- Improve code readability and maintainability
- Apply consistent naming conventions
- Reduce code duplication
- Optimize performance where appropriate
- Ensure all tests continue to pass

Anwendungsfälle

Hier sind einige häufige Anwendungsfälle für verschiedene Modi.

  • Build-Modus: Vollständige Entwicklungsarbeit mit allen aktivierten Werkzeugen
  • Plan-Modus: Analyse und Planung ohne Änderungen vorzunehmen
  • Review-Modus: Code-Review mit Lesezugriff plus Dokumentationswerkzeugen
  • Debug-Modus: Fokussiert auf Untersuchung mit aktivierten Bash- und Lese-Werkzeugen
  • Docs-Modus: Dokumentation schreiben mit Dateioperationen, aber ohne Systembefehle

Sie werden möglicherweise feststellen, dass verschiedene Modelle für verschiedene Anwendungsfälle besser geeignet sind.