如何开发一个好用的Agent Skills

0 阅读3分钟

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 可能执行:

  1. WeatherSkill → 获取天气
  2. 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:

  1. 识别需要天气
  2. 调用 get_weather(city="上海")
  3. 返回结果

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?"
)