Skill、Tool、SOP、MCP 文章合集
本合集包含以下三篇文章:
- Skill、Tool、SOP、MCP 完整解析:概念区别、分层关系与企业应用协同
- 一文讲透 Skill、Tool、SOP、MCP:别再把它们混为一谈
- 企业如何落地 MCP、Skill 与 Tool:从现有 API 到智能 Agent 的完整架构
Skill、Tool、SOP、MCP 完整解析:概念区别、分层关系与企业应用协同
本文从企业应用架构视角,系统说明 Skill、Tool、SOP、MCP 的定义、边界、相互关系,以及它们如何与 ERP、CRM、WMS、BI、OA、数据库和第三方 SaaS 协同工作。
目录
- [1. 为什么这几个概念容易混淆](#1. 为什么这几个概念容易混淆)
- [2. 四个概念的一句话定义](#2. 四个概念的一句话定义)
- [3. SOP:规定业务应该怎样做](#3. SOP:规定业务应该怎样做)
- [4. Skill:让 AI 掌握一类任务的方法](#4. Skill:让 AI 掌握一类任务的方法)
- [5. Tool:执行具体动作的能力单元](#5. Tool:执行具体动作的能力单元)
- [6. MCP:AI 连接外部能力的标准协议](#6. MCP:AI 连接外部能力的标准协议)
- [7. 四者的核心区别](#7. 四者的核心区别)
- [8. 与 API、工作流、ETL、RPA 的区别](#8. 与 API、工作流、ETL、RPA 的区别)
- [9. 四者如何协同工作](#9. 四者如何协同工作)
- [10. 企业应用系统中的分层架构](#10. 企业应用系统中的分层架构)
- [11. 完整案例:智能库存诊断](#11. 完整案例:智能库存诊断)
- [12. 完整案例:商品智能上架](#12. 完整案例:商品智能上架)
- [13. MCP 是否应该替代现有 API](#13. MCP 是否应该替代现有 API)
- [14. 企业落地实施步骤](#14. 企业落地实施步骤)
- [15. 权限、安全和审计设计](#15. 权限、安全和审计设计)
- [16. 常见错误](#16. 常见错误)
- [17. 最终总结](#17. 最终总结)
1. 为什么这几个概念容易混淆
在大模型应用、Agent、企业智能助手和 MCP 项目中,经常会同时出现以下几个词:
- SOP
- Skill
- Tool
- MCP
- API
- Workflow
- Agent
这些概念处于不同层次,却经常被放在一起讨论。
例如,有人把"查询库存"称为 Skill,也有人把它称为 Tool;有人认为 MCP 可以替代 API,也有人将 SOP 直接写成提示词后就称为 Skill。出现这些分歧,根本原因是没有先区分以下四类问题:
- 业务流程由谁定义?
- AI 如何理解并完成一类任务?
- 具体动作由谁执行?
- AI 如何连接外部系统?
SOP、Skill、Tool、MCP 分别回答了这四类问题。
2. 四个概念的一句话定义
| 概念 | 一句话定义 | 核心关注点 |
|---|---|---|
| SOP | 规定业务应该按照什么流程和规则执行 | 流程、规范、责任、审批、异常处理 |
| Skill | 描述 AI 完成一类任务的方法和能力 | 任务理解、步骤规划、知识、工具编排 |
| Tool | 执行一个具体动作的可调用能力 | 查询、计算、写入、创建、发送、修改 |
| MCP | 让 AI 标准化发现和调用外部工具、资源与提示模板的协议 | 连接、发现、描述、调用 |
可以用一个简单比喻理解:
SOP 是作业规程,Skill 是掌握这项工作的能力,Tool 是实际使用的工具,MCP 是连接各种工具的标准插座。
四者不是替代关系,而是分层协作关系。
3. SOP:规定业务应该怎样做
3.1 SOP 的定义
SOP 是 Standard Operating Procedure,即标准作业流程。
它解决的不是"系统如何调用接口",而是"业务应该按照什么标准完成"。
一份完整 SOP 通常包含:
- 适用范围;
- 参与角色;
- 前置条件;
- 标准步骤;
- 判断条件;
- 审批节点;
- 异常处理;
- 输出结果;
- 质量标准;
- 审计要求。
3.2 SOP 示例
以"缺货补货处理"为例,SOP 可以规定:
- 每日检查可售库存;
- 计算未来 7 天预测销量;
- 当可售库存低于未来 7 天预测销量时,进入预警;
- 查询在途采购数量;
- 若库存加在途数量仍不足,则生成补货建议;
- 补货金额低于 5 万元时由采购主管审批;
- 高于 5 万元时增加财务审批;
- 紧急补货必须记录原因;
- 审批通过后创建采购单;
- 将结果写入补货台账。
这套 SOP 可以由人工执行,也可以被工作流系统执行,还可以被 AI Skill 引用。
3.3 SOP 的特点
SOP 强调:
- 稳定性;
- 可重复;
- 可审核;
- 可追责;
- 业务一致性。
SOP 本身通常不直接连接 ERP,也不直接调用 API。它更像业务规则和流程规范。
4. Skill:让 AI 掌握一类任务的方法
4.1 Skill 的定义
Skill 可以理解为 AI 的"任务能力包"。
它不是单个接口,也不是一句提示词。一个成熟 Skill 通常包括:
text
Skill
├── 任务目标
├── 适用场景
├── 输入要求
├── 业务知识
├── SOP规则
├── 执行步骤
├── Tool选择规则
├── 异常处理
├── 人工确认节点
└── 输出模板
4.2 Skill 示例
"库存异常诊断 Skill"可能包含以下逻辑:
- 识别用户要分析的仓库、商品和时间范围;
- 调用销售 Tool 查询近 30 天销量;
- 调用库存 Tool 查询当前库存;
- 调用采购 Tool 查询在途数量;
- 调用商品 Tool 查询商品状态;
- 根据库存 SOP 计算缺货、积压和周转异常;
- 对不同异常给出补货、调拨、促销或停售建议;
- 涉及创建采购单时要求人工确认;
- 输出诊断表和处理建议。
4.3 Skill 的核心价值
Skill 的价值不只是"让 AI 会调用接口",而是让 AI 能够:
- 理解业务任务;
- 选择合适的工具;
- 按正确顺序执行;
- 根据业务规则判断;
- 在异常时调整策略;
- 输出符合企业要求的结果。
因此,Skill 更接近"完成一类工作的能力",而不是"执行一次接口调用"。
4.4 Skill 与提示词的关系
提示词可以是 Skill 的一部分,但不等于 Skill。
一个仅包含如下内容的提示词:
text
请分析库存情况并给出建议。
不能称为成熟 Skill。
成熟 Skill 至少应明确:
- 数据从哪里取;
- 哪些指标需要计算;
- 判断阈值是什么;
- 需要调用哪些 Tool;
- 哪些操作必须人工确认;
- 输出格式是什么;
- 查询失败怎么办。
5. Tool:执行具体动作的能力单元
5.1 Tool 的定义
Tool 是供 AI、Agent 或应用程序调用的执行能力。
典型 Tool 包括:
- 查询订单;
- 查询库存;
- 计算毛利;
- 创建工单;
- 修改商品价格;
- 发送邮件;
- 创建日程;
- 执行 SQL;
- 读取文件;
- 生成报表。
一个 Tool 应该具有:
- 清晰的名称;
- 明确的用途;
- 结构化输入;
- 结构化输出;
- 错误处理;
- 权限控制;
- 幂等性说明;
- 审计日志。
5.2 Tool 示例
json
{
"name": "query_inventory",
"description": "查询指定仓库和商品的可售库存、锁定库存和在途库存",
"input": {
"warehouse_id": "string",
"sku_ids": ["string"]
},
"output": {
"items": [
{
"sku_id": "string",
"available_stock": "number",
"locked_stock": "number",
"in_transit_stock": "number"
}
]
}
}
5.3 Tool 和 API 的区别
API 是系统对外暴露的技术接口,Tool 是面向 AI 的业务能力封装。
例如,底层系统可能存在多个接口:
text
GET /warehouse/stock
GET /warehouse/locked-stock
GET /purchase/in-transit
对 AI 来说,可以封装成一个 Tool:
text
query_inventory
该 Tool 内部完成:
- 调用多个 API;
- 合并数据;
- 统一字段;
- 过滤无权限仓库;
- 转换错误码;
- 返回适合 AI 理解的结果。
因此:
API 更关注系统之间如何通信,Tool 更关注 AI 可以完成什么动作。
5.4 Tool 的粒度设计
Tool 粒度过细,会导致 AI 需要连续调用大量接口;粒度过粗,则会失去复用性并增加风险。
不推荐:
text
get_field_a
get_field_b
get_field_c
也不推荐:
text
complete_all_inventory_business
更合理的是按稳定业务能力设计:
text
query_inventory
calculate_inventory_turnover
create_transfer_request
create_purchase_request
6. MCP:AI 连接外部能力的标准协议
6.1 MCP 的定义
MCP 是 Model Context Protocol。
它用于解决:
- AI 如何发现外部能力;
- AI 如何知道工具的参数;
- AI 如何读取外部资源;
- AI 如何调用工具;
- 不同 AI 客户端如何复用同一套能力。
MCP 更像一个标准化连接协议,而不是具体业务系统。
6.2 MCP Server 通常暴露什么
MCP Server 一般可以向 AI 客户端提供:
| 类型 | 作用 | 示例 |
|---|---|---|
| Tools | 执行具体动作 | 查询订单、创建工单、修改库存 |
| Resources | 提供上下文数据 | 数据字典、制度文档、日志、商品资料 |
| Prompts | 提供预设提示模板 | 销售分析模板、故障诊断模板 |
6.3 MCP 的价值
没有统一协议时,每个 AI 应用都要分别适配:
text
ERP API
CRM API
BI API
数据库驱动
文件读取SDK
OA接口
第三方平台SDK
引入 MCP 后,可以形成:
text
AI应用
↓
MCP Client
↓
多个 MCP Server
↓
企业现有 API、数据库和应用系统
MCP 主要提供:
- 工具发现;
- 统一描述;
- 参数约束;
- 标准调用;
- 结果返回;
- 资源读取。
6.4 MCP 不是什么
MCP 不是:
- API 网关;
- ESB;
- ETL 平台;
- 调度平台;
- 工作流引擎;
- 数据中台;
- 消息队列;
- 事务中间件。
它主要服务于 AI 与外部能力之间的连接。
7. 四者的核心区别
7.1 对比表
| 对比维度 | SOP | Skill | Tool | MCP |
|---|---|---|---|---|
| 核心问题 | 业务应该怎么做 | AI 如何完成一类任务 | 具体动作如何执行 | AI 如何标准化连接外部能力 |
| 面向对象 | 业务人员、管理人员 | AI、Agent、开发人员 | AI、程序、系统 | AI客户端、MCP Server |
| 内容形态 | 流程、规则、审批 | 知识、步骤、编排、模板 | 函数、接口、命令 | 协议、能力描述、调用机制 |
| 是否执行动作 | 通常不执行 | 间接执行 | 直接执行 | 负责连接和调用 |
| 是否包含业务判断 | 是 | 是 | 通常较少 | 否 |
| 是否依赖系统接口 | 不一定 | 通常依赖 | 通常依赖 | 通常封装 Tool |
| 复用层次 | 业务流程复用 | 任务能力复用 | 动作能力复用 | 连接方式复用 |
7.2 最简判断方法
遇到一个对象时,可以这样判断:
- 规定"必须先做 A,再做 B":SOP;
- 描述"如何完成库存分析":Skill;
- 执行"查询库存":Tool;
- 让 AI 统一连接库存系统:MCP。
8. 与 API、工作流、ETL、RPA 的区别
8.1 MCP 与 API
API 是底层系统能力接口,MCP 是 AI 调用外部能力的标准化协议。
推荐关系:
text
AI / Agent
↓
MCP Client
↓
MCP Server
↓
Tool
↓
企业 API
↓
ERP / CRM / WMS / BI
MCP 通常建立在现有 API 之上,而不是替代 API。
8.2 Skill 与工作流
工作流强调预先定义的固定节点和流转规则;Skill 允许 AI 根据上下文动态选择步骤和工具。
| 场景 | 更适合工作流 | 更适合 Skill |
|---|---|---|
| 固定审批流 | 是 | 否 |
| 固定定时任务 | 是 | 否 |
| 根据问题动态选择分析方法 | 否 | 是 |
| 多工具动态组合 | 一般 | 是 |
| 强事务一致性 | 是 | 否 |
| 自然语言交互 | 一般 | 是 |
实际企业中常见组合是:
text
Skill 负责理解和决策
工作流负责确定性执行和审批流转
8.3 Tool 与 ETL
Tool 通常完成一次查询或动作,ETL 负责大批量、稳定、周期性的数据抽取、转换和加载。
例如:
- AI 临时查询近 30 天销售数据:Tool;
- 每天凌晨同步全部订单数据:ETL;
- 每月计算全量经营指标:ETL 或调度任务;
- 用户询问单个 SKU 的销量:Tool。
8.4 Tool 与 RPA
Tool 优先调用正式 API;当系统没有接口时,才考虑 RPA。
RPA 更容易受页面变化、登录状态和网络环境影响,应尽量用于:
- 老旧系统;
- 无 API 系统;
- 临时过渡方案;
- 低频、低风险操作。
9. 四者如何协同工作
完整协同关系如下:
#mermaid-svg-DOUPCdjDUFzJbUSF{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-DOUPCdjDUFzJbUSF .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-DOUPCdjDUFzJbUSF .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-DOUPCdjDUFzJbUSF .error-icon{fill:#552222;}#mermaid-svg-DOUPCdjDUFzJbUSF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-DOUPCdjDUFzJbUSF .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-DOUPCdjDUFzJbUSF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-DOUPCdjDUFzJbUSF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-DOUPCdjDUFzJbUSF .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-DOUPCdjDUFzJbUSF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-DOUPCdjDUFzJbUSF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-DOUPCdjDUFzJbUSF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-DOUPCdjDUFzJbUSF .marker.cross{stroke:#333333;}#mermaid-svg-DOUPCdjDUFzJbUSF svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-DOUPCdjDUFzJbUSF p{margin:0;}#mermaid-svg-DOUPCdjDUFzJbUSF .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-DOUPCdjDUFzJbUSF .cluster-label text{fill:#333;}#mermaid-svg-DOUPCdjDUFzJbUSF .cluster-label span{color:#333;}#mermaid-svg-DOUPCdjDUFzJbUSF .cluster-label span p{background-color:transparent;}#mermaid-svg-DOUPCdjDUFzJbUSF .label text,#mermaid-svg-DOUPCdjDUFzJbUSF span{fill:#333;color:#333;}#mermaid-svg-DOUPCdjDUFzJbUSF .node rect,#mermaid-svg-DOUPCdjDUFzJbUSF .node circle,#mermaid-svg-DOUPCdjDUFzJbUSF .node ellipse,#mermaid-svg-DOUPCdjDUFzJbUSF .node polygon,#mermaid-svg-DOUPCdjDUFzJbUSF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DOUPCdjDUFzJbUSF .rough-node .label text,#mermaid-svg-DOUPCdjDUFzJbUSF .node .label text,#mermaid-svg-DOUPCdjDUFzJbUSF .image-shape .label,#mermaid-svg-DOUPCdjDUFzJbUSF .icon-shape .label{text-anchor:middle;}#mermaid-svg-DOUPCdjDUFzJbUSF .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-DOUPCdjDUFzJbUSF .rough-node .label,#mermaid-svg-DOUPCdjDUFzJbUSF .node .label,#mermaid-svg-DOUPCdjDUFzJbUSF .image-shape .label,#mermaid-svg-DOUPCdjDUFzJbUSF .icon-shape .label{text-align:center;}#mermaid-svg-DOUPCdjDUFzJbUSF .node.clickable{cursor:pointer;}#mermaid-svg-DOUPCdjDUFzJbUSF .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-DOUPCdjDUFzJbUSF .arrowheadPath{fill:#333333;}#mermaid-svg-DOUPCdjDUFzJbUSF .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-DOUPCdjDUFzJbUSF .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-DOUPCdjDUFzJbUSF .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DOUPCdjDUFzJbUSF .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-DOUPCdjDUFzJbUSF .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DOUPCdjDUFzJbUSF .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-DOUPCdjDUFzJbUSF .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-DOUPCdjDUFzJbUSF .cluster text{fill:#333;}#mermaid-svg-DOUPCdjDUFzJbUSF .cluster span{color:#333;}#mermaid-svg-DOUPCdjDUFzJbUSF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-DOUPCdjDUFzJbUSF .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-DOUPCdjDUFzJbUSF rect.text{fill:none;stroke-width:0;}#mermaid-svg-DOUPCdjDUFzJbUSF .icon-shape,#mermaid-svg-DOUPCdjDUFzJbUSF .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DOUPCdjDUFzJbUSF .icon-shape p,#mermaid-svg-DOUPCdjDUFzJbUSF .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-DOUPCdjDUFzJbUSF .icon-shape .label rect,#mermaid-svg-DOUPCdjDUFzJbUSF .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DOUPCdjDUFzJbUSF .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-DOUPCdjDUFzJbUSF .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-DOUPCdjDUFzJbUSF :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 用户提出业务任务
AI应用或Agent
选择并执行Skill
读取SOP与业务规则
MCP Client
MCP Server
Tool
现有API或数据服务
ERP CRM WMS BI OA 数据库
可以概括为:
text
SOP 定义业务规则
Skill 组织任务和决策
MCP 提供统一连接
Tool 执行具体动作
应用系统保存真实业务结果
10. 企业应用系统中的分层架构
推荐采用六层架构。
10.1 第一层:业务应用层
包括:
- ERP;
- CRM;
- WMS;
- OMS;
- OA;
- BI;
- PLM;
- MES;
- 电商平台;
- 自研业务系统。
这些系统仍然是正式业务数据和交易结果的载体。
10.2 第二层:接口与数据服务层
包括:
- API 网关;
- 数据服务;
- 微服务接口;
- SQL 服务;
- 文件服务;
- 消息队列;
- 搜索服务。
这一层负责稳定、安全地暴露能力。
10.3 第三层:Tool 层
将技术接口封装成业务语义清晰的能力:
text
query_order_summary
query_product_inventory
query_sales_metrics
create_purchase_request
create_approval
update_product_status
10.4 第四层:MCP 接入层
按业务域建设 MCP Server:
text
订单域 MCP Server
商品域 MCP Server
库存域 MCP Server
客户域 MCP Server
数据分析 MCP Server
文档知识 MCP Server
10.5 第五层:Skill 与 SOP 层
建立:
- 销售分析 Skill;
- 补货诊断 Skill;
- 商品上架 Skill;
- 客户流失分析 Skill;
- 异常订单处理 Skill;
- 对应 SOP、规则库和模板库。
10.6 第六层:AI 应用层
包括:
- 企业智能助手;
- 数据分析 Agent;
- 运营 Agent;
- 客服 Agent;
- 开发助手;
- 管理驾驶舱助手。
完整架构:
#mermaid-svg-NgB4hI9Tfwn3h7XM{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-NgB4hI9Tfwn3h7XM .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-NgB4hI9Tfwn3h7XM .error-icon{fill:#552222;}#mermaid-svg-NgB4hI9Tfwn3h7XM .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NgB4hI9Tfwn3h7XM .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NgB4hI9Tfwn3h7XM .marker.cross{stroke:#333333;}#mermaid-svg-NgB4hI9Tfwn3h7XM svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NgB4hI9Tfwn3h7XM p{margin:0;}#mermaid-svg-NgB4hI9Tfwn3h7XM .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-NgB4hI9Tfwn3h7XM .cluster-label text{fill:#333;}#mermaid-svg-NgB4hI9Tfwn3h7XM .cluster-label span{color:#333;}#mermaid-svg-NgB4hI9Tfwn3h7XM .cluster-label span p{background-color:transparent;}#mermaid-svg-NgB4hI9Tfwn3h7XM .label text,#mermaid-svg-NgB4hI9Tfwn3h7XM span{fill:#333;color:#333;}#mermaid-svg-NgB4hI9Tfwn3h7XM .node rect,#mermaid-svg-NgB4hI9Tfwn3h7XM .node circle,#mermaid-svg-NgB4hI9Tfwn3h7XM .node ellipse,#mermaid-svg-NgB4hI9Tfwn3h7XM .node polygon,#mermaid-svg-NgB4hI9Tfwn3h7XM .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-NgB4hI9Tfwn3h7XM .rough-node .label text,#mermaid-svg-NgB4hI9Tfwn3h7XM .node .label text,#mermaid-svg-NgB4hI9Tfwn3h7XM .image-shape .label,#mermaid-svg-NgB4hI9Tfwn3h7XM .icon-shape .label{text-anchor:middle;}#mermaid-svg-NgB4hI9Tfwn3h7XM .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-NgB4hI9Tfwn3h7XM .rough-node .label,#mermaid-svg-NgB4hI9Tfwn3h7XM .node .label,#mermaid-svg-NgB4hI9Tfwn3h7XM .image-shape .label,#mermaid-svg-NgB4hI9Tfwn3h7XM .icon-shape .label{text-align:center;}#mermaid-svg-NgB4hI9Tfwn3h7XM .node.clickable{cursor:pointer;}#mermaid-svg-NgB4hI9Tfwn3h7XM .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-NgB4hI9Tfwn3h7XM .arrowheadPath{fill:#333333;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-NgB4hI9Tfwn3h7XM .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NgB4hI9Tfwn3h7XM .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-NgB4hI9Tfwn3h7XM .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NgB4hI9Tfwn3h7XM .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-NgB4hI9Tfwn3h7XM .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-NgB4hI9Tfwn3h7XM .cluster text{fill:#333;}#mermaid-svg-NgB4hI9Tfwn3h7XM .cluster span{color:#333;}#mermaid-svg-NgB4hI9Tfwn3h7XM div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-NgB4hI9Tfwn3h7XM .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-NgB4hI9Tfwn3h7XM rect.text{fill:none;stroke-width:0;}#mermaid-svg-NgB4hI9Tfwn3h7XM .icon-shape,#mermaid-svg-NgB4hI9Tfwn3h7XM .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NgB4hI9Tfwn3h7XM .icon-shape p,#mermaid-svg-NgB4hI9Tfwn3h7XM .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-NgB4hI9Tfwn3h7XM .icon-shape .label rect,#mermaid-svg-NgB4hI9Tfwn3h7XM .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NgB4hI9Tfwn3h7XM .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-NgB4hI9Tfwn3h7XM .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-NgB4hI9Tfwn3h7XM :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} AI应用层
智能助手 Agent 智能问数
Skill与SOP层
任务能力 业务规则 工具编排
MCP接入层
订单 商品 库存 数据 文档 MCP Server
Tool层
查询 计算 创建 更新 审批
接口与数据服务层
API 网关 数据服务 SQL 文件 消息
业务应用层
ERP CRM WMS BI OA 数据库 第三方平台
11. 完整案例:智能库存诊断
11.1 用户请求
text
分析最近30天的库存异常商品,并给出处理建议。
11.2 SOP
库存 SOP 规定:
- 周转天数超过 90 天定义为高库存;
- 连续 14 天无销量且库存大于 0 定义为滞销;
- 可售库存低于未来 7 天预测销量定义为缺货风险;
- 调价、下架、采购等操作必须审批。
11.3 Skill 执行步骤
text
1. 识别时间范围和仓库范围
2. 查询近30天销售数据
3. 查询当前库存和在途库存
4. 计算日均销量和周转天数
5. 按SOP识别缺货、滞销和积压
6. 查询商品毛利和活动状态
7. 生成补货、调拨、促销或下架建议
8. 将高风险操作提交审批
9. 输出异常清单和建议
11.4 调用的 Tool
text
query_sales_data
query_inventory
query_in_transit_stock
query_product_margin
calculate_turnover_days
create_transfer_request
create_purchase_request
create_approval
11.5 MCP 的作用
库存 Skill 无需分别适配 WMS、ERP 和 BI,而是通过 MCP Client 调用:
- 库存 MCP Server;
- 销售 MCP Server;
- 采购 MCP Server;
- 审批 MCP Server。
11.6 应用系统的作用
- WMS 返回库存;
- ERP 返回采购和成本;
- BI 返回销售指标;
- OA 保存审批;
- ERP 保存采购单;
- 日志系统记录全部操作。
12. 完整案例:商品智能上架
12.1 用户请求
text
把这批商品整理后上架到淘宝、京东和拼多多。
12.2 SOP 规则
- 商品名称不能为空;
- 主图至少 5 张;
- 类目必须匹配;
- 商品售价不能低于最低毛利线;
- 品牌商品必须检查授权;
- 正式发布前需要运营审核;
- 平台发布失败必须记录原因。
12.3 Skill 逻辑
text
1. 读取商品资料和图片
2. 检查资料完整性
3. 识别商品类目
4. 生成各平台标题和卖点
5. 查询成本及历史售价
6. 计算建议售价
7. 检查品牌和内容合规
8. 提交运营人员确认
9. 调用各平台发布Tool
10. 汇总成功与失败结果
12.4 Tool
text
read_product_materials
classify_product_category
query_product_cost
calculate_suggested_price
check_content_compliance
create_taobao_product
create_jd_product
create_pdd_product
create_approval
12.5 系统协同
OA 电商平台 NAS ERP MCP Server 商品上架Skill AI商品助手 运营人员 OA 电商平台 NAS ERP MCP Server 商品上架Skill AI商品助手 运营人员 #mermaid-svg-wmgHkLPxwiT4mHrT{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-wmgHkLPxwiT4mHrT .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-wmgHkLPxwiT4mHrT .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-wmgHkLPxwiT4mHrT .error-icon{fill:#552222;}#mermaid-svg-wmgHkLPxwiT4mHrT .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-wmgHkLPxwiT4mHrT .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-wmgHkLPxwiT4mHrT .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-wmgHkLPxwiT4mHrT .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-wmgHkLPxwiT4mHrT .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-wmgHkLPxwiT4mHrT .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-wmgHkLPxwiT4mHrT .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-wmgHkLPxwiT4mHrT .marker{fill:#333333;stroke:#333333;}#mermaid-svg-wmgHkLPxwiT4mHrT .marker.cross{stroke:#333333;}#mermaid-svg-wmgHkLPxwiT4mHrT svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-wmgHkLPxwiT4mHrT p{margin:0;}#mermaid-svg-wmgHkLPxwiT4mHrT .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-wmgHkLPxwiT4mHrT text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-wmgHkLPxwiT4mHrT .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-wmgHkLPxwiT4mHrT .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-wmgHkLPxwiT4mHrT .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-wmgHkLPxwiT4mHrT .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-wmgHkLPxwiT4mHrT #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-wmgHkLPxwiT4mHrT .sequenceNumber{fill:white;}#mermaid-svg-wmgHkLPxwiT4mHrT #sequencenumber{fill:#333;}#mermaid-svg-wmgHkLPxwiT4mHrT #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-wmgHkLPxwiT4mHrT .messageText{fill:#333;stroke:none;}#mermaid-svg-wmgHkLPxwiT4mHrT .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-wmgHkLPxwiT4mHrT .labelText,#mermaid-svg-wmgHkLPxwiT4mHrT .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-wmgHkLPxwiT4mHrT .loopText,#mermaid-svg-wmgHkLPxwiT4mHrT .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-wmgHkLPxwiT4mHrT .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-wmgHkLPxwiT4mHrT .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-wmgHkLPxwiT4mHrT .noteText,#mermaid-svg-wmgHkLPxwiT4mHrT .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-wmgHkLPxwiT4mHrT .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-wmgHkLPxwiT4mHrT .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-wmgHkLPxwiT4mHrT .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-wmgHkLPxwiT4mHrT .actorPopupMenu{position:absolute;}#mermaid-svg-wmgHkLPxwiT4mHrT .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-wmgHkLPxwiT4mHrT .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-wmgHkLPxwiT4mHrT .actor-man circle,#mermaid-svg-wmgHkLPxwiT4mHrT line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-wmgHkLPxwiT4mHrT :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 提交商品上架任务 启动商品上架Skill 读取商品与素材 查询商品主数据和成本 读取图片与视频 返回商品数据 返回素材 根据SOP检查并生成内容 发起审核 创建审批 审批通过 调用平台发布Tool 创建平台商品 返回发布结果 汇总执行结果 生成上架报告 返回结果
13. MCP 是否应该替代现有 API
答案通常是:不应该。
13.1 API 继续承担什么
- 应用之间固定调用;
- 前后端通信;
- 高并发交易;
- 数据同步;
- 微服务通信;
- 批处理;
- 实时查询。
13.2 MCP 更适合什么
- AI 动态发现工具;
- AI 根据任务选择接口;
- 多系统统一接入;
- 自然语言驱动操作;
- Agent 多步骤编排;
- AI 上下文资源读取。
13.3 推荐架构
text
现有应用系统
↓
现有API和数据服务
↓
Tool封装
↓
MCP Server
↓
Skill和Agent
↓
AI应用
企业不需要为了 MCP 重写 ERP、BI 或微服务。最合理的方式是在现有能力之上增加 AI 适配层。
14. 企业落地实施步骤
第一步:选择高价值业务场景
优先选择:
- 高频;
- 规则相对清晰;
- 数据可获得;
- 跨系统操作较多;
- 人工重复劳动明显;
- 风险可控。
例如:
- 销售分析;
- 库存预警;
- 商品资料整理;
- 客诉分类;
- 采购建议;
- 日报周报生成。
第二步:整理 SOP
将隐性经验转成显性规则:
- 输入是什么;
- 处理步骤是什么;
- 阈值是什么;
- 谁审批;
- 异常如何处理;
- 结果写到哪里。
第三步:盘点 API 和数据能力
整理:
- 系统名称;
- 接口地址;
- 鉴权方式;
- 请求参数;
- 返回字段;
- 调用频率;
- 权限范围;
- 是否支持写操作。
第四步:设计 Tool
Tool 名称应体现业务动作,例如:
text
query_sales_summary
query_inventory_status
create_purchase_request
submit_price_approval
避免直接将底层接口路径作为 Tool 名称。
第五步:建设 MCP Server
建议按业务域划分,而不是每个 API 建一个 MCP Server。
第六步:建设 Skill
Skill 中明确:
- 什么时候使用;
- 如何选择 Tool;
- 按什么顺序调用;
- 如何处理失败;
- 哪些动作必须确认;
- 最终输出格式。
第七步:接入工作流和审批
高风险写操作必须进入确定性流程:
- 修改价格;
- 删除数据;
- 发布商品;
- 创建采购单;
- 发起付款;
- 批量发送消息。
第八步:监控和持续优化
记录:
- 用户请求;
- Skill 选择;
- Tool 调用;
- 参数;
- 返回结果;
- 错误;
- 人工确认;
- 最终业务结果。
15. 权限、安全和审计设计
15.1 最小权限原则
不同用户只能调用其业务范围内的 Tool。
例如:
- 普通运营只能查询商品;
- 运营主管可以提交调价审批;
- 价格修改由审批系统执行;
- AI 不直接获得数据库超级权限。
15.2 读写分离
将 Tool 分成:
text
只读 Tool
├── query_order
├── query_inventory
└── query_customer
写入 Tool
├── update_price
├── create_purchase_order
└── delete_product
写入 Tool 应增加:
- 人工确认;
- 审批;
- 幂等控制;
- 参数范围校验;
- 回滚能力;
- 操作审计。
15.3 防止提示词注入
外部文档、网页和邮件可能包含诱导 AI 调用工具的恶意内容,因此:
- 外部内容只作为数据,不作为系统指令;
- Tool 权限不能由文档内容决定;
- 高风险 Tool 必须独立鉴权;
- MCP Server 需要校验参数;
- 关键操作必须由用户明确确认。
15.4 全链路审计
建议记录:
text
request_id
user_id
agent_id
skill_id
tool_name
tool_arguments
permission_result
approval_id
execution_result
timestamp
16. 常见错误
错误一:把每个 API 都直接暴露给 AI
后果:
- Tool 数量过多;
- 参数复杂;
- AI 选择困难;
- 业务语义不清晰;
- 权限风险增大。
应先进行业务语义封装。
错误二:将 SOP 直接复制成提示词
SOP 往往面向人工,包含大量自然语言和模糊表达。应将其拆分为:
- 可执行步骤;
- 判断规则;
- Tool 调用;
- 人工节点;
- 异常分支。
错误三:认为 MCP 可以替代 API 网关
MCP 面向 AI 工具接入,API 网关承担流量、鉴权、限流、路由和服务治理,两者职责不同。
错误四:让 AI 直接承担关键事务
AI 适合判断、分析和编排,不适合独立承担付款、删库、批量调价等不可逆操作。
错误五:Skill 只写流程,不定义输出
Skill 应明确结果结构,例如:
json
{
"summary": "string",
"risk_items": [],
"recommended_actions": [],
"approval_required": true
}
错误六:忽视失败补偿
Tool 可能超时、部分成功或重复执行。必须考虑:
- 重试;
- 幂等;
- 断点续执行;
- 部分失败;
- 回滚;
- 人工接管。
17. 最终总结
SOP、Skill、Tool、MCP 分别位于不同层次:
text
SOP:定义业务流程和规则
Skill:让AI掌握完成一类任务的方法
Tool:执行一个明确的业务动作
MCP:让AI标准化连接和调用外部能力
它们与企业应用系统的合理关系是:
text
用户提出任务
↓
AI选择Skill
↓
Skill引用SOP
↓
通过MCP调用Tool
↓
Tool调用现有API
↓
ERP、CRM、WMS、BI等系统执行
↓
结果返回AI并写入正式业务系统
企业落地时,不应为了 MCP 推翻现有系统,而应在现有 API、数据服务和业务流程之上增加:
- 业务语义化 Tool;
- 标准化 MCP 接入;
- 可复用 Skill;
- 可审计 SOP;
- 权限、审批和安全机制。
最终形成"业务规则可管理、AI能力可复用、系统能力可调用、执行过程可审计"的企业智能应用架构。
CSDN 文章一
一文讲透 Skill、Tool、SOP、MCP:别再把它们混为一谈
文章摘要:
在大模型应用和 Agent 项目中,Skill、Tool、SOP、MCP 经常被混用。本文不堆概念,而是从"业务规则、AI能力、执行动作、连接协议"四个层次出发,讲清它们各自解决什么问题、彼此如何配合,以及为什么 MCP 不能简单替代 API。
推荐标签: 大模型 MCP AI Agent 企业架构 Skill
前言
最近在做大模型应用、智能问数、企业 Agent 或 MCP 项目时,很多团队都会遇到类似问题:
- Skill 到底是不是提示词?
- Tool 和 API 有什么区别?
- SOP 能不能直接变成 Skill?
- 有了 MCP,是不是原来的 API 就可以不用了?
- Agent、工作流、MCP 到底谁负责编排?
这些问题看起来是名词问题,实际上会直接影响系统架构。
概念理解错了,项目很容易走向两个极端:
- 把所有 API 原样暴露给大模型,让模型自己"碰运气"调用;
- 把一大段 SOP 塞进提示词,就认为已经完成了 AI 能力建设。
本文给出一个最容易落地的理解框架。
一、先记住这四句话
- SOP:规定业务应该怎样做。
- Skill:描述 AI 如何完成一类任务。
- Tool:负责执行一个具体动作。
- MCP:让 AI 用统一方式连接 Tool 和外部资源。
可以把它们想象成一次维修任务:
- SOP 是维修手册;
- Skill 是维修人员掌握的维修能力;
- Tool 是扳手、万用表和诊断仪;
- MCP 是统一规格的工具接口;
- ERP、数据库和业务系统则是被操作的真实对象。
二、SOP:它首先是业务规则,不是技术接口
SOP 的全称是 Standard Operating Procedure,即标准作业流程。
例如,一家公司规定"库存不足时如何补货",SOP 可能是:
text
1. 查询当前可售库存
2. 计算未来7天预测销量
3. 查询在途采购数量
4. 判断是否存在缺货风险
5. 生成补货建议
6. 金额超过5万元需要财务审批
7. 审批通过后创建采购单
SOP 关注的是:
- 先做什么、后做什么;
- 什么情况下继续;
- 什么情况下审批;
- 发生异常怎么办;
- 谁负责;
- 输出结果是什么。
注意,SOP 并不天然属于 AI。没有 AI 时,人也可以按照 SOP 执行。
因此,SOP 的本质是业务标准化。
三、Skill:不是一个接口,而是一类任务能力
很多人把 Skill 理解成"一个 Prompt",其实不够准确。
一个成熟的 Skill,至少应包含:
text
任务目标
输入要求
业务知识
执行步骤
SOP规则
Tool选择方式
异常处理
人工确认节点
输出模板
例如"库存异常诊断 Skill",它不只是调用一次库存接口,而可能完成:
text
查询销量
→ 查询库存
→ 查询在途采购
→ 计算周转天数
→ 按SOP识别缺货和积压
→ 生成补货、调拨、促销建议
→ 高风险操作提交审批
因此:
Tool 是"查询库存",Skill 是"完成库存异常诊断"。
这就是两者最重要的区别。
Skill 的核心价值
Skill 让 AI 不只是"会调用工具",而是"知道为什么调用、什么时候调用、先调用什么、失败后怎么办"。
从企业视角看,Skill 是把以下内容打包起来:
text
业务经验 + 操作流程 + 判断逻辑 + 工具编排 + 输出标准
四、Tool:真正执行动作的能力
Tool 是 AI 能够调用的具体能力,例如:
text
query_order_summary
query_inventory
query_product_cost
create_purchase_request
send_approval
update_product_price
Tool 的特点是:
- 输入明确;
- 输出明确;
- 动作可验证;
- 权限可控制;
- 失败可识别;
- 调用可审计。
Tool 和 API 到底有什么区别
API 是系统的技术接口;Tool 是面向 AI 的业务能力封装。
例如底层系统有三个 API:
text
GET /stock/available
GET /stock/locked
GET /purchase/in-transit
对 AI 来说,可以封装成一个更好理解的 Tool:
text
query_inventory_status
Tool 内部完成:
- 调用三个 API;
- 合并结果;
- 统一字段;
- 做权限过滤;
- 将错误码转换成可理解信息。
所以不要简单地把所有 API 原样注册成 Tool。
一个好的 Tool,需要有明确的业务语义。
五、MCP:它是协议,不是业务系统
MCP 的全称是 Model Context Protocol。
它解决的是:
- AI 如何发现有哪些工具;
- AI 如何知道工具需要哪些参数;
- AI 如何读取外部资源;
- AI 如何调用工具;
- 不同 AI 客户端如何复用同一套能力。
典型架构如下:
#mermaid-svg-4q76aICw7qZqyhue{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-4q76aICw7qZqyhue .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-4q76aICw7qZqyhue .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-4q76aICw7qZqyhue .error-icon{fill:#552222;}#mermaid-svg-4q76aICw7qZqyhue .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4q76aICw7qZqyhue .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-4q76aICw7qZqyhue .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4q76aICw7qZqyhue .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4q76aICw7qZqyhue .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-4q76aICw7qZqyhue .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4q76aICw7qZqyhue .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4q76aICw7qZqyhue .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4q76aICw7qZqyhue .marker.cross{stroke:#333333;}#mermaid-svg-4q76aICw7qZqyhue svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4q76aICw7qZqyhue p{margin:0;}#mermaid-svg-4q76aICw7qZqyhue .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-4q76aICw7qZqyhue .cluster-label text{fill:#333;}#mermaid-svg-4q76aICw7qZqyhue .cluster-label span{color:#333;}#mermaid-svg-4q76aICw7qZqyhue .cluster-label span p{background-color:transparent;}#mermaid-svg-4q76aICw7qZqyhue .label text,#mermaid-svg-4q76aICw7qZqyhue span{fill:#333;color:#333;}#mermaid-svg-4q76aICw7qZqyhue .node rect,#mermaid-svg-4q76aICw7qZqyhue .node circle,#mermaid-svg-4q76aICw7qZqyhue .node ellipse,#mermaid-svg-4q76aICw7qZqyhue .node polygon,#mermaid-svg-4q76aICw7qZqyhue .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4q76aICw7qZqyhue .rough-node .label text,#mermaid-svg-4q76aICw7qZqyhue .node .label text,#mermaid-svg-4q76aICw7qZqyhue .image-shape .label,#mermaid-svg-4q76aICw7qZqyhue .icon-shape .label{text-anchor:middle;}#mermaid-svg-4q76aICw7qZqyhue .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-4q76aICw7qZqyhue .rough-node .label,#mermaid-svg-4q76aICw7qZqyhue .node .label,#mermaid-svg-4q76aICw7qZqyhue .image-shape .label,#mermaid-svg-4q76aICw7qZqyhue .icon-shape .label{text-align:center;}#mermaid-svg-4q76aICw7qZqyhue .node.clickable{cursor:pointer;}#mermaid-svg-4q76aICw7qZqyhue .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-4q76aICw7qZqyhue .arrowheadPath{fill:#333333;}#mermaid-svg-4q76aICw7qZqyhue .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-4q76aICw7qZqyhue .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-4q76aICw7qZqyhue .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4q76aICw7qZqyhue .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-4q76aICw7qZqyhue .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4q76aICw7qZqyhue .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-4q76aICw7qZqyhue .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-4q76aICw7qZqyhue .cluster text{fill:#333;}#mermaid-svg-4q76aICw7qZqyhue .cluster span{color:#333;}#mermaid-svg-4q76aICw7qZqyhue div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-4q76aICw7qZqyhue .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-4q76aICw7qZqyhue rect.text{fill:none;stroke-width:0;}#mermaid-svg-4q76aICw7qZqyhue .icon-shape,#mermaid-svg-4q76aICw7qZqyhue .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4q76aICw7qZqyhue .icon-shape p,#mermaid-svg-4q76aICw7qZqyhue .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-4q76aICw7qZqyhue .icon-shape .label rect,#mermaid-svg-4q76aICw7qZqyhue .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4q76aICw7qZqyhue .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-4q76aICw7qZqyhue .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-4q76aICw7qZqyhue :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} AI应用或Agent
MCP Client
MCP Server
Tool
企业API
ERP CRM WMS BI 数据库
MCP Server 可以向 AI 暴露:
- Tools:可执行动作;
- Resources:数据、文档、上下文;
- Prompts:预设模板。
MCP 不会自动解决什么
MCP 并不会替代:
- API 网关;
- 数据中台;
- 工作流引擎;
- ETL;
- 消息队列;
- 调度系统;
- 权限系统。
它重点解决的是 AI 接入问题。
六、四者放在一起是什么关系
完整关系可以写成一句话:
SOP 定义规则,Skill 组织任务,MCP 提供连接,Tool 执行动作,应用系统保存真实结果。
流程如下:
#mermaid-svg-qtTJTehywO3NA4QW{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-qtTJTehywO3NA4QW .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-qtTJTehywO3NA4QW .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-qtTJTehywO3NA4QW .error-icon{fill:#552222;}#mermaid-svg-qtTJTehywO3NA4QW .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-qtTJTehywO3NA4QW .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-qtTJTehywO3NA4QW .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-qtTJTehywO3NA4QW .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-qtTJTehywO3NA4QW .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-qtTJTehywO3NA4QW .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-qtTJTehywO3NA4QW .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-qtTJTehywO3NA4QW .marker{fill:#333333;stroke:#333333;}#mermaid-svg-qtTJTehywO3NA4QW .marker.cross{stroke:#333333;}#mermaid-svg-qtTJTehywO3NA4QW svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-qtTJTehywO3NA4QW p{margin:0;}#mermaid-svg-qtTJTehywO3NA4QW .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-qtTJTehywO3NA4QW .cluster-label text{fill:#333;}#mermaid-svg-qtTJTehywO3NA4QW .cluster-label span{color:#333;}#mermaid-svg-qtTJTehywO3NA4QW .cluster-label span p{background-color:transparent;}#mermaid-svg-qtTJTehywO3NA4QW .label text,#mermaid-svg-qtTJTehywO3NA4QW span{fill:#333;color:#333;}#mermaid-svg-qtTJTehywO3NA4QW .node rect,#mermaid-svg-qtTJTehywO3NA4QW .node circle,#mermaid-svg-qtTJTehywO3NA4QW .node ellipse,#mermaid-svg-qtTJTehywO3NA4QW .node polygon,#mermaid-svg-qtTJTehywO3NA4QW .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-qtTJTehywO3NA4QW .rough-node .label text,#mermaid-svg-qtTJTehywO3NA4QW .node .label text,#mermaid-svg-qtTJTehywO3NA4QW .image-shape .label,#mermaid-svg-qtTJTehywO3NA4QW .icon-shape .label{text-anchor:middle;}#mermaid-svg-qtTJTehywO3NA4QW .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-qtTJTehywO3NA4QW .rough-node .label,#mermaid-svg-qtTJTehywO3NA4QW .node .label,#mermaid-svg-qtTJTehywO3NA4QW .image-shape .label,#mermaid-svg-qtTJTehywO3NA4QW .icon-shape .label{text-align:center;}#mermaid-svg-qtTJTehywO3NA4QW .node.clickable{cursor:pointer;}#mermaid-svg-qtTJTehywO3NA4QW .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-qtTJTehywO3NA4QW .arrowheadPath{fill:#333333;}#mermaid-svg-qtTJTehywO3NA4QW .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-qtTJTehywO3NA4QW .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-qtTJTehywO3NA4QW .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-qtTJTehywO3NA4QW .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-qtTJTehywO3NA4QW .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-qtTJTehywO3NA4QW .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-qtTJTehywO3NA4QW .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-qtTJTehywO3NA4QW .cluster text{fill:#333;}#mermaid-svg-qtTJTehywO3NA4QW .cluster span{color:#333;}#mermaid-svg-qtTJTehywO3NA4QW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-qtTJTehywO3NA4QW .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-qtTJTehywO3NA4QW rect.text{fill:none;stroke-width:0;}#mermaid-svg-qtTJTehywO3NA4QW .icon-shape,#mermaid-svg-qtTJTehywO3NA4QW .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-qtTJTehywO3NA4QW .icon-shape p,#mermaid-svg-qtTJTehywO3NA4QW .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-qtTJTehywO3NA4QW .icon-shape .label rect,#mermaid-svg-qtTJTehywO3NA4QW .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-qtTJTehywO3NA4QW .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-qtTJTehywO3NA4QW .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-qtTJTehywO3NA4QW :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 用户提出任务
AI或Agent
Skill
SOP规则
MCP
Tool
企业API
ERP CRM WMS BI OA
七、用一个真实业务场景理解
用户说:
text
分析最近30天的滞销商品,并给出处理建议。
1. SOP 做什么
SOP 规定:
- 连续 14 天无销量且库存大于 0,视为滞销;
- 周转天数超过 90 天,视为高库存;
- 降价超过 10% 需要主管审批;
- 商品下架必须由运营确认。
2. Skill 做什么
Skill 负责:
text
识别时间范围
→ 查询销量
→ 查询库存
→ 查询成本和毛利
→ 根据SOP判断
→ 生成促销、调拨、降价或下架建议
→ 触发审批
3. Tool 做什么
Tool 负责:
text
query_sales_data
query_inventory
query_product_margin
create_price_approval
create_product_offline_request
4. MCP 做什么
MCP 让 AI 能够统一调用:
- 销售数据 MCP Server;
- 库存 MCP Server;
- 商品 MCP Server;
- OA 审批 MCP Server。
5. 应用系统做什么
- BI 返回销售指标;
- WMS 返回库存;
- ERP 返回成本;
- OA 完成审批;
- 商品系统完成下架或调价。
八、有了 MCP,还要不要 API
当然要。
推荐关系不是:
text
MCP 替代 API
而是:
text
MCP 建立在 API 之上
正确架构:
text
AI / Agent
↓
MCP Client
↓
MCP Server
↓
Tool
↓
API
↓
业务系统
API 适合
- 系统之间固定调用;
- 高并发交易;
- 微服务通信;
- 前后端交互;
- 数据同步。
MCP 适合
- AI 动态选择工具;
- 自然语言驱动操作;
- 多系统能力统一暴露;
- Agent 多步骤执行;
- 外部资源读取。
九、企业落地时最容易犯的错误
1. 将所有 API 直接暴露给大模型
这样会导致 Tool 数量爆炸,参数复杂,模型很难稳定选择。
2. 把 SOP 原文直接复制到 Prompt
SOP 面向人工,往往不够结构化。需要转成:
- 可执行步骤;
- 判断规则;
- Tool 调用;
- 异常分支;
- 审批节点。
3. 给 AI 过大的写权限
AI 不应该直接获得数据库超级账号,也不应该绕过审批修改价格、付款或删除数据。
4. Tool 粒度过细
大量"查询某个字段"的 Tool 会让 Agent 调用链过长。
5. 只关注能不能调用,不关注能不能审计
企业级 Agent 必须记录:
text
用户是谁
使用了哪个Skill
调用了哪个Tool
传入了什么参数
是否经过审批
最终是否成功
十、推荐的企业分层架构
text
第一层:业务应用
ERP、CRM、WMS、BI、OA、数据库、第三方平台
第二层:API与数据服务
API网关、微服务、SQL服务、文件服务、消息服务
第三层:Tool
查询订单、查询库存、创建工单、修改状态
第四层:MCP
订单MCP、商品MCP、库存MCP、数据MCP
第五层:Skill与SOP
销售分析Skill、库存诊断Skill、商品上架Skill
第六层:AI应用
企业助手、智能问数、运营Agent、客服Agent
十一、最后用一张表结束
| 你要解决的问题 | 应使用的概念 |
|---|---|
| 业务流程怎么规定 | SOP |
| AI 如何完成一类任务 | Skill |
| 如何执行一个具体动作 | Tool |
| AI 如何统一连接外部系统 | MCP |
| 系统之间如何稳定通信 | API |
| 固定审批如何流转 | 工作流 |
| 大批量数据如何同步 | ETL |
| 无接口系统如何自动操作 | RPA |
总结
真正合理的企业 AI 架构,不是只部署一个 MCP Server,也不是给大模型注册几十个 API。
它应该形成以下闭环:
text
SOP 定义规则
→ Skill 形成任务能力
→ MCP 连接外部系统
→ Tool 执行具体动作
→ API 调用现有系统
→ 业务结果正式落库
→ 全过程审计
当这几个层次被划分清楚后,企业 Agent 才能从"演示效果"走向"稳定生产应用"。
CSDN 文章二
企业如何落地 MCP、Skill 与 Tool:从现有 API 到智能 Agent 的完整架构
文章摘要:
企业已经有 ERP、CRM、WMS、BI、OA、API 网关和数据平台,是否还需要 MCP?应该怎样划分 Tool?Skill 如何引用 SOP?本文给出一套可直接落地的分层架构、实施步骤、安全设计和实战案例。
推荐标签: MCP AI Agent 企业数字化 系统架构 大模型应用开发
前言:企业缺的不是接口,而是 AI 可理解的能力层
很多企业在建设大模型应用时,会发现一个现实问题:
系统接口很多,但 AI 仍然不知道什么时候该调用哪个接口。
企业可能已经有:
- ERP;
- WMS;
- CRM;
- BI;
- OA;
- API 网关;
- 数据中台;
- 数百个内部 API。
这些能力主要是为传统应用系统设计的。它们通常具备:
- 技术参数多;
- 业务语义弱;
- 接口粒度不统一;
- 权限规则复杂;
- 错误码不适合自然语言交互。
因此,企业接入 MCP 的重点,不是把现有 API 全部"搬过去",而是建设一层适合 AI 使用的业务能力。
一、推荐的企业 AI 分层架构
一套完整架构可以分为六层:
#mermaid-svg-gk998kiVE76V2jxH{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-gk998kiVE76V2jxH .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-gk998kiVE76V2jxH .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-gk998kiVE76V2jxH .error-icon{fill:#552222;}#mermaid-svg-gk998kiVE76V2jxH .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gk998kiVE76V2jxH .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-gk998kiVE76V2jxH .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gk998kiVE76V2jxH .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gk998kiVE76V2jxH .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-gk998kiVE76V2jxH .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gk998kiVE76V2jxH .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gk998kiVE76V2jxH .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gk998kiVE76V2jxH .marker.cross{stroke:#333333;}#mermaid-svg-gk998kiVE76V2jxH svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gk998kiVE76V2jxH p{margin:0;}#mermaid-svg-gk998kiVE76V2jxH .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-gk998kiVE76V2jxH .cluster-label text{fill:#333;}#mermaid-svg-gk998kiVE76V2jxH .cluster-label span{color:#333;}#mermaid-svg-gk998kiVE76V2jxH .cluster-label span p{background-color:transparent;}#mermaid-svg-gk998kiVE76V2jxH .label text,#mermaid-svg-gk998kiVE76V2jxH span{fill:#333;color:#333;}#mermaid-svg-gk998kiVE76V2jxH .node rect,#mermaid-svg-gk998kiVE76V2jxH .node circle,#mermaid-svg-gk998kiVE76V2jxH .node ellipse,#mermaid-svg-gk998kiVE76V2jxH .node polygon,#mermaid-svg-gk998kiVE76V2jxH .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gk998kiVE76V2jxH .rough-node .label text,#mermaid-svg-gk998kiVE76V2jxH .node .label text,#mermaid-svg-gk998kiVE76V2jxH .image-shape .label,#mermaid-svg-gk998kiVE76V2jxH .icon-shape .label{text-anchor:middle;}#mermaid-svg-gk998kiVE76V2jxH .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-gk998kiVE76V2jxH .rough-node .label,#mermaid-svg-gk998kiVE76V2jxH .node .label,#mermaid-svg-gk998kiVE76V2jxH .image-shape .label,#mermaid-svg-gk998kiVE76V2jxH .icon-shape .label{text-align:center;}#mermaid-svg-gk998kiVE76V2jxH .node.clickable{cursor:pointer;}#mermaid-svg-gk998kiVE76V2jxH .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-gk998kiVE76V2jxH .arrowheadPath{fill:#333333;}#mermaid-svg-gk998kiVE76V2jxH .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-gk998kiVE76V2jxH .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-gk998kiVE76V2jxH .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gk998kiVE76V2jxH .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-gk998kiVE76V2jxH .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gk998kiVE76V2jxH .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-gk998kiVE76V2jxH .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-gk998kiVE76V2jxH .cluster text{fill:#333;}#mermaid-svg-gk998kiVE76V2jxH .cluster span{color:#333;}#mermaid-svg-gk998kiVE76V2jxH div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-gk998kiVE76V2jxH .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-gk998kiVE76V2jxH rect.text{fill:none;stroke-width:0;}#mermaid-svg-gk998kiVE76V2jxH .icon-shape,#mermaid-svg-gk998kiVE76V2jxH .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-gk998kiVE76V2jxH .icon-shape p,#mermaid-svg-gk998kiVE76V2jxH .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-gk998kiVE76V2jxH .icon-shape .label rect,#mermaid-svg-gk998kiVE76V2jxH .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-gk998kiVE76V2jxH .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-gk998kiVE76V2jxH .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-gk998kiVE76V2jxH :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} AI应用层
智能助手 智能问数 运营Agent 客服Agent
Skill与SOP层
任务能力 业务规则 工具编排
MCP接入层
业务域MCP Server
Tool能力层
查询 计算 创建 修改 审批
接口与数据服务层
API网关 数据服务 SQL服务 文件服务
企业应用层
ERP CRM WMS BI OA 数据库 第三方平台
这六层分别承担不同职责。
1. 企业应用层
保存真实业务数据,完成正式交易。
例如:
- ERP 保存订单、商品、采购和成本;
- WMS 保存库存;
- CRM 保存客户信息;
- OA 保存审批;
- BI 提供指标;
- NAS 保存图片、视频和文档。
2. 接口与数据服务层
负责把系统能力稳定暴露出来,包括:
- REST API;
- GraphQL;
- RPC;
- SQL 服务;
- 数据服务;
- 文件服务;
- 消息队列;
- 搜索服务。
3. Tool 能力层
将技术接口封装成 AI 能理解的业务动作。
4. MCP 接入层
让不同 AI 客户端用统一方式发现和调用 Tool、Resource 和 Prompt。
5. Skill 与 SOP 层
将业务知识、规则、步骤和 Tool 组合成可复用任务能力。
6. AI 应用层
面向用户提供自然语言交互和业务应用。
二、为什么不能直接把所有 API 注册成 Tool
假设 ERP 中存在如下接口:
text
GET /product/base
GET /product/price
GET /product/cost
GET /product/status
GET /warehouse/stock
GET /warehouse/locked
GET /purchase/in-transit
直接注册成 Tool 后,AI 需要理解大量底层细节。
更合理的方式是封装成业务能力:
text
query_product_profile
query_inventory_status
calculate_product_margin
例如 query_inventory_status 内部可以完成:
- 查询可售库存;
- 查询锁定库存;
- 查询在途采购;
- 做仓库权限过滤;
- 合并字段;
- 返回统一结果。
这就是 Tool 层的价值。
Tool 设计原则
原则一:名称表达业务动作
推荐:
text
query_order_summary
create_purchase_request
submit_price_approval
不推荐:
text
call_api_01
execute_service
get_data
原则二:输入尽量结构化
json
{
"start_date": "2026-07-01",
"end_date": "2026-07-30",
"shop_ids": ["S001", "S002"],
"sku_ids": ["SKU001"]
}
原则三:输出保持稳定
json
{
"success": true,
"items": [],
"warnings": [],
"request_id": "xxx"
}
原则四:读写分离
text
只读Tool
query_order
query_inventory
query_customer
写入Tool
update_price
create_purchase_order
delete_product
写入 Tool 必须加强权限和审批。
原则五:避免超大 Tool
不要设计一个"完成全部运营工作"的 Tool。Tool 应可复用、可审计、可测试。
三、MCP Server 应该怎样划分
企业常见错误是"一个 API 对应一个 MCP Server"。
更合理的方式是按照业务域划分:
text
订单域 MCP Server
├── query_order_summary
├── query_order_detail
├── query_refund_orders
└── create_order_note
商品域 MCP Server
├── query_product_profile
├── query_product_cost
├── update_product_status
└── submit_price_approval
库存域 MCP Server
├── query_inventory_status
├── calculate_turnover
├── create_transfer_request
└── create_purchase_request
数据分析 MCP Server
├── query_metric
├── execute_analysis
└── export_report
为什么按业务域划分
这样有利于:
- 权限隔离;
- 团队维护;
- 版本管理;
- 工具发现;
- 业务复用;
- 故障隔离;
- 日志分析。
四、Skill 如何组织多个 Tool
Skill 不是 Tool 的简单列表,而是任务执行逻辑。
以"销售异常分析 Skill"为例:
text
目标:
识别销售大幅下降的商品并解释原因。
输入:
时间范围、店铺范围、类目范围。
执行步骤:
1. 查询销售额、销量和订单量
2. 与上期和去年同期比较
3. 查询库存、价格和活动状态
4. 查询退款率和差评率
5. 识别主要异常原因
6. 生成处理建议
7. 输出异常商品清单
工具:
query_sales_metrics
query_inventory_status
query_price_history
query_campaign_status
query_refund_metrics
query_review_summary
风险控制:
只读分析,不允许直接调价或下架。
输出:
摘要、异常清单、原因、建议、数据口径。
Skill 与 SOP 的关系
SOP 决定业务标准,例如:
text
销售额环比下降超过30%,且库存正常,进入重点诊断。
Skill 则负责:
text
查询数据
→ 计算环比
→ 判断是否超过30%
→ 继续查询库存和价格
→ 解释原因
因此:
SOP 是规则来源,Skill 是规则的智能执行方式。
五、实战案例:智能补货 Agent
1. 用户提出任务
text
检查未来7天可能缺货的商品,并生成补货建议。
2. 补货 SOP
text
1. 计算未来7天预测销量
2. 查询可售库存和在途库存
3. 若库存加在途小于预测销量,则标记缺货
4. 计算建议补货数量
5. 查询供应商交期和最小起订量
6. 生成补货申请
7. 金额超过5万元需要财务审批
3. Skill 执行
text
识别仓库和商品范围
→ 查询销售历史
→ 调用预测Tool
→ 查询库存和在途
→ 查询供应商信息
→ 根据SOP计算补货量
→ 生成补货建议
→ 用户确认后创建申请
4. Tool 列表
text
query_sales_history
forecast_7d_demand
query_inventory_status
query_supplier_lead_time
query_minimum_order_quantity
calculate_replenishment_quantity
create_purchase_request
create_finance_approval
5. MCP 协同
OA审批 ERP WMS BI系统 MCP 补货Skill 补货Agent 用户 OA审批 ERP WMS BI系统 MCP 补货Skill 补货Agent 用户 #mermaid-svg-Gp9HadU7jIRTvU98{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Gp9HadU7jIRTvU98 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Gp9HadU7jIRTvU98 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Gp9HadU7jIRTvU98 .error-icon{fill:#552222;}#mermaid-svg-Gp9HadU7jIRTvU98 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Gp9HadU7jIRTvU98 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Gp9HadU7jIRTvU98 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Gp9HadU7jIRTvU98 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Gp9HadU7jIRTvU98 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Gp9HadU7jIRTvU98 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Gp9HadU7jIRTvU98 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Gp9HadU7jIRTvU98 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Gp9HadU7jIRTvU98 .marker.cross{stroke:#333333;}#mermaid-svg-Gp9HadU7jIRTvU98 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Gp9HadU7jIRTvU98 p{margin:0;}#mermaid-svg-Gp9HadU7jIRTvU98 .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-Gp9HadU7jIRTvU98 text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-Gp9HadU7jIRTvU98 .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-Gp9HadU7jIRTvU98 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-Gp9HadU7jIRTvU98 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-Gp9HadU7jIRTvU98 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-Gp9HadU7jIRTvU98 #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-Gp9HadU7jIRTvU98 .sequenceNumber{fill:white;}#mermaid-svg-Gp9HadU7jIRTvU98 #sequencenumber{fill:#333;}#mermaid-svg-Gp9HadU7jIRTvU98 #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-Gp9HadU7jIRTvU98 .messageText{fill:#333;stroke:none;}#mermaid-svg-Gp9HadU7jIRTvU98 .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-Gp9HadU7jIRTvU98 .labelText,#mermaid-svg-Gp9HadU7jIRTvU98 .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-Gp9HadU7jIRTvU98 .loopText,#mermaid-svg-Gp9HadU7jIRTvU98 .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-Gp9HadU7jIRTvU98 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-Gp9HadU7jIRTvU98 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-Gp9HadU7jIRTvU98 .noteText,#mermaid-svg-Gp9HadU7jIRTvU98 .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-Gp9HadU7jIRTvU98 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-Gp9HadU7jIRTvU98 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-Gp9HadU7jIRTvU98 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-Gp9HadU7jIRTvU98 .actorPopupMenu{position:absolute;}#mermaid-svg-Gp9HadU7jIRTvU98 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-Gp9HadU7jIRTvU98 .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-Gp9HadU7jIRTvU98 .actor-man circle,#mermaid-svg-Gp9HadU7jIRTvU98 line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-Gp9HadU7jIRTvU98 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 检查未来7天缺货商品 执行补货Skill 查询销售历史 获取销量数据 返回销量 查询库存与在途 获取库存 获取采购在途 返回库存 返回在途 计算补货建议 返回建议清单 请求确认 确认创建申请 执行写入步骤 创建采购申请 写入申请 金额超限时发起审批 创建审批
六、MCP 与现有 API 的正确关系
错误理解
text
引入MCP后,原有API可以全部废弃。
正确理解
text
MCP是AI适配层,API仍然是系统能力基础。
推荐结构:
text
AI应用
↓
Skill
↓
MCP Client
↓
MCP Server
↓
Tool
↓
API网关
↓
业务系统
为什么 API 仍然重要
API 继续承担:
- 高并发;
- 事务一致性;
- 服务治理;
- 限流;
- 鉴权;
- 微服务通信;
- 前后端调用;
- 批处理集成。
MCP 不应绕过现有 API 网关和权限体系。
七、MCP 与工作流如何协同
Agent 适合动态决策,工作流适合确定性执行。
Agent 适合
- 识别用户意图;
- 选择分析方法;
- 动态调用 Tool;
- 解释结果;
- 生成建议。
工作流适合
- 固定审批;
- 节点流转;
- 超时提醒;
- 事务状态;
- 重试补偿;
- SLA 管理。
推荐模式:
text
Agent负责判断和发起
工作流负责执行和审批
例如,AI 判断某商品需要调价,但真正的调价过程应进入工作流:
text
AI生成调价建议
→ 用户确认
→ 发起价格审批
→ 主管审批
→ 系统执行调价
→ 回写执行结果
八、安全设计是生产落地的关键
1. 最小权限
不同用户和不同 Skill 只能访问必要的 Tool。
2. 人工确认
以下操作建议强制确认:
- 修改价格;
- 发布商品;
- 创建采购单;
- 删除数据;
- 批量通知;
- 发起付款。
3. 幂等控制
避免 Agent 重试导致重复创建订单或工单。
建议写入 Tool 支持:
text
idempotency_key
4. 参数校验
MCP Server 不能盲目信任模型生成的参数,必须校验:
- 日期范围;
- 数量范围;
- 金额范围;
- 用户权限;
- 数据归属;
- 操作对象状态。
5. 审计日志
至少记录:
text
用户
请求
Skill
Tool
参数
权限结果
审批编号
执行结果
时间
6. 敏感数据保护
- 对客户手机号、地址等数据脱敏;
- 避免将敏感数据无控制地发送给外部模型;
- 对外部模型采用字段最小化;
- 对数据库查询增加行列权限。
九、企业落地路线图
阶段一:只读查询
先建设低风险场景:
- 查订单;
- 查库存;
- 查销售指标;
- 查商品资料;
- 生成日报。
目标是验证:
- Tool 设计是否合理;
- MCP 是否稳定;
- 权限是否正确;
- AI 是否会选对工具。
阶段二:分析与建议
建设:
- 库存诊断;
- 销售异常分析;
- 客诉归因;
- 商品优化建议;
- 采购建议。
此时 AI 只给建议,不直接写入。
阶段三:人工确认后写入
增加:
- 创建工单;
- 创建采购申请;
- 提交调价审批;
- 创建营销任务。
阶段四:工作流闭环
将 AI、MCP、Tool、审批流和业务系统连接起来,实现状态回写和异常补偿。
阶段五:多 Agent 协作
在基础能力稳定后,再考虑:
- 商品 Agent;
- 库存 Agent;
- 销售 Agent;
- 客服 Agent;
- 管理 Agent。
避免一开始就建设"全能 Agent"。
十、项目验收指标
一个 MCP 或 Agent 项目不能只看"能否调用成功",还应关注:
| 指标 | 说明 |
|---|---|
| Tool 选择准确率 | 是否调用了正确工具 |
| 参数准确率 | 参数是否完整、合法 |
| 任务完成率 | 最终是否完成用户目标 |
| 人工接管率 | 多少任务需要人工修正 |
| 平均调用次数 | 是否存在无效调用 |
| 接口失败率 | Tool 和底层系统稳定性 |
| 权限拦截率 | 是否出现越权尝试 |
| 业务收益 | 节省时间、减少错误或提升转化 |
十一、建议的工程目录
text
enterprise-ai-platform/
├── mcp-servers/
│ ├── order-mcp/
│ ├── product-mcp/
│ ├── inventory-mcp/
│ └── analytics-mcp/
├── tools/
│ ├── order/
│ ├── product/
│ ├── inventory/
│ └── approval/
├── skills/
│ ├── sales-analysis/
│ ├── inventory-diagnosis/
│ └── replenishment/
├── sops/
│ ├── sales/
│ ├── inventory/
│ └── purchasing/
├── workflows/
├── permissions/
├── audit/
└── tests/
这种结构有利于:
- 业务域隔离;
- Skill 和 Tool 独立测试;
- SOP 版本管理;
- 权限集中管理;
- 审计和问题追踪。
十二、结语
企业落地 MCP,不应从"部署一个 MCP Server"开始,而应从业务场景和能力分层开始。
正确顺序是:
text
选择业务场景
→ 梳理SOP
→ 盘点API和数据
→ 封装Tool
→ 建设MCP Server
→ 设计Skill
→ 接入审批和工作流
→ 建立审计与监控
最终目标不是让 AI 调用更多接口,而是让 AI:
- 在正确的场景;
- 按正确的流程;
- 调用正确的工具;
- 在正确的权限范围内;
- 完成可审计、可回滚的业务任务。
只有做到这一点,MCP、Skill 和 Agent 才真正进入企业生产环境,而不是停留在演示阶段。