Einheit 9 / 11

KI-Agenten und Tool-Nutzung

Gewinne:

  • Einen Agenten als „Modell + Tools + Schleife“ definieren und entscheiden, wann er benötigt wird
  • Schreiben der Tooldefinition mit Name, Beschreibung und Eingabeschema
  • Überwachung des Ablaufs und der Fehlerbehandlung der Schleife „tool_use“ und „tool_result“.

Bisher hat das Modell immer eine Aufgabe erfüllt: Texteingaben empfangen, Textantworten erzeugen. Aber echte Arbeit erfordert oft mehr als nur Text; Durchführen einer Berechnung, Abfragen einer Datenbank, Aufrufen einer API, Ermitteln eines aktuellen Wechselkurses. Das Model kann diese Dinge nicht selbst tun – aber sie kann entscheiden, wann sie erledigt werden müssen, und jemanden bitten, sie zu erledigen. Dies ist es, was der Werkzeugeinsatz dem Modell verleiht, und das ist die Grundlage von KI-Agenten. In dieser Einheit erfahren wir, was ein Agent ist, wie das Tool definiert ist und wie die Schleife „tool_use“ funktioniert.

Was ist ein Agent? Modell + Werkzeuge + Schleife

Ein KI-Agent besteht aus drei Teilen: dem Modell (dem Gehirn, das die Entscheidung trifft), den Werkzeugen (den Funktionen, die das Modell aufrufen kann: Wetter, Datenbankabfrage, E-Mail senden) und der Schleife (der Schleife; das Modell ruft das Werkzeug auf, erhält das Ergebnis, entscheidet erneut, was zu tun ist usw.).

Kritischer Unterschied: Ein einzelner Musteraufruf ist kein Agent. Agent ist ein Prozess, bei dem das Modell Schritt für Schritt vorgeht und bei jedem Schritt den nächsten Schritt basierend auf dem Werkzeugergebnis auswählt. „Denken Sie wie ein Mensch, benutzen Sie Ihre Hände, schauen Sie sich das Ergebnis an, denken Sie noch einmal.“

Ein wichtiger Fakt: Das Modell selbst steuert das Fahrzeug nicht. Das Modell sagt nur „Ich möchte dieses Tool mit diesen Eingaben aufrufen“. Ihre Anwendung (ein sogenannter Harness) führt das Tool aus und gibt das Ergebnis an das Modell zurück. Dies ist aus Sicherheitsgründen von entscheidender Bedeutung: Das Modell berührt Ihr System nicht direkt; Jede Aktion unterliegt Ihrer Kontrolle.

Tipp: Versuchen Sie nicht, jedes Problem mit dem Agenten zu lösen. Agent; erhöht das Risiko von Verzögerungen, Kosten und Fehlern. Fragen Sie zuerst: „Wird das mit einem einzigen Anruf oder einem festen Workflow gelöst?“ Wenn die Antwort „Ja“ lautet, ist kein Agent erforderlich. Der Agent ist für Aufgaben mit offenem Ende vorgesehen, bei denen die Schritte nicht im Voraus bekannt sind.

Tool-Definition: Name, Beschreibung, Eingabeschema

Um ein Werkzeug in das Modell einzuführen, geben Sie drei Dinge an:

  • Name: Identität des Fahrzeugs, z.B. get_weather.
  • Beschreibung: Was das Tool tut und wann es aufgerufen werden soll. Dies ist der wichtigste Bereich, der es dem Modell ermöglicht, das richtige Werkzeug zum richtigen Zeitpunkt auszuwählen. Schreiben Sie nicht nur „was tut“, sondern auch „ruft wann an“.
  • input_schema (Eingabeschema): JSON-Schema, das definiert, welche Parameter das Tool in welchem ​​Typ erwartet.

# Fahrzeugdefinition (konzeptionell – JSON-Schema){ "name": "get_order_status", "description": "Ruft den aktuellen Versandstatus einer Bestellung ab. Wird aufgerufen, wenn der Benutzer fragt, wo sich eine Bestellnummer befindet oder wann sie eintrifft.", "input_schema": { "type": "object", "properties": { "order_no": {"type": "string", "description": "Bestellnummer, z. B. SP-1024"} }, "erforderlich": ["order_no"] }}

