Agent工坊

【Agent工坊】2026年AI Agent协议之战:MCP vs CLI vs A2A vs Skills 选型实战指南

MCP月下载量突破1.1亿次,但"CLI当立"的声音同样响亮。Google的A2A、Anthropic的Skills——四大协议到底怎么选?本文给你一份可落地的决策框架。

引言:不要让协议之争成为你的内耗

"MCP已死,CLI当立。"

2026年初,这句话在AI开发者圈子里刷了屏。论据看起来很硬:CLI更简洁、Token更省、模型天然就会用。相比之下,MCP把工具描述一次性灌进上下文窗口,Token开销大得吓人。

但就在2026年4月,MCP协议的联合创建者 David Soria Parra 在 AI Engineer 大会上给出了截然不同的叙事——

MCP月下载量已达1.1亿次,增长速度超过当年的React。OpenAI的Agents SDK在用,Google的ADK在用,LangChain在用,成千上万个你可能没听说过的框架也在用。

所以,到底谁对?

答案是:这个争论本身就是错的。

David的原话是:"如果有人告诉你,有一个方案可以解决你所有的连接问题……那他们大概率是错的。"

2026年的AI Agent,不是靠某一个协议打天下的。它需要一整套连接栈——Skills、CLI、MCP、A2A——各自解决不同层面的问题,同时无缝协作。

本文带你彻底搞懂这四大协议的本质区别、适用场景、以及如何在实际项目中混搭使用。

一、四大协议定位速览

在深入每个协议之前,先用一张表建立全局认知:

协议解决的问题核心理念Token效率企业级能力
MCPAI连接外部工具/数据Schema优先,JSON-RPC 2.0中等(可优化)⭐⭐⭐⭐⭐
CLI本地执行、文件操作Unix哲学,管道组合⭐⭐⭐⭐⭐⭐⭐
A2AAgent之间通信协作任务导向,能力发现中等⭐⭐⭐
Skills领域知识注入Markdown文件,渐进加载⭐⭐⭐⭐⭐⭐

记住这个框架,后面我们逐个深挖。

四大Agent协议对比速览

▲ 四大Agent协议对比速览:MCP、CLI、A2A、Skills核心差异一览

二、MCP:争议最大,但不可或缺

2.1 MCP到底是什么?

MCP(Model Context Protocol)是Anthropic在2024年底推出的开放协议,本质上是一套让AI模型安全地连接外部工具、数据源和服务的标准接口。

它的核心架构非常简单:

  • MCP Server:暴露工具(tools)、资源(resources)、提示模板(prompts)
  • MCP Client:AI宿主程序(Claude、Cursor等)通过JSON-RPC 2.0调用Server
  • 传输层:支持HTTP + SSE,2026年将新增无状态协议
MCP核心架构

▲ MCP核心架构:Server-Client通信模型,JSON-RPC 2.0协议层

一个典型的MCP工具定义长这样:

def submit_expense(

    amount: Annotated[float, "金额(美元)"],

    date: Annotated[date, "日期,格式YYYY-MM-DD"],

    category: Annotated[Category, "费用类别:travel/meals/office"]

) -> str:

    """提交新的报销申请以供审批。"""

关键设计原则:函数名、参数名、描述注释一个都不能少。LLM在明确知道预期时,调用准确率和速度都会显著提升。

2.2 MCP真正的价值在哪?

很多人把MCP理解成"让模型调API",这是严重低估。

MCP真正的价值在于企业级连接层的标准化。当Agent进入真实工作环境时,它面临的问题远不止"能不能调一个工具":

  • 谁授权的?能访问什么数据?
  • 任务跑多久?中途断了怎么办?
  • 不同客户端行为一致吗?
  • 员工离职后权限怎么收回?
  • 审计日志在哪里?

这些问题很"无聊",但企业级系统没它们就活不下去。MCP解决的正是这些"无聊但重要"的问题——OAuth集成、治理策略、审计跟踪、跨平台一致性。

2.3 MCP的三个致命弱点(及解法)

弱点1:上下文膨胀

