Skip to content
Learning Lab · 5 min read

KI-Agenten entwickeln: Architekturmuster, Tool-Aufrufe und Speichermanagement

Erfahren Sie, wie Sie produktionsreife KI-Agenten entwickeln, indem Sie Tool-Aufruf-Verträge beherrschen, Agentenschleifen korrekt strukturieren und den Speicher in Sitzungs-, Wissens- und Ausführungsebenen aufteilen. Enthält funktionierende Python-Codebeispiele.

AI Agent Architecture: Tool Calling and Memory Patterns

Sie haben einen Chatbot entwickelt, der Fragen beantwortet. Jetzt müssen Sie ihn dazu bringen, etwas zu tun – Daten abzurufen, eine API aufzurufen, eine Datenbank zu aktualisieren. Der Unterschied zwischen einem Chatbot und einem Agenten ist eine einzige Einschränkung: Agenten ergreifen Maßnahmen basierend auf dem, was sie lernen.

Die meisten Versuche scheitern, weil Entwickler das Tool-Aufrufen als Add-on behandeln, nicht als Kern des Systems. Sie rufen ein LLM auf, warten auf eine Antwort und übergeben Tools als nachträglichen Einfall. Produktionsagenten benötigen eine andere Architektur – eine, die das LLM als Entscheidungsmaschine und nicht als Textgenerator behandelt.

Tool-Aufrufe: Der Vertrag, nicht das Feature

Beim Tool-Aufrufen geht es nicht darum, einem LLM Zugriff auf Funktionen zu geben. Es geht darum, einen Vertrag zu definieren, an den sich das LLM halten muss.

Wenn Sie ein Tool definieren, geben Sie dem Modell keinen Blackbox-Zugriff. Sie legen fest:

  • Was das Tool tut (Beschreibung)
  • Welche Parameter es benötigt (Schema)
  • In welchem Format es zurückgibt (Ausgabespezifikation)

Die meisten Tool-Aufrufe scheitern, weil die Beschreibungen vage sind. „Benutzerdaten abrufen“ ist sofort zum Scheitern verurteilt – welche Daten abrufen? Wie sieht die Funktionssignatur aus? Was passiert, wenn der Benutzer nicht existiert?

Hier ist ein Beispiel für eine schlechte Tool-Definition:

{
  "name": "get_user",
  "description": "Benutzerinformationen abrufen",
  "parameters": {
    "type": "object",
    "properties": {
      "user_id": {
        "type": "string"
      }
    }
  }
}

Das LLM weiß nicht, was passiert, wenn die user_id ungültig ist. Es weiß nicht, ob user_id eine UUID oder eine Ganzzahl sein soll. Es weiß nicht, welche Felder die Antwort enthält.

Hier ist die verbesserte Version:

{
  "name": "get_user_profile",
  "description": "Benutzerprofil anhand der ID abrufen. Gibt grundlegende Konto-Infos zurück, einschließlich Name, E-Mail, Erstellungsdatum und Kontostatus. Gibt null zurück, wenn der Benutzer nicht gefunden wurde.",
  "parameters": {
    "type": "object",
    "properties": {
      "user_id": {
        "type": "string",
        "description": "UUID des Benutzers. Format: 550e8400-e29b-41d4-a716-446655440000"
      }
    },
    "required": ["user_id"]
  },
  "returns": {
    "type": "object",
    "properties": {
      "id": {"type": "string"},
      "name": {"type": "string"},
      "email": {"type": "string"},
      "status": {"type": "string", "enum": ["active", "suspended", "deleted"]},
      "created_at": {"type": "string"}
    }
  }
}

Claude Sonnet 4 (veröffentlicht im Januar 2025) verbesserte die Konsistenz bei Tool-Aufrufen um 34 % im Vergleich zu früheren Versionen, wenn Schemata spezifisch sind. Vage Definitionen verwirren es immer noch – das ist keine Einschränkung des Modells, sondern ein Designfehler.

Die Schleife: Entscheidungen sequenziell treffen

Eine Agentenschleife ist strukturell einfach, aber bei fast jeder ersten Implementierung fehlerhaft.

Der grundlegende Ablauf: LLM entscheidet → Tool wird ausgeführt → Ergebnis wird zurückgegeben → LLM entscheidet erneut → wiederholen, bis fertig.

Hier ist ein funktionierendes Python-Beispiel mit Claude:

import anthropic
import json

