Be Software Architecture Wise
Be Wise Apps

Read in English · Leer en español · Lire en français

Abschnitt 12.4 von 12.8 · Fortgeschritten · 32 Min. Lesezeit

Agenten, Tool-Nutzung und Orchestrierung

Videolektion

5 Min. · auf Englisch gesprochen, mit Untertiteln
Nur anhören (Audio)
Transkript lesen

Bisher hat das Modell Text erzeugt. Viele nützliche Systeme müssen auch handeln: eine Bestellung nachschlagen, eine Erstattung auslösen, einen Test ausführen. In dieser Lektion geht es darum, das sicher zu tun.

Stellen Sie sich eine fähige neue Assistenzkraft an ihrem ersten Tag vor. Sie kann die Akten lesen, die Sie ihr geben, und vorschlagen, was zu tun ist. Aber sie hat keine eigenen Schlüssel. Um etwas nachzuschlagen oder eine Erstattung zu veranlassen, füllt sie einen Antragszettel aus. Eine Vorgesetzte prüft den Zettel, führt ihn aus und gibt das Ergebnis zurück. Sie geben ihr ein Zeitlimit und die Regel, dass alles Teure eine Unterschrift braucht. Ein Agent funktioniert genauso: Das Modell schlägt Aktionen vor, und gewöhnliche Software prüft und führt sie aus.

Beim Tool Calling kann das Modell statt mit Prosa mit einer strukturierten Anfrage antworten, ein Tool zu nutzen. Die Aufgabe des Nutzers geht also an einen Modellaufruf, der eine endgültige Antwort oder einen Tool-Aufruf zurückgibt. Jeder Tool-Aufruf wird im Code validiert: gegen sein Schema, die Geschäftsregeln und die eigenen Rechte des Nutzers. Ist er erlaubt, führt Code das Tool aus, mit einem Timeout und einem Idempotenzschlüssel. Das Ergebnis wird dem Kontext als Beobachtung hinzugefügt, die Limits für Schritte, Zeit und Tokens werden geprüft, und die Schleife dreht die nächste Runde. Nachdenken, handeln, beobachten: Diese Schleife macht einen Agenten aus. Lese-Tools wie das Nachschlagen von Bestellungen können frei laufen. Schreib-Tools wie das Vorschlagen einer Erstattung laufen über eine menschliche Freigabe, wenn es darauf ankommt. Alles außerhalb des Modellkastens ist gewöhnliche Software. Das Modell schlägt nur vor, und daher stammen die Zuverlässigkeit und Sicherheit eines Agenten.

Workflows führen Modelle und Tools über vordefinierte Codepfade; Agenten lassen das Modell seinen eigenen Ablauf steuern. Fangen Sie einfach an. Prompt Chaining führt feste Schritte aus: die Beschwerde extrahieren, sie klassifizieren und dann eine Antwort entwerfen. Routing klassifiziert die Eingabe und schickt sie an einen eigenen Handler, etwa für verspätete Bestellungen oder Allergiefragen. Parallelisierung führt unabhängige Prüfungen gleichzeitig aus oder stimmt mehrmals über eine Frage ab. Bei Orchestrator und Workern zerlegt ein Modell eine Aufgabe zur Laufzeit in Teilaufgaben. Und bei Evaluator und Optimierer entwirft ein Aufruf, und ein anderer prüft den Entwurf. Kosten und Fehler eines Workflows lassen sich vorhersagen, also nutzen Sie einen autonomen Agenten nur, wenn die Schritte nicht im Voraus bekannt sein können.

Ohne Standard bräuchte jeder Assistent eine eigene Integration mit jedem System. Das Model Context Protocol, kurz MCP, ersetzt das durch ein einziges offenes Protokoll. Eine Host-Anwendung betreibt einen MCP-Client pro Verbindung. Jeder Client spricht mit einem MCP-Server. Hier kapselt ein lokaler Server Dateien, und Remote-Server kapseln einen Ticketing-Dienst und den Bestellservice. Server bieten Tools, Ressourcen und Prompts an, und Remote-Server autorisieren Clients mit OAuth. Ein Server kann Ihre Daten lesen und für Sie handeln, behandeln Sie ihn also als Abhängigkeit. Geben Sie die erlaubten Server frei, legen Sie ihre Versionen fest, geben Sie jedem nur minimale Rechte, und denken Sie daran, dass Tool-Ergebnisse eingeschleuste Anweisungen enthalten können.

