# Blueprint: Agent-Stil

Version 1.0 · denzer.ai · Lizenz: frei nutzbar mit Quellenangabe

Stil-Bibliothek für deinen Agent. Damit Antworten nicht generisch wirken, sondern nach dir klingen — egal ob Schlagabtausch im Chat, langer Report oder Sprachausgabe. Zwei Modi, klare Regeln, eine Quelle der Wahrheit.

**Fallbeispiel.** Du schreibst tagsüber im WhatsApp-Tempo mit deinem Agent: kurze Fragen, kurze Antworten, ein Satz reicht. Abends willst du einen ausführlichen Bericht zum Thema, mit Überschriften, Listen und Fazit. Beides soll konsistent nach dir klingen, nicht nach einem austauschbaren Assistenten. Der Stil-Blueprint definiert beide Modi, hält die Regeln an einem Ort, und gibt deinem Agent eine klare Anweisung pro Aufschlag.

---

## Teil B — Für dich (Operator)

### Was ist das?

Eine schmale Stil-Datei plus eine Modus-Schaltlogik. Die Stil-Datei beschreibt:
- wie dein Agent klingt (Stimme, Wortwahl, Verbote)
- wie er formatiert (Prosa-Default, wann Listen, wann Tabellen)
- wann er kurz und wann er tief antwortet
- wie Sprache aussieht (Orthografie, Umlaute, keine Marketing-Striche)

Pro Nachricht bekommt dein Agent einen Modus-Marker mitgesendet (`[Modus: Kurz]` oder `[Modus: Tief]`), nach dem er sich strikt richtet. So bleibst du Herr über Länge und Form, ohne in jedem Prompt neu zu erklären.

### Warum so und nicht anders?

Klassische System-Prompts mischen Stil mit Aufgabe und werden mit der Zeit unleserlich. Eine eigene Stil-Datei trennt das sauber: Aufgaben kommen aus dem laufenden Chat, Stil wird in jeder Session aus der Datei geladen. Wenn du den Stil änderst, zieht das durch alle Konversationen ohne Refactoring.

Modus statt automatischer Schätzung, weil Modelle bei "Wie ausführlich soll ich antworten" zu Standardlängen tendieren. Marker zwingen den Agent in deine Variante.

### Was brauchst du dafür?

- Eine `STYLE.md`-Datei im Projekt
- Eine kleine Vorverarbeitung, die `[Modus: ...]` an jede User-Nachricht hängt
- Optional: ein UI-Schalter im Chat, der den Default-Modus umstellt

### Wie startest du?

1. Starter laden, Agent geben
2. STYLE.md anpassen (Beispiele für deinen Stil, deine Verbote, deine Eigenheiten)
3. Modus-Toggle in deinem Chat-Frontend einbauen oder als Default fest setzen
4. Vergleichstest: dieselbe Frage zweimal stellen, einmal Kurz, einmal Tief
5. Wenn etwas daneben klingt: zurück zur STYLE.md, ergänzen, nochmal testen

### Wo sind die Grenzen?

- Stil ist Geschmack, kein Code. Auch der beste Style-Prompt wird gelegentlich daneben treffen
- Ironie, Sarkasmus und sehr persönlicher Humor lassen sich schwer komprimiert beschreiben, lieber durch Beispiele zeigen
- TTS schluckt Struktur — Sprachausgabe bekommt automatisch eine Prosa-Variante, sonst klingt's nach Vorleser einer Liste

### Was kostet das?

Null. Nur Modell-Token pro Antwort, ein paar Cent.

### Wann lohnt es sich, wann nicht?

Lohnt sich immer, sobald dein Agent öffentlich oder halböffentlich kommuniziert (Drafts, Posts, Mails). Lohnt sich auch privat, weil ein klarer Stil dich beim Lesen entlastet. Lohnt sich nicht, wenn du den Agent nur als Code-Spielwiese nutzt und Output nie liest.

### Stolpersteine

