Pi Skills 与原生扩展
写一个可触发、可移除的 Skill,再添加不调用模型的本地命令扩展。
Pi 的 Skill 用来保存工作流程,Extension 用来添加命令和工具。本课用 Windows PowerShell 创建一个 README 摘要 Skill 和一个本地命令;请先完成 Pi 上手。
创建 Skill
进入练习目录,创建 .pi/skills/atlas-summary/SKILL.md。如果已有同名文件,先备份;项目级资源需要信任该项目后才会自动加载。
Set-Location (Join-Path $HOME 'agent-atlas-pi-lab')
New-Item -ItemType Directory -Force -Path '.pi/skills/atlas-summary' | Out-Null
notepad '.pi/skills/atlas-summary/SKILL.md'填入下面的内容,以 UTF-8 保存:
---
name: atlas-summary
description: 用户要求整理练习项目 README 时,先读取再给出三项可核对摘要。
---
# 练习项目摘要
1. 只读取当前工作区的 README.md;文件不存在就明确说明,不猜内容。
2. 输出“用途、输入、结果”三项,每项引用原文依据。
3. 默认不写文件、不运行命令、不访问网络。
4. 用户明确确认后,才创建 NOTES.md;若已存在,先询问是否覆盖。
5. 创建后重新读取,确认三项内容一致。Skill 是给模型的指引,不会强制限制权限。运行时仍要留意实际调用了哪些工具。
运行和移除 Skill
在练习目录启动 pi,信任这个项目后输入 /reload,再输入 /skill:atlas-summary。它应读取 README 并输出三项摘要,此时还不写文件。
命令不存在时依次检查:文件是不是误存为SKILL.md.txt、frontmatter是否完整、description是否为空、项目是否被信任、是否禁用了Skills。
移除时只移走本课的 atlas-summary 文件夹,再 /reload,确认技能命令消失。已有其他技能、用户目录和会话记录保持不动。若由包安装,则通过包管理移除,而不是手删整个包缓存。
添加本地命令
下面添加 /atlas-check 命令,执行时只显示通知,不调用模型。创建 .pi/extensions/atlas-check.ts:
New-Item -ItemType Directory -Force -Path '.pi/extensions' | Out-Null
notepad '.pi/extensions/atlas-check.ts'保存下面的 TypeScript 代码:
import type { ExtensionAPI } from '@earendil-works/pi-coding-agent';
export default function (pi: ExtensionAPI) {
pi.registerCommand('atlas-check', {
description: '显示练习前检查事项,不执行模型请求',
handler: async (_args, ctx) => {
ctx.ui.notify('先确认工作区、配置备份和本次API预算。', 'info');
},
});
}在已信任的项目中输入 /reload,再执行 /atlas-check,界面应显示检查提示。这个命令不需要发送模型请求。加载报错时,查看错误信息和 Pi 版本。
移走这个 ts 文件并重载,命令就会消失。扩展可以执行本机代码,安装他人扩展时要检查文件、网络、shell 和凭据访问。
安装包与 MCP
现成Pi Package可以包含Skills、扩展、提示模板和主题。正式选定包后应记录完整来源和固定版本,用 pi list 查看,用 pi config 检查启用资源,用 pi remove 配合准确的原安装来源卸载。不要把示例包名当真实依赖,也不要一口气自动升级全部包。
Pi 核心没有 MCP 客户端,需要另装扩展。目前还没有选定经过检查的 MCP 包,因此这里暂不列安装命令。挑选时要看 Pi 版本要求、Windows 支持、传输方式和卸载方法。MCP 配置示例可参考 DSH的官方桥接练习,但其配置不能粘到Pi中。
参考资料
-
菜鸟:Skills技能系统:补充概念与目录说明。
-
菜鸟:Pi教程目录:按扩展、工具、事件逐步深入。
-
第一项任务:重新检查结果,而不只看Agent自称完成。
资料核对:2026-09-13;以下操作尚未实机测试。