一、开篇引言
2026年,AI Agent 已经从概念走向了落地。但当我们真正开始使用 ChatGPT、Claude、Cursor 等产品时,一个痛点始终挥之不去:AI 能聊、能写、能思考,但就是”动”不起来。
你想让 AI 帮你查一下今天的天气,它只能告诉你”我无法获取实时信息”;你想让它帮你订一张机票,它只能说”我没有操作能力”。这就是当前大多数 AI 的困境——有大脑,没手脚。
Skill(技能) 正是解决这个问题的关键。如果说 LLM 是 AI 的大脑,那么 Skill 就是它的手、脚、眼睛和耳朵。通过 Skill,AI Agent 可以调用搜索引擎、操作文件、发送邮件、控制浏览器、访问数据库……从”会思考”真正进化到”会做事”。
本文将带你深入理解 Skill 是什么、2026年最火的 Skill 项目怎么用,以及 Skill 技术的未来发展趋势。无论你是开发者、产品经理还是技术爱好者,都能从中获得实用的知识和启发。
二、Skill 技术详解与在 Agent 中的核心作用
2.1 Skill 的准确定义
Skill 是可被 Agent 调用的、标准化的、可组合的功能模块。
这句话包含了三个关键要素:
- 可被调用:Skill 必须提供统一的接口,让 Agent 能够按需触发
- 标准化:输入输出格式规范统一,不同 Skill 之间可以无缝协作
- 可组合:多个 Skill 可以串联、并联,完成复杂的任务流程
生活化类比理解
如果把 AI Agent 比作一个人:
- LLM(大语言模型) = 大脑:负责思考、推理、决策
- Skill = 手、脚、眼睛、耳朵:负责与外部世界交互
- 搜索引擎 Skill = 眼睛:获取实时信息
- 文件操作 Skill = 手:读写本地文件
- 邮件发送 Skill = 嘴巴:对外发送通知
- 浏览器控制 Skill = 脚:在网页上执行操作
没有 Skill 的 LLM,就像一个只有大脑、没有感官和四肢的人——能思考,却无法行动。
2.2 Skill 在 Agent 架构中的关键位置
典型的 AI Agent 架构可以用以下流程表示:
1 2 3 4 5 6 7 8 9 10 11
| 用户输入 ↓ [LLM 大脑] —— 理解意图、制定计划 ↓ [规划器] —— 拆解任务、确定执行步骤 ↓ [Skill 调用器] —— 选择合适的 Skill、准备参数 ↓ [执行器] —— 执行 Skill、获取结果 ↓ [结果处理器] —— 整理输出、返回给用户
|
在这个架构中,Skill 调用器是核心枢纽。它负责:
- 根据任务需求,从 Skill 库中选择最合适的 Skill
- 将用户的自然语言意图转换为 Skill 需要的结构化参数
- 处理 Skill 执行的结果,决定下一步行动
2.3 Skill 如何解决 LLM 的三大核心缺陷
| LLM 缺陷 |
Skill 解决方案 |
典型应用 |
| 实时信息获取能力不足 |
搜索引擎 Skill、API 调用 Skill |
实时股价查询、新闻检索、天气查询 |
| 复杂工具操作能力缺失 |
文件操作 Skill、浏览器控制 Skill |
自动化报告生成、网页数据采集 |
| 长任务执行稳定性差 |
任务分解 + 多 Skill 组合 |
自动化办公流程、复杂数据分析 |
2.4 Skill 的核心特性
标准化接口
每个 Skill 都遵循统一的输入输出规范:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class SearchSkill: def __init__(self): self.name = "web_search" self.description = "搜索互联网获取实时信息" def run(self, query: str, num_results: int = 5) -> dict: """ 执行搜索 Args: query: 搜索关键词 num_results: 返回结果数量 Returns: dict: 包含搜索结果的字典 """ return {"results": [...]}
|
可组合性
多个 Skill 可以像乐高积木一样组合:
1 2 3 4 5 6 7
| workflow = [ SearchSkill, FileReadSkill, DataAnalysisSkill, EmailSendSkill ]
|
可扩展性
开发者可以轻松添加新 Skill:
1 2 3 4 5 6 7 8 9
| class MyCustomSkill: def run(self, **kwargs): pass def get_schema(self): return {...}
|
安全性
- 权限控制:每个 Skill 可以设置独立的权限范围
- 沙箱执行:敏感操作在隔离环境中运行
- 审计日志:所有 Skill 调用记录可追溯
三、2026 年最火的 Agent Skill 项目实战指南
项目简介
LangChain 是目前最流行的 LLM 应用开发框架,其 Tools 模块提供了丰富的内置 Skill,是构建 Agent 的首选工具集。
核心功能
- 20+ 内置工具:搜索引擎、计算器、文件读写、代码执行、数据库查询等
- 自定义 Tool 封装:将任意 Python 函数转换为 Agent 可调用的 Skill
- Tool 组合与链式调用:多个 Tool 串联完成复杂任务
- 与所有主流 LLM 集成:OpenAI、Anthropic、本地模型等
安装部署
1 2 3 4
| pip install langchain langchain-openai
pip install google-search-results
|
基础使用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| from langchain.agents import AgentType, initialize_agent, load_tools from langchain_openai import ChatOpenAI
llm = ChatOpenAI(temperature=0)
tools = load_tools([ "serpapi", "llm-math", "wikipedia", "terminal" ], llm=llm)
agent = initialize_agent( tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True )
result = agent.run("特斯拉今天的股价是多少?比昨天涨了多少百分比?") print(result)
|
实战案例:实时股票分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| from langchain.tools import Tool from langchain.agents import initialize_agent import yfinance as yf
def get_stock_info(symbol: str) -> str: """获取股票实时信息""" stock = yf.Ticker(symbol) info = stock.info current_price = info.get('currentPrice', 'N/A') previous_close = info.get('previousClose', 'N/A') if current_price != 'N/A' and previous_close != 'N/A': change_pct = ((current_price - previous_close) / previous_close) * 100 return f"当前价格: ${current_price}, 较昨日涨跌: {change_pct:.2f}%" return f"当前价格: ${current_price}"
stock_tool = Tool( name="stock_analyzer", func=get_stock_info, description="获取股票实时价格和涨跌幅,输入股票代码如TSLA、AAPL" )
agent = initialize_agent( [stock_tool], llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION )
result = agent.run("分析特斯拉(TSLA)和苹果(AAPL)今天的股价表现,哪个更值得投资?")
|
快速上手提示:LangChain 的 load_tools() 函数是入门最佳方式,一行代码即可加载多个实用 Skill。
最佳实践:为自定义 Skill 编写清晰的 description,这是 Agent 选择使用哪个 Skill 的关键依据。
3.2 AutoGPT Plugins —— 自动化任务执行利器
项目简介
AutoGPT 是早期爆火的自主 AI Agent 项目,其 Plugins 系统允许开发者扩展 Agent 的能力边界,实现真正的自动化任务执行。
核心功能
- 浏览器自动化:控制 Chrome 完成网页操作
- 文件系统操作:读写本地文件、管理目录
- 代码执行:运行 Python、Shell 命令
- 第三方服务集成:GitHub、Twitter、Notion 等
推荐实用插件
| 插件名称 |
功能 |
应用场景 |
web_search |
网页搜索 |
信息检索、竞品分析 |
browser |
浏览器控制 |
自动化数据采集、表单填写 |
file_operations |
文件操作 |
报告生成、数据整理 |
code_execution |
代码执行 |
数据分析、自动化脚本 |
api_tools |
API 调用 |
第三方服务集成 |
安装部署
1 2 3 4 5 6 7 8 9 10
| git clone https://github.com/Significant-Gravitas/AutoGPT.git cd AutoGPT
pip install -r requirements.txt
cp .env.template .env
|
基础使用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from autogpt.agent import Agent from autogpt.config import Config
config = Config()
agent = Agent( ai_name="ResearchAssistant", ai_role="an AI that helps with market research", config=config )
agent.start_interaction_loop()
|
实战案例:自动化竞品分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| """ 任务:分析竞品公司的产品定价策略
步骤: 1. 搜索竞品公司官网 2. 访问产品定价页面 3. 提取各档位价格信息 4. 整理成表格保存到本地 5. 生成分析报告
约束: - 只分析公开信息 - 保存结果到 ./reports/ 目录 """
|
AutoGPT 会自动调用浏览器插件访问网页、使用文件操作插件保存结果,无需人工干预。
快速上手提示:AutoGPT 适合需要长时间运行的自动化任务,但需要注意控制成本(会消耗大量 Token)。
最佳实践:为 Agent 设置明确的任务边界和约束条件,避免无限循环或偏离目标。
3.3 OpenAI Functions —— 原生函数调用机制
项目简介
OpenAI Functions 是 GPT-4 原生支持的函数调用能力,无需额外框架即可实现 Skill 调用,是目前最直接、最高效的 Skill 实现方式。
核心功能
- 原生支持:GPT-4 和 GPT-3.5 内置函数调用能力
- 结构化输出:自动解析函数参数,无需复杂 Prompt 工程
- 流式调用:支持多轮函数调用和结果处理
- 与 OpenAI API 无缝集成
与 LangChain Tools 的区别
| 特性 |
OpenAI Functions |
LangChain Tools |
| 实现复杂度 |
低(原生支持) |
中(需要框架) |
| 灵活性 |
高(直接调用) |
高(可组合) |
| 生态系统 |
依赖 OpenAI |
多模型支持 |
| 适用场景 |
快速原型、生产应用 |
复杂流程、多模型 |
基础使用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| import openai import json
functions = [ { "name": "get_weather", "description": "获取指定城市的天气信息", "parameters": { "type": "object", "properties": { "city": { "type": "string", "description": "城市名称,如北京、上海" }, "date": { "type": "string", "description": "日期,格式YYYY-MM-DD,默认为今天" } }, "required": ["city"] } }, { "name": "send_email", "description": "发送邮件", "parameters": { "type": "object", "properties": { "to": {"type": "string", "description": "收件人邮箱"}, "subject": {"type": "string", "description": "邮件主题"}, "content": {"type": "string", "description": "邮件内容"} }, "required": ["to", "subject", "content"] } } ]
response = openai.chat.completions.create( model="gpt-4", messages=[ {"role": "user", "content": "查一下北京明天的天气,如果下雨就发邮件提醒我带伞"} ], functions=functions, function_call="auto" )
message = response.choices[0].message
if message.function_call: function_name = message.function_call.name function_args = json.loads(message.function_call.arguments) print(f"需要调用函数: {function_name}") print(f"参数: {function_args}") if function_name == "get_weather": result = get_weather(**function_args) print(f"天气查询结果: {result}")
|
实战案例:智能天气查询助手
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| import requests
def get_weather(city: str, date: str = None) -> str: """获取天气信息(示例实现)""" api_key = "your_weather_api_key" url = f"https://api.weather.com/v1/current?city={city}&appid={api_key}" response = requests.get(url) data = response.json() weather = data.get("weather", "未知") temp = data.get("temperature", "N/A") return f"{city}天气:{weather},温度{temp}°C"
def send_email(to: str, subject: str, content: str) -> str: """发送邮件(示例实现)""" print(f"发送邮件到: {to}") print(f"主题: {subject}") print(f"内容: {content}") return "邮件发送成功"
def chat_with_functions(user_input: str): messages = [{"role": "user", "content": user_input}] while True: response = openai.chat.completions.create( model="gpt-4", messages=messages, functions=functions, function_call="auto" ) message = response.choices[0].message messages.append(message) if not message.function_call: return message.content function_name = message.function_call.name function_args = json.loads(message.function_call.arguments) if function_name == "get_weather": result = get_weather(**function_args) elif function_name == "send_email": result = send_email(**function_args) else: result = "未知函数" messages.append({ "role": "function", "name": function_name, "content": result })
result = chat_with_functions("北京明天会下雨吗?如果下雨发邮件到test@example.com提醒我") print(result)
|
快速上手提示:OpenAI Functions 的 function_call="auto" 让模型自己决定何时调用函数,是最智能的使用方式。
最佳实践:为函数参数编写详细的 description,这直接影响模型理解参数意图的准确性。
3.4 Semantic Kernel Skills —— 微软的企业级方案
项目简介
Semantic Kernel 是微软推出的 AI 开发 SDK,其 Skills 概念提供了语义技能(Semantic Skill)和原生技能(Native Skill)两种类型,适合企业级应用开发。
核心功能
- Semantic Skill:用自然语言定义的技能(Prompt + 配置)
- Native Skill:用代码实现的技能(Python/C#)
- Skill 组合:通过 Planner 自动组合多个 Skill
- 多模型支持:OpenAI、Azure OpenAI、本地模型
语义技能 vs 原生技能
| 类型 |
定义方式 |
适用场景 |
示例 |
| Semantic Skill |
Prompt + YAML 配置 |
文本处理、内容生成 |
写作助手、翻译器 |
| Native Skill |
Python/C# 代码 |
工具调用、API 访问 |
邮件发送、数据库查询 |
安装部署
1
| pip install semantic-kernel
|
基础使用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import semantic_kernel as sk from semantic_kernel.planning import BasicPlanner
kernel = sk.Kernel()
kernel.add_chat_service( "gpt4", sk.openai.OpenAIChatCompletion("gpt-4", "your-api-key") )
summarize_skill = kernel.import_semantic_skill_from_directory( "./skills", "SummarizeSkill" )
summary = summarize_skill["Summarize"]("这是一段需要总结的长文本...") print(summary)
|
创建自定义 Native Skill
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| from semantic_kernel.skill_definition import sk_function
class EmailSkill: """邮件操作 Skill""" @sk_function( description="发送邮件", name="send_email" ) def send_email(self, to: str, subject: str, content: str) -> str: """发送邮件到指定地址""" print(f"发送邮件到: {to}") print(f"主题: {subject}") return "邮件发送成功" @sk_function( description="查询收件箱", name="check_inbox" ) def check_inbox(self, limit: int = 10) -> str: """查询最近的邮件""" return "您有3封未读邮件"
email_skill = kernel.import_skill(EmailSkill(), "EmailSkill")
result = email_skill["send_email"]("boss@company.com", "周报", "本周工作总结...")
|
实战案例:智能日程管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| from semantic_kernel.planning import BasicPlanner
class CalendarSkill: @sk_function(description="查询日程") def get_schedule(self, date: str) -> str: return f"{date}的日程:上午9点会议,下午2点评审"
class EmailSkill: @sk_function(description="发送邮件") def send_email(self, to: str, subject: str, content: str) -> str: return "邮件已发送"
kernel.import_skill(CalendarSkill(), "CalendarSkill") kernel.import_skill(EmailSkill(), "EmailSkill")
planner = BasicPlanner()
goal = """ 帮我查看明天的日程安排, 如果有会议,就发邮件给参会者准备材料 """
plan = planner.create_plan(goal, kernel)
result = plan.invoke() print(result)
|
快速上手提示:Semantic Kernel 的 Planner 功能是其最大亮点,可以自动规划多 Skill 执行流程。
最佳实践:将常用的文本处理逻辑定义为 Semantic Skill,将工具调用定义为 Native Skill,两者结合使用。
3.5 LlamaIndex Tools —— 知识库增强的 Skill 方案
项目简介
LlamaIndex(原 GPT Index)专注于将私有数据与 LLM 结合,其 Tools 模块提供了与 RAG(检索增强生成)深度集成的 Skill 能力。
核心功能
- 知识库查询 Skill:从私有文档中检索信息
- 搜索引擎 Skill:结合外部搜索和内部知识
- 多数据源整合:同时查询多个知识库
- 智能路由:自动选择最合适的数据源
安装部署
基础使用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| from llama_index.core import VectorStoreIndex, SimpleDirectoryReader from llama_index.core.tools import QueryEngineTool, ToolMetadata
documents = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
document_tool = QueryEngineTool( query_engine=query_engine, metadata=ToolMetadata( name="document_query", description="查询公司内部文档知识库" ) )
response = document_tool.query("公司的年假政策是什么?") print(response)
|
实战案例:深度文献调研助手
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| from llama_index.core.tools import FunctionTool from llama_index.core.agent import ReActAgent import requests
def web_search(query: str) -> str: """搜索互联网获取最新信息""" url = "https://api.serpapi.com/search" params = { "q": query, "api_key": "your_serpapi_key" } response = requests.get(url, params=params) results = response.json() return str(results.get("organic_results", []))
search_tool = FunctionTool.from_defaults( fn=web_search, name="web_search", description="搜索互联网获取最新信息" )
documents = SimpleDirectoryReader("./research_papers").load_data() index = VectorStoreIndex.from_documents(documents) doc_tool = QueryEngineTool.from_defaults( query_engine=index.as_query_engine(), name="paper_query", description="查询已下载的研究论文" )
agent = ReActAgent.from_tools( [search_tool, doc_tool], verbose=True )
response = agent.chat(""" 帮我调研一下大语言模型在医疗领域的最新应用: 1. 先搜索最新的相关论文和新闻 2. 然后查看我们知识库中是否有相关研究 3. 总结当前的主要应用场景和技术挑战 """)
print(response)
|
快速上手提示:LlamaIndex 的 QueryEngineTool 是连接私有知识库和 Agent 的最佳桥梁。
最佳实践:为不同的知识库创建独立的 Tool,让 Agent 能够智能选择查询哪个数据源。
四、Skill 技术的挑战与未来展望
4.1 当前面临的主要挑战
1. Skill 调用的准确性问题
- 幻觉调用:Agent 错误地调用了不相关的 Skill
- 参数错误:传递给 Skill 的参数格式错误或缺失
- 解决方案:加强 Skill 描述的准确性、增加参数验证机制
2. 多 Skill 组合的复杂性与稳定性
- 组合爆炸:多个 Skill 组合时可能产生指数级复杂度
- 失败回退:某个 Skill 失败时如何优雅处理
- 解决方案:引入工作流引擎、增加重试和回退机制
3. 跨平台 Skill 的标准化问题
- 接口不统一:不同框架的 Skill 难以互通
- 生态割裂:LangChain、OpenAI、Semantic Kernel 各自为战
- 解决方案:期待行业标准的出现(如 MCP 协议)
4. 安全与隐私风险
- 恶意 Skill:第三方 Skill 可能存在安全漏洞
- 数据泄露:Skill 执行过程中可能泄露敏感信息
- 解决方案:Skill 签名验证、沙箱执行、权限最小化
4.2 未来发展趋势预测
1. Skill 市场的兴起
类似于 App Store,未来将出现专门的 Agent Skill 商店:
- 开发者发布和售卖 Skill
- 用户评价和推荐 Skill
- 企业采购和管理 Skill 授权
2. 自动 Skill 生成
LLM 将能够自动编写和封装 Skill:
1 2 3 4 5
| agent.create_skill_from_description( "创建一个可以查询 GitHub 仓库星数的 Skill" )
|
3. 多模态 Skill 的普及
- 图像 Skill:图像生成、识别、编辑
- 语音 Skill:语音识别、合成、转换
- 视频 Skill:视频生成、剪辑、分析
4. 联邦 Skill 学习
分布式 Skill 训练与共享:
- 多个 Agent 共享 Skill 学习成果
- 保护隐私的联合训练
- Skill 的持续进化
5. Skill 的自主进化能力
Agent 将能够:
- 自动发现需要的新 Skill
- 根据使用反馈优化 Skill
- 组合现有 Skill 创造复合 Skill
五、总结
Skill 技术正在重新定义 AI Agent 的能力边界。
从本文的介绍中,我们可以看到:
- Skill 是 Agent 从”会思考”到”会做事”的关键桥梁
- 2026年已经有丰富的 Skill 生态:LangChain、OpenAI Functions、Semantic Kernel、LlamaIndex 等框架各显神通
- Skill 的应用场景正在快速扩展:从简单的信息查询到复杂的自动化流程
对于开发者来说,现在正是学习和实践 Skill 技术的最佳时机。无论你是想:
- 快速搭建原型 → 选择 OpenAI Functions
- 构建复杂流程 → 选择 LangChain
- 企业级应用 → 选择 Semantic Kernel
- 知识库增强 → 选择 LlamaIndex
都可以找到合适的工具。
Skill 技术的成熟,让我们离真正的通用人工智能(AGI)又近了一步。 当 AI 不仅能理解世界,还能操作世界,它的价值将得到真正的释放。
参考资源
你在使用 Skill 技术时有什么经验或问题?欢迎在评论区分享!