Verfolgen wir eine Erstattung. Ein Kunde schreibt, dass seine Bestellung ohne die zwei Limonaden ankam. Der Agent läuft mit Limits von acht Schritten, dreißig Sekunden und zwanzigtausend Tokens. Zuerst ruft das Modell ein Lese-Tool für die Artikel der Bestellung auf. Der Code prüft, ob die Bestellung dem angemeldeten Kunden gehört, und gibt dann zwei Limonaden zu je zwei Pfund zwanzig zurück. Als Nächstes schlägt das Modell eine Erstattung vor, gibt aber keinen Betrag an. Der Erstattungsservice berechnet vier Pfund vierzig und wendet die Richtlinie im Code an, einschließlich des automatischen Limits von fünfzehn Pfund. Der Kunde bestätigt. Dann tritt bei der Antwort ein Timeout auf. Der Orchestrator wiederholt den Aufruf mit demselben Idempotenzschlüssel, und der Service gibt das ursprüngliche Ergebnis zurück. Der Kunde bekommt also einmal erstattet, nicht zweimal. Hätte die Reklamation zweiundzwanzig Pfund betragen, hätte der Service gemeldet, dass eine Freigabe nötig ist, und der Fall wäre mit den Belegen an einen menschlichen Mitarbeiter gegangen. Halten Sie Läufe kurz. Bei fünfundneunzig Prozent Trefferquote pro Schritt gelingt ein Lauf mit drei Schritten in etwa sechsundachtzig Prozent der Fälle, einer mit zwanzig Schritten nur in etwa sechsunddreißig.

Agenten versagen auf neue Weise: Sie drehen sich im Kreis, schweifen ab oder behaupten Erfolge, die sie nicht erzielt haben. Begrenzen Sie also Schritte, Zeit und Tokens, und stoppen Sie, wenn sich derselbe Aufruf ständig wiederholt. Validieren Sie jeden Tool-Aufruf im Code, und führen Sie Tools mit den Rechten der Person aus, der der Agent dient, nicht mit einem mächtigen Servicekonto. Machen Sie jeden Schreibvorgang idempotent und speichern Sie nach jedem Schritt einen Checkpoint, damit ein Absturz den Lauf fortsetzt, statt ihn zu wiederholen. Verlangen Sie für folgenreiche Nebeneffekte eine menschliche Freigabe, die die genaue Aktion und ihre Belege zeigt. Und tracen Sie jeden Modell- und Tool-Aufruf, führen Sie jeden Code des Agenten in einer Sandbox aus, und halten Sie eine schnelle Möglichkeit zum Abschalten bereit.

Der vollständige Abschnitt behandelt außerdem Gedächtnis und Zustand sowie die Debatte über Multi-Agenten-Systeme. Als Nächstes, in Abschnitt zwölf Punkt fünf, sehen wir uns an, wie man etwas Probabilistisches testet. Bis gleich.

Was Sie wissen müssen

Vom Antworten zum Handeln

Die Systeme der vorigen Abschnitte erzeugen Text. Viele nützliche Systeme müssen aber auch handeln: eine Bestellung nachschlagen, eine Wissensdatenbank durchsuchen, eine Erstattung auslösen, einen Tisch reservieren, eine Testsuite ausführen. Tool Calling (oft Function Calling genannt) ist der Mechanismus dafür. Die Anwendung beschreibt die verfügbaren Tools, jedes mit einem Namen, einer Beschreibung und einem JSON Schema für seine Parameter. Statt in Prosa zu antworten, kann das Modell eine strukturierte Anfrage zurückgeben, eines oder mehrere davon mit bestimmten Argumenten aufzurufen. Die Anwendung, nicht das Modell, entscheidet, ob der Aufruf ausgeführt wird, führt ihn aus und gibt das Ergebnis an das Modell zurück, das dann fortfährt. Das Modell berührt nie selbst eine Datenbank oder eine API; jede Wirkung in der Welt läuft durch Code, den Sie geschrieben haben.

Ein Agent ist ein System, in dem das Modell wiederholt seine Aktionen wählt: Es ruft ein Tool auf, liest das Ergebnis, entscheidet, was als Nächstes zu tun ist, und macht weiter, bis das Ziel erreicht ist oder ein Limit es stoppt. Autonomie ist ein Spektrum. Am einen Ende ruft Code das Modell einmal auf, um ein Formular auszufüllen; am anderen plant und erledigt ein Modell eine lange Aufgabe mit Dutzenden von Tool-Aufrufen und wenig Aufsicht. Architektonisch entscheidend ist, dass jeder Schritt in Richtung Autonomie Entscheidungen aus deterministischem, prüfbarem Code in eine probabilistische Komponente verlagert, was die Flexibilität erhöht und Vorhersagbarkeit, Testbarkeit und Kontrolle verringert. Diese Abwägung sollte bewusst getroffen werden, und so spät und so sparsam, wie das Problem es verlangt.