最常被批评的一点——把所有工具描述一次性塞给模型,上下文窗口瞬间爆满。

解法:渐进式发现(Progressive Discovery)

不要一开始就加载所有工具。给模型一个"工具搜索引擎",让它按需查找和加载。实测效果:

  • Spring AI在28个工具场景下,可削减34-64%的Token
  • Cursor的A/B测试显示,使用MCP的会话总Token消耗减少46.9%
  • 整体上下文使用量可降低5倍

弱点2:顺序调用延迟高

模型调一个工具→拿结果→推理→调下一个→循环。每一步都是推理开销。

解法:程序化工具调用(Code Mode)

给模型一个REPL环境(V8 isolate或Python沙箱),让它写一段脚本一次性组合多个工具:

// 不用反复推理,一次写完执行

const issue = await mcp.call_tool('linear_get_issue', { id: 'ENG-5121' });

const prs = await mcp.call_tool('github_list_prs', { repo: 'frontend' });

const summary = await mcp.call_tool('summarize', { text: prs.join('\n') });

// 结构化输出,一次返回

推理贵且慢,脚本便宜且稳定。这是Agent从"会调工具"走向"会组织工具"的关键一步。

弱点3:Server质量参差不齐

GitHub上大量MCP Server是"把REST API一对一映射",完全没有为Agent设计。

解法:为Agent设计,而非为人类设计

三个核心原则:

  1. 清晰的意图——每个工具只做一件事,描述精准
  2. 拥抱Code Mode——暴露执行环境,让模型编排复杂工作流
  3. 交付MCP App——不只返回数据,直接交付可渲染的UI资源

2.4 MCP 2026路线图

