从MCP到Skill:AI Agent工具链选型全对比(2026实战版)
摘要: 2026年,AI Agent开发不再是"接一个大模型"那么简单。MCP、Agent Skill、Plugin、Function Calling、Workflow……工具链选项爆发式增长,开发者却陷入了选择困难:我到底该用哪个?本文从一个具体需求的6种实现方式切入,系统对比六大工具链的差异,再给出按项目场景的选型决策框架,帮你做出最合适的选型决策。
一、为什么要写这篇选型指南
2026年的AI Agent生态,让我想起2015年的前端框架之争——React、Vue、Angular各成一派,开发者疲于追赶。但现在的情况更复杂:你面对的不是"选一个框架",而是选一套工具链组合。
来看一组数据:
| 维度 | 数据 |
|---|---|
| 全球AI Skill仓库总量 | 27万+(SkillsMP,截至2026年8月) |
| 腾讯SkillHub月下载量 | 1700万+次 |
| MCP Server公开数量 | 数千个(覆盖数百个SaaS产品) |
| Coze技能商店上架数 | 数万级,企业入驻持续增长 |
| AI Agent市场规模(2026预估) | 620亿美元,企业渗透率58% |
工具链的丰富是好事,但"选择太多"本身就是问题。我见过太多团队:
- 用MCP做了所有事,结果每次调用成本居高不下;
- 把所有逻辑写进Prompt,结果Token消耗爆炸、输出不稳定;
- 用Workflow编排了简单任务,结果维护成本比代码还高;
- 做了5个Skill,每个都能用,但互相冲突。
这篇文章的目标:让你在动手之前,就知道该选什么。
二、六大工具链全景图
先把概念理清楚。2026年Agent开发中,你大概率会遇到这6种工具链形态:
2.1 概念速览
| 工具链 | 一句话定义 | 类比 |
|---|---|---|
| Function Calling | 模型原生的函数调用能力 | CPU指令集 |
| MCP(Model Context Protocol) | Agent与外部工具/数据的标准通信协议 | USB接口标准 |
| Agent Skill | 可复用的AI能力模块(SKILL.md + 脚本/资料) | App应用 |
| Plugin(插件) | Skill + MCP Server的组合包 | App Suite(办公套件) |
| Workflow(工作流) | 可视化/DAG编排的多步骤任务流 | 流水线 |
| Prompt Engineering | 通过提示词设计驱动模型行为 | 口头指令 |
2.2 它们之间的关系
┌──────────────────────────────────────────────┐
│ AI Agent 运行时 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Prompt │ │Workflow │ │ Skill │ │
│ │ 编排层 │ │ 编排层 │ │ 能力层 │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ └──────────────┼──────────────┘ │
│ │ │
│ ┌───────┴───────┐ │
│ │ Function Call │ │
│ │ (模型原生) │ │
│ └───────┬───────┘ │
│ │ │
│ ┌───────┴───────┐ │
│ │ MCP / HTTP │ │
│ │ (通信协议层) │ │
│ └───────┬───────┘ │
│ │ │
│ ┌────────────┼────────────┐ │
│ ▼ ▼ ▼ │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │外部API │ │数据库 │ │文件系统│ │
│ └────────┘ └────────┘ └────────┘ │
└──────────────────────────────────────────────┘
关键理解:
- Function Calling是底层能力,几乎所有方案都建立在它之上
- MCP是通信协议,解决"Agent怎么调工具"
- Skill是能力封装,解决"Agent能干什么"
- Plugin是Skill + MCP的打包分发形态
- Workflow是流程编排,解决"多步骤任务怎么串联"
- Prompt是控制层,贯穿所有层级
三、一个需求,六种写法——用「订单查询」讲透差异
概念看了还是分不清?没关系。我们用同一个真实需求,分别用6种方式实现,你就能直观感受差异。
需求:用户说"帮我查一下订单 #12345 的物流状态"
方案1:纯Prompt
# System Prompt
你是一个电商客服助手。当用户询问订单状态时,请根据以下信息回答:
- 订单号格式:# + 5位数字
- 物流状态查询地址:https://api.example.com/logistics?order_id=xxx
- 回复格式:先报状态,再预计到达时间,语气亲切
如果用户提供的订单号格式不对,请引导用户重新输入。
特点: 零开发成本,但模型并不能真正调用API查订单,只能"假装"回答。只适合做Demo,不适合做产品。
方案2:Function Calling
# 定义函数
tools = [{
"type": "function",
"function": {
"name": "query_logistics",
"description": "查询订单物流状态",
"parameters": {
"type": "object",
"properties": {
"order_id": {"type": "string", "description": "订单号,如 #12345"}
},
"required": ["order_id"]
}
}
}]
# 你自己写函数实现
def query_logistics(order_id: str):
resp = requests.get(f"https://api.example.com/logistics?order_id={order_id}")
return resp.json()
# 模型负责"什么时候调",你负责"怎么实现"
特点: 你写代码,模型调度。灵活但每一行都得自己写。适合工具数量少、逻辑简单的场景。
方案3:MCP Server
from mcp.server import Server
server = Server("logistics-mcp")
@server.tool()
async def query_logistics(order_id: str) -> str:
"""查询订单物流状态,输入订单号如 #12345"""
resp = await http_client.get(f"https://api.example.com/logistics?order_id={order_id}")
data = resp.json()
return f"订单{order_id}:{data['status']},预计{data['eta']}送达"
@server.tool()
async def query_order_detail(order_id: str) -> str:
"""查询订单详情,包含商品、金额、收货地址"""
...
@server.resource("logistics://carriers")
async def get_supported_carriers() -> str:
"""获取支持的物流公司列表"""
...
特点: 标准化封装,一次写好,Claude/Cursor/Coze都能用。支持工具发现——Agent可以自动知道有哪些工具可用。但需要搭建MCP Server进程。
方案4:Agent Skill
---
name: order-service
description: >
电商订单服务工具。支持查询订单状态、物流追踪、退款申请。
当用户询问订单相关问题时使用。
---
# 订单服务
## 执行步骤
1. 解析用户输入,提取订单号(格式:# + 5位数字)
2. 判断用户意图:
- 查物流 → 调用 logistics API,返回状态 + 预计到达
- 查详情 → 调用 order detail API,返回商品/金额/地址
- 申请退款 → 先检查是否符合退款条件(7天内、未发货),
符合条件则调用退款API,不符合则告知原因并引导联系客服
3. 输出结构化回复,包含订单号和关键信息
## 边界条件
- 订单号格式不正确:引导用户从"我的订单"页面复制正确编号
- 订单不存在:提示用户确认,而非直接报错
- 退款超过时限:明确告知时限规则,不生硬拒绝
## 回复规范
- 语气亲切,避免机械感
- 先说结论(状态),再补充细节
- 涉及金额时精确到分
特点: 不只定义了"调什么API",还封装了完整的业务判断逻辑和回复规范。一个Skill = 工具调用 + 领域知识 + 异常处理。
方案5:Workflow
开始 → 接收用户消息
↓
LLM意图识别
├─ "查物流" → 调用物流API → 格式化物流信息 → 回复用户
├─ "查详情" → 调用订单API → 格式化订单信息 → 回复用户
├─ "退款" → 条件判断(7天内?)
│ ├─ 是 → 调用退款API → 告知退款进度
│ └─ 否 → 回复不符合条件 → 引导联系客服
└─ "其他" → 转人工客服
特点: 可视化、流程清晰、非技术人员也能看懂改。但流程一变就要改图,复杂分支多了DAG会很丑。
方案6:Plugin
order-service-plugin/
├── skills/
│ ├── order-query/ # 订单查询Skill
│ │ └── SKILL.md
│ ├── logistics-track/ # 物流追踪Skill
│ │ └── SKILL.md
│ └── refund-handler/ # 退款处理Skill
│ └── SKILL.md
├── mcp-server/ # 统一的后端API服务
│ └── server.py
└── panel/ # 管理面板
├── config.html # API配置界面
└── dashboard.html # 订单数据看板
特点: 最完整的封装,多Skill + MCP + UI一体化。适合做产品级解决方案分发,但开发成本最高。
一图总结
| 方案 | 开发量 | 智能程度 | 复用性 | 维护成本 | 适合谁 |
|---|---|---|---|---|---|
| 纯Prompt | 5分钟 | ★★ | ★ | 高(靠调Prompt) | 做Demo |
| Function Calling | 2小时 | ★★★ | ★★ | 中 | 个人开发者,工具<5个 |
| MCP Server | 半天 | ★★★★ | ★★★★★ | 低 | 跨平台工具提供者 |
| Skill | 2小时 | ★★★★★ | ★★★★ | 低 | 封装行业Know-How |
| Workflow | 3小时 | ★★★ | ★★★ | 中 | 业务流程固定、需可视化 |
| Plugin | 1-2天 | ★★★★★ | ★★★★★ | 低 | 产品级解决方案 |
核心区别一句话说清:
- Prompt = 告诉AI"你应该怎么做"
- Function Calling = 给AI一双"手"去操作
- MCP = 给手定一个"通用接口标准"
- Skill = 告诉AI"在这个领域,你是一个专家,按这套方法论做"
- Workflow = 画好"流程图"让AI照着走
- Plugin = 把以上打包成一个"产品"
四、逐项深度对比
4.1 Function Calling:模型的原生能力
是什么: 大模型(GPT-4o、Claude、Gemini等)自带的函数调用能力。你定义一组函数签名,模型在对话中判断何时调用哪个函数、传什么参数。
技术架构:
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"}
},
"required": ["city"]
}
}
}]
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
tools=tools
)
优势:
- 零额外依赖,模型原生支持
- 调用延迟最低(一次LLM推理 + 一次函数执行)
- 灵活性最高,可以调用任何函数
劣势:
- 需要自己写所有代码(API调用、错误处理、结果解析)
- 无法跨平台复用(OpenAI的格式和Anthropic的不完全一样)
- 工具数量多时,模型选择准确率下降(一般建议不超过20个工具)
- 没有标准化的发现、分发、版本管理机制
适用场景:
- 自建Agent,工具数量有限(<20个)
- 对延迟敏感,需要最快响应
- 已有完善的后端服务,只需模型"调度"
4.2 MCP(Model Context Protocol):Agent世界的HTTP
是什么: Anthropic于2024年底发布的开放标准协议,定义了AI模型与外部数据源、工具之间的标准通信方式。2025-2026年已成为行业事实标准,OpenAI、Google、Microsoft全部跟进。
核心架构:
Host(IDE/Agent平台)
└── Client(协议客户端,1:1对应Server)
└── Server(工具/资源服务提供者)
├── Tools:可调用的函数
├── Resources:可读取的数据
└── Prompts:预定义的提示词模板
三种传输方式(2026年现状):
| 传输方式 | 场景 | 成熟度 |
|---|---|---|
| stdio | 本地工具,进程内通信 | 成熟,最广泛 |
| Streamable HTTP | 远程服务,替代原SSE | 主流,推荐 |
| 内置集成 | 平台原生(如Coze内置MCP) | 平台依赖 |
典型MCP Server示例(Python SDK):
from mcp.server import Server
from mcp.server.stdio import stdio_server
server = Server("my-tool-server")
@server.tool()
async def search_database(query: str, limit: int = 10) -> str:
"""搜索数据库中的记录"""
results = await db.search(query, limit=limit)
return format_results(results)
@server.resource("config://app/settings")
async def get_settings() -> str:
"""获取应用配置"""
return json.dumps(config)
async with stdio_server() as (read, write):
await server.run(read, write)
优势:
- 跨平台标准:一次编写,Claude/Cursor/Copilot/Coze都能用
- 生态庞大:数千个现成MCP Server,覆盖主流SaaS
- 动态发现:Agent可以运行时发现可用工具,不需要硬编码
- 安全性好:标准化的权限控制和沙箱隔离
劣势:
- 成本较高:每次调用都有协议开销(JSON-RPC序列化/反序列化)
- 学习曲线:需要理解Client-Server架构、传输方式、资源/工具/提示词三种原语
- 工具描述膨胀:当MCP Server暴露大量工具时,Token消耗显著增加
- 调试复杂:涉及Host→Client→Server多层,排错链路长
4.3 Agent Skill:AI的"能力芯片"
是什么: 将特定领域的专业知识、操作流程和工具调用封装为一个可复用的标准化能力模块。核心是一个SKILL.md文件,用自然语言描述触发条件、执行步骤和边界条件。
Skill vs MCP——最核心的区别:
| MCP | Skill | |
|---|---|---|
| 解决什么问题 | 工具怎么调(协议) | 任务怎么做(知识) |
| 包含什么 | 函数签名 + 数据格式 | 领域知识 + 流程 + 工具调用 |
| 谁写的 | 工具开发者 | 领域专家 / 有经验的开发者 |
| 类比 | USB接口规范 | 一个完整的App |
| 典型内容 | search_database(query, limit) | “查竞品时,先搜产品更新,再搜融资动态,交叉验证信息来源可靠性” |
简单说:MCP是"插座标准",Skill是"电器"。一个Skill内部可以使用MCP来调用工具。
Skill的三层能力模型:
┌─────────────────────────────┐
│ 领域知识层 │ ← SKILL.md 正文
│ (流程、规则、决策逻辑) │
├─────────────────────────────┤
│ 工具调用层 │ ← scripts/ + MCP / HTTP
│ (具体执行动作) │
├─────────────────────────────┤
│ 资源参考层 │ ← references/
│ (模板、规范、示例数据) │
└─────────────────────────────┘
优势:
- 知识封装:不只是工具调用,还包含"什么时候用""怎么用好"的领域智慧
- 可分发交易:上架技能商店,支持付费、版本管理
- 渐进式披露:核心指令 + 按需加载参考资料,节省Token
- 生态红利:27万+Skill可复用,不必从零开始
劣势:
- 标准仍在演进(SKILL.md v2正在讨论中)
- 质量参差不齐(技能商店里有大量低质量Skill)
- 平台依赖:不同平台对Skill的运行时支持不同
- 调试困难:自然语言指令的执行效果不如代码确定
4.4 Plugin(插件):能力套件
是什么: Skill + MCP Server + 面板UI的组合包。一个Plugin可以包含多个Skill和多个MCP工具,是一个完整的"能力解决方案"。
与Skill的关系:
Plugin
├── Skill A(如:股票数据分析)
├── Skill B(如:股票技术图表生成)
├── MCP Server(如:实时行情数据接口)
└── Panel UI(如:配置面板、数据展示面板)
什么时候需要Plugin而不是单独的Skill?
- 你的解决方案包含多个关联能力(不是一个Skill能说清的)
- 你需要用户可操作的UI(配置面板、数据展示)
- 你要做产品级分发(企业客户需要完整的安装/配置/升级体验)
4.5 Workflow(工作流):可视化编排
是什么: 通过DAG(有向无环图)或可视化界面,将多个步骤串联成自动化流程。代表产品:Coze Workflow、Dify Workflow、LangGraph。
优势:
- 可视化,非技术人员也能理解和修改
- 流程清晰,便于调试和监控
- 支持条件分支、循环、并行执行
- 内置错误处理和重试机制
劣势:
- 灵活性受限于平台支持的节点类型
- 复杂逻辑用DAG表达很笨重
- 平台锁定:不同平台的Workflow不互通
- 调试体验通常不如写代码
4.6 Prompt Engineering:最轻量也最被低估
2026年的新认知:Prompt不是"写几句话",而是"上下文工程"(Context Engineering)。
Prompt Engineering的四个层次:
| 层次 | 内容 | 示例 |
|---|---|---|
| L1:基础指令 | System Prompt + 角色设定 | “你是一个专业的Python开发者” |
| L2:结构化输入 | Few-shot + 输出格式定义 | 提供3个示例,规定JSON输出格式 |
| L3:动态上下文 | RAG检索 + 记忆注入 + 状态追踪 | 根据用户历史对话动态注入相关信息 |
| L4:元认知 | 反思、自我评估、策略调整 | “在回答前,先评估你是否有足够信息” |
关键认知: Prompt是所有工具链的基石。即使用MCP+Skill,一个写得差的System Prompt也会让整个Agent表现糟糕。
五、核心维度横向对比
5.1 对比总表
| 维度 | Function Calling | MCP | Skill | Plugin | Workflow | Prompt |
|---|---|---|---|---|---|---|
| 抽象层级 | 底层API | 通信协议 | 能力封装 | 能力套件 | 流程编排 | 指令控制 |
| 开发难度 | ★★★☆ | ★★★★ | ★★☆ | ★★★★★ | ★★☆ | ★☆ |
| 灵活性 | ★★★★★ | ★★★★ | ★★★★ | ★★★★ | ★★★ | ★★★★★ |
| 复用性 | ★★ | ★★★★★ | ★★★★★ | ★★★★★ | ★★★ | ★★ |
| 跨平台 | ★★ | ★★★★★ | ★★★★ | ★★★ | ★ | ★★★★★ |
| 非技术友好 | ★ | ★★ | ★★★★ | ★★★ | ★★★★★ | ★★★ |
| Token效率 | ★★★★★ | ★★★ | ★★★★ | ★★★ | ★★★★ | ★★ |
| 变现能力 | ★ | ★★ | ★★★★★ | ★★★★ | ★★ | ★ |
5.2 成本对比
假设一个Agent每天处理1000个请求,每个请求平均调用3次工具:
| 方案 | 开发成本 | 每次请求Token开销 | 维护成本 | 基础设施需求 |
|---|---|---|---|---|
| Function Calling | 高(全写代码) | 最低(~500 tokens/次) | 中 | 低(自己的服务器) |
| MCP | 中(有SDK) | 中(~1500 tokens/次) | 中 | 中(需运行MCP Server) |
| Skill | 低(自然语言) | 中低(~1000 tokens/次) | 低 | 低(平台托管) |
| Workflow | 低(可视化) | 中高(~2000 tokens/次) | 低 | 中(平台依赖) |
| Prompt Only | 最低 | 最高(~3000+ tokens/次) | 高(迭代多) | 最低 |
六、决策框架:你的项目到底该选什么
这是本文最核心的部分。不看抽象维度,直接按你手头的具体项目来选。
6.1 场景一:“我要做个AI助手,能查天气、读邮件、写总结”
你的情况: 个人项目,2-3个简单工具,自用或小范围分享。
推荐:Function Calling + Prompt
System Prompt(角色设定 + 输出格式)
├── Function: get_weather(city)
├── Function: read_emails(folder, limit)
└── Function: generate_summary(text)
为什么不上MCP? 你只有3个工具,全在自己项目里用,MCP的跨平台优势用不上,反而多了部署MCP Server的成本。
什么时候该升级? 当你想把"读邮件"这个工具也给别的Agent用时,把它封装成MCP Server。
6.2 场景二:“我要做一个客服机器人,对接公司的CRM和ERP”
你的情况: 企业项目,工具多(5-15个),流程相对固定,团队里非技术人员也要参与维护。
推荐:Workflow + MCP + Prompt
Workflow(主流程:意图识别 → 路由 → 处理 → 回复)
├── MCP Server: CRM系统(查客户信息、订单状态)
├── MCP Server: ERP系统(查库存、物流)
├── MCP Server: 知识库(FAQ检索)
└── Prompt(话术规范、品牌语调、敏感词过滤)
为什么用Workflow? 客服流程相对固定,可视化编排方便运营团队调整话术和路由规则,不需要改代码。
为什么用MCP? 企业系统接口会变化,MCP Server作为中间层,系统升级时只改Server,不用改Agent。
6.3 场景三:“我是行业专家,想把我的分析方法做成AI工具卖钱”
你的情况: 你有金融/法律/医疗等行业经验,想让其他开发者或用户付费使用你的方法论。
推荐:Skill(上架技能商店)
my-stock-analysis/
├── SKILL.md # 分析方法论 + 执行步骤 + 边界条件
├── scripts/
│ └── analyzer.py # 技术指标计算脚本
└── references/
└── valuation.md # 估值模型参考
为什么不用MCP? MCP只是工具协议,不包含你的分析方法论。用户买的是你的"分析能力",不是"调API的能力"。
怎么变现? 上架Coze技能商店或SkillHub,设置付费,按调用次数收费。SkillPay已支持微信支付原生结算。
6.4 场景四:“我要在Cursor/Claude Code里提升开发效率”
你的情况: 你是开发者,想让AI编程助手更懂你的项目规范、代码风格、技术栈。
推荐:Skill + MCP
项目根目录/
├── .cursor/rules/ # Cursor Rules(Prompt层)
├── SKILL.md # 项目级Skill(编码规范+架构决策)
├── .mcp/
│ ├── github-server/ # GitHub MCP(PR、Issue管理)
│ └── db-server/ # 数据库MCP(Schema查询)
└── docs/
└── architecture.md # 架构文档(Skill的references)
为什么这样选?
- Skill封装项目知识(“我们用什么技术栈、代码规范是什么、部署流程是什么”)
- MCP对接开发工具链(Git、数据库、CI/CD)
- Cursor Rules/Prompt定义全局约束
6.5 场景五:“我要做一个完整的SaaS产品,卖给企业客户”
你的情况: 你需要多个关联能力、用户管理、配置面板、计费系统。
推荐:Plugin + Skill + MCP + Workflow
my-saas-plugin/
├── skills/
│ ├── data-analysis/ # 数据分析Skill
│ ├── report-generation/ # 报告生成Skill
│ └── alert-manager/ # 告警管理Skill
├── mcp-servers/
│ ├── database-connector/ # 数据库连接
│ └── notification/ # 通知推送
├── workflows/
│ └── daily-report.yaml # 每日报告自动生成流程
└── panel/
├── config.html # 数据源配置面板
└── dashboard.html # 数据看板
为什么是Plugin? 企业客户需要的是"开箱即用的完整方案",不是零散的工具。Plugin把能力、工具、流程、UI打包在一起。
6.6 决策速查表
| 你的情况 | 首选 | 次选 | 别用 |
|---|---|---|---|
| 个人项目,<5个工具 | Function Calling + Prompt | + Skill | Workflow(杀鸡用牛刀) |
| 企业客服/审批/标准流程 | Workflow + MCP | + Plugin | 纯Prompt(不可控) |
| 行业专家卖方法论 | Skill | + MCP | Workflow(限制灵活性) |
| AI编程提效 | Skill + MCP | + Prompt | 纯Workflow |
| SaaS产品/企业解决方案 | Plugin | Skill + MCP + Workflow | 只用Function Calling |
| 快速验证想法 | Prompt | + Function Calling | Plugin(太重了) |
| 非技术团队 | Workflow + 现成Skill | Coze平台 | 从零写MCP Server |
七、Skill + MCP 组合实战——最常被问到的搭配
很多开发者问:"Skill和MCP到底怎么配合?"这一节给三个具体的组合模式。
模式一:Skill内嵌MCP调用
场景: 你有一个"竞品分析Skill",需要调用搜索API和网页抓取工具。
# SKILL.md - competitor-analysis
## 执行步骤
1. 确认用户要分析的竞品列表
2. 对每个竞品:
a. 使用 web_search 工具搜索最新动态(关键词模板见 references/search-templates.md)
b. 对高价值结果使用 web_fetch 获取详情
c. 按维度(产品/融资/技术/市场)分类整理
3. 生成对比分析报告
## 工具依赖
| 工具 | 用途 | 必需 |
| --- | --- | --- |
| web_search | 搜索竞品信息 | 是 |
| web_fetch | 读取网页详情 | 否(降级为搜索摘要) |
要点: Skill负责"怎么分析"的知识,MCP/工具负责"获取数据"。Skill描述里声明依赖哪些工具,但不关心工具的实现细节。
模式二:MCP提供能力,Skill编排流程
场景: 你有一个数据库MCP Server,多个Skill都要用它。
database-mcp-server/
├── 提供:query(sql)、list_tables()、describe_table(name)
skill-financial-analysis/
├── 使用:调用 query() 获取财务数据
├── 知识:知道该查哪些表、怎么关联、怎么解读
skill-user-analytics/
├── 使用:调用 query() 获取用户行为数据
├── 知识:知道用户画像怎么算、漏斗怎么看
要点: 一个MCP Server可以服务多个Skill。MCP是"数据水管",Skill是"用水方式"。
模式三:Skill动态发现MCP工具
场景: Agent平台支持运行时动态加载MCP工具。
# SKILL.md - smart-assistant
## 工具发现
在执行任务前,先检查当前可用的MCP工具:
1. 如果检测到 github-server:启用代码仓库相关能力
2. 如果检测到 jira-server:启用项目管理相关能力
3. 如果检测到 slack-server:启用消息通知能力
## 自适应执行
根据可用工具动态调整执行策略:
- 有JIRA:自动创建任务跟踪
- 没有JIRA:用本地文件记录
要点: 这是最灵活的组合方式。Skill不硬编码依赖,而是根据运行时环境自适应。
八、选型避坑指南
坑1:过度使用Workflow
症状: 每个简单任务都用Workflow编排,一个"查天气"都要画5个节点。
药方: Workflow适合流程固定且需要可视化的场景。如果一个任务3步以内能完成,用Skill或Function Calling更简洁。
判断标准: 如果这个流程用if-else写代码只有20行,就别画DAG了。
坑2:MCP万能论
症状: 所有工具都做成MCP Server,哪怕只是内部一个简单函数。
药方: MCP的价值在于跨平台复用和标准化对接外部系统。如果工具只在一个Agent内使用,直接写成Skill里的脚本更高效。
判断标准: 问自己"这个工具会被其他Agent/平台调用吗?“如果答案是"不会”,就别做MCP。
坑3:忽略Token成本
症状: 给Agent挂了30个MCP工具,每次请求都带全量工具描述,Token消耗爆炸。
药方:
- 使用Skill的渐进式披露,按需加载工具
- 将工具按场景分组,不同场景加载不同工具集
- 定期审计工具使用频率,移除低频工具
经验值: 工具描述的Token数最好不要超过总上下文窗口的10%。30个工具的描述可能吃掉3000+ tokens。
坑4:Prompt和Skill边界不清
症状: 同样的逻辑在Prompt和Skill里都写了一遍,维护时不知道改哪里。
药方: 明确分工——
- Prompt:全局规则、角色设定、输出格式(所有场景通用的)
- Skill:具体任务的执行流程、领域知识(特定场景的)
- 规则:一条逻辑只出现在一个地方
坑5:不重视Skill的Description
症状: Skill写好了,但Agent从不调用,或者在不该调用时调用。
药方: Description是Skill的"API文档"。必须包含三要素:
- 能做什么(能力列表)
- 什么时候用(触发条件)
- 不能做什么(边界说明,防止误触发)
坑6:一开始就追求"完美架构"
症状: 项目还没上线,就搭了Plugin + MCP + Workflow全家桶。
药方: 渐进式架构——
- 先跑起来:Prompt + Function Calling,验证需求是否真实
- 再结构化:引入Skill封装核心知识,引入MCP标准化工具
- 最后规模化:需要时才上Plugin和Workflow
每一步都验证价值后再进入下一步。
九、2026年趋势判断
9.1 融合而非替代
MCP、Skill、Workflow不会互相替代,而是走向深度融合:
- Skill内部可以调用MCP工具
- Workflow节点可以是一个Skill
- Prompt可以动态加载Skill作为上下文
- Plugin是Skill + MCP + UI的融合形态
最佳实践是组合使用,而不是非此即彼。
9.2 Skill市场将走向专业化
当前27万+Skill中大量是通用工具。2026下半年开始,垂直行业的专业Skill将成为主角:
- 金融:量化策略Skill、合规审查Skill
- 医疗:病历结构化Skill、药物交互检查Skill
- 法律:合同审查Skill、类案检索Skill
- 工业:协议转换Skill、设备诊断Skill
9.3 Agent-to-Agent调用
下一个前沿:Agent之间的Skill共享和调用。你的Agent可以直接调用其他Agent的Skill,就像微服务之间的RPC调用。2026年外滩大会已经在讨论Agent身份管理标准化(KYA——Know Your Agent)。
9.4 AI自动生成Skill
当前Skill主要靠人工编写。未来的方向:Agent完成一个新任务后,自动将经验封装为Skill。这将是"学习型Agent"的关键一步。
十、总结
选型三句话:
- 先搞清楚你要解决什么问题,再看用什么工具。 不要反过来——先选工具再找场景。
- 没有"最优方案",只有"当前阶段最合适的方案"。 先跑起来,再优化。
- 这些工具不是互斥的。 一个好的AI应用,往往是Prompt + Function Calling + Skill + MCP的组合,只是各层承担不同职责。
选型速查表(最终版):
| 如果你是… | 首选方案 | 次选方案 | 避免 |
|---|---|---|---|
| 个人开发者,快速验证 | Prompt + Function Calling | + Skill | 上来就搭Workflow |
| 全栈开发,做SaaS产品 | Skill + MCP | + Plugin | 只写Prompt不封装 |
| 企业IT,内部工具 | Workflow + MCP | + Plugin | 忽视权限和审计 |
| 非技术团队,业务场景 | Workflow + 现成Skill | Coze/扣子平台 | 从零写代码 |
| 做开源项目,建生态 | MCP + Skill | + Plugin | 闭源不开放 |
| 工业/IoT场景 | Skill + MCP | + 自定义协议适配 | 用通用Workflow硬套 |
行动建议: 今天就打开你的IDE,选一个你最近重复做的工作任务,用最简单的方式(Prompt + Function Calling)先做一个能跑的Demo。跑通了,再考虑要不要升级到Skill或MCP。
不要等"准备好了"再开始。开始就是最好的准备。
如果这篇选型指南对你有帮助,欢迎点赞收藏。有问题评论区交流,我会逐一回复。

632

被折叠的 条评论
为什么被折叠?