{
  "name": "get_order_status",
  "description": "Look up the current status of one order placed by the signed-in customer. Use when the customer asks where an order is. Returns status, estimated arrival and courier position. Changes nothing.",
  "input_schema": {
    "type": "object",
    "properties": {
      "order_id": {
        "type": "string",
        "pattern": "^ORD-[0-9]{6}$",
        "description": "Order number, for example ORD-104233"
      }
    },
    "required": ["order_id"],
    "additionalProperties": false
  }
}
Eine Tool-Definition in der allgemeinen Form, die die meisten Modell-APIs akzeptieren (Feldnamen variieren je nach Anbieter leicht). Die Beschreibung ist für das Modell geschrieben; das Schema wird von Code durchgesetzt.

Die Agentenschleife: nachdenken, handeln, beobachten

Die Schleife hinter fast jedem Agenten beschrieben Shunyu Yao und Kollegen in ReAct: Synergizing Reasoning and Acting in Language Models (2022). ReAct verschränkt Nachdenken (das Modell schreibt auf, was es zu tun versucht), Aktionen (es ruft ein Tool auf) und Beobachtungen (das Ergebnis des Tools wird seinem Kontext hinzugefügt), sodass jeder Schritt von dem geprägt ist, was der vorige herausgefunden hat. Vor ReAct dachten Modelle entweder ohne Zugang zu Fakten nach und halluzinierten, oder sie handelten ohne nachzudenken und irrten umher. Die heutigen Tool-Calling-Schnittstellen und Reasoning-Modelle haben diese Schleife eingebaut, doch ihre Struktur ist noch immer die, um die herum Sie entwerfen sollten.

Im Code ist die Schleife kurz. Den Kontext aufbauen (Anweisungen, Ziel, Verlauf, Tool-Definitionen, bisherige Ergebnisse); das Modell aufrufen; gibt es eine endgültige Antwort zurück, aufhören; gibt es Tool-Aufrufe zurück, jeden gegen sein Schema und die Geschäftsregeln validieren, prüfen, ob der Nutzer dazu berechtigt ist, ihn mit einem Timeout ausführen, das Ergebnis (oder eine klare Fehlermeldung) an den Kontext anhängen, die Limits prüfen und die nächste Runde drehen. Das Diagramm unten zeigt, wo deterministischer Code das Modell umgibt. Alles außerhalb des Modellkastens ist gewöhnliche Software, die getestet, geprüft und durchgesetzt werden kann; daher stammen die Zuverlässigkeit und Sicherheit eines Agenten.

Eine Agentenschleife mit Tools

Eine Agentenschleife: Das Modell wählt Tool-Aufrufe, deterministischer Code validiert und führt sie in Limits aus, und Ergebnisse fließen zurück, bis das Modell endgültig antwortetAgentenschleife: Ihr CodeNutzerTaskfinale AntwortModellaufrufAntwort/Tool-AufrufTool-AufrufPrüfen, autorisierenSchema, Regeln, RechteerlaubtTool ausführenTimeout, Idempotenzschl.ErgebnisBeobachtung anfügenan den KontextweiterLimitsSchritte/Zeit/TokensLese-ToolsBestell., SucheMensch gibt freibei NebeneffektenSchreib-Toolsz. B. Erstattung
Das Modell schlägt nur vor; Code validiert, autorisiert, führt aus, setzt Limits durch und gibt Ergebnisse zurück, und Nebeneffekte laufen über eine menschliche Freigabe, wenn es darauf ankommt.

Workflows oder Agenten

In Building effective agents (Dezember 2024) trafen Erik Schluntz und Barry Zhang von Anthropic eine Unterscheidung, die inzwischen zum allgemeinen Vokabular gehört. Workflows orchestrieren Modelle und Tools über vordefinierte Codepfade; Agenten lassen das Modell seinen eigenen Ablauf und seine Tool-Nutzung steuern. Sie beschrieben eine kleine Menge von Workflow-Mustern, alle aufgebaut aus einem erweiterten LLM (einem Modell mit Retrieval, Tools und Gedächtnis), und rieten, mit dem einfachsten funktionierenden Entwurf zu beginnen, oft einem einzigen gut formulierten Aufruf mit Retrieval, und agentisches Verhalten erst hinzuzufügen, wenn es die Ergebnisse nachweislich verbessert.