Regeln für eine gute Werkzeugbeschreibung: klarer und prägnanter Name, Beschreibung mit „Wann zu verwenden“, Beschreibung für jeden Parameter, Angabe der wirklich obligatorischen Parameter als erforderlich. Konzentrieren Sie sich auf die Anzahl der Fahrzeuge. Dutzende ähnlicher Fahrzeugmodelle überraschen.

Bereich

Was macht es?

gutes Beispiel

schlechtes Beispiel

Namen

Fahrzeug-ID

order_status_getir

bringen

Beschreibung

Was es tut + wann man anruft

„Gibt den Frachtstatus zurück; rufen Sie an, wenn der Benutzer fragt, wo sich die Bestellung befindet.“

„holt Daten“

Eingabeschema

Parametertyp und Anforderung

{order_no: string, annotated}

kein Diagramm / keine Beschreibung

tool_use → tool_result Schleife

Der Zyklus funktioniert Schritt für Schritt folgendermaßen:

  1. Sie senden die Benutzerfrage + Werkzeugbeschreibungen an das Modell.
  2. Das Modell antwortet entweder direkt oder generiert einen tool_use-Block: „call order_durumu_getir with order_no=SP-1024.“
  3. Ihre Anwendung führt das Tool tatsächlich aus (fragt die Datenbank ab).
  4. Sie senden das Ergebnis als tool_result an das Modell zurück.
  5. Mit diesem Ergebnis erzeugt das Modell entweder die endgültige Antwort oder ruft ein anderes Tool auf. Der Zyklus wird fortgesetzt, bis das Modell sagt: „Ich bin fertig.“

# Agentenschleife (konzeptionell)messages = [user_question]while True: Response = model.uret(messages, tools=tool_definitions) if Response.tur == "tool_use": result = Harness.run(response.tool_name, Response.entries) # APPLICATION führt Meldungen aus += [response, tool_result(result)] # return result else: break # finale Antwort; Schleife endet

Moderne SDKs bieten Tool-Runner, die diese Schleife für Sie ausführen; Sie schreiben einfach die Werkzeugfunktionen. Aber genau das passiert hinter den Kulissen.

Fehlermanagement

Tools schlagen möglicherweise fehl: Bestellung nicht gefunden, API-Zeitüberschreitung, Eingabe ist ungültig. Wenn Sie das Tool nicht ausführen können, geben Sie den Fehler als beschreibendes tool_result („Fehler: Bestellnummer SP-9999 nicht gefunden“) und das Fehlerflag an das Modell zurück. Das Modell kann dies sehen und es dem Benutzer sanft erklären oder es auf andere Weise versuchen. Verschlucken Sie den Fehler nicht und geben Sie leere Ergebnisse zurück; Das Modell muss wissen, was schief gelaufen ist.

Schwache/starke Fahrzeugbeschreibung

Schwach (unbestimmtes Substantiv, kein „wann“):

Name: „Daten“, Beschreibung: „ruft Daten ab“# Das Modell weiß nicht, wann und wie es aufrufen soll; Entweder ruft es gar nicht oder falsch auf.

Stark (Netzname + wann + Parameterbeschreibung):

Name: „musteri_bakiyesi_getir“ Beschreibung: „Gibt den aktuellen Kontostand eines Kunden zurück. Rufen Sie auf, wenn der Benutzer nach Lastschrift, Haben oder Saldo fragt. Führt KEINE Zahlung durch.“input_schema: {custeri_id: string („Kunden-ID“)}# Das Modell ruft zum richtigen Zeitpunkt mit den richtigen Parametern auf und kennt sein Limit.

Drei Mini-Hüllen

Fall 1 – Unnötiger Agent. Ein Team baute das Geschäft „Text zusammenfassen“ mit einem Multi-Tool-Agenten auf; Jede Zusammenfassung dauert 4 Modellaufrufe und 9 Sekunden. Der Job war eigentlich ein One-Call-Job. Als wir den Agenten entfernten und ihn auf einen einzigen Anruf reduzierten, verkürzte sich die Zeit auf 1,5 Sekunden und die Kosten sanken auf ein Viertel. Lektion: Verwenden Sie das Mittel, wenn es wirklich notwendig ist.

