Human-in-the-Loop Architecture: Wenn Menschen Agentenentscheidungen prüfen

Eine gesteuerte Architekturschicht, die riskante Aktionen vor der Ausfuehrung in den Modus menschlicher Freigabe ueberfuehrt.
Auf dieser Seite
  1. Idee in 30 Sekunden
  2. Problem
  3. Loesung
  4. Wie Human-in-the-Loop Architecture funktioniert
  5. Im Code sieht das so aus
  6. So sieht es zur Laufzeit aus
  7. Wann es passt - und wann nicht
  8. Passt
  9. Passt nicht
  10. Typische Probleme und Ausfaelle
  11. Wie es mit anderen Patterns zusammenspielt
  12. Unterschied zu Supervisor Agent
  13. Kurz
  14. FAQ
  15. Was als Naechstes

Idee in 30 Sekunden

Human-in-the-Loop Architecture ist ein gesteuertes Schema, bei dem das System vor der Ausfuehrung einer riskanten Aktion einen Menschen einbezieht.

Der Agent kann eine action vorschlagen, aber die finale Entscheidung fuer kritische Schritte trifft ein Mensch: approve, reject oder revise.

Das ist keine manuelle Steuerung jedes Schritts. Ein Mensch wird nur dort eingebunden, wo das Risiko wirklich hoch ist.

Wann noetig: wenn Agentenaktionen den Zustand aendern, Geld ausgeben, sensible Daten betreffen oder rechtliches Risiko erzeugen koennen.

Das LLM darf kritische side effects (Zustandsaenderungen) nicht eigenstaendig ausfuehren. Es schlaegt nur eine Aktion vor, und das System ueberfuehrt sie in einen kontrollierten Freigabeprozess.


Problem

Ohne Human-in-the-Loop geraet ein System oft in eines von zwei Extremen:

  • entweder handelt der Agent zu autonom;
  • oder das Team prueft fast alles manuell und verliert Geschwindigkeit.

Typische Ausfaelle ohne klare HITL-Schicht:

  • eine riskante Aktion wird ohne Freigabe ausgefuehrt;
  • es ist nicht sichtbar, wer eine Aktion warum freigegeben hat;
  • es ist schwer, Folgen eines Fehlers rueckgaengig zu machen oder zu erklaeren;
  • der Eskalationsprozess unterscheidet sich zwischen Teams und wird chaotisch.

In production fuehrt das zu Incidents, langsamen Releases oder schwacher Auditierbarkeit.

Loesung

Human-in-the-Loop Architecture als explizite Freigabegrenze (approval boundary) zwischen Agentenentscheidung und tatsaechlicher Aktionsausfuehrung hinzufuegen.

Diese Schicht definiert:

  • welche Aktionen ohne Freigabe laufen;
  • welche Aktionen menschliche Bestaetigung brauchen;
  • wie approve, reject, revise und timeout behandelt werden.

Analogie: wie doppelte Freigabe in Finanzoperationen.

Das System kann eine Zahlung vorbereiten, aber bei grosser Summe ist die Bestaetigung einer verantwortlichen Person noetig.

Human-in-the-Loop funktioniert genauso: wichtige Schritte werden nicht automatisch ausgefuehrt.

Wie Human-in-the-Loop Architecture funktioniert

Human-in-the-Loop Architecture ist eine gesteuerte Schicht zwischen Agent Runtime und Aktionsausfuehrung, die kritische Schritte in menschliche Freigabe ueberfuehrt.

Diagram
Beschreibung des kompletten Flows: Detect → Escalate → Review → Enforce → Resume

Detect
Runtime oder die policy-Schicht bestimmt, dass die Aktion riskant ist und Freigabe benoetigt.

Escalate
Das System erstellt eine Freigabeanfrage: was der Agent tun will, warum, welche Risiken bestehen und welcher Kontext vorliegt.

Review
Ein Mensch trifft eine Entscheidung: approve, reject oder revise (mit Aenderungen freigeben).

Enforce
Nach dieser Entscheidung fuehrt das System die Aktion ueber Tool Execution Layer aus oder gibt reject/revise an Runtime zurueck.

Resume
Runtime setzt den Zyklus mit dem Freigabeergebnis fort und protokolliert den Grund im Audit.

Ein solcher Zyklus erhaelt Automatisierungsgeschwindigkeit und Kontrolle ueber kritische Aktionen.

Im Code sieht das so aus