Der Rat deckt sich mit der allgemeinen Haltung dieses Kurses zur Einfachheit. Ein Workflow hat eine bekannte Form, sodass sich Kosten, Latenz und Fehlerbilder vorhersagen und seine Schritte einzeln testen lassen. Ein Agent kann offene Aufgaben bewältigen, deren Schritte sich nicht im Voraus kennen lassen, etwa einen unbekannten Fehler untersuchen oder eine Frage über viele Quellen hinweg recherchieren, um den Preis schwankender Kosten, schwierigerer Tests und mehr Möglichkeiten, schiefzugehen. Viele Systeme, die als Agenten bezeichnet werden, wären als Workflows besser, und viele gute Agenten enthalten Workflows.

Workflow-Muster und autonome Agenten

MusterSo funktioniert esBeispiel EssenslieferungEinsetzen, wenn
Prompt ChainingEine feste Abfolge von Modellaufrufen, von denen jeder die vorige Ausgabe nutzt, mit Prüfungen im Code zwischen den SchrittenDie Beschwerde extrahieren, dann klassifizieren, dann eine Antwort in der Sprache des Kunden entwerfenDie Aufgabe zerfällt sauber in feste Schritte; jeder Schritt ist leichter als das Ganze
RoutingDie Eingabe klassifizieren und dann an einen spezialisierten Prompt, ein Modell oder einen Handler sendenVerspätete Bestellung, fehlender Artikel, Allergiefrage und Kontoproblem gehen jeweils an einen eigenen HandlerEingaben fallen in klar getrennte Kategorien, die unterschiedlich behandelt werden müssen
ParallelisierungAufrufe gleichzeitig ausführen: Sectioning teilt eine Aufgabe in unabhängige Teile; Voting führt dieselbe Aufgabe mehrmals aus und kombiniert die ErgebnisseEine neue Speisekarte parallel auf Allergene, Preisfehler und verbotene Artikel prüfen; dreimal abstimmen, ob eine Bewertung beleidigend istDie Teile sind unabhängig, oder mehrere Meinungen erhöhen die Sicherheit
Orchestrator-WorkerEin Modell zerlegt die Aufgabe zur Laufzeit in Teilaufgaben, delegiert sie an Worker-Aufrufe und kombiniert dann die ErgebnisseUntersuchen, warum die Lieferzeiten in einer Stadt gestiegen sind: Wetter, Personalbesetzung und Verzögerungen in Restaurants betrachtenDie Teilaufgaben lassen sich nicht im Voraus kennen
Evaluator-OptimiererEin Aufruf erzeugt ein Ergebnis, ein anderer bewertet es anhand von Kriterien und gibt Rückmeldung, in einer SchleifeEine Onboarding-E-Mail für Restaurants entwerfen; ein zweiter Aufruf prüft Ton und Richtlinien und fordert Änderungen anEs gibt klare Bewertungskriterien, und Iteration hilft messbar
Autonomer AgentDas Modell plant und handelt in einer Schleife mit Tools, bis es fertig ist oder gestoppt wirdEinen komplexen Supportfall über Bestellungen, Zahlungen und Kuriere hinweg lösenOffene Aufgaben mit unvorhersehbaren Schritten, in einer Umgebung, in der Fehler eingedämmt sind

Tools für Modelle entwerfen

Tools sind eine Schnittstelle, deren Nutzer ein Modell ist, und sie verdienen dieselbe Sorgfalt wie jede API. Schluntz und Zhang nennen das die Agent-Computer-Schnittstelle. Geben Sie jedem Tool einen klaren Zweck und einen Namen und eine Beschreibung, die sagen, wann es zu verwenden ist, wann nicht und was es zurückgibt; Modelle wählen Tools vor allem anhand ihrer Beschreibungen. Halten Sie Parameter wenige und typisiert, verwenden Sie Aufzählungen statt Freitext und weisen Sie unbekannte Felder zurück. Machen Sie Fehler schwer, zum Beispiel indem Sie absolute Bezeichner statt Positionen in einer Liste verlangen. Geben Sie knappe, relevante Ergebnisse zurück, denn jedes Token eines Tool-Ergebnisses wird bezahlt und belegt das Kontextfenster; paginieren und fassen Sie große Ergebnisse zusammen. Geben Sie Fehlermeldungen zurück, mit denen das Modell arbeiten kann (Bestellung nicht gefunden; bitten Sie den Kunden, die Nummer zu prüfen), statt Stacktraces.

