Begriff
Agent Tool
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Ein Sprachmodell (wie ChatGPT) ist ein "Brain in a Vat". Es ist super schlau, aber isoliert. Es kennt nur das Internet bis 2023 und kann nichts tun. Es kann keine E-Mails schreiben, nicht in den Kalender schauen, nicht rechnen. Ein Agent Tool gibt dem Gehirn Hände und Augen. Es ist eine definierte Funktion (Programm-Code), die dem Agenten zur Verfügung gestellt wird. Beispiel Tools: "Google Suche", "Taschenrechner", "Datenbank-Abfrage". Der Agent entscheidet selbst, wann er welches Tool braucht, um die User-Frage zu lösen.
Merksatz: Eine gekapselte Funktionalität oder API-Schnittstelle, die einem KI-Agenten mitsamt Beschreibung bereitgestellt wird, damit dieser autonom Interaktionen mit der Außenwelt durchführen kann.
In Frameworks wie LangChain oder n8n definierst du Tools. Ein Tool besteht aus:
- Name:
calculator - Description: "Useful for calculating math problems." (Extrem wichtig! Das LLM liest das, um zu entscheiden, ob es das Tool nutzt).
- Schema (Input): Welche Daten braucht das Tool? (z. B.
{ "expression": "string" }). - Function: Der eigentliche Code (Python/JS), der ausgeführt wird.
User: "Was ist 25 mal 43?"
Agent (denkt): "Das ist Mathe. Ich nutze calculator mit 25 * 43."
System: Führt 25 * 43 aus -> Ergebnis 1075.
Agent: "Das Ergebnis ist 1075."
1. OpenAI Function Calling (Tool Calling)
Früher (ReAct) musste man dem LLM sagen: "Antworte bitte so: Action: [Name]". Das war fehleranfällig (Halluzinationen, falsches Parsing).
OpenAI hat Modelle (GPT-4) speziell darauf trainiert ("fine-tuned"), JSON-Output für Tools zu generieren.
Du schickst im API-Call eine Liste von tools (als JSON Schema).
Das Modell antwortet nicht mit Text (content), sondern mit einem speziellen tool_calls Objekt.
Das ist deterministisch und typ-sicher.
2. Toolkit & Multi-Tool Usage
Agenten können Zugriff auf Dutzende Tools haben (Toolkit).
Moderne Modelle sind "Parallel Tool Use" fähig.
User: "Wie ist das Wetter in Berlin und München?"
Agent: Ruft get_weather ZWEIMAL parallel auf (einmal Berlin, einmal München).
Das spart Latenz.
3. Human-in-the-Loop (Approval)
Manche Tools sind gefährlich (delete_database, send_money).
Hier baut man einen "Human Approval" Schritt ein.
Agent wählt Tool -> System pausiert -> Admin bekommt Nachricht "Agent will Geld senden. Erlauben?" -> Admin klickt Ja -> Tool läuft.
1. Schema Engineering & Halting Problems
Das Beschreiben von Tools als JSON Schema (OpenAPI Specs) erfordert "Schema Engineering", was fast noch wichtiger als Prompt Engineering wird. Das LLM verliert den Faden, wenn ein Tool 30 optionale Parameter hat. Oft erfindet es Parameter, die es gar nicht gibt. Best Practice ist es, strikte enum Arrays für String-Parameter bereitzustellen.
Zudem gibt es das Agent Halting Problem: Der Agent gerät in eine unendliche Schleife -> Ruft Tool auf -> Tool failt -> Ruft Tool mit gleichem dummen Parameter auf. Production-Setups erfordern Hard-Limits (z. B. max 5 Tool-Calls pro Loop) und ein Tool, das explizit GiveUp erzwingt.
2. Structured Outputs vs. Agent State (Memory)
Wenn ein Agent ein "SQL Query" Tool nutzt, bekommt er vielleicht 5.000 Zeilen JSON zurück. Schiebt er das in sein Context Window, crasht er entweder oder wird unendlich teuer (Agent Cost Optimization!).
Lösung: Opaque References oder Memory-Bound Tools. Das Tool gibt dem Agenten nicht die Daten, sondern ein Handle/UUID: "Ich habe die 50MB PDF durchsucht, hier ist die UUID des Reports". Das LLM hat dann Zugriff auf ein zweites Tool answer_from_report(id, question). Der Agent schiebt also nur Pointer hin und her, anstatt Raw Data.
3. ReAct Pattern (Reasoning and Acting)
Das Fundament der meisten Legacy-Agenten vor den nativen "Tool-Calling" LLMs war ReAct. Die Grundstruktur zwingt den Agenten in eine Loop:
Thought: Was muss ich tun? -> Action: Führe Tool X aus -> Observation: Tool-Output.
Diese explizite "Gedanken"-Spur (Thought) zwingt das Sprachmodell zur Chain-of-Thought (CoT), was drastisch reduziert, dass es einfach Tools rät. Moderne Setups nutzen zwar native API-Calls für die Action, erzwingen die Thought aber nach wie vor in einem vorgeschobenen Output-JSON-Feld.
Quick-Check
Was passiert, wenn es kein passendes Tool gibt?
Der Agent versucht es entweder selbst zu lösen (Halluzinationsgefahr bei Fakten) oder sagt: "Ich kann das nicht." Eine gute "Fallback"-Logik ist wichtig.Wie viele Tools kann ein Agent haben?
Technisch begrenzt durch das Context Window (die Beschreibungen aller Tools zählen als Input Token). Praktisch: Je mehr Tools, desto verwirrter wird der Agent ("Tool Confusion"). Besser: Spezialisierte Agenten mit kleinen Tool-Sets.Return Values?
Der Output des Tools (z. B. ein langes JSON von einer API) wird wieder als Text in den Context des LLMs gefüttert. Wenn der Output zu lang ist (10MB JSON), sprengt das den Context. Man muss Tool-Outputs oft kürzen/filtern.