Agent Skill:让 AI 智能体从"会思考"到"会做事"的核心能力

一、开篇引言

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 调用器是核心枢纽。它负责:

  1. 根据任务需求,从 Skill 库中选择最合适的 Skill
  2. 将用户的自然语言意图转换为 Skill 需要的结构化参数
  3. 处理 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
# 标准 Skill 接口示例
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
# 组合多个 Skill 完成复杂任务
workflow = [
SearchSkill, # 步骤1:搜索相关信息
FileReadSkill, # 步骤2:读取本地模板
DataAnalysisSkill,# 步骤3:分析数据
EmailSendSkill # 步骤4:发送报告邮件
]

可扩展性

开发者可以轻松添加新 Skill:

1
2
3
4
5
6
7
8
9
# 自定义 Skill 只需实现两个方法
class MyCustomSkill:
def run(self, **kwargs):
# 实现功能逻辑
pass

def get_schema(self):
# 返回参数schema,供Agent理解
return {...}

安全性

  • 权限控制:每个 Skill 可以设置独立的权限范围
  • 沙箱执行:敏感操作在隔离环境中运行
  • 审计日志:所有 Skill 调用记录可追溯

三、2026 年最火的 Agent Skill 项目实战指南

3.1 LangChain Tools —— 最主流的 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 # SerpAPI

基础使用示例

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
llm = ChatOpenAI(temperature=0)

# 加载内置 Tools(Skills)
tools = load_tools([
"serpapi", # 搜索引擎
"llm-math", # 数学计算
"wikipedia", # 维基百科
"terminal" # 终端命令
], llm=llm)

# 创建 Agent
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)

# 使用 Agent 执行任务
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

# 自定义股票查询 Skill
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}"

# 封装为 LangChain Tool
stock_tool = Tool(
name="stock_analyzer",
func=get_stock_info,
description="获取股票实时价格和涨跌幅,输入股票代码如TSLA、AAPL"
)

# 创建带自定义 Skill 的 Agent
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
# 克隆 AutoGPT 仓库
git clone https://github.com/Significant-Gravitas/AutoGPT.git
cd AutoGPT

# 安装依赖
pip install -r requirements.txt

# 配置环境变量
cp .env.template .env
# 编辑 .env 文件,添加 OpenAI API Key

基础使用示例

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 = 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
# 在 AutoGPT 中输入以下任务指令:
"""
任务:分析竞品公司的产品定价策略

步骤:
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

# 定义函数(Skill)
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"]
}
}
]

# 调用 OpenAI API
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}")

# 执行对应的 Skill 函数
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
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
kernel = sk.Kernel()

# 添加 AI 服务
kernel.add_chat_service(
"gpt4",
sk.openai.OpenAIChatCompletion("gpt-4", "your-api-key")
)

# 加载 Semantic Skill(自然语言定义)
summarize_skill = kernel.import_semantic_skill_from_directory(
"./skills", "SummarizeSkill"
)

# 使用 Skill
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封未读邮件"

# 注册 Skill
email_skill = kernel.import_skill(EmailSkill(), "EmailSkill")

# 使用 Skill
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

# 定义多个 Skills
class CalendarSkill:
@sk_function(description="查询日程")
def get_schedule(self, date: str) -> str:
# 查询日历 API
return f"{date}的日程:上午9点会议,下午2点评审"

class EmailSkill:
@sk_function(description="发送邮件")
def send_email(self, to: str, subject: str, content: str) -> str:
# 发送邮件
return "邮件已发送"

# 注册 Skills
kernel.import_skill(CalendarSkill(), "CalendarSkill")
kernel.import_skill(EmailSkill(), "EmailSkill")

# 使用 Planner 自动组合 Skills
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
pip install llama-index

基础使用示例

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()

# 封装为 Tool(Skill)
document_tool = QueryEngineTool(
query_engine=query_engine,
metadata=ToolMetadata(
name="document_query",
description="查询公司内部文档知识库"
)
)

# 使用 Tool
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

# 创建搜索引擎 Skill
def web_search(query: str) -> str:
"""搜索互联网获取最新信息"""
# 调用搜索 API
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", []))

# 封装为 Tool
search_tool = FunctionTool.from_defaults(
fn=web_search,
name="web_search",
description="搜索互联网获取最新信息"
)

# 创建文档查询 Tool(基于已有知识库)
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,组合多个 Tools
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"
)
# AI 自动生成代码、测试、文档

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 技术时有什么经验或问题?欢迎在评论区分享!