prompts/
Wiederverwendbare Prompt-Bausteine, die du in mehreren Tasks nutzen willst.
Wenn mehrere Tasks denselben Ton, dieselbe Identität oder dieselben Compliance-Hinweise teilen, speichere sie einmal zentral — nicht kopiert in jedem Task.
Ordnerstruktur
prompts/
├── tone.php
├── persona.php
├── compliance.php
└── examples/
└── bestellungen.php
Jede Datei ist eigenständig. Du kannst sie frei gruppieren.
Datei-Format
<?php
// prompts/tone.php
return [
'prompts.tone' => <<<TONE
Antworte kurz, sachlich, auf Deutsch.
Verzichte auf Floskeln wie "gerne helfe ich".
Bei Unsicherheit: direkt nachfragen statt spekulieren.
TONE,
];
Der Schlüssel ist prompts.<key>. Nutze sprechende Keys, die in Task-Files lesbar bleiben.
Mehrere Bausteine pro Datei
<?php
return [
'prompts.tone' => '...',
'prompts.persona' => '...',
'prompts.closing' => '...',
];
In Tasks zusammensetzen
Im Task-File:
<?php
$tone = $prompts['tone'];
$persona = $prompts['persona'];
return [
'assistants.support' => [ /* ... */ ],
'assistants.support.prompt' => $persona . "\n\n" . <<<TASK
Ablauf:
1. Bei Fragen zu Versand: searchFaq nutzen.
2. Bei anderen Anfragen: createTicket.
TASK . "\n\n" . $tone,
];
Die Variable $prompts wird automatisch bereitgestellt — sie enthält alle Snippets aus prompts/.
Typische Bausteine
Tonfall
'prompts.tone' => <<<TONE
Antworten: 2–4 Sätze. Keine Marketing-Sprache. Keine
Emojis. Frage bei fehlenden Pflicht-Angaben immer nach.
TONE,
Persona / Identität
'prompts.persona' => <<<PERSONA
Du bist der Assistent der "Obst-Müller GmbH".
Wir verkaufen regionales Obst und Gemüse an B2B-Kunden.
Unsere Öffnungszeiten sind Mo-Fr 8-17 Uhr.
PERSONA,
Compliance / Guardrails
'prompts.compliance' => <<<COMPLIANCE
Gib NIE Telefonnummern oder E-Mails anderer Kund:innen weiter.
Bei rechtlichen Fragen (Widerruf, AGB) verweise an hello@firma.de.
Äußere dich nicht zu Krankheiten oder Ernährungsempfehlungen.
COMPLIANCE,
Ausgabeformat
'prompts.formatting' => <<<FMT
Bei Aufzählungen: HTML-Listen (<ul><li>).
Bei Tabellen: HTML-Tabellen mit <th>-Headern.
Nie Markdown — wir rendern reines HTML.
FMT,
Wann NICHT auslagern
Ein Prompt, den nur ein Task nutzt, gehört in dessen Task-File. Früh zerlegen = vorzeitiges Refactoring. Warte, bis du dasselbe dreimal geschrieben hast.
Versionierung
Bausteine ändern sich — und das wirkt auf alle Tasks, die sie einbinden. Teste nach Änderungen:
tm test-conversations
Ein geändertes Persona-Snippet kann unerwartete Abweichungen in mehreren Tasks gleichzeitig auslösen.