Trennen Sie Lesen vom Schreiben. Lese-Tools können meist frei laufen; Schreib-Tools verändern die Welt und brauchen Validierung, Autorisierung, Idempotenz und manchmal eine Freigabe. Halten Sie die Zahl der jeweils verfügbaren Tools klein, denn große Tool-Sammlungen verwirren Modelle und vergrößern die Angriffsfläche; leiten Sie an eine Teilmenge weiter oder laden Sie Tool-Definitionen bei Bedarf. Verlangen Sie eine strukturierte Ausgabe, wann immer Code das Ergebnis verarbeitet: Viele APIs können die Generierung auf ein JSON Schema beschränken, was Parsing-Fehler beseitigt, aber keine falschen Werte, sodass die Validierung des Inhalts weiterhin nötig ist.

Das Model Context Protocol

Jeder Assistent, der jede Datenquelle oder jedes Tool erreichen will, bräuchte sonst für jedes Paar eine eigene Integration: N Anwendungen mal M Systeme. Das Model Context Protocol (MCP), im November 2024 von Anthropic als offener Standard eingeführt, ersetzt das durch ein einziges Protokoll, so wie es das Language Server Protocol für Code-Editoren getan hat. Eine Host-Anwendung (ein Chat-Assistent, eine IDE, ein Agent) betreibt einen MCP-Client pro Verbindung zu einem MCP-Server. Server stellen Tools (Funktionen, die das Modell aufrufen darf), Ressourcen (Daten, die die Anwendung in den Kontext laden kann) und Prompts (wiederverwendbare Vorlagen) bereit. Nachrichten nutzen JSON-RPC 2.0, über Standardein- und -ausgabe für lokale Server oder über HTTP für entfernte, und Remote-Server nutzen eine Autorisierung auf Basis von OAuth.

Die Verbreitung ging schnell. Bis Dezember 2025 meldete Anthropic mehr als 10.000 aktive öffentliche MCP-Server und Unterstützung in Produkten wie ChatGPT, Cursor, Gemini, Microsoft Copilot und Visual Studio Code. Am 9. Dezember 2025 übergab Anthropic MCP an die neu gegründete Agentic AI Foundation, einen Directed Fund unter der Linux Foundation, mitgegründet von Anthropic, Block und OpenAI, sodass das Protokoll nun an einem herstellerneutralen Ort verwaltet wird. Die Spezifikation wird nach Datum versioniert. Die Revision 2026-07-28 machte das Kernprotokoll zustandslos, sodass Remote-Server hinter gewöhnlichen Load Balancern ohne Sticky Sessions laufen können; sie führte Unterstützung für optionale Erweiterungen ein und verlagerte lang laufende Aufgaben aus dem Kern in eine offizielle Erweiterung; sie verschärfte die Autorisierung; und sie erklärte ältere Funktionen (Roots, Sampling und Logging) für veraltet, mit einer Übergangsfrist von mindestens einem Jahr. Für die Kommunikation zwischen unabhängigen Agenten statt zwischen einer Anwendung und ihren Tools führte Google im April 2025 das Protokoll Agent2Agent (A2A) ein; es wurde im Juni 2025 an die Linux Foundation übergeben, und im August 2026 kündigten seine Unterstützer an, dass es ebenfalls in die Agentic AI Foundation wechseln werde.

Architektonisch ist ein MCP-Server eine Abhängigkeit, die Ihre Daten lesen und in Ihrem Namen handeln kann, behandeln Sie ihn also auch so. Geben Sie die Server, die genutzt werden dürfen, im Rahmen der Sicherheit der Software-Lieferkette frei und legen Sie ihre Versionen fest; bevorzugen Sie Server, die Sie selbst oder ein vertrauenswürdiger Anbieter betreiben; geben Sie den Anmeldedaten jedes Servers nur das Least Privilege, das seine Tools brauchen; denken Sie daran, dass Tool-Beschreibungen und -Ergebnisse in den Kontext des Modells fließen und eingeschleuste Anweisungen enthalten können; und leiten Sie entfernten MCP-Verkehr über dasselbe Gateway, dasselbe Logging und dieselben Richtlinienkontrollen wie anderen Modellverkehr. Das Protokoll standardisiert die Verrohrung; es entscheidet nicht, was ein Agent tun darf.

MCP-Hosts, -Clients und -Server

