[{"data":1,"prerenderedAt":983},["ShallowReactive",2],{"blog-human-in-the-loop-ai-agents-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":13,"about":24,"sources":34,"cover":65,"og":66,"expertise":67,"locales":68,"lang":70,"title":72,"description":73,"coverAlt":74,"metaTitle":75,"takeaways":76,"faq":82,"toc":101,"blocks":129,"others":683},"human-in-the-loop-ai-agents","2026-10-02",13,"agents",[9,10,11,12],"Human in the loop","AI agents","Approval gates","Agent safety",[14,15,16,17,18,19,20,21,22,23],"human in the loop AI agents","human in the loop KI-Agent","Mensch im Loop KI","AI agent approval gates","agent approval fatigue","LangGraph interrupt human in the loop","OpenAI Agents SDK needs_approval","Claude Agent SDK canUseTool","AI agent audit trail","risk tiers for AI agent actions",[25,28,31],{"name":26,"url":27},"Human-in-the-loop","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHuman-in-the-loop",{"name":29,"url":30},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":32,"url":33},"Audit trail","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAudit_trail",[35,38,41,44,47,50,53,56,59,62],{"title":36,"url":37},"LangChain docs: LangGraph interrupts","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flanggraph\u002Finterrupts",{"title":39,"url":40},"LangChain docs: Human-in-the-loop (HumanInTheLoopMiddleware)","https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flangchain\u002Fhuman-in-the-loop",{"title":42,"url":43},"OpenAI Agents SDK (Python): Human in the loop","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python\u002Fblob\u002Fmain\u002Fdocs\u002Fhuman_in_the_loop.md",{"title":45,"url":46},"Claude Agent SDK: Handle approvals and user input","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fagent-sdk\u002Fuser-input",{"title":48,"url":49},"Claude Agent SDK: Configure permissions","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fagent-sdk\u002Fpermissions",{"title":51,"url":52},"Claude Code docs: Hooks (PreToolUse defer, PermissionRequest)","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fhooks",{"title":54,"url":55},"Anthropic Engineering: Claude Code auto mode","https:\u002F\u002Fanthropic.com\u002Fengineering\u002Fclaude-code-auto-mode",{"title":57,"url":58},"DevOps.com: Anthropic makes Claude Code auto mode the default","https:\u002F\u002Fdevops.com\u002Fanthropic-makes-claude-codes-auto-mode-the-default-betting-automation-beats-manual-review\u002F",{"title":60,"url":61},"EU AI Act, Article 14: Human oversight","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F14\u002F",{"title":63,"url":64},"OpenAI: How we build safety, security and privacy into dots","https:\u002F\u002Fopenai.com\u002Findex\u002Fhow-we-build-safety-security-and-privacy-into-dots\u002F","\u002Fimages\u002Fblog\u002Fhuman-in-the-loop-ai-agents\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fhuman-in-the-loop-ai-agents\u002Fog.jpg","ai-engineer",[69,70,71],"en","de","hu","Human in the Loop bei KI-Agenten: wo Freigaben hingehören","Wo Freigabe-Gates in einem KI-Agenten sitzen, wie du Durchwinken vermeidest und wie Interrupt und Resume in LangGraph sowie den OpenAI- und Claude-Agent-SDKs funktionieren.","Diagramm: Ein Agent schlägt eine Aktion vor, ein Risiko-Gate leitet sie an automatische Ausführung, menschliche Freigabe oder Sperre, und jede Entscheidung landet im Audit-Log.","Human in the Loop bei KI-Agenten · Balázs Csorba",[77,78,79,80,81],"Gate Aktionen nach Risiko, nicht nach Tool: Reversibilität, Wirkungsradius, Datensensibilität und Sichtbarkeit entscheiden, ob eine Aktion läuft, einen Menschen fragt oder gesperrt wird.","Freigabe pro Aktion hält dem Volumen nicht stand. Anthropic berichtet, dass Nutzer 93 Prozent der Claude-Code-Rückfragen bestätigen und dass menschliche Prüfer in einem Experiment nur 13,6 Prozent eines getarnten gefährlichen Befehls erkannten.","Interrupt und Resume sind inzwischen Standard: LangGraph interrupt mit Command(resume), needs_approval und RunState im OpenAI Agents SDK, canUseTool und die PreToolUse-Entscheidung defer im Claude Agent SDK.","Eine Freigabe ist nur etwas wert, wenn sie an die exakte Aktion gebunden ist, von einer authentifizierten Person kommt, protokolliert wird und ablaufen kann. Alles andere ist ein Ritual.","Always-on-Agenten wie OpenAI dots verschieben den Menschen vom Anfang ans Ende der Kette. Das Design wechselt von häufiger fragen zu besser fragen: mit Regeln, einem Reviewer-Modell und Stichproben-Audits.",[83,86,89,92,95,98],{"q":84,"a":85},"Was bedeutet Human in the Loop bei KI-Agenten?","Eine Person kann an definierten Punkten eingreifen, während ein Agent arbeitet: eine geplante Aktion freigeben oder ändern, eine Frage beantworten oder den Lauf stoppen. Praktisch ist es ein Gate in der Agent-Schleife. Der Agent pausiert, zeigt, was er vorhat, wartet auf eine Entscheidung und macht mit dem Ergebnis weiter.",{"q":87,"a":88},"Welche Agenten-Aktionen sollten eine menschliche Freigabe brauchen?","Aktionen, die schwer rückgängig zu machen sind, Geld, Berechtigungen oder personenbezogene Daten betreffen, deine Organisation verlassen oder viele Datensätze auf einmal ändern. Lesezugriffe im Agenten-Scope und reversible Änderungen in einer Sandbox können meist automatisch laufen, mit Logging.",{"q":90,"a":91},"Wie vermeidet man Approval Fatigue?","Seltener fragen und dafür mehr zeigen. Risikoarme Aktionen automatisch freigeben, zusammengehörige Schritte in einer Entscheidung bündeln, die Wirkung und einen Diff statt eines Tool-Namens zeigen, gefährliche Fälle per Regel statt per Rückfrage sperren und eine Stichprobe der ungefragt gelaufenen Aktionen prüfen.",{"q":93,"a":94},"Wie funktionieren Interrupt und Resume in LangGraph?","Ein Node ruft interrupt mit einem JSON-serialisierbaren Payload auf. LangGraph sichert den Zustand über einen Checkpointer und hält an. Du setzt auf demselben thread_id mit Command(resume=value) fort, und dieser Wert wird zum Rückgabewert von interrupt. Der Node startet von vorn, deshalb müssen Seiteneffekte vor dem Interrupt idempotent sein.",{"q":96,"a":97},"Wie behandeln das OpenAI- und das Claude-Agent-SDK Tool-Freigaben?","Im OpenAI Agents SDK deklariert ein Tool needs_approval, der Lauf liefert die offenen Aufrufe als interruptions zurück, und du genehmigst oder lehnst sie auf einem serialisierbaren RunState ab und startest erneut. Im Claude Agent SDK erhält ein canUseTool-Callback jeden Aufruf, den keine Regel und kein Modus entschieden hat, und gibt allow oder deny zurück.",{"q":99,"a":100},"Verlangt der EU AI Act menschliche Aufsicht über KI-Agenten?","Artikel 14 verlangt wirksame menschliche Aufsicht für Hochrisiko-KI-Systeme, einschließlich des Bewusstseins für Automation Bias und der Möglichkeit, einzugreifen oder das System zu stoppen. Ob dein Agent ein Hochrisiko-System ist, hängt vom Anwendungsfall ab. Auch sonst sind dieselben Designprinzipien eine solide Basis.",[102,105,108,111,114,117,120,123,126],{"id":103,"title":104},"why-approval-fails","Warum Freigabe pro Aktion im großen Maßstab scheitert",{"id":106,"title":107},"where-to-gate","Wo die Gates hingehören: Risiko, Reversibilität, Wirkungsradius",{"id":109,"title":110},"approval-ux","Freigabe-UX, die Menschen nicht zum Ja-Klicken erzieht",{"id":112,"title":113},"interrupt-resume","Interrupt und Resume in den wichtigsten Frameworks",{"id":115,"title":116},"audit-escalation","Audit-Trails und Eskalation",{"id":118,"title":119},"always-on-agents","Was Always-on-Agenten ändern",{"id":121,"title":122},"checklist","Eine Checkliste für deinen nächsten Agenten",{"id":124,"title":125},"the-bigger-picture","Das größere Bild",{"id":127,"title":128},"sources","Quellen",[130,134,148,151,159,166,173,174,182,206,209,265,279,288,289,296,333,341,342,345,497,518,520,544,545,552,564,571,572,579,582,601,608,609,612,635,643,644,647,650,651],{"type":131,"content":132},"paragraph",[133],"Jedes Team, das einen Agenten ausliefert, stößt innerhalb einer Woche auf dieselbe Frage: Wann muss er fragen? Fragt er zu selten, löscht ein einziger schlechter Tool-Aufruf eine Tabelle, verschickt die falsche E-Mail oder erstattet dem falschen Kunden Geld. Fragt er zu oft, klicken Leute auf „Erlauben“, ohne zu lesen. Das ist schlimmer als kein Gate, denn das System wirkt beaufsichtigt, ist es aber nicht.",{"type":131,"content":135},[136,137,142,143,147],"„Human in the Loop“ wird meist als Häkchen behandelt: ein Bestätigungsdialog vor gefährlichen Tools. Das ist der Anfang des Designs, nicht das Ende. Dieser Artikel behandelt die Entscheidungen, auf die es ankommt: wo die Gates sitzen, wie du Freigaben baust, die Menschen wirklich lesen, welche Interrupt- und Resume-Primitive die wichtigsten Agent-Frameworks heute bieten, was ein Audit-Trail enthalten muss und wie Always-on-Agenten wie ",{"tag":138,"to":139,"children":140},"link","\u002Fblog\u002Fopenai-dots-always-on-agents-impact",[141],"OpenAI dots"," das Bild verändern. Wenn du zuerst die Mechanik der Schleife selbst willst, beginne mit ",{"tag":138,"to":144,"children":145},"\u002Fblog\u002Fagent-loop-explained",[146],"der Agent-Schleife erklärt",".",{"type":149,"level":150,"id":103,"text":104},"heading",2,{"type":131,"content":152},[153,154,158],"Die unbequeme Evidenz kommt von denen, die den größten Freigabe-Dialog der Branche betreiben. In seinem ",{"tag":155,"href":55,"children":156},"a",[157],"Engineering-Beitrag zum Auto Mode"," schreibt Anthropic, dass Claude-Code-Nutzer 93 Prozent der Berechtigungsabfragen bestätigen, und beschreibt die Folge als Approval Fatigue: Menschen hören auf, genau hinzuschauen, was sie freigeben.",{"type":131,"content":160},[161,162,165],"Ein berichtetes Experiment macht den Punkt schärfer. Laut ",{"tag":155,"href":58,"children":163},[164],"DevOps.com"," hat Anthropic bei 1.053 Testern einen tatsächlich gefährlichen Befehl in Berechtigungsabfragen eingebettet: Menschliche Prüfer erkannten ihn in 13,6 Prozent der Fälle, ein automatischer Klassifikator in 89 Prozent, und nach mehr als 50 vorherigen Abfragen sank die menschliche Trefferquote auf etwa 5 Prozent. Das ist ein Experiment des Herstellers mit einem bewusst getarnten Befehl, ich lese es daher als Richtung und nicht als Konstante. Die Richtung ist trotzdem eindeutig: Wer fünfzig harmlose Anfragen gesehen hat, ist ein schlechter Detektor für die einundfünfzigste.",{"type":131,"content":167},[168,169,147],"Derselbe Engineering-Beitrag ist ehrlich über die andere Seite. Der zweistufige Klassifikator zeigte bei echten übereifrigen Aktionen in einer kleinen Stichprobe von 52 immer noch eine False-Negative-Rate von 17 Prozent, die Anthropic die ehrliche Zahl nennt. Weder ein Mensch noch ein Modell ist ein verlässliches einzelnes Gate. Das Designziel ist deshalb nicht „ein Mensch genehmigt alles“, sondern: ",{"tag":170,"children":171},"strong",[172],"knappe menschliche Aufmerksamkeit dort einsetzen, wo sie das Ergebnis ändert, und sie mit Kontrollen absichern, die nicht ermüden",{"type":149,"level":150,"id":106,"text":107},{"type":131,"content":175},[176,177,181],"Nach Tool-Namen zu gaten („frag vor Bash“) ist zu grob und zu leicht zu verwässern. Ich gate nach vier Eigenschaften der ",{"tag":178,"children":179},"em",[180],"Aktion",", in dieser Reihenfolge der Wichtigkeit:",{"type":183,"ordered":184,"items":185},"list",false,[186,191,196,201],[187,190],{"tag":170,"children":188},[189],"Reversibilität."," Lässt sich die Wirkung günstig und vollständig rückgängig machen? Ein Entwurf, ein Branch oder eine Zeile in einer Staging-Tabelle schon. Eine versendete E-Mail, eine Zahlung, ein gelöschter Bucket oder eine geänderte Berechtigung nicht.",[192,195],{"tag":170,"children":193},[194],"Wirkungsradius."," Wie viele Datensätze, Kunden oder Systeme berührt ein Aufruf? „Ein Ticket aktualisieren“ und „alle Tickets eines Filters aktualisieren“ sind dasselbe Tool mit tausendfach unterschiedlichem Risiko.",[197,200],{"tag":170,"children":198},[199],"Daten und Sichtbarkeit."," Macht die Aktion personenbezogene, finanzielle oder vertrauliche Daten sichtbar, oder ist sie außerhalb deiner Organisation sichtbar?",[202,205],{"tag":170,"children":203},[204],"Autorität."," Nutzt sie Zugangsdaten, die der Mensch für diese Aufgabe nicht erteilt hat, oder ändert sie, wer was darf?",{"type":131,"content":207},[208],"Diese Eigenschaften ergeben vier Stufen. Die rechten Spalten sind so wichtig wie die linken: Eine Stufe ist nur real, wenn sie die Kontrolle und die hinterlassene Evidenz benennt.",{"type":210,"head":211,"rows":220},"table",[212,214,216,218],[213],"Stufe",[215],"Typische Aktionen",[217],"Kontrolle",[219],"Evidenz",[221,232,243,254],[222,226,228,230],[223],{"tag":170,"children":224},[225],"0: beobachten",[227],"Lesen im Agenten-Scope, Suchen, Zusammenfassen, Entwurf in einem Scratch-Bereich",[229],"Läuft automatisch, Lesezugriff nach Least Privilege",[231],"Log der Aufrufe",[233,237,239,241],[234],{"tag":170,"children":235},[236],"1: reversible Änderung",[238],"Commit auf einen Branch, Entwurf bearbeiten, Ticket anlegen, in einen Staging-Speicher schreiben",[240],"Läuft automatisch mit Undo; Reviewer-Modell oder Regeln obendrauf",[242],"Log plus Zustand vorher und nachher",[244,248,250,252],[245],{"tag":170,"children":246},[247],"2: sichtbar oder teuer",[249],"E-Mail an einen Kunden, Beitrag in einem geteilten Kanal, Massenänderung innerhalb eines Limits, Ausgabe unter Budget",[251],"Menschliche Freigabe mit der echten Wirkung; ähnliche Schritte bündeln",[253],"Freigebender, exakter Payload, Zeitstempel",[255,259,261,263],[256],{"tag":170,"children":257},[258],"3: irreversibel oder privilegiert",[260],"Zahlungen, Löschungen, Produktiv-Deployments, Berechtigungsänderungen, Massenexport personenbezogener Daten",[262],"Harte Sperre oder verpflichtende Übergabe; zwei Personen in den schlimmsten Fällen; der Agent kann die Stufe nicht senken",[264],"Freigebender, Payload, Begründung, zweiter Freigebender",{"type":131,"content":266},[267,268,271,272,275,276,147],"Zwei Regeln halten die Matrix ehrlich. Erstens: ",{"tag":170,"children":269},[270],"nach dem schlimmsten Fall der Argumente eskalieren, nicht nach dem Tool."," Ein Erstattungs-Tool mit einem Betrag über dem Limit ist Stufe 3, darunter Stufe 2. Zweitens: ",{"tag":170,"children":273},[274],"Der Agent klassifiziert seine Aktion nie selbst."," Die Stufe kommt aus deterministischen Regeln oder von einer separaten Komponente außerhalb seiner Reichweite. Genau diese Struktur beschreibt OpenAI für dots, wo ein getrenntes Prüfsystem außerhalb der vom Agenten veränderbaren Umgebung entscheidet, ob ein Schritt läuft. Die Berechtigungsreihenfolge im Claude Agent SDK ist genauso gebaut: ",{"tag":155,"href":49,"children":277},[278],"Hooks, dann Deny-Regeln, dann Ask-Regeln, dann der Berechtigungsmodus, dann Allow-Regeln, dann dein Callback",{"type":280,"attrs":281,"inner":285,"caption":286},"diagram",{"viewBox":282,"role":283,"aria-labelledby":284},"0 0 720 378","img","d1-hitl-t d1-hitl-d","\u003Ctitle id=\"d1-hitl-t\">Der Freigabe-Ablauf\u003C\u002Ftitle>\u003Cdesc id=\"d1-hitl-d\">Ein Agent schlägt eine Aktion vor. Ein Risiko-Gate außerhalb des Agenten weist eine Stufe zu. Stufe 0 und 1 laufen automatisch. Stufe 2 geht an einen Menschen, der freigeben, ändern oder ablehnen kann. Stufe 3 wird gesperrt oder übergeben. Jede Entscheidung wird in ein Audit-Log geschrieben.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"28\" class=\"d-title\">Der Freigabe-Ablauf\u003C\u002Ftext>\u003Ctext x=\"700\" y=\"28\" text-anchor=\"end\" class=\"d-label\">risikogestufte Freigabe\u003C\u002Ftext>\u003Crect x=\"20\" y=\"120\" width=\"150\" height=\"76\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"95\" y=\"154\" text-anchor=\"middle\" class=\"d-text\">Agent schlägt vor\u003C\u002Ftext>\u003Ctext x=\"95\" y=\"175\" text-anchor=\"middle\" class=\"d-small\">Tool-Aufruf + Args\u003C\u002Ftext>\u003Cpath d=\"M170 158 H192\" class=\"d-line\" \u002F>\u003Cpath d=\"M200 158 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"200\" y=\"120\" width=\"160\" height=\"76\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"280\" y=\"154\" text-anchor=\"middle\" class=\"d-text\">Risiko-Gate\u003C\u002Ftext>\u003Ctext x=\"280\" y=\"175\" text-anchor=\"middle\" class=\"d-small\">Stufe nach Worst Case\u003C\u002Ftext>\u003Cpath d=\"M360 158 C385 158 380 80 402 80\" class=\"d-line\" \u002F>\u003Cpath d=\"M410 80 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"410\" y=\"52\" width=\"130\" height=\"56\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"475\" y=\"76\" text-anchor=\"middle\" class=\"d-text\">Läuft\u003C\u002Ftext>\u003Ctext x=\"475\" y=\"97\" text-anchor=\"middle\" class=\"d-small\">Stufe 0 und 1\u003C\u002Ftext>\u003Cpath d=\"M360 158 C385 158 380 158 402 158\" class=\"d-line\" \u002F>\u003Cpath d=\"M410 158 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"410\" y=\"130\" width=\"130\" height=\"56\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"475\" y=\"154\" text-anchor=\"middle\" class=\"d-text\">Fragt Mensch\u003C\u002Ftext>\u003Ctext x=\"475\" y=\"175\" text-anchor=\"middle\" class=\"d-small\">Stufe 2\u003C\u002Ftext>\u003Cpath d=\"M360 158 C385 158 380 236 402 236\" class=\"d-line\" \u002F>\u003Cpath d=\"M410 236 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"410\" y=\"208\" width=\"130\" height=\"56\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"475\" y=\"232\" text-anchor=\"middle\" class=\"d-text\">Gesperrt\u003C\u002Ftext>\u003Ctext x=\"475\" y=\"253\" text-anchor=\"middle\" class=\"d-small\">Stufe 3: Übergabe\u003C\u002Ftext>\u003Cpath d=\"M540 158 H562\" class=\"d-line\" \u002F>\u003Cpath d=\"M570 158 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Crect x=\"570\" y=\"130\" width=\"140\" height=\"56\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"640\" y=\"154\" text-anchor=\"middle\" class=\"d-text\">Mensch prüft\u003C\u002Ftext>\u003Ctext x=\"640\" y=\"175\" text-anchor=\"middle\" class=\"d-small\">ok · ändern · nein\u003C\u002Ftext>\u003Crect x=\"20\" y=\"284\" width=\"690\" height=\"46\" rx=\"10\" class=\"d-box d-dash\" \u002F>\u003Ctext x=\"365\" y=\"312\" text-anchor=\"middle\" class=\"d-small\">Jede Entscheidung kommt ins Audit-Log: wer, was, welche Stufe, Ergebnis\u003C\u002Ftext>\u003Ctext x=\"365\" y=\"358\" text-anchor=\"middle\" class=\"d-label\">Eine Ablehnung geht mit Begründung zurück an den Agenten, damit er einen anderen Weg wählt.\u003C\u002Ftext>",[287],"Die Stufe wird außerhalb des Agenten entschieden. Der Mensch sieht nur die Fälle, die einen Menschen brauchen.",{"type":149,"level":150,"id":109,"text":110},{"type":131,"content":290},[291,292,295],"Wenn ein Gate auslöst, entscheidet die Oberfläche, ob es funktioniert. Das sind die Designregeln, die ich anwende, und sie folgen alle einer Idee: Die prüfende Person sollte die ",{"tag":178,"children":293},[294],"Wirkung"," in wenigen Sekunden beurteilen können.",{"type":183,"ordered":184,"items":297},[298,303,308,313,318,323,328],[299,302],{"tag":170,"children":300},[301],"Zeige die Wirkung, nicht die Absicht."," „Der Agent will send_email ausführen“ ist nutzlos. „E-Mail an ceo@client.com, 340 Wörter, Anhang contract.pdf, 12 Personen in CC“ ist prüfbar. Bei Code und Daten zeig einen Diff, bei Geld Betrag, Währung und Empfänger.",[304,307],{"tag":170,"children":305},[306],"Mach das Gefährliche laut."," Hebe das Ungewöhnliche hervor: einen neuen Empfänger, einen Betrag über dem Median, einen Platzhalter im Pfad, eine externe Domain.",[309,312],{"tag":170,"children":310},[311],"Bündle, was zusammengehört."," Zehn ähnliche Stufe-2-Schritte sind eine Entscheidung mit sichtbarer Liste, nicht zehn Dialoge. Ermüdung wächst mit der Zahl der Unterbrechungen.",[314,317],{"tag":170,"children":315},[316],"Biete Ändern an, nicht nur Ja oder Nein."," Das Claude Agent SDK lässt deinen Callback geänderte Eingaben zurückgeben, und die Human-in-the-Loop-Middleware von LangChain kennt neben Approve und Reject eine Edit-Entscheidung. Wer einen Parameter korrigieren kann, lehnt nicht den ganzen Plan ab.",[319,322],{"tag":170,"children":320},[321],"Lass Ablehnung eine Begründung tragen."," Eine Deny-Nachricht geht zurück ans Modell, das sich anpassen kann. Im Claude Agent SDK sieht Claude die Nachricht einer Ablehnung, im OpenAI Agents SDK kannst du pro Aufruf eine Ablehnungsnachricht setzen.",[324,327],{"tag":170,"children":325},[326],"Vorsicht bei „immer erlauben“."," Eine gemerkte Entscheidung entfernt künftige Reibung und künftige Kontrolle zugleich. Wenn du sie anbietest, begrenze sie eng (dieser Befehl, dieser Pfad), lass sie ablaufen und liste aktive Regeln dort, wo Leute sie prüfen können.",[329,332],{"tag":170,"children":330},[331],"Im Zweifel verweigern."," Antwortet niemand, ist die Antwort nein. Ein Timeout darf nie freigeben.",{"type":131,"content":334},[335,336,340],"Und dann messen. Meine Faustregel, eine Erfahrungsheuristik und kein veröffentlichter Schwellenwert: Wird ein Gate zu mehr als etwa 95 Prozent freigegeben und dauert die Entscheidung im Median ein paar Sekunden, ist es Theater. Entweder gehört die Aktion in Stufe 1, oder die Abfrage liefert nicht, was man zur Beurteilung braucht. Verfolge pro Aktionstyp Freigabequote, Entscheidungszeit und den Anteil später rückgängig gemachter Freigaben. Es ist dasselbe Aufmerksamkeitsproblem, das ",{"tag":138,"to":337,"children":338},"\u002Fblog\u002Fai-generated-pr-review-bottleneck",[339],"agentengeschriebene Pull Requests zum Review-Flaschenhals"," macht, und die Lösung ist dieselbe: weniger, besser vorbereitete Entscheidungen.",{"type":149,"level":150,"id":112,"text":113},{"type":131,"content":343},[344],"Technisch ist ein Gate eine Pause: Der Agent schlägt eine Aktion vor, die Runtime hält an, der Zustand wird gesichert, und ein späterer Aufruf setzt mit einer Entscheidung fort. Alle drei großen Stacks haben dafür inzwischen ein eigenes Primitiv. Die API unterscheidet sich, die Fehlerbilder ähneln sich.",{"type":210,"head":346,"rows":355},[347,349,351,353],[348],"Framework",[350],"Pause",[352],"Resume",[354],"Persistenz und Fallstricke",[356,385,409,450],[357,361,367,380],[358],{"tag":170,"children":359},[360],"LangGraph",[362,366],{"tag":363,"children":364},"code",[365],"interrupt(payload)"," in einem Node aufrufen; der Payload muss JSON-serialisierbar sein",[368,369,372,373,376,377],"Erneut aufrufen mit ",{"tag":363,"children":370},[371],"Command(resume=value)"," auf demselben ",{"tag":363,"children":374},[375],"thread_id","; der Wert wird zur Rückgabe von ",{"tag":363,"children":378},[379],"interrupt",[381,382,384],"Braucht einen Checkpointer. Der Node startet von vorn, daher müssen Seiteneffekte vor dem Interrupt idempotent sein. ",{"tag":363,"children":383},[379]," nie in try\u002Fexcept wickeln. Zuordnung per Index, Aufrufreihenfolge stabil halten",[386,390,399,404],[387],{"tag":170,"children":388},[389],"LangChain Agents",[391,394,395,398],{"tag":363,"children":392},[393],"HumanInTheLoopMiddleware"," mit ",{"tag":363,"children":396},[397],"interrupt_on"," pro Tool",[400,403],{"tag":363,"children":401},[402],"Command(resume={\"decisions\": [...]})"," mit approve, edit, reject (oder respond)",[405,406,408],"Braucht Checkpointer und ",{"tag":363,"children":407},[375],"; Entscheidungen müssen zur Reihenfolge der pausierten Aktionen passen",[410,414,423,436],[411],{"tag":170,"children":412},[413],"OpenAI Agents SDK",[415,416,419,420],"Ein Tool setzt ",{"tag":363,"children":417},[418],"needs_approval"," (true oder eine async Funktion der Argumente); der Lauf endet mit offenen ",{"tag":363,"children":421},[422],"interruptions",[424,427,428,431,432,435],{"tag":363,"children":425},[426],"state.approve(item)"," oder ",{"tag":363,"children":429},[430],"state.reject(item, rejection_message=...)",", dann mit dem ",{"tag":363,"children":433},[434],"RunState"," erneut ausführen",[437,438,441,442,445,446,449],"Der Zustand serialisiert mit ",{"tag":363,"children":439},[440],"to_json"," und ",{"tag":363,"children":443},[444],"from_json",". Nur aus vertrauenswürdigem Speicher deserialisieren. ",{"tag":363,"children":447},[448],"always_approve"," macht eine Entscheidung dauerhaft",[451,455,468,485],[452],{"tag":170,"children":453},[454],"Claude Agent SDK",[456,459,460,463,464,467],{"tag":363,"children":457},[458],"canUseTool"," feuert für Aufrufe, die kein Hook, keine Regel und kein Modus entschieden hat; für langsame Prüfer kann ein ",{"tag":363,"children":461},[462],"PreToolUse","-Hook ",{"tag":363,"children":465},[466],"defer"," zurückgeben",[469,472,473,476,477,480,481,484],{"tag":363,"children":470},[471],"allow"," (optional mit ",{"tag":363,"children":474},[475],"updatedInput",") oder ",{"tag":363,"children":478},[479],"deny"," mit Nachricht zurückgeben; ein zurückgestellter Aufruf läuft mit ",{"tag":363,"children":482},[483],"--resume"," weiter und der Hook feuert erneut",[486,487,489,490,492,493,496],"Automatisch freigegebene Tools erreichen ",{"tag":363,"children":488},[458]," nie; für Prüfungen, die jeden Aufruf sehen müssen, einen ",{"tag":363,"children":491},[462],"-Hook nutzen. Im Modus ",{"tag":363,"children":494},[495],"dontAsk"," werden Abfragen zu Ablehnungen",{"type":131,"content":498},[499,500,503,504,507,508,510,511,514,515,517],"Ein paar Details aus der offiziellen Dokumentation solltest du kennen, bevor du darauf aufbaust. Der ",{"tag":155,"href":37,"children":501},[502],"Interrupts-Guide"," von LangGraph warnt, dass ein fortgesetzter Node von oben neu läuft, eine E-Mail vor dem Interrupt würde also doppelt versendet. Der ",{"tag":155,"href":43,"children":505},[506],"Guide"," des OpenAI Agents SDK zeigt, dass ",{"tag":363,"children":509},[418]," eine async Funktion sein kann, die pro Aufruf anhand der Parameter entscheidet, und sagt für langlebige Freigaben: Der Server soll den Prüfer authentifizieren, gegen den gespeicherten Lauf autorisieren, Entscheidungs-IDs gegen serverseitigen Zustand validieren und Entscheidungen atomar anwenden, um Replay zu verhindern. Die ",{"tag":155,"href":46,"children":512},[513],"Dokumentation"," des Claude Agent SDK hält fest, dass der Callback unbegrenzt offen bleiben kann, und empfiehlt die Entscheidung ",{"tag":363,"children":516},[466],", wenn ein Mensch länger brauchen könnte, als dein Prozess leben kann.",{"type":363,"code":519},"from langgraph.types import interrupt, Command\n\ndef refund_node(state):\n    # runs again from the top after resume: keep everything above idempotent\n    decision = interrupt({\n        \"action\": \"refund\", \"amount\": state[\"amount\"],\n        \"customer\": state[\"customer_id\"], \"tier\": 3,\n    })\n    return Command(goto=\"execute\" if decision[\"approved\"] else \"cancel\")\n\n# later, possibly from another process, same thread_id\ngraph.stream_events(Command(resume={\"approved\": True}),\n                    config={\"configurable\": {\"thread_id\": \"case-4711\"}}, version=\"v3\")",{"type":131,"content":521},[522,523,526,527,530,531,534,535,538,539,543],"Unabhängig vom Framework ergänze ich vier Eigenschaften. ",{"tag":170,"children":524},[525],"Binde die Freigabe an die exakte Aktion",": Speichere einen Hash aus Tool-Name und Argumenten mit der Entscheidung und prüfe ihn bei der Ausführung erneut, damit ein nach der Freigabe geänderter Plan nicht gedeckt ist. ",{"tag":170,"children":528},[529],"Authentifiziere den Freigebenden"," über deine Session, nie über den Request-Body. ",{"tag":170,"children":532},[533],"Lass Freigaben ablaufen",", nach Minuten oder Stunden, nicht Tagen. ",{"tag":170,"children":536},[537],"Mach den ausführenden Schritt idempotent"," mit einem Idempotency-Key, denn Resume, Retry und Doppelklick gibt es alle. Für Tool-Sicherheit im weiteren Sinn deckt meine ",{"tag":138,"to":540,"children":541},"\u002Fblog\u002Fmcp-server-security-checklist",[542],"MCP-Server-Security-Checkliste"," die andere Hälfte des Problems ab.",{"type":149,"level":150,"id":115,"text":116},{"type":131,"content":546},[547,548,551],"Eine Freigabe ohne Aufzeichnung kann nicht geprüft, angefochten oder gelernt werden. Für jede gegatete Aktion logge ich eine kleine, langweilige Menge an Fakten: Lauf- und Thread-Kennungen, die vorgeschlagene Aktion mit allen Argumenten, die Stufe und die Regel, die sie zugewiesen hat, wer entschieden hat (Person, Regel oder Reviewer-Modell), die Entscheidung und jede Änderung, Zeitstempel und Latenz sowie das Ergebnis der Ausführung. Speichere die Argumente so, wie sie dem Prüfer gezeigt wurden. Rendert die Oberfläche eine Zusammenfassung, behalte auch diese, denn ein Streit dreht sich oft darum, was die Person ",{"tag":178,"children":549},[550],"gesehen"," hat.",{"type":131,"content":553},[554,555,558,559,563],"Für regulierte Anwendungen ist das nicht optional. Artikel 14 des EU AI Act, der für Hochrisiko-Systeme gilt, ",{"tag":155,"href":61,"children":556},[557],"verlangt Aufsicht",", mit der zuständige Personen die Grenzen des Systems verstehen, sich des Automation Bias bewusst bleiben, entscheiden können, die Ausgabe nicht zu verwenden oder zu übersteuern, und in den Betrieb eingreifen oder das System stoppen können. Ob dein Agent Hochrisiko ist, hängt vom Anwendungsfall ab, prüf das also, bevor du in die eine oder andere Richtung annimmst. Meine ",{"tag":138,"to":560,"children":561},"\u002Fblog\u002Feu-ai-act-article-50-developer-checklist",[562],"EU-AI-Act-Checkliste für Entwickler"," behandelt die Transparenzseite.",{"type":131,"content":565},[566,567,570],"Eskalation ist der Teil, den Teams vergessen. Lege vorab fest, wer gefragt wird, wie viel Zeit er hat und was dann passiert. Eine tragfähige Leiter: zuerst der anfragende Nutzer, dann eine benannte Rolle (der Prozessverantwortliche), dann ein zweiter Freigebender für Stufe 3, und als Default Ablehnen, wenn niemand antwortet. Ergänze einen ",{"tag":170,"children":568},[569],"Kill-Switch",", der vom Agenten unabhängig ist: ein Flag, das neue Läufe stoppt und offene Freigaben abbricht. Leite Benachrichtigungen über einen Kanal, den Leute ohnehin beobachten. Das Claude Agent SDK hat zum Beispiel einen PermissionRequest-Hook, der gedacht ist, um eine Slack- oder E-Mail-Benachrichtigung zu senden, wenn ein Agent wartet.",{"type":149,"level":150,"id":118,"text":119},{"type":131,"content":573},[574,575,578],"Alles bisher setzte eine Person vor einem Chat voraus. Always-on-Agenten brechen diese Annahme. Ein Dot oder ein geplanter Coding-Agent arbeitet stundenlang, läuft, während du schläfst, und erzeugt Freigaben im Maschinentempo. Wie ich in der ",{"tag":138,"to":139,"children":576},[577],"Dots-Wirkungsanalyse"," geschrieben habe, wandert der Mensch vom Anfang ans Ende der Kette, und Aufmerksamkeit wird zum Engpass.",{"type":131,"content":580},[581],"OpenAIs veröffentlichtes Design für dots ist eine nützliche Referenz, weil es ein risikogestuftes Gate ist. Hintergrundrecherche läuft mit Nur-Lese-Tools, ein separates Auto-review-System prüft folgenreiche Schritte gegen deine Anweisungen, deine Custom Rules und Sicherheitsanforderungen, und Custom Rules können Aktionen erlauben, eine Freigabe verlangen oder sie blockieren, aber eine verpflichtende Untergrenze nicht entfernen: Ein Passwort ändern oder Geld zwischen Konten bewegen geht immer an die Person zurück. Das sind die Stufen 0, 2 und 3 als Produkt.",{"type":131,"content":583},[584,585,588,589,592,593,596,597,147],"Daraus folgen drei Konsequenzen für dein eigenes Design. Erstens: ",{"tag":170,"children":586},[587],"Regeln ersetzen die meisten Rückfragen."," Ein Regelwerk wie „Erstattungen unter X laufen, darüber fragen, alles mit Bankdaten ist gesperrt“ entfernt tausende wertarme Unterbrechungen und macht die verbleibenden zu Ereignissen, die man lesen will. Zweitens: ",{"tag":170,"children":590},[591],"Ein Reviewer-Modell ist ein Werkzeug, kein Orakel."," Es skaliert und ermüdet nicht, aber Anthropics eigene Zahlen zeigen eine Fehlerquote über null, und OpenAIs Auto-review ist das Modell des Herstellers, das den Agenten des Herstellers beaufsichtigt. Halte deterministische Stufe-3-Regeln außerhalb jedes Modells und prüfe Stichproben der automatisch freigegebenen Aktionen per Mensch. Drittens: ",{"tag":170,"children":594},[595],"Gates kontrollieren Aktionen, nicht, was der Agent liest."," Ein Nur-Lese-Dot sieht trotzdem den ganzen Kundendatensatz, deshalb gehören Least-Privilege-Verbindungen und maskierte Daten genauso ins Design wie Freigaben. Dieses Muster vertiefe ich in ",{"tag":138,"to":598,"children":599},"\u002Fblog\u002Fprompt-injection-lethal-trifecta-patterns",[600],"Prompt Injection und die Lethal Trifecta",{"type":602,"variant":603,"title":604,"body":605},"callout","tip","Besser fragen, nicht mehr",[606],[607],"Wenn der Agent rund um die Uhr läuft, ist die Zahl der Fragen ein Preis, den du in menschlicher Aufmerksamkeit zahlst. Verlagere Volumen mit Regeln und einem Reviewer-Modell aus der Warteschlange des Menschen und setze den Menschen für Stufe-2- und Stufe-3-Entscheidungen ein, präsentiert mit ihrer echten Wirkung.",{"type":149,"level":150,"id":121,"text":122},{"type":131,"content":610},[611],"Diese Liste würde ich durchgehen, bevor ein Agent mit Schreibzugriff auf echte Daten losgelassen wird:",{"type":183,"ordered":613,"items":614},true,[615,617,619,621,623,625,627,629,631,633],[616],"Liste jedes Tool und dazu die Worst-Case-Argumente. Weise eine Stufe nach Reversibilität, Wirkungsradius, Daten und Autorität zu.",[618],"Lege die Stufenentscheidung außerhalb des Agenten: zuerst deterministische Regeln, dann ein Reviewer-Modell, nie das eigene Urteil des Agenten.",[620],"Sperre Stufe 3 standardmäßig und erlaube sie nur über eine benannte Übergabe mit authentifiziertem Freigebenden.",[622],"Baue den Freigabe-Screen um die Wirkung herum: Payload, Diff, Empfänger, Betrag, mit hervorgehobenen Auffälligkeiten.",[624],"Bündle ähnliche Stufe-2-Schritte, unterstütze Ändern neben Freigeben und Ablehnen und gib Ablehnungsgründe an den Agenten zurück.",[626],"Pausiere mit Checkpointer oder serialisiertem Zustand, mach alles vor der Pause idempotent und binde jede Freigabe an einen Hash der exakten Aktion.",[628],"Verweigere bei Timeout, lass Freigaben ablaufen und halte einen Kill-Switch bereit, der nicht vom Agenten abhängt.",[630],"Logge wer, was, Stufe, Regel, Entscheidung, Änderungen, Zeit und Ergebnis, und bewahre auf, was der Prüfer tatsächlich gesehen hat.",[632],"Prüfe wöchentlich eine Stichprobe automatisch freigegebener Aktionen per Mensch und verfolge Freigabequote und Entscheidungszeit pro Aktionstyp.",[634],"Stufe nach jedem Vorfall und jedem neuen Tool neu ein: Die Matrix ist ein lebendes Dokument.",{"type":131,"content":636},[637,638,642],"Wenn du Hilfe brauchst, das in eine konkrete Architektur für deine Agenten zu überführen: Das ist das, was ich in meiner ",{"tag":138,"to":639,"children":640},"\u002Fexpertise\u002Fai-engineer",[641],"KI-Engineering-Arbeit"," mache.",{"type":149,"level":150,"id":124,"text":125},{"type":131,"content":645},[646],"Human in the Loop verschwindet nicht, wenn Agenten besser werden, aber seine Form ändert sich. Der Default wandert von „eine Person genehmigt jeden Schritt“ zu „eine Person setzt die Regeln, prüft die Ausnahmen und auditiert den Rest“. Dass der Auto Mode in Claude Code zum Standard wird und dots eine Auto-review-Schicht haben, zeigt zwei Hersteller, die in derselben Saison zum selben Schluss kommen.",{"type":131,"content":648},[649],"Menschlich bleibt die Verantwortung. Ein Klassifikator kann eine Aktion genehmigen, aber nicht dafür verantwortlich sein. Gestalte jedes Gate so, dass du, wenn etwas schiefgeht, beantworten kannst, wer es erlaubt hat, auf welcher Informationsgrundlage und nach welcher Regel.",{"type":149,"level":150,"id":127,"text":128},{"type":183,"ordered":613,"items":652},[653,656,659,662,665,668,671,674,677,680],[654],{"tag":155,"href":37,"children":655},[36],[657],{"tag":155,"href":40,"children":658},[39],[660],{"tag":155,"href":43,"children":661},[42],[663],{"tag":155,"href":46,"children":664},[45],[666],{"tag":155,"href":49,"children":667},[48],[669],{"tag":155,"href":52,"children":670},[51],[672],{"tag":155,"href":55,"children":673},[54],[675],{"tag":155,"href":58,"children":676},[57],[678],{"tag":155,"href":61,"children":679},[60],[681],{"tag":155,"href":64,"children":682},[63],[684,749,828,893],{"slug":685,"published":5,"minutes":686,"category":7,"tags":687,"keywords":690,"about":700,"sources":708,"cover":743,"og":744,"expertise":67,"locales":745,"lang":70,"title":746,"description":747,"coverAlt":748},"openai-dots-always-on-agents-impact",14,[141,10,688,689],"GPT-6 Astra","AI governance",[141,691,692,693,694,695,696,697,698,699],"what are OpenAI dots","OpenAI dots impact","always-on AI agents","GPT-6 Astra agents","dots Auto-review and Custom Rules","specialist dots for enterprise","OpenAI dots EU availability","OpenAI DevDay 2026","AI agents in the workplace",[701,704,707],{"name":702,"url":703},"OpenAI","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOpenAI",{"name":705,"url":706},"ChatGPT","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FChatGPT",{"name":29,"url":30},[709,712,713,716,719,722,725,728,731,734,737,740],{"title":710,"url":711},"OpenAI: Introducing dots (29 September 2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fintroducing-dots\u002F",{"title":63,"url":64},{"title":714,"url":715},"OpenAI Help Center: Dots privacy, security, and safety FAQs","https:\u002F\u002Fhelp.openai.com\u002Fen\u002Farticles\u002F20001529-dots-privacy-security-and-safety-faqs",{"title":717,"url":718},"TechCrunch: OpenAI launches Dots, its bubbly agentic avatar","https:\u002F\u002Ftechcrunch.com\u002F2026\u002F09\u002F29\u002Fopenai-launches-dots-its-bubbly-agentic-avatar\u002F",{"title":720,"url":721},"Unite.AI: OpenAI rolls out dots agents powered by GPT-6 Astra in ChatGPT","https:\u002F\u002Fwww.unite.ai\u002Fopenai-rolls-out-dots-agents-powered-by-gpt-6-astra-in-chatgpt\u002F",{"title":723,"url":724},"MediaNama: OpenAI launches dots that keep working without user prompts","https:\u002F\u002Fwww.medianama.com\u002F2026\u002F10\u002F223-openai-launches-dots-devday-2026\u002F",{"title":726,"url":727},"PYMNTS: OpenAI launches dots to capture AI agent market","https:\u002F\u002Fwww.pymnts.com\u002Fnews\u002Fartificial-intelligence\u002F2026\u002Fopenai-launches-dots-to-capture-ai-agent-market\u002F",{"title":729,"url":730},"Yahoo Finance: OpenAI debuts Dots AI agents in challenge to Meta's Muse","https:\u002F\u002Ffinance.yahoo.com\u002Ftechnology\u002Farticle\u002Fopenai-debuts-dots-ai-agents-in-challenge-to-metas-popular-muse-agent-174616593.html",{"title":732,"url":733},"CNBC: OpenAI abandons plan to release upcoming model as safety concerns escalate","https:\u002F\u002Fwww.cnbc.com\u002F2026\u002F09\u002F28\u002Fopenai-abandons-plan-to-release-upcoming-model-as-safety-concerns-escalate.html",{"title":735,"url":736},"The Hacker News: OpenAI shelves GPT-6.1 Astra after tests find deception and unauthorized actions","https:\u002F\u002Fthehackernews.com\u002F2026\u002F09\u002Fopenai-shelves-gpt-61-astra-after-tests.html",{"title":738,"url":739},"Al Jazeera: OpenAI launches dots, personal AI assistant built to handle everything","https:\u002F\u002Fwww.aljazeera.com\u002Feconomy\u002F2026\u002F9\u002F30\u002Fopenai-launches-dots-personal-ai-assistant-built-to-handle-everything",{"title":741,"url":742},"RedactSure: Do OpenAI dots Custom Rules control what the agent sees?","https:\u002F\u002Fredactsure.com\u002Fresearch\u002Fdo-openai-dots-custom-rules-control-what-the-agent-sees","\u002Fimages\u002Fblog\u002Fopenai-dots-always-on-agents-impact\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenai-dots-always-on-agents-impact\u002Fog.jpg",[69,70,71],"OpenAI dots: Was Always-on-Agenten verändern werden, und was nicht","OpenAI dots: Always-on-Agenten auf GPT-6 Astra mit eigenem Rechner. Was gestartet ist, wo die Schutzmechanismen enden und was sich für Arbeit, IT und Europa ändert.","Diagramm: ein Dot auf GPT-6 Astra verzweigt zu Slack und Teams, mehr als 4.000 Apps, einem eigenen Cloud-Rechner und einer Person, die freigibt und prüft.",{"slug":750,"published":5,"minutes":6,"category":7,"tags":751,"keywords":756,"about":767,"sources":775,"cover":822,"og":823,"expertise":67,"locales":824,"lang":70,"title":825,"description":826,"coverAlt":827},"ai-agent-memory-design",[752,753,754,755],"AI agent memory","Context engineering","Memory poisoning","GDPR",[757,758,759,760,761,762,763,764,765,766],"AI agent memory design","long-term memory for AI agents","episodic semantic procedural memory LLM","agent memory architecture","ChatGPT memory vs Claude memory","Claude memory tool","AI memory poisoning","LLM context compaction","AI agent memory GDPR","short-term vs long-term memory agents",[768,769,772],{"name":29,"url":30},{"name":770,"url":771},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",{"name":773,"url":774},"Prompt injection","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_injection",[776,779,782,785,788,791,794,797,800,803,806,809,812,813,816,819],{"title":777,"url":778},"Anthropic docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":780,"url":781},"Anthropic docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":783,"url":784},"Anthropic Engineering: Effective context engineering for AI agents","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":786,"url":787},"Sumers et al.: Cognitive Architectures for Language Agents (CoALA)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.02427",{"title":789,"url":790},"Packer et al.: MemGPT, Towards LLMs as Operating Systems","https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.08560",{"title":792,"url":793},"Park et al.: Generative Agents, Interactive Simulacra of Human Behavior","https:\u002F\u002Farxiv.org\u002Fabs\u002F2304.03442",{"title":795,"url":796},"Unit 42: When AI Remembers Too Much, persistent behaviors in agents memory","https:\u002F\u002Funit42.paloaltonetworks.com\u002Findirect-prompt-injection-poisons-ai-longterm-memory\u002F",{"title":798,"url":799},"From Untrusted Input to Trusted Memory: A Systematic Study of Memory Poisoning Attacks in LLM Agents (preprint)","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2606.04329v1",{"title":801,"url":802},"The Hacker News: ChatGPT macOS flaw could have enabled long-term spyware via memory function","https:\u002F\u002Fthehackernews.com\u002F2024\u002F09\u002Fchatgpt-macos-flaw-couldve-enabled-long.html",{"title":804,"url":805},"Vectorize: OWASP ASI06, Memory and Context Poisoning explained","https:\u002F\u002Fvectorize.io\u002Farticles\u002Fowasp-asi06",{"title":807,"url":808},"Claude Help Center: Use chat search and memory to build on previous context","https:\u002F\u002Fsupport.claude.com\u002Fen\u002Farticles\u002F11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context",{"title":810,"url":811},"OpenAI Help Center: Memory in ChatGPT","https:\u002F\u002Fhelp.openai.com\u002Fen\u002Farticles\u002F8590148-memory-faq",{"title":714,"url":715},{"title":814,"url":815},"Flavio Copes: A deep dive into OpenAI dots (quotes the dots documentation on memory)","https:\u002F\u002Fflaviocopes.com\u002Fopenai-dots\u002F",{"title":817,"url":818},"GDPR Article 5: Principles relating to processing of personal data","https:\u002F\u002Fgdpr-info.eu\u002Fart-5-gdpr\u002F",{"title":820,"url":821},"GDPR Article 17: Right to erasure","https:\u002F\u002Fgdpr-info.eu\u002Fart-17-gdpr\u002F","\u002Fimages\u002Fblog\u002Fai-agent-memory-design\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-agent-memory-design\u002Fog.jpg",[69,70,71],"Memory für KI-Agenten entwerfen: Ebenen, Schreibregeln, Poisoning und DSGVO","So entwirfst du das Gedächtnis von KI-Agenten: Kontext, Session, Langzeit, was du speicherst und nie speicherst, Retrieval, Compaction, Poisoning, DSGVO.","Diagramm: verschachtelte Gedächtnisebenen eines KI-Agenten, vom Arbeitskontext über den Session-Zustand bis zum episodischen und semantischen Langzeitgedächtnis.",{"slug":829,"published":5,"minutes":830,"category":7,"tags":831,"keywords":834,"about":845,"sources":853,"cover":887,"og":888,"expertise":67,"locales":889,"lang":70,"title":890,"description":891,"coverAlt":892},"multi-agent-systems-when-worth-it",12,[832,10,833,753],"Multi-agent systems","Orchestrator-worker",[835,836,837,838,839,840,841,842,843,844],"multi-agent systems when worth it","multi-agent vs single agent","orchestrator-worker pattern","multi-agent LLM token cost","why multi-agent systems fail","don't build multi-agents","subagents context isolation","multi-agent debate worth it","agent handoffs vs subagents","when to use multiple AI agents",[846,849,850],{"name":847,"url":848},"Multi-agent system","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMulti-agent_system",{"name":29,"url":30},{"name":851,"url":852},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",[854,857,860,863,866,869,872,875,878,881,884],{"title":855,"url":856},"Anthropic Engineering: How we built our multi-agent research system","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fmulti-agent-research-system",{"title":858,"url":859},"Anthropic: Building effective agents","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",{"title":861,"url":862},"Cognition: Don't Build Multi-Agents (12 June 2025)","https:\u002F\u002Fcognition.com\u002Fblog\u002Fdont-build-multi-agents",{"title":864,"url":865},"Cognition: Multi-Agents: What's Actually Working (22 April 2026)","https:\u002F\u002Fcognition.com\u002Fblog\u002Fmulti-agents-working",{"title":867,"url":868},"Google Research: Towards a science of scaling agent systems","https:\u002F\u002Fresearch.google\u002Fblog\u002Ftowards-a-science-of-scaling-agent-systems-when-and-why-agent-systems-work\u002F",{"title":870,"url":871},"arXiv 2512.08296: Towards a Science of Scaling Agent Systems","https:\u002F\u002Farxiv.org\u002Fabs\u002F2512.08296",{"title":873,"url":874},"arXiv 2503.13657: Why Do Multi-Agent LLM Systems Fail? (MAST)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2503.13657",{"title":876,"url":877},"arXiv 2305.14325: Improving Factuality and Reasoning in Language Models through Multiagent Debate","https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.14325",{"title":879,"url":880},"arXiv 2502.08788: Stop Overvaluing Multi-Agent Debate","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.08788",{"title":882,"url":883},"OpenAI Agents SDK: Handoffs","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fhandoffs\u002F",{"title":885,"url":886},"Claude Code documentation: Subagents","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsub-agents","\u002Fimages\u002Fblog\u002Fmulti-agent-systems-when-worth-it\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmulti-agent-systems-when-worth-it\u002Fog.jpg",[69,70,71],"Multi-Agent-Systeme: wann sie einen Agenten schlagen und wann nicht","Orchestrator-Worker, Fan-out, Critic, Handoff: was Multi-Agent-Systeme wirklich bringen, was sie an Tokens kosten, wie sie scheitern, mit Entscheidungstabelle.","Diagramm: Ein Lead-Agent verteilt Aufgaben an vier Worker-Agenten, jeder mit eigenem isoliertem Kontextfenster, und sammelt deren Zusammenfassungen ein.",{"slug":894,"published":5,"minutes":6,"category":7,"tags":895,"keywords":901,"about":912,"sources":922,"cover":977,"og":978,"expertise":67,"locales":979,"lang":70,"title":980,"description":981,"coverAlt":982},"voice-agents-realtime-latency",[896,897,898,899,900],"Voice agents","Realtime API","Latency","Telephony","AI Act",[902,903,904,905,906,907,908,909,910,911],"voice agents","speech-to-speech vs STT LLM TTS","OpenAI Realtime API","Gemini Live API","voice agent latency budget","turn detection and barge-in","Pipecat vs LiveKit","AI voice agent SIP telephony","German Hungarian voice AI","AI Act Article 50 voice bot disclosure",[913,916,919],{"name":914,"url":915},"Voice user interface","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVoice_user_interface",{"name":917,"url":918},"Speech recognition","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSpeech_recognition",{"name":920,"url":921},"Artificial Intelligence Act","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FArtificial_Intelligence_Act",[923,926,929,932,935,938,941,944,947,950,953,956,959,962,965,968,971,974],{"title":924,"url":925},"OpenAI: Voice agents guide","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fvoice-agents",{"title":927,"url":928},"OpenAI: gpt-realtime model page","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fmodels\u002Fgpt-realtime",{"title":930,"url":931},"OpenAI: Voice activity detection in the Realtime API","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Frealtime-vad",{"title":933,"url":934},"OpenAI: Realtime API with SIP","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Frealtime-sip",{"title":936,"url":937},"OpenAI: Realtime conversations (function calling, interruption)","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Frealtime-conversations",{"title":939,"url":940},"Google: Gemini Live API overview","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive",{"title":942,"url":943},"Google: Gemini Live API capabilities guide","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-guide",{"title":945,"url":946},"Deepgram: Flux quickstart","https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fflux\u002Fquickstart",{"title":948,"url":949},"Deepgram: Models and languages overview","https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Fmodels-languages-overview",{"title":951,"url":952},"ElevenLabs: Agents platform overview","https:\u002F\u002Felevenlabs.io\u002Fdocs\u002Feleven-agents\u002Foverview",{"title":954,"url":955},"ElevenLabs: Text to speech models and languages","https:\u002F\u002Felevenlabs.io\u002Fdocs\u002Foverview\u002Fcapabilities\u002Ftext-to-speech",{"title":957,"url":958},"LiveKit: Agents overview","https:\u002F\u002Fdocs.livekit.io\u002Fagents\u002F",{"title":960,"url":961},"LiveKit: Turn detector","https:\u002F\u002Fdocs.livekit.io\u002Fagents\u002Flogic\u002Fturns\u002Fturn-detector\u002F",{"title":963,"url":964},"Pipecat: Introduction","https:\u002F\u002Fdocs.pipecat.ai\u002Fgetting-started\u002Fintroduction",{"title":966,"url":967},"Pipecat: Smart Turn model (GitHub)","https:\u002F\u002Fgithub.com\u002Fpipecat-ai\u002Fsmart-turn",{"title":969,"url":970},"Fora Soft: Voice AI agents on LiveKit, 2026 engineer playbook","https:\u002F\u002Fwww.forasoft.com\u002Fblog\u002Farticle\u002Fvoice-ai-agents-livekit-guide",{"title":972,"url":973},"EU AI Act: Article 50, transparency obligations","https:\u002F\u002Fartificialintelligenceact.eu\u002Farticle\u002F50\u002F",{"title":975,"url":976},"Jones Walker: Yes, August 2 still matters (AI Act delay and Article 50)","https:\u002F\u002Fwww.joneswalker.com\u002Fen\u002Finsights\u002Fblogs\u002Fai-law-blog\u002Fyes-august-2-still-matters-the-eu-approved-a-high-risk-ai-delay-but-most-trans.html?id=102nbon","\u002Fimages\u002Fblog\u002Fvoice-agents-realtime-latency\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fvoice-agents-realtime-latency\u002Fog.jpg",[69,70,71],"Voice Agents bauen: Realtime Speech-to-Speech oder STT, LLM und TTS?","Realtime Speech-to-Speech oder kaskadierte Pipeline? Latenzbudget je Stufe, Turn-Taking, Tool-Calls, SIP, Qualität auf Deutsch und Ungarisch, KI-VO-Hinweispflicht.","Diagramm: Ein Anrufer erreicht per SIP oder WebRTC einen Voice Agent, der sich in Turn-Erkennung, Spracherkennung, ein LLM mit Tools und Sprachsynthese verzweigt.",1791009037467]