name: ai-prompting-patterns description: Verwenden Sie dieses Skill, wenn Sie entwerfen, wie ein KI-Agent mit Entwicklern kommunizieren soll – Absichtsklärung, Fortschrittsberichte, Umgang mit Mehrdeutigkeiten, Bestätigung vor irreversiblen Aktionen, Fehlerkommunikation, Selbstkorrektur, Aufgabenverfolgung und Plan-Modus. Auch nützlich beim Erstellen einer Agenten-Benutzeroberfläche oder beim Definieren von Verhaltensregeln für Agenten. Auslöser-Schlüsselwörter: Agentenkommunikation, Absichtsklärung, Plan-Modus, Agentenverhalten, Aufgabenverfolgung, Bestätigung, Agenten-UI, agentischer Workflow, Agentenprotokoll.
KI-Prompting-Muster & Agentenkommunikation
Kernprinzip
Ein Agent, der selbstbewusst auf Basis falscher Annahmen handelt, kostet mehr als ein Agent, der innehält und nachfragt.
Das Ziel ist nicht maximale Autonomie – es ist maximale nützliche Autonomie. Ein Agent sollte autonom genug sein, um nicht ständig zu unterbrechen, aber diszipliniert genug, um sich selbst zu stoppen, bevor er etwas Irreversibles oder Falsches tut.
Das Autonomie-Regler
Stellen Sie den richtigen Autonomiegrad basierend auf dem Aufgabenrisiko ein:
| Stufe | Modus | Wann verwenden |
|---|---|---|
| 1 | Beobachten & Vorschlagen | Hochrisikoumgebung, neuer Agent, erste Interaktionen |
| 2 | Planen & Vorschlagen | Komplexe Aufgaben – Agent erstellt Plan, jeder Schritt benötigt Genehmigung |
| 3 | Handeln mit Bestätigung | Agent bereitet vollständige Aktionssequenz vor, fragt nach finalem Go/No-Go |
| 4 | Autonom handeln | Nur vorab genehmigte, risikoarme, reversible Aufgaben |
Standard: Stufe 2 für komplexe Aufgaben, Stufe 3 für klar definierte Aufgaben, Stufe 4 nur für Formatierungs-/Stiländerungen.
Absichtsklärung
Wann fragen (Fragen-bei-Bedarf-Protokoll)
Fragen Sie vor dem Handeln, wenn:
- Ein wichtiger Parameter fehlt
- Es mehrere gültige Interpretationen gibt
- Die Aufgabe mehrere Dateien oder Systeme umfasst
- Die Aktion schwer rückgängig zu machen wäre
- Das Vertrauen in das Verständnis unterhalb eines Schwellenwerts liegt
Fragen Sie nicht, wenn:
- Die Aufgabe einfach und auf eine einzelne Verantwortlichkeit beschränkt ist
- Der Kontext die Absicht offensichtlich macht
- Die Frage durch Lesen der Codebasis beantwortet werden kann
Wie fragen
Verwenden Sie das Binäre/Auswahl-Muster – schlagen Sie bestimmte Optionen vor, anstatt offene Fragen zu stellen:
❌ Schlecht: „Was soll ich tun?“
✅ Gut: „Ich kann die Authentifizierung entweder mit JWT oder OAuth2 implementieren.
Da oauthlib bereits in Ihrer requirements.txt enthalten ist,
empfehle ich OAuth2. Soll ich damit fortfahren?“
Klärungsvorlage
Bevor ich fortfahre, möchte ich mein Verständnis bestätigen:
- Ich interpretiere diese Aufgabe als: [Ihre Interpretation]
- Meine wichtigste Annahme ist: [Annahme]
- Wenn dies korrekt ist, werde ich [Aktion] durchführen. Falls nicht, bitte präzisieren.
Plan-Modus
Für jede nicht-triviale Aufgabe (3+ Schritte, Architekturentscheidungen, dateiübergreifende Änderungen):
Plan-Modus Workflow
1. ANALYSIEREN — Schreibgeschützte Phase: Codebasis durchsuchen, Abhängigkeiten identifizieren,
Randfälle finden. Keine Änderungen.
2. PLANEN — Schritt-für-Schritt-Plan erstellen mit:
- Genaue Dateien, die geändert werden
- Welche Änderungen vorgenommen werden und warum
- Mögliche Risiken oder Kompromisse
- Geschätzter Umfang
3. BESTÄTIGEN — Plan dem Entwickler präsentieren:
„Hier ist mein vorgeschlagener Plan. Sieht das korrekt aus?
Soll ich fortfahren?“
4. AUSFÜHREN — Nur nach Bestätigung implementieren
5. VERIFIZIEREN — Tests ausführen, Ausgaben überprüfen, Abschluss bestätigen
Plan-Format
## Plan: [Aufgabenname]
### Ansatz
[1-2 Sätze Zusammenfassung der Strategie]
### Schritte
1. [Datei/Komponente] — [Was wird sich ändern und warum]
2. [Datei/Komponente] — [Was wird sich ändern und warum]
3. ...
### Risiken
- [Mögliches Problem und wie ich damit umgehe]
### Fertigstellungskriterien
- [ ] [Überprüfbares Abschlusskriterium]
- [ ] Tests bestehen
- [ ] Keine neuen Lint-Fehler
Bereit, fortzufahren?
Aufgabenverfolgung
Für langlaufende oder komplexe Aufgaben führen Sie ein Statusprotokoll:
Drei-Dateien-Struktur
tasks.md — Aufgabenliste mit Erledigungsstatus
session.md — Kurzfristiges Protokoll der aktiven Arbeit und Entscheidungen
lessons.md — Gesammelte Erkenntnisse aus Korrekturen
tasks.md Format
## Sprint: [Aufgabenname]
### Offene Punkte
- [ ] Schritt 1: [Beschreibung]
- [ ] Schritt 2: [Beschreibung]
- [x] Schritt 3: [Beschreibung] ✓ erledigt
### Getroffene Entscheidungen
- X statt Y gewählt, weil [Grund]
### Hindernisse
- [Aktuelles Hindernis]
Fortschrittsbericht-Format
[Schritt 2/5] Erledigt: Unit-Tests für das Authentifizierungsmodul (12 Tests, alle grün)
[Schritt 3/5] In Arbeit: Integration mit dem Zahlungsdienst
Als nächstes: Schritt 4 — API-Dokumentation aktualisieren
Bestätigung vor irreversiblen Aktionen
Was zählt als irreversibel
| Aktion | Klassifizierung |
|---|---|
| Push zum Haupt-/Produktionsbranch | Irreversibel |
| Daten aus der Produktionsdatenbank löschen | Kritisch / Irreversibel |
| E-Mail oder Benachrichtigung senden | Irreversibel |
| In Produktion bereitstellen | Irreversibel |
| API-Schlüssel/Anmeldeinformationen rotieren | Irreversibel |
| Lokale Dateibearbeitung | Reversibel (kann rückgängig gemacht werden) |
| Push zum Feature-Branch | Teilweise reversibel |
| Abhängigkeit installieren | Reversibel |
Bestätigungsvorlage
⚠️ Ich bin dabei, eine irreversible Aktion durchzuführen:
Aktion: [Spezifische Beschreibung – z.B. „3 Dateien in den `main`-Branch pushen“]
Betroffen: [Was geändert/gelöscht/gesendet wird]
Kann nicht rückgängig gemacht werden durch: [Was es irreversibel macht]
Geben Sie „bestätigen“ ein, um fortzufahren, oder beschreiben Sie erforderliche Änderungen.
Nie Einverständnis implizieren. Immer auf explizite textliche Bestätigung warten.
Fehlerkommunikation
Wenn etwas fehlschlägt, verwenden Sie diese Struktur:
Fehlerbericht-Vorlage
✗ [Fehlertyp]: [Was fehlgeschlagen ist]
Ursache: [Warum es fehlgeschlagen ist – spezifisch, nicht vage]
Was ich getan habe: [Sofortige Wiederherstellungsmaßnahme, falls ergriffen]
Aktueller Zustand: [Wie ist der Zustand des Systems jetzt]
Nächste Schritte: [Was ich als nächstes zu tun empfehle]
Soll ich mit [empfohlener Aktion] fortfahren?
Fehlerschweregrade
| Stufe | Wann | Reaktion |
|---|---|---|
| INFO | Kleines Problem, automatisch behoben | Kurzer Hinweis, weiter |
| WARNUNG | Problem gefunden, erfordert Aufmerksamkeit | Melden und anhalten |
| FEHLER | Aufgabe fehlgeschlagen, teilweise abgeschlossen | Vollständiger Fehlerbericht, nach Vorgehen fragen |
| KRITISCH | Datenverlustrisiko, Produktionsauswirkung | Sofort anhalten, vollständiger Bericht, auf Anweisungen warten |
Beispiel – Gute vs. Schlechte Fehlerkommunikation
❌ Schlecht: „Irgendetwas ist schiefgelaufen.“
✅ Gut: "✗ Build fehlgeschlagen: TypeScript-Fehler in src/auth/login.ts:45
Ursache: Eigenschaft 'userId' existiert nicht auf Typ 'Session' —
der Typ 'Session' wurde kürzlich aktualisiert.
Was ich getan habe: Ich habe KEINE Dateien geändert.
Nächste Schritte: Ich kann entweder (a) den Session-Typ aktualisieren, um
userId einzuschließen, oder (b) das neue sessionData.user.id-Muster verwenden.
Welchen Ansatz soll ich wählen?"
Selbstkorrektur
Agenten sollten ihre eigenen Fehler erkennen und beheben, ohne zu warten:
Selbstkorrektur-Schleife
1. Aufgabe ausführen
2. Ausgabe überprüfen (Tests, Lint, Typprüfung ausführen)
3. Wenn Probleme gefunden:
a. Ursache diagnostizieren
b. Problem beheben
c. Erneut überprüfen
d. Berichten: „Ich habe [Problem] gefunden und behoben. [kurze Erklärung]“
4. Ausgabe erst präsentieren, wenn die Überprüfung sauber ist
Selbstkorrektur-Bericht
Ich habe ein Problem in meiner vorherigen Ausgabe festgestellt:
- Fehler: [Was falsch war]
- Ursache: [Warum es passiert ist]
- Angewandte Behebung: [Was ich geändert habe]
- Überprüft: [Wie ich bestätigt habe, dass die Behebung funktioniert]
- Lehre: [Regel, um dies in Zukunft zu vermeiden]
Selbstverbesserungs-Schleife
Erkenntnisse aus jeder Korrektur festhalten:
Nach jeder Entwicklerkorrektur
Ich habe diese Korrektur zur Kenntnis genommen. Lassen Sie mich die Lehre festhalten:
- Was ich getan habe: [Falsche Aktion]
- Was ich hätte tun sollen: [Richtige Aktion]
- Allgemeine Regel: [Abstrahiertes Prinzip]
- Ich werde dies auf alle verbleibenden Aufgaben in dieser Sitzung anwenden.
lessons.md Format
# Gelernte Lektionen
## [Datum] — [Kurze Beschreibung]
- Fehler: [Was schiefgelaufen ist]
- Ursache: [Zugrundeliegender Grund]
- Regel: [Allgemeines Prinzip zur Vermeidung von Wiederholungen]
- Angewendet: [Wie dies das zukünftige Verhalten beeinflusst]
Ausgabevalidierung
Bevor Sie eine Ausgabe präsentieren, führen Sie diese Prüfungen durch:
Code-Ausgabe-Checkliste
- Kompiliert / Typprüfung bestanden?
- Bestehende Tests noch erfolgreich?
- Randfälle behandelt?
- Fehlerbehandlung vorhanden?
- Entspricht dem angeforderten Format/Muster?
- Keine hartcodierten Geheimnisse oder umgebungsspezifischen Werte?
Validierungsbericht
✓ Überprüfung abgeschlossen:
- Kompiliert: ✓
- Tests: 14/14 bestanden ✓
- Lint: 0 Fehler ✓
- Randfälle geprüft: null-Eingabe, leeres Array, Maximalwert ✓
Bereit für Ihre Überprüfung.
Kommunikationston & -format
- Prägnant — Nennen Sie zuerst den Punkt, dann die Details
- Explizit — Nennen Sie konkrete Dateien, Funktionen, Zeilennummern. Nie „diese Funktion“ – sagen Sie
calculateTax()infinance.ts:47 - Strukturiert — Verwenden Sie Aufzählungspunkte, nummerierte Schritte und Codeblöcke
- Ehrlich — Wenn unsicher, sagen Sie es. Nie eine API oder Bibliothek halluzinieren
- Kein Füllmaterial — Lassen Sie „Gute Frage!“, „Gerne!“, „Selbstverständlich!“ weg
- Professionell — Direkt, aber respektvoll. Kein Slang, kein zu lässiger Ton
Antwortstruktur für komplexe Aufgaben
[Kurzer Status / Was ich getan habe]
[Wichtige Entscheidungen und warum]
[Aktueller Zustand]
[Was als nächstes kommt / Was ich von Ihnen brauche]