Model Context Protocol: Eine Host-Anwendung betreibt einen Client pro Server; Server stellen Tools, Ressourcen und Prompts vor lokalen Dateien und entfernten Systemen bereitHost-Anwendung (Assistent, IDE, Agent)Modellintegrationwählt die zu nutzenden ToolsMCP-ClientDateiserver[lokal, stdio]Lok. DateienMCP-ClientTicket-Server[remote, HTTP]Ticketing-SaaSMCP-ClientBestellserver[remote, HTTP]BestellserviceJSON-RPCServer bieten Tools, Ressourcen und PromptsRemote-Server autorisieren Clients mit OAuth
Ein Host kann sich über ein Protokoll mit vielen Servern verbinden; jeder Server kapselt eine Datenquelle oder ein System und entscheidet, was er bereitstellt.

Gedächtnis und Zustand

Modelle sind zustandslos, daher ist das Gedächtnis eines Agenten das, was das umgebende System speichert und wieder in den Kontext gibt. Das Kurzzeitgedächtnis sind das Gespräch und die bisherigen Ergebnisse der Tool-Aufrufe. Es wächst mit jedem Schritt, erhöht Kosten und Latenz und sprengt schließlich das Fenster, deshalb verwalten lang laufende Agenten es: Sie verwerfen oder kürzen alte Tool-Ergebnisse, fassen frühere Gesprächsrunden zusammen (Compaction) und führen einen laufenden Plan oder eine Notizdatei, die das Modell aktualisiert. Das Langzeitgedächtnis sind Informationen, die über Sitzungen hinweg aufbewahrt werden, etwa die Ernährungsvorlieben eines Kunden oder Fakten, die ein Assistent über ein Projekt gelernt hat, gespeichert in einer Datenbank und bei Bedarf abgerufen, was es zu einem kleinen RAG-System mit denselben Fragen nach Relevanz, Aktualität und Zugriffskontrolle macht.

Der Ausführungszustand zählt am meisten für die Zuverlässigkeit. Ist ein Agent mitten in einer Aufgabe mit zwanzig Schritten, wenn sein Prozess neu startet, sollte er fortfahren, nicht von vorn beginnen und Nebeneffekte wiederholen. Speichern Sie den Zustand nach jedem Schritt (den Kontext, den Plan, welche Tool-Aufrufe abgeschlossen sind und ihre Ergebnisse) als Checkpoint, oder lassen Sie den Agenten auf einer Durable-Execution-Engine laufen, die das für Sie erledigt, so wie lang laufende Geschäftsprozesse und Sagas betrieben werden. Gedächtnis ist auch personenbezogene Daten: Entscheiden Sie, was gespeichert wird, wie lange, ob Nutzer es sehen und löschen können, und halten Sie das Gedächtnis eines Kunden aus dem Kontext eines anderen heraus (siehe Privacy by Design).

Multi-Agenten-Systeme

Ein Multi-Agenten-System verteilt die Arbeit auf mehrere modellgesteuerte Agenten, meist einen leitenden Agenten, der plant und an Sub-Agenten delegiert, jeder mit eigenen Anweisungen, Tools und eigenem Kontextfenster, deren Ergebnisse der leitende Agent zusammenführt. Die Vorteile sind Parallelität, Spezialisierung und vor allem die Trennung der Kontexte: Jeder Sub-Agent kann eine große Menge Material durchgehen und nur eine kurze Zusammenfassung zurückgeben. Anthropic berichtete im Juni 2025, dass sein Multi-Agenten-Recherchesystem in seiner internen Recherche-Evaluierung einen einzelnen Agenten klar übertraf, aber auch, dass solche Systeme etwa 15-mal so viele Tokens verbrauchten wie gewöhnliche Chats und sich für breite, parallelisierbare Aufgaben besser eignen als für eng gekoppelte wie die meisten Programmieraufgaben.

Fachleute sind uneins darüber, wie weit man gehen sollte. Im selben Monat argumentierte Walden Yan von Cognition in Don't Build Multi-Agents, dass Sub-Agenten, die mit unvollständigem Kontext arbeiten, widersprüchliche Annahmen treffen, und empfahl als Standard einen Single-Thread-Agenten mit sorgfältigem Kontextmanagement. Beide Positionen sind sich über die eigentliche Ursache einig: Koordination zwischen Agenten ist verlustbehaftete Kommunikation zwischen Komponenten, die keinen Zustand teilen. Das ist das zentrale Problem verteilter Systeme, und es gilt derselbe Rat. Verteilen Sie nicht ohne Grund; halten Sie die Schnittstellen zwischen Agenten explizit und schmal; bevorzugen Sie unabhängige Teilaufgaben; verfolgen Sie jeden Sprung per Tracing; und rechnen Sie damit, dass sich Kosten, Latenz und Fehlerbilder mit der Zahl der Agenten vervielfachen.

