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 课包管理。

📖 小节


📝 作业

  1. 基础题(难度⭐):使用内置的 code_review 技能审查一段代码。
  2. 进阶题(难度⭐⭐):创建一个自定义技能"SQL 优化顾问",包含合适的提示词和工具。
  3. 挑战题(难度⭐⭐⭐):设计一个"DevOps 工程师"技能组合包,包含日志分析、部署检查、监控配置三个子技能。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