diff --git a/01-ai-agent-basics/02-tool-calling.md b/01-ai-agent-basics/02-tool-calling.md new file mode 100644 index 0000000..f6eed7e --- /dev/null +++ b/01-ai-agent-basics/02-tool-calling.md @@ -0,0 +1,55 @@ +# Aufgabe 02: Tool Calling simulieren + +## Ziel + +Du lernst, wie ein LLM nicht nur Text erzeugt, sondern Aktionen auslösen kann. + +## Szenario + +Der User fragt: + +```text +Wie viele Personen sind im Raum? +``` + +Das LLM soll nicht raten, sondern ein Tool anfordern: + +```json +{ + "tool": "count_people", + "arguments": {} +} +``` + +## Aufgabe + +Baue ein Programm mit mindestens 3 Tools: + +- `get_time()` +- `count_people()` - erstmal fake: gibt z. B. `2` zurück +- `look(direction)` - erstmal fake: gibt `looked left` zurück + +Das Programm soll: + +1. User-Input entgegennehmen +2. LLM entscheiden lassen, ob ein Tool nötig ist +3. Tool ausführen +4. Ergebnis zurück ans LLM geben +5. finale Antwort ausgeben + +## Lernpunkte + +- Warum Tool Calling für Robotik zentral ist +- Warum ein LLM nicht direkt Motoren steuern sollte +- Wie man Tools typisiert und validiert +- Wie man gefährliche Aktionen begrenzt + +## Akzeptanzkriterien + +- Frage nach Uhrzeit ruft `get_time()` auf. +- Frage nach Personen ruft `count_people()` auf. +- Befehl "schau nach links" ruft `look("left")` auf. + +## Erweiterung + +Logge jeden Tool-Call mit Timestamp, Argumenten und Ergebnis. \ No newline at end of file