Ausgearbeitetes Beispiel

Ausgearbeitetes Beispiel: eine Erstattung, abgewickelt vom Support-Agenten

Ein Kunde schreibt: Bestellung ORD-104233 kam ohne die zwei Limonaden an. Der Support-Assistent aus Abschnitt 12.2 führt eine kurze Agentenschleife mit einem Limit von 8 Schritten, 30 Sekunden und 20.000 Tokens aus.

Schritt 1: LesenDas Modell ruft get_order_items("ORD-104233") auf. Der Code prüft, ob die Bestellung dem angemeldeten Kunden gehört, und gibt dann die Artikel zurück, darunter 2 × Limonade zu je £2,20, geliefert um 19:42.
Schritt 2: SchreibenDas Modell ruft propose_refund für die zwei Limonaden auf, Grund fehlender Artikel; einen Betrag gibt es nicht an. Der Erstattungsservice, nicht das Modell, berechnet £4,40 aus der Bestellung und wendet die Richtlinie im Code an: Artikel auf der Bestellung, Reklamation innerhalb von 48 Stunden, £4,40 unter dem automatischen Limit von £15, keine frühere Erstattung für die Bestellung und weniger als drei Erstattungen in 30 Tagen. Der Kunde bestätigt die Erstattung auf einer Karte in der App (Abschnitt 12.6), und der Service erfasst sie unter einem Idempotenzschlüssel, der aus Gespräch, Bestellung und Artikeln abgeleitet ist.
Behandelter FehlerBei der Antwort auf Schritt 2 tritt ein Timeout auf. Der Orchestrator wiederholt den Aufruf mit demselben Idempotenzschlüssel; der Erstattungsservice gibt das ursprüngliche Ergebnis zurück, sodass der Kunde einmal erstattet bekommt, nicht zweimal.
Schritt 3: AntwortenDas Modell antwortet mit dem Betrag und dem Zeitpunkt, zu dem er erscheint, und das Gespräch wird geschlossen, sein Trace aufgezeichnet.
EskalationsregelHätte die Reklamation £22 betragen, hätte der Erstattungsservice Freigabe erforderlich zurückgegeben, und der Fall wäre mit der vorgeschlagenen Aktion und den Belegen an die Konsole der Support-Mitarbeiter gegangen.
Warum kurze Läufe zählenIst jeder Schritt unabhängig in 95 % der Fälle richtig, gelingt ein Lauf mit 3 Schritten in etwa 86 % der Fälle (0,953), einer mit 10 Schritten in etwa 60 % und einer mit 20 Schritten in etwa 36 %. Halten Sie Läufe kurz, prüfen Sie nach jedem Schritt und erledigen Sie im Code alles, was sich im Code erledigen lässt.

Das Modell hat gewählt, was zu tun ist; deterministischer Code hat entschieden, ob es erlaubt war, und eine Wiederholung sicher gemacht.

Richtliniengrenzen liegen im Erstattungsservice, wo sie getestet und auditiert werden, nicht im Prompt, wo sie nur Vorschläge sind.

Zuverlässigkeits-Engineering für Agenten

Agenten versagen auf neue Weise: Sie drehen sich im Kreis und rufen dasselbe Tool mit denselben Argumenten auf; sie schweifen ab und verfolgen ein Nebenthema, bis das Budget erschöpft ist; sie geben vorzeitig auf oder behaupten Erfolge, die sie nicht erzielt haben; und sie führen Aktionen aus, mit denen ihre Entwickler nicht gerechnet haben. Die Abhilfen sind die Muster aus Kapitel 9 und Kapitel 6, angewandt bei jedem Schritt statt einmal pro Anfrage, dazu die feste Regel, dass folgenreiche Nebeneffekte mehr brauchen als das Wort des Modells. Abschnitt 12.6 behandelt die Sicherheitsseite, die übermäßige Handlungsbefugnis, ausführlich; die Checkliste unten deckt die Zuverlässigkeit ab.

