Deutsch
Dokumentation
Richtlinien

Richtlinien

Steuern Sie, welche konfigurierten Ressourcen OpenCode verwenden darf.

Richtlinien legen fest, ob OpenCode eine Aktion für eine benannte Ressource ausführen darf. Diese Funktion ist experimentell und wird über das Array experimental.policies in opencode.json konfiguriert.

Richtlinien sind von Berechtigungen getrennt. Berechtigungen steuern, was Tools während einer Sitzung tun dürfen, während Richtlinien steuern, ob OpenCode eine Ressource wie einen LLM-Anbieter verwenden darf.


Konfiguration

Jede Richtlinienanweisung hat drei Felder:

  • effect – Entweder "allow" oder "deny".
  • action – Der zu steuernde Vorgang.
  • resource – Die Ressourcen-ID oder das Wildcard-Muster, für das die Anweisung gilt.

Zum Beispiel die Verwendung des Anbieters openai verweigern:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "experimental": {
    "policies": [
      {
        "effect": "deny",
        "action": "provider.use",
        "resource": "openai"
      }
    ]
  }
}

Ein durch eine Richtlinie verweigerter Anbieter steht weder für die Modellauswahl noch für die Modellnutzung zur Verfügung, selbst wenn er über Zugangsdaten verfügt oder anderweitig korrekt konfiguriert ist.


Verfügbare Richtlinien

OpenCode unterstützt derzeit eine Richtlinienaktion:

AktionRessourceBeschreibung
provider.useAnbieter-ID, z. B. openaiErlaubt oder verweigert die Nutzung eines LLM-Anbieters.

In Zukunft können weitere Richtlinienaktionen hinzugefügt werden.


Abgleich

Das Feld resource unterstützt Wildcard-Abgleich. Verwenden Sie *, um null oder mehr Zeichen zu erfassen, und ?, um genau ein Zeichen zu erfassen.

Zum Beispiel:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "experimental": {
    "policies": [
      {
        "effect": "deny",
        "action": "provider.use",
        "resource": "company-*"
      }
    ]
  }
}

Dies verweigert Anbieter wie company-us und company-eu.


Regelreihenfolge

Wenn mehrere Anweisungen zutreffen, gewinnt die zuletzt zutreffende Anweisung. Platzieren Sie allgemeine Regeln zuerst und fügen Sie spezifischere Ausnahmen danach hinzu.

Zum Beispiel nur Anthropic erlauben:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "experimental": {
    "policies": [
      {
        "effect": "deny",
        "action": "provider.use",
        "resource": "*"
      },
      {
        "effect": "allow",
        "action": "provider.use",
        "resource": "anthropic"
      }
    ]
  }
}

Trifft keine Richtlinie auf einen Anbieter zu, ist die Nutzung standardmäßig erlaubt.

Richtlinien können sowohl in Ihrer globalen als auch in Ihrer Projektkonfiguration festgelegt werden. Wenn Richtlinien aus beiden Quellen auf denselben Anbieter zutreffen, hat Ihre globale Richtlinie Vorrang vor der Projektrichtlinie. Dies verhindert, dass ein Repository einen Anbieter wieder aktiviert, den Sie global verweigert haben.


Anbieterlisten

Verwenden Sie Richtlinien anstelle der älteren Einstellungen disabled_providers und enabled_providers, um den Anbieterzugriff zu steuern.

Um disabled_providers zu ersetzen:

opencode.json
{
  "experimental": {
    "policies": [
      { "effect": "deny", "action": "provider.use", "resource": "openai" },
      { "effect": "deny", "action": "provider.use", "resource": "google" }
    ]
  }
}

Um enabled_providers zu ersetzen, verweigern Sie zunächst alle Anbieter und erlauben Sie danach die ausgewählten Anbieter:

opencode.json
{
  "experimental": {
    "policies": [
      { "effect": "deny", "action": "provider.use", "resource": "*" },
      { "effect": "allow", "action": "provider.use", "resource": "anthropic" },
      { "effect": "allow", "action": "provider.use", "resource": "openai" }
    ]
  }
}