Elevated-Modus (/elevated-Direktiven)

Was er bewirkt

  • /elevated on läuft auf dem Gateway-Host und behält Exec-Genehmigungen bei (identisch mit /elevated ask).
  • /elevated full läuft auf dem Gateway-Host und genehmigt Exec automatisch (überspringt Exec-Genehmigungen).
  • /elevated ask läuft auf dem Gateway-Host, behält aber Exec-Genehmigungen bei (identisch mit /elevated on).
  • on/ask erzwingen nicht exec.security=full; die konfigurierte Security-/Ask-Policy gilt weiterhin.
  • Ändert nur das Verhalten, wenn der Agent gesandboxt ist (sonst läuft Exec bereits auf dem Host).
  • Direktivenformen: /elevated on|off|ask|full, /elev on|off|ask|full.
  • Nur on|off|ask|full werden akzeptiert; alles andere gibt einen Hinweis zurück und ändert den Status nicht.

Was er steuert (und was nicht)

  • Verfügbarkeits-Gates: tools.elevated ist die globale Basis. agents.list[].tools.elevated kann Elevated pro Agent weiter einschränken (beide müssen erlauben).
  • Pro-Sitzungs-Status: /elevated on|off|ask|full setzt den Elevated-Level für den aktuellen Session-Key.
  • Inline-Direktive: /elevated on|ask|full innerhalb einer Nachricht gilt nur für diese Nachricht.
  • Gruppen: In Gruppenchats werden Elevated-Direktiven nur berücksichtigt, wenn der Agent erwähnt wird. Reine Befehlsnachrichten, die die Erwähnungsanforderung umgehen, werden als erwähnt behandelt.
  • Host-Ausführung: Elevated erzwingt exec auf dem Gateway-Host; full setzt zusätzlich security=full.
  • Genehmigungen: full überspringt Exec-Genehmigungen; on/ask berücksichtigen sie, wenn Allowlist-/Ask-Regeln dies erfordern.
  • Nicht-gesandboxte Agenten: kein Effekt auf den Ausführungsort; beeinflusst nur Gating, Logging und Status.
  • Tool-Policy gilt weiterhin: Wenn exec durch Tool-Policy verweigert wird, kann Elevated nicht verwendet werden.
  • Getrennt von /exec: /exec passt Pro-Sitzungs-Standardwerte für autorisierte Absender an und erfordert kein Elevated.

Auflösungsreihenfolge

  1. Inline-Direktive in der Nachricht (gilt nur für diese Nachricht).
  2. Sitzungs-Überschreibung (gesetzt durch Senden einer rein-direktiven Nachricht).
  3. Globaler Standard (agents.defaults.elevatedDefault in der Konfiguration).

Sitzungs-Standard setzen

  • Sende eine Nachricht, die nur die Direktive enthält (Leerzeichen erlaubt), z.B. /elevated full.
  • Eine Bestätigungsantwort wird gesendet (Elevated mode set to full... / Elevated mode disabled.).
  • Wenn Elevated-Zugriff deaktiviert ist oder der Absender nicht auf der genehmigten Allowlist steht, antwortet die Direktive mit einem umsetzbaren Fehler und ändert den Sitzungsstatus nicht.
  • Sende /elevated (oder /elevated:) ohne Argument, um den aktuellen Elevated-Level zu sehen.

Verfügbarkeit + Allowlists

  • Feature-Gate: tools.elevated.enabled (Standard kann über Konfiguration deaktiviert sein, auch wenn der Code es unterstützt).
  • Absender-Allowlist: tools.elevated.allowFrom mit Pro-Provider-Allowlists (z.B. discord, whatsapp).
  • Allowlist-Einträge ohne Präfix matchen nur absenderbezogene Identitätswerte (SenderId, SenderE164, From); Empfänger-Routing-Felder werden nie für Elevated-Autorisierung verwendet.
  • Veränderliche Absender-Metadaten erfordern explizite Präfixe:
    • name:<value> matcht SenderName
    • username:<value> matcht SenderUsername
    • tag:<value> matcht SenderTag
    • id:<value>, from:<value>, e164:<value> sind für explizites Identity-Targeting verfügbar
  • Pro-Agent-Gate: agents.list[].tools.elevated.enabled (optional; kann nur weiter einschränken).
  • Pro-Agent-Allowlist: agents.list[].tools.elevated.allowFrom (optional; wenn gesetzt, muss der Absender sowohl globale als auch pro-Agent-Allowlists matchen).
  • Discord-Fallback: Wenn tools.elevated.allowFrom.discord weggelassen wird, wird die channels.discord.allowFrom-Liste als Fallback verwendet (Legacy: channels.discord.dm.allowFrom). Setze tools.elevated.allowFrom.discord (auch []), um zu überschreiben. Pro-Agent-Allowlists verwenden den Fallback nicht.
  • Alle Gates müssen bestanden werden; andernfalls wird Elevated als nicht verfügbar behandelt.

Logging + Status

  • Elevated-Exec-Aufrufe werden auf Info-Level geloggt.
  • Der Sitzungsstatus enthält den Elevated-Modus (z.B. elevated=ask, elevated=full).