PYTHON
class HumanInTheLoopArchitecture:
    def __init__(self, policy, approval_queue, tool_execution):
        self.policy = policy
        self.approval_queue = approval_queue
        self.tool_execution = tool_execution

    def execute_action(self, action, context):
        decision = self.policy.check(action=action, context=context)
        mode = decision.get("mode")

        if mode == "allow":
            return self.tool_execution.execute(action=action, context=context)

        if mode == "require_approval":
            ticket_id = self.approval_queue.create(
                action=action,
                context=context,
                reason_code=decision.get("reason_code", "approval_required"),
            )

            # Simplified synchronous example for illustration.
            review = self.approval_queue.wait(ticket_id=ticket_id, timeout_s=300)
            if review is None:
                return {"ok": False, "reason_code": "approval_timeout"}

            status = review.get("status")
            if status == "approved":
                approved_action = review.get("action_override", action)
                return self.tool_execution.execute(action=approved_action, context=context)

            if status == "revise":
                return {
                    "ok": False,
                    "reason_code": "approval_revision_required",
                    "feedback": review.get("feedback", ""),
                }

            return {"ok": False, "reason_code": "approval_rejected"}

        return {"ok": False, "reason_code": decision.get("reason_code", "policy_denied")}

In diesem Beispiel ist wait(..., timeout_s=300) zur Veranschaulichung gezeigt.
In production arbeitet HITL haeufig asynchron: das System erstellt ein approval ticket, beendet den aktuellen Run mit pending_approval und setzt nach der menschlichen Entscheidung fort.

So sieht es zur Laufzeit aus

TEXT
Anfrage: "Exportiere die Kundendatenbank in ein externes CRM und sende eine E-Mail an alle Kontakte"

Step 1
Agent Runtime: bildet action -> export_customers + send_campaign_email
HITL Gate: classify -> require_approval (high_risk_data_export)

Step 2
System erstellt ein approval ticket mit Kontext und Grund
Human: revise -> nur Segment "active_customers" erlauben, ohne Massenversand

Step 3
Tool Execution Layer: fuehrt nur die freigegebene Aktion aus
Runtime: gibt Ergebnis + reason_code in den Trace zurueck

Human-in-the-Loop blockiert Automatisierung nicht vollstaendig. Es fuegt Kontrolle an realen Risikopunkten hinzu.

Wann es passt - und wann nicht

Human-in-the-Loop Architecture ist dort sinnvoll, wo Fehler teuer sind und in kritischen Schritten ein verantwortlicher Mensch benoetigt wird.

Passt

SituationWarum Human-in-the-Loop Architecture passt
Es gibt irreversible oder teure Aktionen (Loeschen, Abbuchung, Export)Das System fuehrt keinen kritischen Schritt aus, bis ein Mensch die Entscheidung bestaetigt.
Compliance und verantwortliches Entscheidungs-Audit werden benoetigtEs gibt eine klare Spur: wer freigegeben hat, was freigegeben wurde, mit welchem Grund und Ergebnis.
Der Agent braucht Autonomie, aber innerhalb von RisikogatesNiedrigrisiko-Schritte werden automatisiert, Hochrisiko-Schritte laufen ueber einen Menschen.

Passt nicht

SituationWarum Human-in-the-Loop Architecture nicht passt
One-shot read-only Szenario ohne Zustandsaenderungen und ohne hohes RisikoEin Freigabe-Gate fuegt Latenz und Komplexitaet ohne praktischen Nutzen hinzu.
Das System muss in Sekunden antworten und kann nicht auf einen Menschen wartenAsynchrone menschliche Freigabe kann Antwortzeit-Anforderungen verletzen.

In solchen Faellen reichen policy-gates ohne manuelle Freigabe oft aus:

PYTHON
decision = policy.check(action, context)
if decision["mode"] == "allow":
    execute(action)

Typische Probleme und Ausfaelle

ProblemWas passiertWie verhindern
Freigabe-QueueFreigabe-Queue waechst und Runs haengen festRisk-tier-Regeln, Review-SLA, Prioritaetsqueue und Fallback-Prozess
Blinde FreigabeReviewer gibt Aktionen ohne echte Pruefung freiVerpflichtende reason_code, kurze Checkliste und selektives Post-Audit
Approval fatigueReviewer druecken mechanisch approve wegen zu vieler AnfragenBesseres risk-tiering, batching von low-risk Faellen und quality thresholds vor Eskalation
Unvollstaendiger Kontext in der AnfrageDer Mensch sieht Risiken nicht und trifft eine zufaellige EntscheidungStandardisierter approval payload: actor, action, resource, risk, budget, diff
Haengenbleiben nach timeoutSystem wartet zu lange auf FreigabeExpliziter timeout + Default-Action: deny oder safe_fallback
Inkonsistente Entscheidungen verschiedener ReviewerGleiche Faelle werden unterschiedlich behandeltPlaybook, Entscheidungsvorlagen und Policy-Kalibrierung auf Basis von Logs

