Tools testen
Tools direkt und reproduzierbar ausführen, ohne Umweg übers Modell.
Nicht das Modell raten lassen, was dein Tool tut. Führe es direkt aus, bevor du es in einen Task steckst.
Der Test-Befehl
tm test-tool <toolName> [key=value ...]
Das führt das Tool exakt so aus, wie es in einem echten Chat passieren würde: Placeholder-Resolution, Preprocess, API-Call, Mapping, Postprocess, Handler. Du siehst Args, Request, Response und finales Ergebnis.
Mit Fixture
Wenn dein Tool ein args_fixture in der Config hat, reichen Tool-Name ohne weitere Args:
tm test-tool getInvoice
Das Fixture dient als stabiler Referenzlauf — ideal zum schnellen Smoke-Test.
Test-Modus (Dry-Run)
Für Tools, die schreibend auf fremde APIs zugreifen (Mails senden, Dateien uploaden, Datensätze anlegen):
tm test-tool sendInvoice id=123 --dry-run
Im Dry-Run-Modus werden POST / PUT / PATCH / DELETE-Requests nicht wirklich abgeschickt, sondern geben einen Stub zurück. Preprocess und Postprocess laufen normal. So kannst du riskante Tools gefahrlos testen.
JSON-Output
Für Skripte / CI:
tm test-tool getInvoice id=INV-2026-001 --json
Liefert das Ergebnis als ein JSON-Objekt, nichts drumherum. Gut für Snapshot-Tests oder Automatisierung.
Typische Workflows
Neues Tool entwickeln
# 1. Tool mit kleinem args_fixture anlegen
# 2. tm sync durchlaufen lassen (oder tm watch im Hintergrund)
# 3. Direkt testen:
tm test-tool myNewTool
# 4. Wenn grün: in einen Assistant einbauen, im Chat testen.
Bestehendes Tool debuggen
# Ein User meldet: "das Tool gibt nix zurück". Reproduziere:
tm test-tool getInvoice id=INV-2026-001
# Output zeigt: 404 vom API. Dann weißt du: Tool ok, ID falsch.
Regression vor Deployment
Halte eine Liste wichtiger Tool-Fixtures in deinem Workspace. Vor jedem Go-Live:
for tool in getInvoice listOrders classifyEmail; do
tm test-tool $tool --json > /tmp/$tool.json
done
Diff gegen eine gespeicherte Referenz — Änderungen fallen sofort auf.
Was tm test-tool nicht testet
- Prompts: ob das Modell das Tool im richtigen Moment aufruft. Dafür gibt es
tm test-chat. - Inter-Tool-Logik: wenn Tool A das Modell dazu bringen soll, Tool B aufzurufen — das siehst du nur im echten Chat.
Logs
Jeder Testlauf landet im Ausführungs-Log deines Workspace. Du kannst sie live mitverfolgen:
tm monitor # strukturierter Tool-Stream
tm logs # rohe Server-Logs
Siehe tm monitor und tm logs.