tm test-conversations
Automatische Konversations-Tests aus der Workspace-Config ausführen.
Schriftliche Erwartungen, die beim CI-Lauf geprüft werden. Deine Regression-Suite für Prompts.
Aufruf
tm test-conversations
tm test-conversations --task inventur
tm test-conversations --task inventur --verbose
Tests definieren
In deinem Workspace, typischerweise im entsprechenden Assistant:
// assistants/inventur.php
return [
'assistants.inventur' => [
'name' => 'Inventur',
// ... prompt, tools, ...
'conversation_tests' => [
[
'description' => 'Erdbeeren suchen',
'user_message' => 'welche erdbeeren habt ihr?',
'expect_tool_calls' => ['getProducts'],
'expect_response_contains' => ['Erdbeere', 'Preis'],
],
[
'description' => 'Bestand prüfen',
'user_message' => 'wie viele Tomaten sind noch da?',
'expect_tool_calls' => ['getStock'],
'expect_response_contains' => ['Stück'],
],
],
],
];
Verfügbare Assertions
| Feld | Bedeutung |
|---|---|
description |
Name des Tests (für die Ausgabe) |
user_message |
Was der Benutzer eingibt |
expect_success |
true erwartet eine erfolgreiche Antwort (kein Error) |
expect_tool_calls |
Diese Tools müssen aufgerufen werden |
expect_response_contains |
Diese Strings müssen in der Antwort stehen |
Output
✓ Erdbeeren suchen
Tools: getProducts
✗ Bestand prüfen
Tools: getProducts
✗ Expected tool_call "getStock" was not made
✗ Response does not contain any of: verfügbar, Lager, Stück
1/2 bestanden (50%)
Parameter
-t, --task <slug>— nur Tests eines bestimmten Tasks laufen lassen-v, --verbose— Response-Auszüge mitanzeigen
Wofür nutzen?
- Prompt-Refactoring absichern: nach jeder Prompt-Änderung Tests laufen lassen
- Regression in CI:
tm test-conversations --verbosein einer Pipeline, Exit-Code != 0 bricht den Build - Akzeptanzkriterien dokumentieren: der Test ist gleichzeitig die Spec
Strategie
Kleine Sammlung stabiler Tests ist besser als 100 unsichere. Fang mit 5 Kernfragen pro Task an — die Fälle, die wirklich schmerzen würden, wenn sie brechen.
Verwandte Commands
tm optimize-prompt— bei Fehlschlägen automatisch Vorschläge generierentm test-chat— einzelne Frage ohne Assertions testen