Human in the Loop (HITL) heißt: Ein KI-Agent hält an einer festgelegten Stelle an und wartet auf eine Entscheidung eines Menschen, bevor er weitermacht. Typisch ist die Freigabe vor einer Aktion, die Geld kostet, Daten verändert oder nach außen geht, etwa eine E-Mail an einen Kunden, eine Überweisung oder ein Löschbefehl. Dieser Artikel zeigt, welche Muster es gibt, wie die verbreiteten Frameworks und Plattformen Freigaben umsetzen und was der EU AI Act zur menschlichen Aufsicht verlangt.
Steckbrief (Stand Oktober 2026)
| Merkmal | Angabe |
|---|---|
| Begriff | Human in the Loop, kurz HITL; im EU AI Act "menschliche Aufsicht" (Artikel 14) |
| Häufigstes Muster | Freigabe eines Werkzeugaufrufs, bevor er ausgeführt wird |
| Technische Voraussetzung | Der Zustand des Agenten wird gespeichert, damit er nach Minuten oder Tagen weiterlaufen kann |
| Eingebaut in | unter anderem LangGraph, OpenAI Agents SDK, Claude Agent SDK, Microsoft Agent Framework, CrewAI, n8n, Amazon Bedrock Agents |
| Rechtlicher Rahmen | Pflichten für Hochrisiko-Systeme nach Anhang III ab 2. Dezember 2027, nach Anhang I ab 2. August 2028 (Verordnung (EU) 2026/1744) |
Wann ein Mensch eingreifen sollte
Nicht jeder Schritt braucht eine Freigabe. Wer jeden Aufruf bestätigen muss, klickt nach kurzer Zeit nur noch durch. Sinnvoll ist eine Freigabe bei Aktionen, die
- nicht oder nur schwer rückgängig zu machen sind: Zahlungen, Löschungen, Änderungen an Produktivsystemen,
- nach außen wirken: E-Mails, Nachrichten, Veröffentlichungen, Bestellungen,
- Rechte oder Daten von Personen berühren: Kundendaten, Personalentscheidungen, Kreditentscheidungen,
- teuer werden können: lange Läufe mit vielen Modellaufrufen oder kostenpflichtigen APIs.
Lesende Schritte wie Suchen, Abfragen oder Zusammenfassen laufen dagegen meist ohne Freigabe.
Die vier Muster
| Muster | Was passiert | Beispiel |
|---|---|---|
| Freigabe | Der Agent zeigt den geplanten Werkzeugaufruf mit allen Parametern. Ein Mensch genehmigt oder lehnt ab. | Erstattung über 500 Euro |
| Bearbeiten | Der Mensch ändert die Parameter oder den Entwurf, bevor der Agent weitermacht. | Antwortmail an einen Kunden |
| Rückfrage | Dem Agenten fehlt eine Angabe, und er fragt nach, statt zu raten. | Welches Kundenkonto ist gemeint? |
| Prüfung im Nachgang | Der Agent arbeitet allein, ein Mensch prüft Stichproben oder alle Ergebnisse, bevor sie wirksam werden. | Klassifizierte Rechnungen vor dem Buchen |
Bei einer Ablehnung sollte der Agent wissen, was er tun soll: abbrechen, eine Alternative vorschlagen oder nachfragen. Die n8n-Dokumentation empfiehlt, das im Systemprompt festzulegen.
So setzen Frameworks und Plattformen HITL um
Alle hier genannten Systeme folgen demselben Ablauf: Der Lauf hält an, die offene Entscheidung wird mit dem Zustand gespeichert, und nach der Antwort läuft der Agent an derselben Stelle weiter.
| System | Mechanismus | Besonderheit |
|---|---|---|
| LangGraph | interrupt() in einem Node, Fortsetzen mit Command(resume=...) |
Braucht einen Checkpointer. Beim Fortsetzen läuft der ganze Node erneut von vorn. |
| OpenAI Agents SDK | needs_approval am Werkzeug, offene Freigaben in result.interruptions |
Zustand lässt sich mit state.to_json() speichern und später fortsetzen. Freigaben auch für MCP-Server. |
| Claude Agent SDK | Berechtigungsregeln, Modi wie default, plan oder dontAsk und der Callback canUseTool |
Feste Reihenfolge: Hooks, Verbote, Rückfrageregeln, Modus, Erlaubnisse, dann canUseTool. |
| Microsoft Agent Framework | ApprovalRequiredAIFunction (.NET), @tool(approval_mode="always_require") (Python) |
Eine Freigabe gilt standardmäßig nur für eine offene Anfrage derselben Sitzung. |
| CrewAI | Decorator @human_feedback in Flows (ab Version 1.8.0), Webhooks in der Enterprise-Version |
Negatives Feedback lässt die Crew die Aufgabe mit diesem Feedback wiederholen. |
| n8n | "Human review" im Tools-Bereich des AI-Agent-Knotens | Freigabe über Chat, Slack, Teams, Telegram, Discord, Gmail, Outlook, WhatsApp oder Google Chat. |
| Amazon Bedrock | Bestätigung je Aktion in der Action Group, Antwort über returnControl |
Die Anwendung schickt CONFIRM oder DENY zurück. |
LangGraph: Unterbrechen und fortsetzen
In LangGraph ruft ein Node interrupt() mit einem beliebigen JSON-Wert auf, zum Beispiel dem geplanten Werkzeugaufruf. Der Graph hält an, und das Ergebnis enthält unter __interrupt__ die offene Frage. Der Lauf wird über die thread_id wiedergefunden und mit Command(resume=...) fortgesetzt. Für den Betrieb empfiehlt die Dokumentation einen dauerhaften Checkpointer, also eine Datenbank statt InMemorySaver.
Wichtig für die Praxis: Beim Fortsetzen springt LangGraph nicht in die Zeile nach interrupt(), sondern führt den ganzen Node noch einmal aus. Code, der vor der Unterbrechung steht, läuft also zweimal. API-Aufrufe und andere Nebenwirkungen gehören deshalb hinter die Unterbrechung oder in einen eigenen Node. Die statischen Haltepunkte interrupt_before und interrupt_after sind laut Dokumentation zum Debuggen gedacht, nicht für HITL. Mehr zum Framework steht im Artikel LangGraph.
from langgraph.types import interrupt, Command
def refund_node(state):
decision = interrupt({"action": "refund", "amount": state["amount"]})
if decision != "approve":
return Command(goto="notify_customer")
# Die Erstattung erst nach der Freigabe auslösen
issue_refund(state["order_id"], state["amount"])
return Command(goto="done")
OpenAI Agents SDK: Freigabe am Werkzeug
Im OpenAI Agents SDK bekommt ein Werkzeug needs_approval=True oder eine Funktion, die je Aufruf entscheidet. Will der Agent das Werkzeug nutzen, endet der Lauf mit Einträgen in result.interruptions. Über result.to_state() entsteht ein RunState, auf dem approve(...) oder reject(...) aufgerufen wird. Danach setzt Runner.run(agent, state) den Lauf fort. Lokale und gehostete MCP-Server lassen sich mit require_approval ebenso absichern.
Die Dokumentation nennt zwei Punkte, die oft übersehen werden: Gespeicherte Zustände sind nicht signiert und gehören auf den eigenen Server. Und eine Freigabe garantiert keine einmalige Ausführung. Für Zahlungen und ähnliche Aktionen braucht es Idempotenzschlüssel.
Claude Agent SDK: Regeln, Modi und Callback
Das Claude Agent SDK prüft jeden Werkzeugaufruf in fester Reihenfolge: zuerst Hooks, dann Verbotsregeln, Rückfrageregeln, den Berechtigungsmodus und Erlaubnisregeln. Was danach noch offen ist, landet beim Callback canUseTool, in dem die eigene Anwendung einen Menschen fragen kann. Der Modus plan lässt den Agenten nur planen, dontAsk lehnt alles ab, was eine Rückfrage bräuchte. Die Dokumentation warnt: Ein Werkzeug, das bereits über eine Erlaubnisregel oder einen großzügigen Modus freigegeben ist, erreicht canUseTool nie. Prüfungen, die bei jedem Aufruf laufen müssen, gehören deshalb in einen PreToolUse-Hook.
Microsoft Agent Framework: Freigabe mit Sitzungsbindung
Im Microsoft Agent Framework wird eine Funktion in .NET mit ApprovalRequiredAIFunction umhüllt, in Python mit @tool(approval_mode="always_require") markiert, in Go mit tool.ApprovalRequiredFunc. Der Lauf endet dann mit einer Freigabeanfrage, die Anwendung schickt die Entscheidung in derselben Sitzung zurück. Eine Freigabe gilt standardmäßig nur für eine offene Anfrage derselben Sitzung. Wer diese Bindung abschaltet, riskiert laut Dokumentation, dass eine gefälschte oder wiederholte Freigabe ein privilegiertes Werkzeug startet.
n8n und andere No-Code-Plattformen
In n8n wird die Freigabe im Tools-Bereich des AI-Agent-Knotens eingerichtet. Man wählt einen Kanal für die Prüfung und hängt die betroffenen Werkzeuge dahinter. Der Prüfer sieht Werkzeug und Parameter und genehmigt oder lehnt ab. Bei einer Ablehnung wird die Aktion nicht ausgeführt, und der Agent erfährt davon. Die Freigabe funktioniert auch, wenn ein Agent als Werkzeug eines anderen Agenten läuft.
Was der EU AI Act verlangt
Artikel 14 des AI Act verlangt für Hochrisiko-Systeme, dass Menschen sie während des Betriebs wirksam beaufsichtigen können. Die Aufsicht soll zum Risiko, zum Grad der Autonomie und zum Einsatzzweck passen. Die zuständigen Personen müssen unter anderem
- Fähigkeiten und Grenzen des Systems verstehen und seinen Betrieb überwachen können,
- sich der Neigung bewusst bleiben, sich zu sehr auf die Ausgaben zu verlassen,
- die Ausgaben richtig deuten können,
- im Einzelfall entscheiden können, das System nicht zu nutzen oder sein Ergebnis zu verwerfen,
- in den Betrieb eingreifen oder ihn sicher anhalten können, etwa über eine Stopp-Taste.
Für Agenten ist der letzte Punkt besonders relevant: Ein laufender Agent muss sich anhalten lassen, nicht nur ein einzelner Werkzeugaufruf.
Die Pflichten gelten nicht für jeden Agenten, sondern für Hochrisiko-Systeme, etwa in Personalauswahl, Kreditvergabe oder kritischer Infrastruktur. Mit der Verordnung (EU) 2026/1744 vom 8. Juli 2026 (Digital Omnibus zur KI) wurden die Termine verschoben: Für Hochrisiko-Systeme nach Anhang III gelten die Pflichten ab dem 2. Dezember 2027 statt ab dem 2. August 2026, für KI in regulierten Produkten nach Anhang I ab dem 2. August 2028. Ob ein konkreter Agent darunter fällt, ist eine rechtliche Einzelfrage. Dieser Artikel ersetzt keine Rechtsberatung.
Typische Fehler
- Zu viele Freigaben: Wer jeden lesenden Aufruf bestätigen lässt, trainiert das Durchklicken. Freigaben gehören an Aktionen mit Wirkung.
- Zu wenig Kontext: Ein Prüfer, der nur "send_email" sieht, kann nicht entscheiden. Er braucht Empfänger, Inhalt und den Grund.
- Nebenwirkungen vor der Unterbrechung: In LangGraph läuft Code vor
interrupt()beim Fortsetzen erneut. Eine Mail, die davor steht, geht zweimal raus. - Zustand nur im Speicher: Ein Agent, der auf eine Freigabe wartet, kann Stunden stehen. Ohne dauerhaften Speicher ist die Entscheidung nach einem Neustart verloren.
- Freigabe ohne Prüfung, wer freigibt: Die OpenAI- und Microsoft-Dokumentationen raten, Identität und Berechtigung des Prüfers zu prüfen und nur Entscheidungen zu offenen Anfragen anzunehmen.
- Kein Plan für Ablehnungen: Ohne Anweisung versucht ein Agent nach einem "Nein" womöglich denselben Aufruf erneut.
Häufige Fragen
Was ist der Unterschied zwischen Human in the Loop und Human on the Loop?
Bei Human in the Loop wartet der Agent an festen Stellen auf eine Entscheidung. Bei Human on the Loop arbeitet er selbständig, und ein Mensch überwacht den Betrieb und greift bei Bedarf ein. Die Begriffe sind nicht genormt. Artikel 14 des AI Act verlangt beides: Ergebnisse verwerfen können und den Betrieb anhalten können.
Braucht jeder KI-Agent eine Freigabe?
Nein. Ein Agent, der nur liest und zusammenfasst, kommt meist ohne aus. Freigaben lohnen sich bei Aktionen mit Folgen nach außen oder hohen Kosten.
Wie lange kann ein Agent auf eine Freigabe warten?
So lange, wie sein Zustand gespeichert ist. LangGraph beschreibt, dass ein unterbrochener Lauf unbegrenzt pausieren kann. Das OpenAI Agents SDK speichert den Zustand als JSON. Beides setzt voraus, dass der Zustand in einer Datenbank liegt und nicht nur im Arbeitsspeicher.
Kann ich HITL ohne Programmierung einrichten?
Ja. n8n bietet die Freigabe von Werkzeugaufrufen über mehrere Kanäle an, unter anderem Slack, Microsoft Teams und Telegram. Eine Übersicht weiterer Plattformen steht im Artikel KI-Agenten ohne Code.
Quellen
Geprüft am 29. Oktober 2026.
- LangGraph: Human in the loop hinzufügen
- OpenAI Agents SDK: Human in the loop
- Claude Agent SDK: Berechtigungen konfigurieren
- Microsoft Agent Framework: Tool approval
- CrewAI: Human in the loop
- n8n: Human in the loop für Werkzeugaufrufe
- Amazon Bedrock: Bestätigung vor dem Aufruf einer Action-Group-Funktion
- Verordnung (EU) 2024/1689 (AI Act), Artikel 14
- Verordnung (EU) 2026/1744 (Digital Omnibus zur KI), Amtsblatt
