Zum Inhalt springen

Den Agent-Loop verstehen

Wissen

Dein Agent ist jetzt konfiguriert: System Prompt, Modell, Tools und MCP-Anbindung stehen. Aber wie arbeitet er tatsächlich? In diesem Abschnitt beobachtest du den Agent-Loop in Aktion -- den Kreislauf aus Denken, Handeln und Beobachten, den du aus Modul 04 als ReAct-Pattern kennst.

ReAct in der Praxis

Erinnere dich: Ein Agent arbeitet nicht linear wie ein Chatbot. Er durchläuft einen Loop:

  1. Think (Denken): Der Agent analysiert die Aufgabe und plant den nächsten Schritt
  2. Act (Handeln): Der Agent ruft ein Tool auf -- z.B. eine Datei lesen oder eine Suche starten
  3. Observe (Beobachten): Der Agent wertet das Ergebnis des Tool-Aufrufs aus
  4. Repeat: Zurück zu Think -- bis die Aufgabe erledigt ist

Der Loop im Code

So sieht der Agent-Loop als Python-Implementation aus:

import anthropic

client = anthropic.Anthropic()

def agent_loop(task: str, tools: list, system_prompt: str):
    messages = [{"role": "user", "content": task}]

    while True:
        # THINK: Agent analysiert und entscheidet
        response = client.messages.create(
            model="claude-sonnet-5",
            max_tokens=4096,
            system=system_prompt,
            tools=tools,
            messages=messages
        )

        # Prüfen ob der Agent fertig ist
        if response.stop_reason == "end_turn":
            # Agent hat seine finale Antwort gegeben
            return extract_text(response)

        # ACT: Agent will ein Tool aufrufen
        if response.stop_reason == "tool_use":
            tool_calls = [
                block for block in response.content
                if block.type == "tool_use"
            ]

            # Tool-Ergebnisse sammeln
            tool_results = []
            for call in tool_calls:
                # OBSERVE: Tool ausführen und Ergebnis erhalten
                result = execute_tool(call.name, call.input)
                tool_results.append({
                    "type": "tool_result",
                    "tool_use_id": call.id,
                    "content": result
                })

            # Konversation fortfuehren
            messages.append({"role": "assistant", "content": response.content})
            messages.append({"role": "user", "content": tool_results})

        # Sicherheitsabbruch nach 20 Iterationen
        if len(messages) > 40:
            return "Agent-Loop abgebrochen: Zu viele Iterationen."

Warum der Sicherheitsabbruch wichtig ist

Ohne Limit kann ein Agent in eine Endlosschleife geraten -- zum Beispiel, wenn er ein Tool immer wieder aufruft, ohne das Ergebnis richtig zu interpretieren. Das kostet nicht nur Zeit, sondern auch Geld (jede Iteration verbraucht Tokens). Ein Limit von 10-20 Iterationen ist ein guter Startwert.

Verstehen

Probiere es aus: Der Agent-Playground

Im folgenden Playground kannst du vordefinierte Szenarien durchspielen und beobachten, wie ein Agent denkt, handelt und beobachtet. Klicke dich Schritt für Schritt durch und achte darauf, wie jede Phase auf der vorherigen aufbaut.

Aufgabe

Finde den aktuellen Bitcoin-Preis

Drücke Starten oder Space um den Agent-Loop zu starten.

Was du beobachten solltest

Achte beim Durchspielen auf drei Dinge:

  1. Planung vor Aktion: Der Agent denkt immer erst nach, bevor er ein Tool aufruft. Er springt nicht blind los.
  2. Kontextuelles Beobachten: Nach jedem Tool-Aufruf interpretiert der Agent das Ergebnis im Kontext der Aufgabe -- er liest nicht nur, er versteht.
  3. Konvergenz: Mit jedem Schritt kommt der Agent der Lösung näher. Gute Agents brauchen wenige Iterationen.

Anwenden

Ein Agent ruft dasselbe Tool fünfmal hintereinander auf, ohne Fortschritt zu machen. Was ist die wahrscheinlichste Ursache?

Reflektieren

Der Agent-Loop ist das Herzstück jedes Agents. Je besser du verstehst, wie Think, Act und Observe zusammenspielen, desto besser kannst du Agents debuggen und optimieren. Das häufigste Problem in der Praxis sind nicht schlechte Modelle -- es sind unklare Tool-Beschreibungen und fehlende Guardrails.