Pi Agent: Skills 技能系统
最后更新:2026-08-31
技能是 Agent 的"专业证书"——给它装上代码审查技能,它就是审查专家;装上翻译技能,它就是翻译官。
1. 什么是技能
技能(Skill)是工具、提示词模板和配置的组合包,定义了 Agent 在某个领域的完整能力:
TEXT
📖 仅展示
技能 = 提示词模板 + 工具列表 + 配置参数 + 示例
示例:
code_review 技能 =
提示词("你是代码审查专家...")+
工具(file_reader, search)+
配置(temperature=0.3, max_tokens=2048)
2. 内置技能
| 技能 | 说明 | 工具 |
|---|---|---|
| code_review | 代码审查 | file_reader |
| bug_fix | Bug 修复 | file_reader, search |
| test_gen | 测试生成 | file_reader, shell |
| doc_gen | 文档生成 | file_reader |
| translate | 多语言翻译 | — |
| summarize | 内容摘要 | file_reader |
| search_assistant | 搜索助手 | search |
| data_analyst | 数据分析 | file_reader, calculator |
(1) 使用内置技能
PYTHON
from pi_agent import Agent
agent = Agent(name="reviewer")
result = agent.run(skill="code_review", code="def add(a,b): return a+b")
(2) CLI 使用技能
BASH
pi-agent chat --skill code_review "审查 main.py"
pi-agent run --skill translate --lang ja "翻译这段文字"
3. 自定义技能
(1) YAML 定义
创建 ~/.pi-agent/skills/api_designer.yaml:
YAML
name: api_designer
description: "REST API 设计专家"
version: "1.0"
system_prompt: |
你是一个 REST API 设计专家。
遵循以下原则:
1. 使用名词复数作为资源路径
2. 用 HTTP 方法表达操作语义
3. 返回合适的 HTTP 状态码
4. 设计一致的错误响应格式
tools:
- file_reader
- search
parameters:
temperature: 0.3
max_tokens: 4096
examples:
- input: "设计用户管理 API"
output: |
POST /users - 创建用户
GET /users - 获取用户列表
GET /users/{id} - 获取单个用户
PUT /users/{id} - 更新用户
DELETE /users/{id} - 删除用户
(2) Python 定义
PYTHON
from pi_agent import Agent, Skill
api_skill = Skill(
name="api_designer",
description="REST API 设计专家",
system_prompt="你是 REST API 设计专家,遵循最佳实践设计 API",
tools=["file_reader", "search"],
parameters={"temperature": 0.3, "max_tokens": 4096}
)
agent = Agent(name="api_guy", skills=[api_skill])
result = agent.run(skill="api_designer", prompt="设计一个博客系统的 API")
4. 技能组合
多个技能可以组合使用:
▶ 示例 1:全栈开发技能包(难度⭐⭐)
PYTHON
from pi_agent import Agent, Skill
review_skill = Skill(name="code_review", tools=["file_reader"])
fix_skill = Skill(name="bug_fix", tools=["file_reader", "shell"])
test_skill = Skill(name="test_gen", tools=["file_reader", "shell"])
agent = Agent(
name="full_stack",
skills=[review_skill, fix_skill, test_skill]
)
# 第一步:审查
review = agent.run(skill="code_review", code=source_code)
# 第二步:修复
fix = agent.run(skill="bug_fix", code=source_code, issues=review)
# 第三步:测试
tests = agent.run(skill="test_gen", code=fix)
5. 技能参数
技能可以定义自定义参数:
YAML
name: translator
parameters:
temperature: 0.5
max_tokens: 4096
custom_params:
source_lang:
type: string
default: "en"
description: "源语言"
target_lang:
type: string
required: true
description: "目标语言"
style:
type: string
default: "formal"
enum: ["formal", "casual", "technical"]
使用自定义参数:
PYTHON
result = agent.run(
skill="translator",
text="Hello World",
target_lang="ja",
style="technical"
)
6. 技能管理
BASH
# 列出所有技能
pi-agent skills list
# 查看技能详情
pi-agent skills show code_review
# 安装技能包
pi-agent skills install community/web-scraper
# 创建技能骨架
pi-agent skills create my_skill --tools file_reader,shell
❓ 常见问题
Q 技能和工具的区别?
A 工具是单一能力(如"读文件"),技能是工具+提示词+配置的组合包(如"代码审查"=读文件工具+审查提示词+低温度配置)。
Q 技能能动态切换吗?
A 可以。交互模式用
/skill 切换,代码中用 agent.run(skill=...) 每次指定不同技能。Q 技能包有市场吗?
A Pi Agent 有社区技能仓库,用
pi-agent skills search <keyword> 搜索。详见第 17 课包管理。📖 小节
- 技能 = 提示词 + 工具 + 配置的组合包
- 内置 8 种常用技能,支持 YAML 和 Python 两种自定义方式
- 技能可组合、可参数化、可共享
- 技能管理通过 CLI 和 API 操作
📝 作业
- 基础题(难度⭐):使用内置的 code_review 技能审查一段代码。
- 进阶题(难度⭐⭐):创建一个自定义技能"SQL 优化顾问",包含合适的提示词和工具。
- 挑战题(难度⭐⭐⭐):设计一个"DevOps 工程师"技能组合包,包含日志分析、部署检查、监控配置三个子技能。