Fall 2 – Schwache Erklärung, falscher Anruf. Bei einem Supportmitarbeiter wurde vom Modell zufällig sowohl bei der Frage zum Kontostand als auch bei der Frage zum Versand ein obskures Tool namens „fetch“ aufgerufen. Als die Fahrzeuge in „balance_getir“ und „cargo_durumu_getir“ unterteilt wurden und „Anrufen, wenn“-Erklärungen hinzugefügt wurden, verringerte sich die falsche Fahrzeugauswahl in 50 Beispielen von 18 auf 1.

Fall 3 – Fehler verschluckt. Ein Agent gab leere Ergebnisse zurück, als die Bestellung nicht gefunden wurde. Das Model interpretierte dies als „die Bestellung wurde geliefert“ und führte den Kunden in die Irre. Wenn die Fehlermeldung explizit in tool_result geschrieben wird („Bestellung nicht gefunden“), sagt das Modell korrekt: „Ich konnte diese Nummer nicht finden, können Sie sie überprüfen?“ begann er zu sagen.

Häufige Fehler

  • Alles an einen Agenten übergeben: Während ein Anruf ausreicht, verursacht der Agent zusätzliche Kosten und Verzögerungen.
  • Vage Fahrzeugbeschreibung: Das Modell weiß nicht, wann es anrufen soll; wählt falsch.
  • Denken, dass das Modell das Fahrzeug steuert: Der Kabelbaum steuert das Fahrzeug; das Model will einfach.
  • Den Fehler verschlucken: Das Modell muss wissen, was schief gelaufen ist; Geben Sie den Fehler als open tool_result an.
  • Zu viele ähnliche Fahrzeuge: Modell ist verwirrt; Halten Sie den Toolset fokussiert und minimal.
Achtung: Nur weil das Modell „Ruf dieses Fahrzeug an“ sagt, bedeutet das nicht, dass Maßnahmen ergriffen werden sollten. Bei destruktiven Tools (Löschen, Auschecken, E-Mail) sollte Ihre Anwendung den Aufruf nicht blind ausführen – das ist der Kern des Sicherheitsthemas in der nächsten Einheit.

Zusammenfassend

  • Agent = Modell (Entscheidung) + Werkzeuge (Funktionen) + Schleife (Werkzeug aufrufen, Ergebnis abrufen, erneut entscheiden).
  • Ein einzelner Musteraufruf ist kein Agent; Agent ist ein schrittweiser Prozess.
  • Das Modell fährt das Fahrzeug nicht; Ihre Anwendung wird ausgeführt (Harness) und gibt das Ergebnis als tool_result zurück.
  • Das Tool wird durch Namen, Beschreibung (insbesondere „Aufruf wann“) und Eingabeschema identifiziert.
  • Die Schleife wird fortgesetzt, während „tool_use“ → „Harness“ → „tool_result“ → „model“ ausgeführt wird, bis das Modell „fertig“ sagt; Fehler werden dem Modell explizit gemeldet.

Anwendungsaufgabe

Entwerfen Sie 3 Tools aus Ihrem eigenen Unternehmen, die dem Agenten übergeben werden können. (1) Schreiben Sie jeweils einen Namen, eine Beschreibung mit „call when“ und ein Eingabeschema. Mindestens eines sei ein zerstörungsfreies Lesewerkzeug und eines eine Berechnung. (2) Wählen Sie eine realistische Benutzerfrage und schreiben Sie manuell Schritt für Schritt (in einer Schleife), welche dieser Tools das Modell mit welchen Eingaben aufruft und was es tun wird, nachdem das Tool_Result eintrifft. (3) Stellen Sie ein Szenario auf, in dem eines der Tools ausfällt, und zeigen Sie, wie die Fehlermeldung an das Modell zurückgegeben wird.

Checkliste

  • [ ] Ich kann den Agenten als „Modell + Tools + Schleife“ definieren und entscheiden, wann er benötigt wird.
  • [ ] Ich weiß, dass der Kabelbaum das Fahrzeug steuert, das Modell will es nur.
  • Ich kann eine solide Fahrzeugbeschreibung mit [ ] Name, Beschreibung („call when“) und input_schema schreiben.
  • Ich kann dem [ ] Tool_use → Tool_Result-Zyklus Schritt für Schritt folgen.
  • [ ] Ich melde Werkzeugfehler an das Modell als open tool_result.