Шаблон промпта Pi Agent

Шаблоны промптов — это предопределённые фрагменты Markdown, которые можно развернуть в полные промпты с помощью короткой команды, что повышает эффективность при повторяющейся работе.


Обзор шаблонов

Принцип работы шаблонов промптов прост:

  1. Создайте файл Markdown, чтобы определить содержимое шаблона
  2. Введите в редакторе/template-name, чтобы вызвать его
  3. Шаблон автоматически разворачивается и заполняет редактор

Шаблоны поддерживают подстановку параметров, что позволяет использовать один и тот же шаблон в разных конкретных сценариях.


Создание шаблона

Шаблоны — это файлы Markdown с YAML-метаданными.

Имя файла (без .md) — это имя команды шаблона.

Создайте шаблон для проверки кода:

Пример

---
description: Просмотрите текущие подготовленные изменения git
---
Просмотрите изменения в области подготовки (git diff --cached), обращая внимание на:
- Потенциальные баги и логические ошибки
- Проблемы безопасности
- Обработка ошибок и граничные случаи
- Проблемы производительности

Сохраните в~/.pi/agent/prompts/review.mdЗатем введите в редакторе/review, чтобы развернуть и использовать его.


Расположение шаблона

Pi Agent ищет шаблоны в нескольких фиксированных местах, каждое из которых имеет свою область действия.

