SKills 是什么?
让 AI Agent(智能代理)能够执行具体任务的一组能力模块。你可以把它理解为:AI 的“技能包”或“工具能力“
简单说:
- Agent = 能自主完成任务的 AI 程序
- Skills = 它会做的具体事情
所以 Agent Skills = AI Agent 能调用的功能或能力。
举个简单例子
假设你有一个 AI 助手 Agent,它可以:
- 查询天气
- 发送邮件
- 写代码
- 查询数据库
- 生成图片
这些每一个能力都可以叫 一个 Skill。
例如:
Agent Skills 可能包括:
- WeatherSkill → 查询天气
- EmailSkill → 发送邮件
- CodeSkill → 写代码
- ImageSkill → 生成图片
- SearchSkill → 搜索资料
Agent 在执行任务时,会根据用户需求 自动选择合适的 Skill
在 AI Agent 系统里的结构
一个典型 Agent:
用户任务 ↓ Agent 理解任务 ↓ 选择合适的 Skill ↓ 调用工具 / API ↓ 返回结果
例如:
用户说:
帮我查北京天气并发邮件给团队
Agent 可能执行:
- WeatherSkill → 获取天气
- EmailSkill → 发送邮件
在不同框架中的含义
不同 AI 框架里,Skill 的叫法不同:
- OpenAI / Agents → Tools
- Semantic Kernel → Skills
- LangChain → Tools / Chains
- AutoGPT → Plugins
但本质一样: 给 Agent 提供可调用的能力模块。
一个简单的 Skill 示例(伪代码)
python
def get_weather(city):
# 调用天气API
return weather_data
这个函数就可以注册成一个 Weather Skill。
Agent 在需要天气时就会调用它。
如何开发好的Skills
一般步骤是:定义任务 → 写函数/API → 注册给 Agent → 让 Agent 自动调用
1. 明确 Skill 的功能
先定义这个 Skill 是干什么的。
例如:
weather_skill→ 查询天气send_email_skill→ 发送邮件search_skill→ 搜索信息generate_report_skill→ 生成报告
一个 Skill 最好只做 一件清晰的事情。
示例:
Skill:查询天气
输入:
- city
输出:
- temperature
- condition
2. 编写 Skill 的函数 / API
Skill 本质通常就是 一个函数或 API。
Python 示例:
python
import requests
def get_weather(city: str):
url = f"https://api.weatherapi.com/v1/current.json?q={city}"
res = requests.get(url).json()
return {
"city": city,
"temperature": res["current"]["temp_c"],
"condition": res["current"]["condition"]["text"]
}
这个函数就可以作为 Agent Skill。
3. 为 Skill 定义描述(非常重要)
Agent 需要知道 什么时候用这个 Skill。
所以需要写:
- name
- description
- parameters
例如(OpenAI Tool 形式):
python
weather_tool = {
"name": "get_weather",
"description": "Get current weather information for a city",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City name"
}
},
"required": ["city"]
}
}
这里的 description 非常关键,因为 Agent 会根据描述决定是否调用。
4. 注册 Skill 给 Agent
不同框架注册方式不同。
OpenAI Agents / Tool Calling
python
tools = [weather_tool]
response = client.responses.create(
model="gpt-4.1",
tools=tools,
input="What's the weather in Tokyo?"
)
如果模型判断需要天气,它会自动调用 get_weather。
LangChain
python
from langchain.tools import tool
@tool
def get_weather(city: str):
"""Get weather information for a city"""
return "Sunny 25C"
然后加入 Agent:
python
agent = initialize_agent(
tools=[get_weather],
llm=llm
)
Semantic Kernel
python
kernel.import_skill(weather_skill, "Weather")
5. Agent 自动调用 Skill
流程会变成:
用户输入 ↓ LLM 理解任务 ↓ 选择 Skill ↓ 调用函数 ↓ 返回结果
例如:
用户:
帮我查上海天气
Agent:
- 识别需要天气
- 调用
get_weather(city="上海") - 返回结果
6. 设计好 Skill 输入输出(最佳实践)
好的 Skill 通常有这些特点:
1. 单一职责
✅ 好
scss
get_weather(city)
❌ 不好
scss
get_weather_and_send_email_and_save_db()
2. 输入结构清晰
用 JSON schema:
json
{
"city": "Beijing"
}
3. 输出结构稳定
返回结构化数据:
json
{
"city": "Beijing",
"temperature": 22,
"condition": "Sunny"
}
7. 常见 Agent Skills 类型
真实项目中常见的 Skill:
数据类
- database_query
- vector_search
- knowledge_lookup
互联网
- web_search
- scrape_page
自动化
- send_email
- create_calendar_event
- generate_document
AI能力
- summarize_text
- generate_image
- analyze_data
一个完整示例(简单版)
python
from openai import OpenAI
client = OpenAI()
def get_weather(city):
return {"city": city, "temperature": 25}
tools = [{
"name": "get_weather",
"description": "Get weather of a city",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}]
response = client.responses.create(
model="gpt-4.1",
tools=tools,
input="What's the weather in Beijing?"
)