Checkliste: einen Agenten verlässlich machen

  • Limits für Schritte, Zeit und TokensBegrenzen Sie Iterationen, Echtzeit und Tokens (oder Kosten) pro Lauf, und stoppen Sie mit einem klaren Ergebnis, wenn eine Grenze erreicht ist, niemals stillschweigend.
  • SchleifenerkennungStoppen oder eingreifen, wenn dasselbe Tool wiederholt mit denselben Argumenten aufgerufen wird oder über mehrere Schritte kein Fortschritt erzielt wird.
  • Jeden Tool-Aufruf im Code validierenArgumente vor der Ausführung gegen das Schema und die Geschäftsregeln prüfen; dem Modell eine hilfreiche Fehlermeldung zurückgeben, wenn ein Aufruf abgelehnt wird.
  • Mit den Rechten des Nutzers handelnTools laufen mit den Berechtigungen der Person, der der Agent dient, nicht mit einem mächtigen Servicekonto, damit der Agent nicht zum Confused Deputy werden kann.
  • Idempotente Schreib-ToolsJeder Schreibvorgang erhält einen Idempotenzschlüssel, damit Wiederholungen nach Timeouts keine Erstattungen, Buchungen oder Nachrichten doppelt auslösen können.
  • Menschliche Freigabe für folgenreiche NebeneffekteDie genaue Aktion und ihre Belege zeigen, bevor sie geschieht; Schwellenwerte (Betrag, Umkehrbarkeit, Empfängerkreis) im Code festlegen.
  • Checkpoints und FortsetzungDen Zustand nach jedem Schritt speichern oder Durable Execution nutzen, damit ein Absturz den Lauf fortsetzt, statt ihn zu wiederholen.
  • Kompensationen für mehrstufige ÄnderungenWo sich mehrere Systeme ändern, kompensierende Aktionen wie in einer Saga entwerfen und festhalten, was erledigt wurde.
  • Code- und Netzwerkzugriff in einer SandboxJeden Code, den der Agent schreibt, in einer isolierten Umgebung ohne Geheimnisse und mit einer Allowlist von Netzwerkzielen ausführen.
  • Trajektorien tracen und evaluierenJeden Modell- und Tool-Aufruf mit Eingaben, Ausgaben, Zeiten und Kosten aufzeichnen; den eingeschlagenen Weg evaluieren, nicht nur die endgültige Antwort.
  • Notschalter und schrittweiser RolloutAgentenfähigkeiten hinter Feature-Flags stellen, zuerst für einen kleinen Teil des Traffics freigeben und eine schnelle Möglichkeit zum Abschalten bereithalten.

Prüfen Sie Ihr Verständnis

Was standardisiert das Model Context Protocol, und was überlässt es Ihnen?

Es standardisiert, wie Host-Anwendungen sich mit Servern verbinden, die Tools, Ressourcen und Prompts bereitstellen; es entscheidet nicht, welchen Servern Sie vertrauen oder was ein Agent mit ihnen tun darf.

Warum sollten Lese-Tools von Schreib-Tools getrennt werden?

Lesevorgänge können meist frei laufen, während Schreibvorgänge die Welt verändern und Validierung, Autorisierung, Idempotenz und manchmal menschliche Freigabe brauchen.

Wozu dient ein Checkpoint in einem langen Agentenlauf?

Er hält nach jedem Schritt Kontext, Plan und abgeschlossene Tool-Aufrufe fest, sodass ein abgestürzter Lauf fortgesetzt werden kann, ohne Nebeneffekte zu wiederholen.

Nennen Sie ein Argument für und eines gegen Multi-Agenten-Entwürfe.

Dafür: Sub-Agenten arbeiten parallel mit getrennten Kontexten und geben kurze Zusammenfassungen zurück. Dagegen: Sie treffen aus unvollständigem Kontext widersprüchliche Annahmen und vervielfachen Token-Kosten und Fehlerbilder.

Weiter · 12.5KI evaluierenWie Sie Komponenten testen, deren Ausgaben variieren: Golden Sets, Bewertungsmethoden, LLM-as-a-Judge und seine Verzerrungen, Offline- und Online-Evaluierung, Regressions-Evals in der CI, Monitoring in Produktion, Red Teaming und Vertrauen in die Zahlen.Weiter →

Quellen und weiterführende Literatur

Haben Sie eine Frage zu diesem Abschnitt? ArchitectBot, der KI-Lernassistent des Kurses, antwortet zuerst aus dem Kurs.

Fragen: „Wie verhindere ich, dass ein KI-Agent dieselbe Erstattung zweimal auslöst, wenn bei einem Tool-Aufruf ein Timeout auftritt?“