David在演讲中透露了几个关键方向:

  • 无状态传输协议:方便部署到Kubernetes和Cloud Run
  • 异步任务支持:长时间运行的任务不再阻塞
  • TypeScript/Python SDK v2.0
  • Server自动发现:Agent访问网站时自动识别MCP服务端点(.well-known/mcp-server-card/server.json
  • Skills over MCP:Server不仅提供工具,还发布使用知识和最佳实践

最后一点尤其值得关注——未来的MCP Server,不只是"有很多工具",而是"知道怎样教Agent使用这些工具"。

三、CLI:Token效率之王,但边界明显

3.1 为什么CLI对Agent如此高效?

答案很简单:模型在预训练阶段已经见过了海量的命令行数据

Git、curl、gh、jq、kubectl——这些工具的用法、参数、输出格式,早已内化在模型的权重里。当你让Agent用CLI执行任务时:

  • Token开销极低:每次响应约200 tokens
  • 组合自由:管道 |、重定向 >、条件执行 &&
  • 出错可快速迭代:Agent看到错误输出,能立刻修命令重试
  • 精确过滤:用jq从JSON里只提取需要的字段,而非返回整个响应体

这就是为什么Coding Agent天然适合CLI——代码在本地,结果可验证,有编译器、测试和版本控制兜底。

3.2 CLI的局限

但CLI不是万能的。当你面对以下场景时,CLI就捉襟见肘了:

  • SaaS集成:连接Salesforce、Slack、Notion——这些没有标准CLI
  • 权限管理:谁在调用?能访问什么?CLI靠的是OS权限,粒度太粗
  • 跨平台一致性:macOS的sed和Linux的sed行为不同
  • 审计追踪:哪个Agent在什么时间做了什么操作?

简单说:CLI适合本地、可组合、训练数据丰富的任务;不适合企业级、多租户、需要精细权限的场景。

四、A2A:当Agent需要跟另一个Agent说话

4.1 A2A解决什么?

Google在2025年4月的Cloud Next大会上推出了A2A(Agent-to-Agent)协议。定位非常清晰:

MCP解决Agent和工具之间的通信问题。

A2A解决Agent和Agent之间的通信问题。

想象一个真实场景:你的"订票Agent"需要跟航空公司的"库存Agent"协商最优航班,还要跟"支付Agent"确认交易安全。这三个Agent可能由不同团队、不同框架、甚至不同公司开发。

A2A就是Agent世界的"普通话"。

4.2 A2A的核心机制

A2A的设计借鉴了服务间通信的最佳实践:

  • 能力发现:Agent先通报自己能做什么(类似API的OpenAPI spec)
  • 任务导向:通信围绕"任务"展开,而非简单的请求-响应
  • 异步优先:支持长时间运行的任务,通过任务ID追踪状态
  • 多模态:支持文本、结构化数据、甚至UI卡片(A2UI)的交换

⚠️ 安全提醒:2026年初已有安全研究员发现A2A的"名片交换"机制存在漏洞,恶意Agent可能通过伪造能力声明窃取数据。生产环境使用时务必加入身份验证层。

4.3 什么时候需要A2A?

说实话,90%的AI创业项目暂时不需要A2A。判断标准:

  • ✅ 你的系统有≥3个独立Agent需要协作
  • ✅ 这些Agent由不同团队/框架开发
  • ✅ 协作涉及长时间运行的任务
  • ❌ 你只是想让Agent调用几个API——用MCP就够了
  • ❌ 你只有一个Agent在做本地操作——用CLI就够了

五、Skills:最被低估的第四极

5.1 Skills是什么?

Skills是Anthropic推出的知识注入机制——本质上是结构化的Markdown文件,告诉Agent"这个任务该怎么做"。

它不是协议,不涉及网络通信。但它解决了Agent最核心的问题之一:领域知识从哪里来?

5.2 Skills的独特价值

在完整的Agent连接栈中,Skills的位置是:

Skills(领域知识) → 告诉Agent"做什么、怎么做"

MCP(工具连接) → 给Agent"执行的能力"

CLI(本地执行) → 给Agent"高效的操作方式"

A2A(Agent协作) → 让多个Agent"协同工作"

一个没有Skills的Agent就像一个懂所有编程语言但不知道你们公司代码规范的新员工——他能干活,但产出需要大量返工。

5.3 Skills的最佳实践

  • 渐进式加载:不要把所有Skills一次性注入。按需加载,就像查手册一样
  • 跨平台可移植:同一个Skills文件可以在Claude Code、Cursor、Hermes Agent中使用
  • 版本化管理:Skills应该像代码一样纳入Git管理,随产品迭代更新
  • Skills over MCP:2026年最值得关注的趋势——MCP Server不仅提供工具,还附带Skills,告诉模型"这个工具应该怎么用"

六、选型决策树:你的场景该用哪个?

把决策流程画成一个决策树,方便你按图索骥:

选型决策树

▲ 选型决策树:四步确定你的Agent该用哪种协议组合

你的Agent主要做什么?

├── 写代码、操作本地文件、运行测试

│ → CLI为主 + Skills为辅

│ 例:Claude Code、Cursor Agent

├── 连接多个SaaS平台(CRM、Slack、Notion等)

│ → MCP为主 + Skills(渐进式发现优化Token)

│ 例:企业运营Agent、数据分析Agent

├── 多个Agent协作完成复杂任务

│ → A2A + MCP(每个Agent内部用MCP连接工具)

│ 例:旅行规划系统、电商智能客服

└── 需要精细权限控制、审计追踪

    → MCP(利用其OAuth、治理、审计能力)

    例:金融Agent、医疗Agent

核心原则:不要洁癖式地只选一种。好的Agent会像真正的工作者一样——该读文档时读文档,该用工具时用工具,该调用协议时调用协议。

七、实战:三层混搭方案

说了这么多理论,直接给你一个可落地的混搭架构:

架构概览

┌─────────────────────────────────────────────┐

│ Agent 主程序 │

│ │

│ ┌─────────┐ ┌─────────┐ ┌─────────────────┐ │

│ │ Skills │ │ MCP │ │ CLI / Code Mode │ │

│ │ 领域知识 │ │ 工具连接 │ │ 本地执行+编排 │ │

│ └─────────┘ └─────────┘ └─────────────────┘ │

│ │ │

│ ┌─────┴─────┐ │

│ │ A2A │ │

│ │ Agent协作 │ │

│ └───────────┘ │

└─────────────────────────────────────────────┘

具体配置

第1层:Skills(领域知识)

# .claude/skills/my-project/SKILL.md

## 项目规范

- 使用TypeScript strict模式

- 组件放在src/components/下

- PR标题格式:`[类型] 描述`(类型:feat/fix/docs/refactor)

第2层:MCP(外部工具)

配置关键服务:

{

  "mcpServers": {

    "linear": { "command": "npx", "args": ["-y", "@linear/mcp-server"] },

    "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },

    "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres"] }

  }

}

