
【第 2 讲】智能体的“USB-C 革命”:彻底厘清 Tools、MCP 与 Skills 的分工
NOTE
专栏导航:👈 上一讲:【第 1 讲】告别玩具时代:智能体软件工程 (ASDLC) 全景地图👉 下一讲:【第 3 讲】计算范式演进:为什么 Code Mode 正在淘汰传统 Tool Calling?
一、 为什么我们总是混淆 MCP 与 Skills?
在智能体系统研发过程中,常有两类典型的认知困惑:
“Anthropic 推出了 MCP(Model Context Protocol),我们是不是就不需要定义 Agent Skills 了?” “系统内部已经封装了数十个业务 Tool,为什么还要额外引入一层 MCP?”
这种认知混淆往往导致架构设计的严重劣化:要么把所有业务推理逻辑硬编码在 Prompt(Skill)中,导致无法对接异构基础设施;要么把所有外部数据读写做成缺乏规范的混乱 Tools,导致模型在面对海量接口定义时产生上下文混淆。
要构建高内聚、低耦合的企业级智能体系统,首先必须看懂业界的 “4 层标准解耦架构模型”。
二、 4 层标准架构模型:具象化解耦
为了清晰理解这四者的分工边界,我们借助现代精密制造产线的系统工程进行类比:

query_sql()、send_email()、run_bash()。 | |||
三、 MCP 的本质:通过标准接口调用外部计算模块,突破单体算力边界
很多开发者对 MCP 的理解仅仅停留在“读写数据的接口”,这低估了它的系统架构价值。
大语言模型(LLM)擅长基于概率的高维语义关联与逻辑推演,但受限于神经网络的天然特性,它在 确定性数学计算(如求解高阶微分方程)、代码编译运行(如在隔离沙盒里执行 Python 脚本)、物理设备控制 以及 复杂事务处理(如数据库 ACID 保证) 等任务上存在物理边界。

IMPORTANT
MCP 的核心技术本质:MCP 是一套标准化的远程过程调用(RPC)协议接口。它允许大模型将自己不擅长、无法在脑内完成的确定性计算任务,安全、受控地“委派(Delegate)”给外部专用的计算模块去执行,再将计算结果注入模型上下文,从而实现系统级能力的无限扩展!
为什么说这是 AI 领域的“USB-C 革命”?
在统一协议建立之前,大模型每对接一个外部计算模块(如数学求解器或代码沙盒),都需要定制编写专有适配逻辑。当存在
传统模式:需要开发 次硬编码集成,维护成本呈指数级发散; MCP 架构:外部计算模块只需封装为标准 MCP Server,任何支持 MCP 的智能体即可通过标准接口即插即用,将工程集成复杂度从 骤降为 。
MCP 暴露的三大标准能力类型
Resources(只读资源):向模型提供上下文数据的标准读取通道(类似文件或只读数据库视图),不产生任何写入副作用; Tools(工具动作):允许模型发起的具体写操作或外部 RPC 调用(如提交代码、修改工单状态); Prompts(提示模版):服务端预置的高质量交互模板,帮助客户端以最佳模式与该服务交互。
四、 运行时协同:智能体如何判断该调用哪个 MCP 接口?
在实际运行时,智能体判断“该调用哪个 MCP 接口”并不是靠单点碰运气,而是依赖一个由 Skill(认知层)

1. 第一级:Skill 负责“宏观业务路径规划”(What & When)
大模型自身并不了解企业特有的业务规则与先后次序。如果没有 Skill,把数十个 MCP 接口直接扔给模型,它就会像没有规程的新手一样盲目试探。
形态:Skill 是一个结构化的专业知识与操作规程文件(如 financial_audit/SKILL.md);核心职责:显式定义业务分支与工具调用序列: “在执行财务复核时:步骤 1:必须先调用
erp_mcp.get_monthly_ledger读取本月总账;步骤 2:在本地计算差额,若差额 > 5%,调用clickhouse_mcp.query_logs交叉验证;步骤 3:若确认异常,调用jira_mcp.create_issue挂起审批工单。”
结论:Skill 决定了智能体在什么阶段、出于什么目的、去寻找哪一类 MCP 工具。
2. 第二级:动态检索与按需召回(Tool Discovery / Tool RAG)
当企业挂载了 50 个 MCP Server、包含上千个 API 时,系统不可能把所有工具定义全量塞入上下文窗口。此时 Harness 基础设施采用 两阶段动态发现(Progressive Discovery):
意图路由:Agent 根据当前激活的 Skill 阶段目标,发起内部元搜索 search_tools("query ledger");动态挂载:系统仅将最相关的 2 ~ 3 个 MCP Server 的工具定义动态加载进当前上下文,其余无关工具完全不占用 Token 预算。
3. 第三级:MCP Tool Description 负责“微观精确对齐”(How)
当目标 MCP 工具被加载进上下文后,智能体依赖 MCP 协议中的语义元数据(JSON Schema) 决定具体调用哪个函数、填入什么参数:
{"name":"query_ledger","description":"查询指定周期的企业财务总账。当需要比对实际发生额与预算时使用。","parameters":{"type":"object","properties":{"start_date":{"type":"string","description":"起始日期 YYYY-MM-DD"},"account_id":{"type":"string","description":"财务科目编号"}},"required":["start_date","account_id"]}}大模型的注意力机制读取 description 与参数约束,完成自然语言意图与代码函数之间的 语义插槽填充(Slot Filling),输出精确的结构化调用指令。
五、 为什么要将 Skill 与 MCP 严格分离?
在架构设计中,必须避免在 MCP Server 中硬编码具体的业务分析策略,或在 Skill 中绑定具体的底层数据连接实现。

优雅解耦带来的两大工程红利:
红利一:基础设施自由替换当企业的底层数据引擎从 MySQL 迁移到 ClickHouse 时,负责财务审计的智能体其内部的 “审计分析 Skill” 一行代码都不用修改,只需在底层的 Harness 配置中挂载新的 MCP Server 即可完成平滑迁移。 红利二:认知技能独立热升级当算法团队沉淀出更高级的 “代码漏洞审查 Skill” 时,无需重新适配企业内部各个微服务系统,直接在技能仓库中升级版本,原有的全部 MCP 工具链即可无缝复用。
六、 本讲小结与核心思考题
TIP
核心结论:“MCP 解决的是连接的世界(How to connect),Skill 解决的是思考的世界(How to reason),而 Agent 则是将二者熔铸为生产力的决策中枢。”
💡 留给你的思考题:
当智能体接入的企业 MCP Server 数量达到数百个、包含数千个 API 端点时,如果把所有的工具描述全量塞给大模型,会导致什么严重的计算与上下文问题?业界又是如何通过“计算范式演进”来破解这一难题的?
NOTE
下一讲指引:为什么静态 Tool Calling 会导致上百万 Token 的接口定义膨胀与上下文溢出?Cloudflare 和 Anthropic 为什么全面转向 Code Mode?请看:👉 【第 3 讲】计算范式演进:为什么 Code Mode 正在淘汰传统 Tool Calling?
夜雨聆风