技能
pi 可以创建技能。请它为你的用例构建一个。
技能是 agent 按需加载的自包含能力包。技能为特定任务提供专门的工作流、设置说明、辅助脚本和参考文档。
Pi 实现了 Agent Skills 标准,对大多数违规会警告但保持宽松。Pi 允许技能名称与父目录不同,尽管标准禁止这一点;该规则对多个 agent harness 共享的技能目录并不理想。
安全: 技能可指示模型执行任何操作,并可能包含模型调用的可执行代码。使用前请审查技能内容。
Pi 从以下位置加载技能:
- 全局:
~/.pi/agent/skills/~/.agents/skills/
- 项目(项目受信任后):
.pi/skills/cwd及祖先目录中的.agents/skills/(直至 git 仓库根,非仓库时直至文件系统根)
- 包:
skills/目录或package.json中的pi.skills条目 - 设置:包含文件或目录的
skills数组 - CLI:
--skill <path>(可重复,即使使用--no-skills也可叠加)
发现规则:
- 在
~/.pi/agent/skills/和.pi/skills/中,根目录下的直接.md文件作为独立技能发现 - 在所有技能位置,包含
SKILL.md的目录会递归发现 - 在
~/.agents/skills/和项目.agents/skills/中,根.md文件被忽略
使用 --no-skills 禁用发现(显式 --skill 路径仍会加载)。
使用其他 Harness 的技能
Section titled “使用其他 Harness 的技能”要使用 Claude Code 或 OpenAI Codex 的技能,将其目录添加到设置:
{ "skills": [ "~/.claude/skills", "~/.codex/skills" ]}对于项目级 Claude Code 技能,添加到 .pi/settings.json:
{ "skills": ["../.claude/skills"]}技能如何工作
Section titled “技能如何工作”- 启动时,pi 扫描技能位置并提取名称和描述
- 系统提示按规范以 XML 格式包含可用技能
- 当任务匹配时,agent 使用
read加载完整 SKILL.md(模型并不总是这样做;使用提示或/skill:name强制加载) - agent 遵循说明,使用相对路径引用脚本和资源
这是渐进式披露:仅描述始终在上下文中,完整说明按需加载。
技能注册为 /skill:name 命令:
/skill:brave-search # Load and execute the skill/skill:pdf-tools extract # Load skill with arguments命令后的参数会作为 User: <args> 附加到技能内容。
在交互模式通过 /settings 或在 settings.json 中切换技能命令:
{ "enableSkillCommands": true}技能是包含 SKILL.md 文件的目录。其余内容自由组织。
my-skill/├── SKILL.md # Required: frontmatter + instructions├── scripts/ # Helper scripts│ └── process.sh├── references/ # Detailed docs loaded on-demand│ └── api-reference.md└── assets/ └── template.jsonSKILL.md 格式
Section titled “SKILL.md 格式”---name: my-skilldescription: What this skill does and when to use it. Be specific.---
# My Skill
## Setup
Run once before first use:```bashcd /path/to/skill && npm install```
## Usage
```bash./scripts/process.sh <input>```使用相对于技能目录的路径:
See [the reference guide](references/REFERENCE.md) for details.遵循 Agent Skills 规范:
| 字段 | 必填 | 说明 |
|---|---|---|
name | 是 | 最多 64 字符。小写 a-z、0-9、连字符。与标准不同,Pi 不要求与父目录匹配,因为该标准要求对共享技能目录并不理想。 |
description | 是 | 最多 1024 字符。技能做什么及何时使用。 |
license | 否 | 许可证名称或对捆绑文件的引用。 |
compatibility | 否 | 最多 500 字符。环境要求。 |
metadata | 否 | 任意键值映射。 |
allowed-tools | 否 | 空格分隔的预批准工具列表(实验性)。 |
disable-model-invocation | 否 | 为 true 时,技能从系统提示中隐藏。用户必须使用 /skill:name。 |
- 1-64 个字符
- 仅小写字母、数字、连字符
- 不能以连字符开头或结尾
- 不能连续连字符
Pi 不要求名称与父目录匹配。Agent Skills 标准要求,但该要求对多工具共享的技能目录并不理想。
有效:pdf-processing、data-analysis、code-review
无效:PDF-Processing、-pdf、pdf--processing
描述最佳实践
Section titled “描述最佳实践”描述决定 agent 何时加载技能。要具体。
好:
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.差:
description: Helps with PDFs.Pi 根据 Agent Skills 标准验证技能。大多数问题产生警告但仍加载技能:
- 名称超过 64 字符或包含无效字符
- 名称以连字符开头/结尾或有连续连字符
- 描述超过 1024 字符
未知前言字段被忽略。
例外: 缺少描述的技能不会加载。
名称冲突(不同位置的相同名称)会警告并保留先发现的技能。
brave-search/├── SKILL.md├── search.js└── content.jsSKILL.md:
---name: brave-searchdescription: Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content.---
# Brave Search
## Setup
```bashcd /path/to/brave-search && npm install```
## Search
```bash./search.js "query" # Basic search./search.js "query" --content # Include page content```
## Extract Page Content
```bash./content.js https://example.com```- Anthropic Skills - 文档处理(docx、pdf、pptx、xlsx)、Web 开发
- Pi Skills - Web 搜索、浏览器自动化、Google API、转录