⚠️ 重要优化:启用渐进式发现,不要一次性加载所有工具描述。

第3层:CLI + Code Mode(高效执行)

给Agent提供REPL环境:

  • Git操作:直接走CLI(模型天然会)
  • 复杂编排:用Code Mode写脚本,一次性组合多个MCP工具
  • 数据过滤:curl + jq 代替全量JSON响应

避坑清单

写到这,必须给你几条血的教训:

  1. 不要做"完美MCP Server"——看到API就想包MCP Server是一个陷阱。先用Skills告诉Agent怎么直接调,不够用了再上MCP
  2. CLI不是银弹——如果你的Agent需要连接SaaS平台,别死磕CLI。MCP的OAuth和治理能力是企业刚需
  3. A2A是"未来问题"——今天大多数创业项目根本不需要Agent间通信,先把MCP+Skills的组合用透
  4. 渐进式发现是必修课——不管你用哪个协议,这个优化不做就是浪费Token
  5. 为Agent设计,不为人类设计——API文档是给人看的,MCP工具描述是给模型看的,不要照搬

八、常见问题(FAQ)

Q1:我是个人开发者/一人公司,该学哪个?

优先学MCP + Skills组合。MCP让你连接外部服务,Skills让你的Agent记住你的偏好和规范。CLI是默认能力不用专门学。A2A暂时用不上。

Q2:我的Agent已经在用CLI了,有必要切MCP吗?

取决于场景。如果你的Agent只在本地操作(写代码、跑测试),CLI足够了。但如果开始连接SaaS平台、需要权限管理、或者要给别人用(多租户),MCP的治理能力是CLI给不了的。

Q3:MCP的Token开销到底有多大?

裸用MCP(一次性加载所有工具)确实大。但启用渐进式发现后,实测可削减34-64%。加上Code Mode的组合调用,整体Token消耗比纯顺序调用更低。

Q4:Google的A2A和Anthropic的MCP是竞争关系吗?

不是。它们解决完全不同的问题。而且OpenAI的Agent SDK同时支持MCP和A2A。未来趋势是多协议无缝协作,而非赢者通吃。

Q5:2026年会有"大一统"的Agent协议吗?

MCP联合创建者David的判断是:不会。"如果有人告诉你有一个方案能解决所有连接问题,那他们大概率是错的。"Agent连接是一个多层次问题,需要多层次解决方案。

总结

回到开头那个问题——"MCP死透了吗?"

答案很清楚:远没有死,但也不是唯一答案。

2026年的Agent连接栈正在形成四层结构,每一层解决不同的问题:

层级协议一句话
知识层Skills告诉Agent怎么做
连接层MCP给Agent执行的能力
执行层CLI让Agent高效操作
协作层A2A让Agent们协同工作

最顶级的Agent不会洁癖式地只选一种方式。它会像真正的职场高手一样——知道什么时候查手册(Skills),什么时候走流程(MCP),什么时候直接动手(CLI),什么时候拉人协作(A2A)。

最后送你一句话,来自David Soria Parra:

"2026年的主题是连接能力,而最好的Agent会使用所有可用的方法。"

别在协议之争上浪费时间了。去构建吧。


*本文由AI辅助创作,数据来源:Anthropic AI Engineer 2026演讲、Spring AI实测报告、Google A2A官方文档、Cursor A/B测试数据* *AI辅助创作,经人工审核编辑发布* #AI创业 #Agent工坊 #MCP协议 #AI工具 #一人公司

本文由AI辅助创作,经人工审核编辑发布