Eine stabile HITL-Schicht braucht mehr als einen "Approve"-Button; sie braucht klare operative Disziplin.

Wie es mit anderen Patterns zusammenspielt

Human-in-the-Loop Architecture arbeitet als gesteuerte Kontrollschicht ueber grundlegenden Ausfuehrungsmechanismen.

  • Agent Runtime - Runtime fuehrt den Zyklus, waehrend HITL entscheidet, welche Schritte einen Menschen brauchen.
  • Tool Execution Layer - nach Freigabe wird die Aktion ueber ein kontrolliertes tool gateway ausgefuehrt.
  • Policy Boundaries - policy rules definieren, wann require_approval aktiviert wird.
  • Hybrid Workflow Agent - HITL wird oft in workflow-commit-Schritte fuer hohes Risiko eingebettet.
  • Orchestration Topologies - in multi-agent Systemen wird HITL auf einzelne Zweige oder den finalen Merge-Schritt angewendet.

Anders gesagt:

  • Policy Boundaries definieren was riskant ist
  • Human-in-the-Loop Architecture definiert wie genau ein Mensch diese Aktion bestaetigt oder blockiert

Unterschied zu Supervisor Agent

Supervisor AgentHuman-in-the-Loop Architecture
Wer die kritische Entscheidung trifftUeberwiegend der supervisor-Agent selbst nach RegelnMenschlicher Reviewer an require_approval-Punkten
EbeneVerhaltensmuster des AgentenArchitektonische Kontrollschicht des Ausfuehrungsprozesses
Was es bietetAutomatisierte policy-Ueberwachung zwischen SchrittenFormale menschliche Bestaetigung fuer riskante Aktionen
Typisches RisikoModellfehler bei der Policy-BewertungOperative Verzoegerung durch Freigabe-Queue

Supervisor Agent und HITL koennen kombiniert werden: der Supervisor macht die Vorfilterung, und ein Mensch gibt nur die riskantesten Schritte frei.

Kurz

Kurzfazit

Human-in-the-Loop Architecture:

  • setzt einen Menschen an kritische Ausfuehrungspunkte
  • blockiert gefaehrliche Aktionen bis zur expliziten Freigabe
  • protokolliert Entscheidung, Grund und Ergebnis im Audit
  • balanciert Automatisierung und Verantwortung in production

FAQ

Q: Bedeutet HITL, dass jede Aktion von einem Menschen bestaetigt werden muss?
A: Nein. Praktischer Ansatz: nur high-risk Aktionen gehen in die Freigabe, der Rest wird automatisch ausgefuehrt.

Q: Was ist besser fuer fail-safe: timeout = allow oder timeout = deny?
A: Fuer riskante write-Aktionen wird meist fail-closed genutzt: timeout => deny oder sicherer fallback.

Q: Kann man in HITL nicht nur freigeben, sondern auch eine Aktion aendern?
A: Ja. Der Modus revise erlaubt einem Menschen, eine Aktion mit Einschraenkungen zu bestaetigen (Betrag, Segment, scope).

Q: Wann sollte man besser Supervisor Agent statt HITL waehlen?
A: Wenn schneller automatisierter Policy-Kontrolle ohne manuelle Eingriffe bei jedem riskanten Schritt noetig ist.

Was als Naechstes

Human-in-the-loop reduziert Risiko. Der naechste Schritt ist zu sehen, wie das mit technischen Systemgrenzen zusammenspielt:

⏱️ 9 Min. LesezeitAktualisiert 8. März 2026Schwierigkeit: ★★★
Integriert: Production ControlOnceOnly
Guardrails für Tool-Calling-Agents
Shippe dieses Pattern mit Governance:
  • Budgets (Steps / Spend Caps)
  • Tool-Permissions (Allowlist / Blocklist)
  • Kill switch & Incident Stop
  • Idempotenz & Dedupe
  • Audit logs & Nachvollziehbarkeit
Integrierter Hinweis: OnceOnly ist eine Control-Layer für Production-Agent-Systeme.
Autor

Diese Dokumentation wird von Engineers kuratiert und gepflegt, die AI-Agenten in der Produktion betreiben.

Die Inhalte sind KI-gestützt, mit menschlicher redaktioneller Verantwortung für Genauigkeit, Klarheit und Produktionsrelevanz.

Patterns und Empfehlungen basieren auf Post-Mortems, Failure-Modes und operativen Incidents in produktiven Systemen, auch bei der Entwicklung und dem Betrieb von Governance-Infrastruktur für Agenten bei OnceOnly.