Pi Agent Prompt-Vorlage
Prompt-Vorlagen sind vordefinierte Markdown-Schnipsel, die mit einem kurzen Befehl zu vollständigen Prompts erweitert werden können, was die Effizienz bei wiederholten Arbeiten erhöht.
Vorlagenübersicht
Die Funktionsweise von Prompt-Vorlagen ist einfach:
- Erstellen Sie eine Markdown-Datei, um den Inhalt der Vorlage zu definieren
- Geben Sie im Editor/template-nameein, um es aufzurufen
- Die Vorlage wird automatisch erweitert und in den Editor eingefügt
Vorlagen unterstützen Parameterersetzung, sodass dieselbe Vorlage in verschiedenen spezifischen Szenarien verwendet werden kann.
Eine Vorlage erstellen
Vorlagen sind Markdown-Dateien mit YAML-Frontmatter.
Der Dateiname (ohne .md) ist der Befehlsname der Vorlage.
Erstelle eine Code-Review-Vorlage:
Beispiel
description: Überprüfe die aktuellen git-gestagten Änderungen
---
Überprüfe die Änderungen im Staging-Bereich (git diff --cached), mit Fokus auf:
- Mögliche Fehler und Logikfehler
- Sicherheitsprobleme
- Fehlerbehandlung und Randfälle
- Leistungsprobleme
Speichere unter~/.pi/agent/prompts/review.mdTippe dann im Editor/reviewein, um es zu erweitern und zu verwenden.
Vorlagenort
Pi Agent sucht Vorlagen an mehreren festen Speicherorten, die jeweils einen anderen Geltungsbereich haben.
| Ort | Geltungsbereich |
|---|---|
| ~/.pi/agent/prompts/*.md | Globale Vorlagen, für alle Projekte verfügbar |
| .pi/prompts/*.md | Projektvorlagen, die erst geladen werden, nachdem dem Projekt vertraut wurde |
| Das Verzeichnis prompts/ in Pi Packages | Vorlagen im Paket |
| --prompt-template path | Temporäres Laden über die Befehlszeile |
Die Vorlagenerkennung istnicht rekursivVorlagen in prompts/-Unterverzeichnissen werden nicht automatisch geladen.
Wenn Vorlagen in Unterverzeichnissen abgelegt werden, müssen Sie den Pfad explizit zum prompts-Array in settings.json hinzufügen.
Parametersystem
Vorlagen unterstützen ein umfangreiches Parametersystem, mit dem sich dieselbe Vorlage an verschiedene Szenarien anpassen lässt:
| Syntax | Bedeutung | Beispiel |
|---|---|---|
| $1, $2, $3... | Positionsparameter | $1 repräsentiert den ersten Parameter |
| $@ oder $ARGUMENTS | Verkettung aller Parameter | Alle Parameter mit Leerzeichen verbinden |
| ${1:-default} | Parameter mit einem Standardwert | Verwende den Parameter, wenn er existiert und nicht leer ist, andernfalls verwende den Standardwert |
| ${@:N} | Beginne beim N-ten Parameter | ${@:2} nimmt alle Parameter ab dem zweiten |
| ${@:N:L} | Nimm L Parameter ab dem N-ten | ${@:2:3} nimmt Parameter 2 bis 4 |
$ARGUMENTS verkettet alle Parameter unverändert, geeignet für Vorlagen, die nur einen ganzen Textblock benötigen:
Beispiel
description: Übersetze einen chinesischen Text in natürliches Englisch
argument-hint: "<Chinesisch zum Übersetzen>"
---
Übersetze den folgenden Inhalt in natürliches Englisch, gib nur die Übersetzung aus:
$ARGUMENTS
Speichere als~/.pi/agent/prompts/translate.mdVerwende dann/translate, um diesen Text ins Englische zu übersetzen, um ihn aufzurufen.
Vorlagenbeispiel mit Parametern
Die folgende Vorlage kombiniert Positionsparameter und nachgestellte Parameter und eignet sich für Eingaben wie "Typ + Name + ergänzende Beschreibung".
Beispiel
description: Erstelle eine Komponente mit dem angegebenen Framework
argument-hint: "<Framework> <Komponentenname> [Funktionsbeschreibung]"
---
Verwende $1, um eine $2-Komponente zu erstellen, mit Funktionen, darunter: ${@:3}
$1 nimmt den ersten Parameter als Framework, $2 nimmt den zweiten Parameter als Komponentenname.
${@:3} steht für alle Inhalte ab dem dritten Parameter und wird verwendet, um verstreute Funktionsbeschreibungen zu übermitteln.
Verwendung:
/component React Button "onClick 事件处理" "disabled 状态支持" "loading 加载状态"
Erweitertes Ergebnis:
使用 React 创建一个 Button 组件,功能包括:onClick 事件处理 disabled 状态支持 loading 加载状态
Beispiel für Standardwert
Wenn Parameter fehlen, dienen Standardwerte als Fallback, sodass die Vorlage auch dann normal funktioniert, wenn sie ohne Parameter aufgerufen wird.
Beispiel
description: Aktuellen Projektstatus zusammenfassen
---
Fasse die wichtigsten Änderungen und den Status des aktuellen Projekts in ${1:-5} Aufzählungspunkten zusammen.
Speichern unter~/.pi/agent/prompts/summarize.mdDann verwenden Sie/summarizezum Aufrufen.
Mit/summarizewerden standardmäßig 5 Aufzählungspunkte ausgegeben.
Mit/summarize 10werden 10 Aufzählungspunkte ausgegeben.
Die erweiterten Ergebnisse der beiden Aufrufe sehen im Vergleich wie folgt aus:
/summarize → 用 5 个要点总结当前项目的主要变更和状态。 /summarize 10 → 用 10 个要点总结当前项目的主要变更和状态。
argument-hint Parameterhinweis
Die Einstellung in Frontmatterargument-hintkann Benutzern helfen, die Parameter zu verstehen, die die Vorlage benötigt:
Beispiel
description: PR von URL prüfen, Code und Probleme analysieren
argument-hint: "<PR-URL>"
---
Überprüfe die Codeänderungen im folgenden PR, mit Schwerpunkt auf Sicherheits- und Leistungsproblemen: $1
Im Autovervollständigungs-Dropdown-Menü wird diese Vorlage wie folgt angezeigt:
→ pr <PR-URL> — 从 URL 审查 PR,分析代码和问题
Speichere unter~/.pi/agent/prompts/pr-review.mdVerwende dann/pr-review https://github.com/example/repo/pull/12zum Aufrufen.
Verwende<spitze Klammern>für erforderliche Parameter,[eckige Klammern]für optionale Parameter.
Praktische Vorlagenbeispiele
Die folgenden drei Vorlagen decken die drei häufigsten Arten von Anfragen in der täglichen Entwicklung ab und können nach Bedarf kopiert und angepasst werden.
Generierung von Git-Commit-Nachrichten
Die folgende Vorlage generiert Commit-Nachrichten gemäß der Conventional-Commits-Spezifikation.
Beispiel
description: Generiere eine konventionelle Commit-Nachricht basierend auf git diff
---
Überprüfe den Inhalt von git diff --cached und generiere eine konventionelle Git-Commit-Nachricht.
Befolge die Conventional-Commits-Spezifikation, Format: type(scope): description
Typen umfassen: feat, fix, refactor, docs, test, chore
Speichern unter~/.pi/agent/prompts/commit.mdDanach füge deine Änderungen zum Staging hinzu und verwende/commitzum Aufrufen.
Code-Refactoring-Anfrage
Die folgende Vorlage zerlegt Refactoring-Ziele in klare Prüfpunkte und verhindert, dass die KI nur die Formatierung ändert, ohne die Struktur anzutasten.
Beispiel
description: Das angegebene Codemodul refaktorieren
argument-hint: "<Dateipfad oder Modulname>"
---
Refaktoriere den Code von $1, Ziele:
1. Code-Lesbarkeit verbessern
2. Doppelten Code eliminieren
3. Fehlerbehandlung verbessern
4. Bestehende Funktionalität unverändert lassen
Bevor du Änderungen vornimmst, erkläre bitte deinen Refactoring-Plan.
Speichere unter~/.pi/agent/prompts/refactor.mdDann verwende/refactor src/utils/date.tszum Aufrufen.
Anfrage zur Fehlerbehebung
Die folgende Vorlage zwingt die KI, Fehler in festen Schritten zu beheben, wodurch die Neigung, "Code sofort zu ändern", verringert wird.
Beispiel
description: Den angegebenen Fehler systematisch diagnostizieren und beheben
argument-hint: "<Fehlerbeschreibung>"
---
Ich brauche deine Hilfe, um den folgenden Fehler zu diagnostizieren und zu beheben: $1
Bitte befolge diese Schritte:
1. Verstehe zuerst das erwartete und das tatsächliche Verhalten des Fehlers
2. Finde die relevanten Codedateien
3. Analysiere mögliche Ursachen
4. Schlage einen Plan zur Fehlerbehebung vor
5. Implementiere die Fehlerbehebung
6. Überprüfe, ob die Fehlerbehebung korrekt ist
Erkläre bei jedem Schritt deine Erkenntnisse und deine Begründung.
Speichere unter~/.pi/agent/prompts/fix-bug.mdund verwende dann/fix-bug Die Liste wird nach der Anmeldung nicht aktualisiertzum Aufrufen.
Regeln für das Laden von Vorlagen
Das Auffinden und Laden von Vorlagen folgt den untenstehenden Regeln. Wenn du das Problem „Vorlage erscheint nicht“ behebst, schaue zuerst hier nach.
| Regel | Beschreibung |
|---|---|
| Nicht-rekursive Erkennung | Die Erkennung von Vorlagen im Verzeichnis prompts/ istnicht rekursiv; Vorlagen in Unterverzeichnissen werden nicht automatisch erkannt |
| Unterverzeichnisse müssen explizit deklariert werden | Wenn du Vorlagen in einem Unterverzeichnis laden musst, füge den Pfad explizit zum prompts-Array in settings.json hinzu |
| Fallback für description | Wenndescriptionleer ist, verwendet Pi Agent die erste nicht leere Zeile der Datei als Beschreibung |
| Automatische Erkennung deaktivieren | Durch--no-prompt-templateswird die automatische Erkennung deaktiviert, aber Vorlagen, die explizit mit--prompt-templateangegeben werden, werden trotzdem geladen |
Weitere ErweiterungenWenn /template name nach der Eingabe nicht in der Vervollständigungsliste erscheint, prüfe zuerst, ob sich die Datei im prompts/-Stammverzeichnis befindet.
Projektvorlagen, die in .pi/prompts/ abgelegt werden, müssen ebenfalls zuerst die Projektvertrauensprüfung bestehen, sonst werden sie auch nicht geladen.