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:
{
"$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:
| Aktion | Ressource | Beschreibung |
|---|---|---|
provider.use | Anbieter-ID, z. B. openai | Erlaubt 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:
{
"$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:
{
"$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:
{
"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:
{
"experimental": {
"policies": [
{ "effect": "deny", "action": "provider.use", "resource": "*" },
{ "effect": "allow", "action": "provider.use", "resource": "anthropic" },
{ "effect": "allow", "action": "provider.use", "resource": "openai" }
]
}
}