Zum Inhalt springen

Agent-Delegation aus dem Chat freischalten

Admin

Das Chat-LLM (der allgemeine Chat-Assistent) kann admin-freigeschaltete Spezial-Agenten als benannte Tools aufrufen — eine Recherche an einen Research-Agenten delegieren, durch einen Review-Agenten verifizieren lassen oder einen Agenten Schreibaktionen vorbereiten lassen, die der Benutzer im Chat bestätigt. Dieser Artikel erklärt, wie Sie das freischalten und absichern.

Es gibt zwei ähnlich benannte Features, die leicht verwechselt werden:

FeatureWas es istSchicht
Agents in ChatEin Agent bekommt einen eigenen Kontakt im Benutzer-zu-Benutzer-Messaging und wird wie ein Kollege per DM angesprochen.Messaging (Mode = ChatMessage)
Agent-Delegation aus dem Chat (dieser Artikel)Das Chat-LLM ruft Spezial-Agenten als Tools im normalen Chat-Assistenten auf.LLM-Chat-View (Mode = ChatDelegated)

Beide nutzen denselben Agent-Runner, sind aber unterschiedliche Einstiegspunkte.

Globaler Killswitch — Agents:ChatDelegationEnabled

Section titled “Globaler Killswitch — Agents:ChatDelegationEnabled”

Schaltet die Chat-Delegation instanzweit an oder aus. Setzbar über die Umgebungsvariable Agents__ChatDelegationEnabled oder Administration → Systemeinstellungen.

  • Mode-abhängiger Default: Desktop = an, Web = aus. Web-Deployments müssen die Delegation also bewusst aktivieren.
  • Ist der Killswitch aus, wird kein Delegations-Tool materialisiert (auch verified_research nicht).

Web zuerst aktivieren: Im Web-Modus passiert ohne diesen Schalter nichts, egal wie die Agenten konfiguriert sind.

Im Agenten-Detail (Administration → Agenten, Reiter Werkzeuge) im Block „Im Chat verfügbar”:

FeldBedeutungDefault
ExposeInChatSchaltet den Agenten als Chat-Delegations-Tool frei.aus
ChatToolNameTool-Name, Slug-Form ^[a-z0-9_]+$, vaultweit eindeutig. Leer ⇒ automatisch slug(Agentenname).leer
ChatToolDescriptionTool-Beschreibung, die das LLM sieht — sie steuert, wann das LLM delegiert.leer

Ablauf:

  1. Killswitch prüfen (Web: auf an).
  2. ExposeInChat aktivieren.
  3. ChatToolName setzen (z. B. research_pharma) — oder leer lassen für den Auto-Slug.
  4. ChatToolDescription präzise formulieren — das LLM entscheidet anhand dieser Beschreibung, ob es delegiert.
  5. Speichern. Das Tool ist sofort im Chat verfügbar.

Slug-Form und Eindeutigkeit werden serverseitig in allen Schreibpfaden erzwungen — ein doppelter ChatToolName wird abgelehnt.

Sync-Cap — Agents:ChatDelegationCapSeconds

Section titled “Sync-Cap — Agents:ChatDelegationCapSeconds”

Wie lange eine Delegation synchron auf das Ergebnis des Sub-Laufs wartet, bevor sie auf Nachhol-Betrieb umschaltet. Default 75 s.

  • Innerhalb des Caps fertig ⇒ Ergebnis kommt direkt in die Antwort.
  • Cap überschritten ⇒ der Lauf läuft im Hintergrund weiter; das LLM holt das Ergebnis später per internem Re-Poll (check_agent_run) ab.

Der Wert wird intern gegen das Chat-Tool-Timeout geklemmt, damit der Wait sein „läuft noch”-Handle zurückgibt, bevor der Tool-Dispatcher den Aufruf abräumt.

Enthält ein delegierter Agent Write-Tools, erscheint im Agent-Detail ein Hinweis-Banner: Jeder Write-Tool-Call eines delegierten Laufs wird im Chat bestätigungspflichtig.

  • Phase 1 (Default, Trockenlauf): Reads werden ausgeführt, Writes werden unterdrückt und gesammelt. Wurden Writes geplant, legt der Assistent dem Benutzer eine Plan-Liste vor und fragt nach Zustimmung. Wurde nichts geschrieben, ist das Trockenlauf-Ergebnis bereits das Endergebnis (reine Lese-Delegation läuft ohne Rückfrage durch).
  • Phase 2 (nach „Ja”): Der Lauf läuft scharf, Writes werden ausgeführt.

Ein delegierter Agent kann also nie unbestätigt schreiben.

Ein optionales Configured-Tool vom Typ VerifiedResearch: Es verkettet ein admin-gewähltes Research-/Review-Agentenpaar deterministisch (Research → Review → ggf. Revision). Der Review-Schritt ist nicht überspringbar. Wird wie andere konfigurierbare Werkzeuge angelegt. → Konfigurierbare Werkzeuge

  • Identität: Der Sub-Lauf läuft mit der Identität und den Rechten des Chat-Benutzers (RunAsUserIdOverride == chatUser), nie erhöht. Ein delegierter Agent kann nichts sehen oder tun, was der auslösende Benutzer nicht selbst darf — die nicht verhandelbare Kern-Absicherung.
  • Opt-in pro Agent: ExposeInChat ist per Default aus; kein Agent wird versehentlich exponiert.
  • Feste Limits (Code-Konstanten, kein Setting): maximale Delegationstiefe 2 (ein delegierter Agent kann selbst noch eine Ebene delegieren) und maximal 3 Delegationen pro Chat-Schritt — Bremse gegen Rekursion und Kostenexplosion.

Jeder delegierte Lauf erscheint unter Administration → Agenten → Läufe mit Mode = ChatDelegated, Origin = chat-delegation und dem ParentRunId des auslösenden Laufs. → Audit-Log

  • Kein automatisches Nachliefern (Async-Push): Bei langen Läufen muss das Ergebnis im Chat nachgefragt werden; es erscheint (noch) nicht von selbst.
  • Cap-Exceeded im Trockenlauf: Reißt ein Trockenlauf den Cap, kommt das Ergebnis als Text — die maschinenlesbare Plan-Liste geht in diesem Randfall verloren. Sicherheit bleibt gewahrt, da im Trockenlauf ohnehin kein Write ausgeführt wird.