Pi 的配置、扩展、平台设置和 API 参考。

Skills

pi 可以创造技能。要求它为您的用例构建一个。

Skills 是代理按需加载的独立功能包。技能为特定任务提供专门的工作流程、设置说明、帮助脚本和参考文档。

Pi 实施Agent Skills standard,对大多数违规行为发出警告,但保持宽松。 Pi 允许技能名称与其父目录不同,即使标准不允许;对于跨多个代理工具使用的共享技能目录,该规则并不是最佳选择。

目录

地点

安全性: Skills 可以指示模型执行任何操作,并且可能包括模型调用的可执行代码。使用前查看技能内容。

Pi 从以下位置加载技能:

  • 全球的:
    • ~/.pi/agent/skills/
    • ~/.agents/skills/
  • 项目(仅在项目被信任后):
    • .pi/skills/
    • cwd 和祖先目录中的 .agents/skills/ (直至 git repo 根目录,或不在存储库中时的文件系统根目录)
  • 包: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 路径)。

使用其他线束中的 Skills

要使用 Claude Code 或 OpenAI Codex 中的技能,请将其目录添加到设置中:

{
  "skills": [
    "~/.claude/skills",
    "~/.codex/skills"
  ]
}

对于项目级别的 Claude Code 技能,请添加到 .pi/settings.json

{
  "skills": ["../.claude/skills"]
}

Skills 工作原理

  1. 启动时,pi 扫描技能位置并提取名称和描述
  2. 系统提示包含 XML 格式的可用技能,按照specification
  3. 当任务匹配时,代理使用read加载完整的SKILL.md(模型并不总是这样做;使用提示或/skill:name强制它)
  4. 代理按照说明操作,使用相对路径来引用脚本和资产

这是渐进式披露:只有描述始终处于上下文中,完整的说明按需加载。

技能命令

Skills 注册为/skill:name 命令:

/skill:brave-search           # Load and execute the skill
/skill:pdf-tools extract      # Load skill with arguments

命令后面的参数将作为User: <args>附加到技能内容中。

在交互模式或settings.json下通过/settings切换技能命令:

{
  "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.json

技能.md 格式

---
name: my-skill
description: What this skill does and when to use it. Be specific.
---

# My Skill

## Setup

Run once before first use:
```bash
cd /路径/到/技能 && npm 安装
```

## Usage

```bash
./scripts/process.sh <input>
```

使用技能目录中的相对路径:

See [the reference guide](references/REFERENCE.md) for details.

前题

根据 Agent Skills specification

场地 必需的 描述
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-processingdata-analysiscode-review 无效:PDF-Processing-pdfpdf--processing

描述 最佳实践

描述决定代理何时加载技能。具体一点。

好的:

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 个字符

未知的 frontmatter 字段将被忽略。

例外: 缺少描述的 Skills 不会加载。

名称冲突(不同位置的相同名称)会发出警告并保留找到的第一个技能。

例子

brave-search/
├── SKILL.md
├── search.js
└── content.js

技能.md:

---
name: brave-search
description: Web search and content extraction via Brave Search API. Use for searching documentation, facts, or any web content.
---

# Brave Search

## Setup

```bash
cd /path/to/brave-search && npm install
```

## Search

```bash
./search.js "query" # 基本搜索
./search.js "query" --content # 包含页面内容
```

## Extract Page Content

```bash
./content.js https://example.com
```

技能库

  • Anthropic Skills - 文档处理(docx、pdf、pptx、xlsx)、Web 开发
  • Pi Skills - 网络搜索、浏览器自动化、Google APIs、转录