Pi Agent 提示词模板
提示词模板是预定义的 Markdown 片段,通过简短命令即可展开为完整提示词,提高重复性工作的效率。
模板概述
提示词模板的工作方式很简单:
- 创建一个 Markdown 文件,定义模板内容
- 在编辑器中输入 /模板名 来调用
- 模板会自动展开并填入编辑器
模板支持参数替换,让同一个模板可以用于不同的具体场景。
创建模板
模板是带有 YAML Frontmatter 的 Markdown 文件。
文件名(不含 .md)即为模板的命令名。
创建一个代码审查模板:
实例
---
description: 审查当前的 git 暂存变更
---
审查暂存区中的更改(git diff --cached),重点关注:
- 潜在的 bug 和逻辑错误
- 安全问题
- 错误处理和边界情况
- 性能问题
description: 审查当前的 git 暂存变更
---
审查暂存区中的更改(git diff --cached),重点关注:
- 潜在的 bug 和逻辑错误
- 安全问题
- 错误处理和边界情况
- 性能问题
保存到 ~/.pi/agent/prompts/review.md 后,在编辑器中输入 /review 即可展开使用。
模板位置
| 位置 | 作用范围 |
|---|---|
| ~/.pi/agent/prompts/*.md | 全局模板,所有项目可用 |
| .pi/prompts/*.md | 项目模板,需项目信任后才加载 |
| Pi Packages 的 prompts/ 目录 | 包中的模板 |
| --prompt-template 路径 | 命令行临时加载 |
参数系统
模板支持丰富的参数系统,让同一个模板适应不同场景:
| 语法 | 含义 | 示例 |
|---|---|---|
| $1, $2, $3... | 位置参数 | $1 代表第一个参数 |
| $@ 或 $ARGUMENTS | 所有参数的合并 | 将所有参数用空格连接 |
| ${1:-默认值} | 带默认值的参数 | 参数存在时使用参数,否则用默认值 |
| ${@:N} | 从第 N 个参数开始 | ${@:2} 取第 2 个起的所有参数 |
| ${@:N:L} | 从第 N 个起取 L 个 | ${@:2:3} 取第 2-4 个参数 |
带参数模板示例
实例
---
description: 使用指定框架和技术栈创建组件
argument-hint: "<组件名> [功能描述]"
---
使用 $1 框架创建一个 $1 组件,功能包括:$@
description: 使用指定框架和技术栈创建组件
argument-hint: "<组件名> [功能描述]"
---
使用 $1 框架创建一个 $1 组件,功能包括:$@
使用方式:
/component Button "onClick 事件处理" "disabled 状态支持" "loading 加载状态"
展开后的效果:
使用 Button 框架创建一个 Button 组件,功能包括:onClick 事件处理 disabled 状态支持 loading 加载状态
默认值示例
实例
---
description: 总结当前项目状态
---
用 ${1:-5} 个要点总结当前项目的主要变更和状态。
description: 总结当前项目状态
---
用 ${1:-5} 个要点总结当前项目的主要变更和状态。
使用 /summarize 时默认输出 5 个要点。
使用 /summarize 10 时输出 10 个要点。
argument-hint 参数提示
在 Frontmatter 中设置 argument-hint 可以帮助用户了解模板需要的参数:
实例
---
description: 从 URL 审查 PR,分析代码和问题
argument-hint: "<PR-URL>"
---
审查以下 PR 的代码变更,重点关注安全性和性能问题:$1
description: 从 URL 审查 PR,分析代码和问题
argument-hint: "<PR-URL>"
---
审查以下 PR 的代码变更,重点关注安全性和性能问题:$1
在自动补全下拉菜单中,这个模板会显示为:
→ pr <PR-URL> — 从 URL 审查 PR,分析代码和问题
使用 <尖括号> 表示必填参数,[方括号] 表示可选参数。
实用模板示例
Git 提交信息生成
实例
---
description: 根据 git diff 生成规范的提交信息
---
查看 git diff --cached 的内容,生成一条规范的 git commit 信息。
遵循 Conventional Commits 规范,格式:type(scope): description
类型包括:feat, fix, refactor, docs, test, chore
description: 根据 git diff 生成规范的提交信息
---
查看 git diff --cached 的内容,生成一条规范的 git commit 信息。
遵循 Conventional Commits 规范,格式:type(scope): description
类型包括:feat, fix, refactor, docs, test, chore
代码重构请求
实例
---
description: 重构指定的代码模块
argument-hint: "<文件路径或模块名>"
---
重构 $1 的代码,目标:
1. 提高代码可读性
2. 消除重复代码
3. 改善错误处理
4. 保持现有功能不变
修改前请先说明你的重构计划。
description: 重构指定的代码模块
argument-hint: "<文件路径或模块名>"
---
重构 $1 的代码,目标:
1. 提高代码可读性
2. 消除重复代码
3. 改善错误处理
4. 保持现有功能不变
修改前请先说明你的重构计划。
Bug 修复请求
实例
---
description: 系统性排查和修复指定的 Bug
argument-hint: "<Bug 描述>"
---
我需要你帮我排查和修复以下 Bug:$1
请按照以下步骤进行:
1. 先理解 Bug 的预期行为和实际行为
2. 找到相关的代码文件
3. 分析可能的原因
4. 提出修复方案
5. 实现修复
6. 验证修复是否正确
在每一步都要说明你的发现和推理。
description: 系统性排查和修复指定的 Bug
argument-hint: "<Bug 描述>"
---
我需要你帮我排查和修复以下 Bug:$1
请按照以下步骤进行:
1. 先理解 Bug 的预期行为和实际行为
2. 找到相关的代码文件
3. 分析可能的原因
4. 提出修复方案
5. 实现修复
6. 验证修复是否正确
在每一步都要说明你的发现和推理。
模板加载规则
- prompts/ 目录中的模板发现是非递归的,子目录中的模板不会被自动发现
- 如果需要加载子目录中的模板,需要在 settings.json 的 prompts 数组中显式添加路径
- 如果 description 为空,Pi Agent 会使用文件的第一行非空文本作为描述
- 可以通过 --no-prompt-templates 禁用模板的自动发现,但显式用 --prompt-template 指定的模板仍会加载