- **Marker fehlt → Agent fällt in Default-Länge.** Die Modus-Logik muss in der Pre-Processing-Schicht liegen, nicht nur als Empfehlung
- **STYLE.md zu lang.** Wenn die Datei selbst überlang wird, befolgt das Modell sie nur teilweise. Halte sie unter 200 Zeilen
- **Widersprüche.** Wenn zwei Regeln gegenläufig sind (z. B. "knapp" und "vollständig erklären"), gewinnt mal die eine, mal die andere
- **Beispiele schlagen Regeln.** Wenn du eine Regel willst, gib ein konkretes Vorher/Nachher-Beispiel direkt darunter
- **Marketing-Striche.** Em-/En-Dashes lesen sich oft "nach KI". Im Stil explizit verbieten

---

## Teil A — Für deinen Agent

### Agent-Triggersätze

- "Richte mir das Stil-System ein"
- "Lade die STYLE.md beim Konversations-Start"
- "Schalte auf Tief-Modus für diese Antwort"

### Ziel

Eine `STYLE.md` als Quelle der Wahrheit für Sprache, Formatierung und Modus-Logik. Vorverarbeitungs-Hook fügt `[Modus: Kurz]` oder `[Modus: Tief]` an jede User-Nachricht, mit zugehörigen Regeln aus STYLE.md. Modell hält sich daran.

### Erfolgskriterien

- Pro User-Nachricht ein eindeutiger Modus-Marker am Ende
- Im Kurz-Modus: 1–3 Sätze Prosa, kein Markdown-Overkill, keine Listen außer wenn parallel
- Im Tief-Modus: volle Struktur erlaubt (Überschriften, Listen, Tabellen, Fazit)
- TTS-Output: Strukturelemente entfernt, Prosa bleibt
- Stil-Verbote (Em-Dash, Hashtags, Floskeln) zuverlässig erkannt und gefiltert

### Eingabe-Schema

```yaml
style:
  source:          "<root>/soul/STYLE.md"
  modes:
    short:
      default:     true
      max_sentences: 3
      lists:       "nur wenn parallel, max 3 Punkte"
    deep:
      headings:    true
      lists:       true
      tables:      true
      conclusion:  true
  orthografie:
    umlaute:       "voll"                   # nie ae/oe/ue/ss
    em_dash:       "verbieten"
    hashtags:      "verbieten"
  pre_processing:
    inject_marker: true                      # hängt [Modus: ...] an User-Nachricht
    inject_style:  "system_prompt"           # STYLE.md kommt einmal pro Session in den Prompt
  tts_post:
    strip:         ["headings", "lists", "tables", "code", "bold"]
    fallback:      "prosa-fazit-anhaengen"
```

### Verarbeitung

1. **Session-Start** — STYLE.md in System-Prompt laden
2. **Pre-Processing** — User-Nachricht erhält `[Modus: Kurz|Tief]`-Marker (aus UI-Toggle oder Default)
3. **Generierung** — Modell antwortet nach Modus-Regeln
4. **Post-Validation** — verbotene Muster filtern (Em-Dashes durch Komma ersetzen, Hashtags entfernen)
5. **TTS-Pfad** — wenn Sprachausgabe, Strukturelemente entfernen, ggf. Prosa-Fazit anhängen

### Verzeichnisstruktur

```
<root>/
├── soul/
│   └── STYLE.md
├── chat/
│   ├── inject_mode.py        # Pre-Processing
│   └── post_validate.py
└── voice/
    └── tts_prepare.py
```

### Code-Snippets

Im Starter findest du eine Beispiel-STYLE.md, einen Pre-Processor (Python), einen Post-Validator und eine TTS-Aufbereitung.

---

## Teil C — Was du als Nächstes tust

1. Starter laden
2. `STYLE.md` öffnen und an deinen Ton anpassen (mindestens 5 konkrete Beispiele)
3. Pre-Processor einbinden (oder Default-Modus fest setzen)
4. Im Chat-UI einen Tief-Toggle hinzufügen
5. Vergleichstest mit derselben Frage, beide Modi
6. STYLE.md iterieren — neue Stolpersteine als zusätzliche Regel ergänzen

### Lern-Checkliste

- Wo liegt mein Stil, und wie ändere ich ihn projektweit?
- Wie schalte ich für eine einzelne Antwort den Modus um?
- Welche Verbote sind hart, welche weich?
- Wie wird mein Stil im Voice-Modus angepasst?
- Wie merke ich, dass mein Agent vom Stil abdriftet, und was tue ich dann?

Fragen: christian@denzer.ai