client = anthropic.Anthropic()
tools = [
    {
        "name": "fetch_order",
        "description": "Bestelldetails anhand der Bestell-ID abrufen",
        "input_schema": {
            "type": "object",
            "properties": {
                "order_id": {
                    "type": "string",
                    "description": "Eindeutiger Bestellidentifikator"
                }
            },
            "required": ["order_id"]
        }
    },
    {
        "name": "update_order_status",
        "description": "Den Status einer Bestellung aktualisieren",
        "input_schema": {
            "type": "object",
            "properties": {
                "order_id": {"type": "string"},
                "status": {
                    "type": "string",
                    "enum": ["pending", "shipped", "delivered"]
                }
            },
            "required": ["order_id", "status"]
        }
    }
]

messages = [{"role": "user", "content": "Bestellung ABC123 prüfen und als versendet markieren"}]

while True:
    response = client.messages.create(
        model="claude-3-5-sonnet-20241022",
        max_tokens=1024,
        tools=tools,
        messages=messages
    )
    
    if response.stop_reason == "tool_use":
        # LLM möchte ein Tool verwenden
        tool_calls = [block for block in response.content if block.type == "tool_use"]
        
        messages.append({"role": "assistant", "content": response.content})
        
        tool_results = []
        for tool_call in tool_calls:
            # Tool ausführen (hier nur als Platzhalter)
            if tool_call.name == "fetch_order":
                result = {"id": "ABC123", "status": "pending", "total": 99.99}
            elif tool_call.name == "update_order_status":
                result = {"success": True, "new_status": "shipped"}
            
            tool_results.append({
                "type": "tool_result",
                "tool_use_id": tool_call.id,
                "content": json.dumps(result)
            })
        
        messages.append({"role": "user", "content": tool_results})
    else:
        # LLM hat end_turn oder max_tokens erreicht
        final_response = next(
            (block.text for block in response.content if hasattr(block, "text")),
            None
        )
        print(final_response)
        break

Der kritische Fehler, den die meisten Entwickler machen: Sie behandeln Tool-Ergebnisse als unstrukturierte Texte. Wenn ein Tool JSON zurückgibt, parsen Sie es und machen Sie die Struktur für das LLM explizit. Zwingen Sie es nicht, unsaubere Zeichenketten zu parsen.

Speicher: Was Agenten wirklich speichern müssen

Speicher ist nicht die Konversationshistorie. Das ist das Erste, was man verlernen muss.

Ein Agent benötigt drei Arten von Speicher:

  • Sitzungsspeicher: Was in dieser Konversation passiert ist – Benutzerziele, Kontext aus früheren Runden. Das ist kurzfristig und konversationsspezifisch.
  • Wissensspeicher: Fakten über den Benutzer, die Domäne oder den Systemzustand, die über Konversationen hinweg bestehen bleiben. Das ist langfristig und geteilt.
  • Ausführungsspeicher: Was der Agent bereits versucht hat, was fehlgeschlagen ist, was erfolgreich war. Das verhindert Schleifen und wiederholte Fehler.

Die meisten Systeme vermischen alle drei in einer Nachrichtenhistorie. Das zerstört die Leistung.

Der Sitzungsspeicher sollte im Nachrichtenarray leben – aber komprimiert, nicht roh. Nach 20 Runden fassen Sie den früheren Kontext zu einer einzigen Systemnachricht zusammen, anstatt alle 20 Runden im Kontext zu belassen.

Der Wissensspeicher sollte separat sein – eine Vektordatenbank (Pinecone, Weaviate) oder ein strukturierter Schlüssel-Wert-Speicher. Wenn Sie Benutzerkontext benötigen, rufen Sie ihn explizit mit einem Tool-Aufruf ab, stopfen Sie ihn nicht in den anfänglichen Prompt.

Der Ausführungsspeicher sollte ein explizites Protokoll sein. Bevor der Agent ein Tool versucht, prüfen Sie, ob er dieses Tool bereits in dieser Sitzung versucht hat. Wenn es letztes Mal fehlschlug, geben Sie diese Fehlermeldung als Kontext an das LLM weiter.

Beispielstruktur:

{
  "session_id": "conv_12345",
  "user_goal": "Rechnungsadresse ändern und neue Zahlungsmethode bestätigen",
  "session_context": "Benutzer hat aktives Abonnement. Hat zuvor im Dezember versucht, Zahlung zu ändern, aber der Prozess schlug fehl.",
  "execution_log": [
    {"tool": "fetch_user_profile", "status": "success", "timestamp": "2025-01-15T10:22:00Z"},
    {"tool": "validate_address", "status": "failed", "error": "Postleitzahl ungültig", "timestamp": "2025-01-15T10:22:15Z"}
  ],
  "knowledge_refs": ["user_payment_history", "subscription_terms"],
  "messages": [
    {"role": "user", "content": "Ändern Sie meine Adresse..."},
    {"role": "assistant", "content": "Ich helfe Ihnen dabei..."}
  ]
}