РасположениеОбласть действия
~/.pi/agent/prompts/*.mdГлобальные шаблоны, доступные всем проектам
.pi/prompts/*.mdШаблоны проекта, загружаемые только после того, как проект признан доверенным
Каталог prompts/ в Pi PackagesШаблоны в пакете
--prompt-template pathВременная загрузка из командной строки

Поиск шаблонов —нерекурсивныйШаблоны в подкаталогах prompts/ не будут загружаться автоматически.

Если шаблоны помещены в подкаталоги, нужно явно добавить путь в массив prompts в settings.json.


Система параметров

Шаблоны поддерживают богатую систему параметров, позволяя одному и тому же шаблону адаптироваться к разным сценариям:

СинтаксисЗначениеПример
$1, $2, $3...Позиционные параметры$1 представляет первый параметр
$@ или $ARGUMENTSКонкатенация всех параметровОбъединить все параметры через пробелы
${1:-default}Параметр со значением по умолчаниюИспользовать параметр, если он существует и не пуст, иначе использовать значение по умолчанию
${@:N}Начиная с N-го параметра${@:2} берёт все параметры начиная со 2-го
${@:N:L}Взять L параметров начиная с N-го${@:2:3} берёт параметры со 2-го по 4-й

$ARGUMENTS объединяет все параметры как есть, подходит для шаблонов, которым нужен только целый блок текста:

Пример

---
description: Переведите фрагмент китайского текста на естественный английский
argument-hint: "<китайский текст для перевода>"
---
Переведите следующий текст на естественный английский, выводите только перевод:
$ARGUMENTS

Сохраните как~/.pi/agent/prompts/translate.mdЗатем используйте/translate, чтобы перевести этот отрывок на английскийдля вызова.

Пример шаблона с параметрами

Приведённый ниже шаблон объединяет позиционные параметры и параметры в конце, подходит для входных данных вида "тип + имя + дополнительное описание".

Пример

---
description: Создайте компонент с использованием указанного фреймворка
argument-hint: "<фреймворк> <имя-компонента> [описание функции]"
---
Используйте $1, чтобы создать компонент $2 с возможностями, включая: ${@:3}

$1 принимает первый параметр в качестве фреймворка, $2 принимает второй параметр в качестве имени компонента.

${@:3} представляет всё содержимое, начиная с третьего параметра, и используется для передачи разрозненных описаний функций.

Использование:

/component React Button "onClick 事件处理" "disabled 状态支持" "loading 加载状态"

Развёрнутый результат:

使用 React 创建一个 Button 组件,功能包括:onClick 事件处理 disabled 状态支持 loading 加载状态

Пример значения по умолчанию

Когда параметры отсутствуют, значения по умолчанию служат запасным вариантом, поэтому шаблон работает нормально, даже если он вызван без параметров.

Пример

---
description: Обобщите текущее состояние проекта
---
Обобщите основные изменения и состояние текущего проекта в ${1:-5} пунктах списка.

Сохраните в~/.pi/agent/prompts/summarize.mdЗатем используйте/summarizeдля вызова.

Использование/summarizeпо умолчанию выводит 5 пунктов списка.

Использование/summarize 10выводит 10 пунктов списка.

Развёрнутые результаты двух вызовов сравниваются следующим образом:

/summarize
→ 用 5 个要点总结当前项目的主要变更和状态。

/summarize 10
→ 用 10 个要点总结当前项目的主要变更和状态。

argument-hint Подсказка по параметрам

Настройка в Frontmatterargument-hintможет помочь пользователям понять параметры, необходимые шаблону:

Пример

---
description: Провести ревью PR по URL, проанализировать код и проблемы
argument-hint: "<PR-URL>"
---
Проверьте изменения кода в следующем PR, уделяя особое внимание проблемам безопасности и производительности: $1

В выпадающем меню автодополнения этот шаблон будет отображаться как:

→ pr   &lt;PR-URL&gt;  — 从 URL 审查 PR,分析代码和问题

Сохраните в~/.pi/agent/prompts/pr-review.mdЗатем используйте/pr-review https://github.com/example/repo/pull/12чтобы вызвать.

Используйте<угловые скобки>для обязательных параметров,[квадратные скобки]для необязательных параметров.


Практические примеры шаблонов

Следующие три шаблона охватывают три самых распространённых типа запросов в повседневной разработке, их можно скопировать и адаптировать по необходимости.

Генерация сообщения коммита Git

Следующий шаблон генерирует сообщения коммитов в соответствии со спецификацией Conventional Commits.

Пример

---
description: Сгенерируйте сообщение коммита в формате Conventional Commits на основе git diff
---
Просмотрите содержимое git diff --cached и сгенерируйте сообщение git-коммита в формате Conventional Commits.
Следуйте спецификации Conventional Commits, формат: type(scope): description
Типы включают: feat, fix, refactor, docs, test, chore

Сохраните в~/.pi/agent/prompts/commit.mdПосле этого проиндексируйте изменения и используйте/commitдля вызова.

Запрос на рефакторинг кода

Следующий шаблон разбивает цели рефакторинга на понятные пункты проверки, не позволяя ИИ менять только форматирование, не затрагивая структуру.

Пример

---
description: Рефакторинг указанного модуля кода
argument-hint: "<путь к файлу или имя модуля>"
---
Выполните рефакторинг кода $1, цели:
1. Улучшить читаемость кода
2. Устранить дублирование кода
3. Улучшить обработку ошибок
4. Сохранить существующую функциональность без изменений

Перед внесением изменений, пожалуйста, объясните ваш план рефакторинга.

Сохраните в~/.pi/agent/prompts/refactor.mdЗатем используйте/refactor src/utils/date.tsдля вызова.

Запрос на исправление ошибки

Следующий шаблон заставляет ИИ выполнять диагностику по фиксированным шагам, снижая склонность «немедленно изменять код».

Пример

---
description: Систематически выявляйте и исправляйте указанную ошибку
argument-hint: "<Описание ошибки>"
---
Мне нужно, чтобы вы помогли мне диагностировать и исправить следующую ошибку: $1

Пожалуйста, выполните следующие шаги:
1. Сначала поймите ожидаемое и фактическое поведение ошибки
2. Найдите соответствующие файлы кода
3. Проанализируйте возможные причины
4. Предложите план исправления
5. Реализуйте исправление
6. Убедитесь, что исправление верно

Объясняйте свои выводы и рассуждения на каждом шаге.

Сохраните в~/.pi/agent/prompts/fix-bug.mdзатем используйте/fix-bug Список не обновляется после входадля вызова.


Правила загрузки шаблонов

Обнаружение и загрузка шаблонов подчиняются приведённым ниже правилам. Если вы устраняете неполадку «шаблон не отображается», сначала проверьте здесь.

ПравилоОписание
Нерекурсивное обнаружениеОбнаружение шаблонов в каталоге prompts/ являетсянерекурсивным; шаблоны в подкаталогах не будут автоматически обнаружены
Подкаталоги должны быть явно объявленыКогда нужно загрузить шаблоны из подкаталога, явно добавьте путь в массив prompts в settings.json
Резервный вариант для descriptionЕслиdescriptionпусто, Pi Agent будет использовать первую непустую строку файла в качестве description
Отключить автоматическое обнаружениеПри использовании--no-prompt-templatesавтоматическое обнаружение отключено, но шаблоны, явно указанные с помощью--prompt-template, всё равно будут загружены

После ввода /template name, если он не появляется в списке автодополнения, сначала проверьте, находится ли файл в корневой директории prompts/.

Шаблоны проекта, размещённые в .pi/prompts/, также должны сначала пройти проверку доверия к проекту, иначе они тоже не будут загружены.

Другие расширения