Das sollten Sie heute tun

Wählen Sie ein Tool aus, das Ihr Agent aufrufen muss. Schreiben Sie das Schema mit einer 3-Satz-Beschreibung, listen Sie jeden Parameter mit seinem Format und seinen Einschränkungen auf und definieren Sie die genaue Form der Antwort. Testen Sie es manuell – füttern Sie das Schema in Claude oder GPT-4o und bitten Sie es, das Tool aufzurufen. Wenn es falsch aufgerufen wird, ist Ihr Schema unvollständig.

Batikan
· 5 min read
Topics & Keywords
Learning Lab sie tool das type string und die der ist
Share

Stay ahead of the AI curve

Weekly digest of the most impactful AI breakthroughs, tools, and strategies.

Related Articles

Cursor vs. GitHub Copilot vs. Claude Code: Welcher KI-Assistent gewinnt bei Produktionsarbeit?
Learning Lab

Cursor vs. GitHub Copilot vs. Claude Code: Welcher KI-Assistent gewinnt bei Produktionsarbeit?

Drei KI-Coding-Assistenten dominieren Produktionsumgebungen. Dies ist keine Funktionsliste. Es ist eine Aufschlüsselung dessen, was jeder tatsächlich tut, wo er versagt und welche Tools für Architektur, Boilerplate und Debugging verwendet werden sollten.

· 11 min read
→
Tabellen mit Claude und GPT-4o analysieren
Learning Lab

Tabellen mit Claude und GPT-4o analysieren

Claude und GPT-4o können Ihre Tabellen und CSVs analysieren, aber nur, wenn Sie die Daten korrekt strukturieren und präzise fragen. Lernen Sie, wie Sie Dateien hochladen, Analyse-Prompts schreiben und Fallstricke bei Halluzinationen vermeiden.

· 2 min read
→
LLM-Halluzinationen: Warum sie auftreten und 5 Wege, sie zu stoppen
Learning Lab

LLM-Halluzinationen: Warum sie auftreten und 5 Wege, sie zu stoppen

Warum erfinden Sprachmodelle selbstbewusst Fakten? Weil sie Token vorhersagen, nicht die Wahrheit. Erfahren Sie, wie Grounding, Constraint Prompting und Temperatureinstellungen die Halluzinationsraten von über 15 % auf unter 5 % in Produktionssystemen senken.

· 6 min read
→
KI-Workflows für Freelancer, die tatsächlich abrechenbare Stunden erhöhen
Learning Lab

KI-Workflows für Freelancer, die tatsächlich abrechenbare Stunden erhöhen

KI kann Ihre Freelance-Leistung verdoppeln, ohne Ihr Urteilsvermögen zu ersetzen. Lernen Sie vier Produktions-Workflows, die administrative Aufgaben komprimieren und über 10 abrechenbare Stunden pro Monat zurückgewinnen.

· 6 min read
→
Schluss mit Halluzinationen: Wie RAG LLMs wirklich erdet
Learning Lab

Schluss mit Halluzinationen: Wie RAG LLMs wirklich erdet

Ihr LLM hat gerade selbstbewusst eine Forschungsarbeit zitiert, die es nicht gibt. Sie haben es nach Ihren API-Dokumenten für Ihr Unternehmen gefragt, und es beschrieb Endpunkte, die 2019 depreziert wurden. Das passiert, weil Sprachmodelle Text basierend auf Mustern in Trainingsdaten generieren, nicht indem sie Ihre tatsächlichen Informationen abfragen. Retrieval Augmented Generation (RAG) löst dieses Problem. Nicht, indem Modelle schlauer gemacht werden, sondern indem ihnen Zugriff auf echte Daten gewährt wird, bevor sie eine Antwort generieren. Die Technik ist essenziell für Produktionssysteme geworden, aber die meisten Implementierungen scheitern leise — entweder indem sie irrelevante Dokumente zurückgeben oder die Abrufung so verbessern, dass das Modell von zu viel Kontext verwirrt wird. Diese Anleitung führt durch, wie RAG tatsächlich funktioniert, warum einfache Setups scheitern und welche spezifischen Mustern in der Produktion funktionieren.

· 7 min read
→
Wohin Ihre Prompts gehen: Datenverarbeitung bei ChatGPT, Claude und Gemini
Learning Lab

Wohin Ihre Prompts gehen: Datenverarbeitung bei ChatGPT, Claude und Gemini

ChatGPT speichert Ihre Daten und verwendet sie standardmäßig für das Training. Claude trainiert nicht mit Web-Konversationen, es sei denn, Sie stimmen zu. Gemini verknüpft Ihre Chats mit Ihrem gesamten Google-Konto. Hier erfahren Sie, was jedes Modell mit Ihren Prompts macht und wie Sie sensible Informationen schützen.

· 5 min read
→

More from Prompt & Learn

Otter vs Fireflies vs tl;dv: Der ultimative Vergleich von Meeting-Transkriptionstools
AI Tools Directory

Otter vs Fireflies vs tl;dv: Der ultimative Vergleich von Meeting-Transkriptionstools

Drei Tools versprechen, Ihre Meetings zu transkribieren und Aktionspunkte zu extrahieren. Nur eines integriert sich nahtlos in Ihren Workflow. Hier ist der echte Vergleich: Otter vs Fireflies vs tl;dv – Genauigkeitsdaten, Preisaufschlüsselungen und ehrliche Vor- und Nachteile für jedes Tool.

· 4 min read
→
Gamma vs Beautiful.ai vs Tome: Test der Folgenerstellung
AI Tools Directory

Gamma vs Beautiful.ai vs Tome: Test der Folgenerstellung

Ich habe Gamma, Beautiful.ai und Tome für Produktionspräsentationen getestet. Gamma generiert am schnellsten, hat aber Probleme mit dem Branding. Beautiful.ai liefert visuelle Konsistenz und Datenverarbeitung. Tome bietet Flexibilität und Kollaboration. Hier erfahren Sie, was in der Praxis funktioniert – und wann jedes Tool punktet.

· 12 min read
→
App-Store-Starts 2026: KI-Tools als Katalysator
AI News

App-Store-Starts 2026: KI-Tools als Katalysator

Appfigures berichtet über einen deutlichen Anstieg von App-Starts im Jahr 2026, angetrieben durch KI-Entwicklungswerkzeuge, die Zeitpläne von Wochen auf Tage komprimieren. Ein einzelner Entwickler mit Claude oder Mistral kann jetzt liefern, was 2022 ein ganzes Ingenieurteam erforderte.

· 3 min read
→
Julius AI vs. ChatGPT vs. Claude für Datenanalyse
AI Tools Directory

Julius AI vs. ChatGPT vs. Claude für Datenanalyse

Julius AI, ChatGPT Advanced Data Analysis und Claude Artifacts erledigen Datenaufgaben, aber Ausführungsgeschwindigkeit, Preise und Arbeitsabläufe unterscheiden sich erheblich. Hier erfahren Sie, wie Sie das richtige für Ihren Anwendungsfall auswählen.

· 5 min read
→
Perplexity vs Google AI vs Consensus: Welches Tool gewinnt für akademische Recherchen?
AI Tools Directory

Perplexity vs Google AI vs Consensus: Welches Tool gewinnt für akademische Recherchen?

Perplexity, Google AI und Consensus glänzen jeweils bei unterschiedlichen Forschungsaufgaben. Perplexity punktet bei aktuellen Themen mit Echtzeit-Synthese. Consensus liefert unübertroffene Zitationspräzision für begutachtete Arbeiten. Google Scholar bietet historische Tiefe. Diese Aufschlüsselung zeigt genau, welches Tool Sie für Ihre nächste Arbeit verwenden sollten – und warum.

· 7 min read
→
Googles Reise-Tools halbieren die Planungszeit. Das funktioniert wirklich
AI Tools Directory

Googles Reise-Tools halbieren die Planungszeit. Das funktioniert wirklich

Google hat im Frühjahr sieben integrierte Reise-Tools veröffentlicht. Die Preisverfolgung prognostiziert optimale Buchungsfenster, die Restaurantverfügbarkeit liefert Echtzeitdaten und Offline-Karten funktionieren ohne Mobilfunkabdeckung. Hier erfahren Sie, welche Funktionen Vertrauen verdienen und wo Sie Erwartungen anpassen sollten.

· 4 min read
→

Stay ahead of the AI curve

Weekly digest of the most impactful AI breakthroughs, tools, and strategies. No noise, only signal.

Follow Prompt Builder Prompt Builder