大模型通识 / 大模型技术演进
21. 模型、工具与任务能力怎样连接起来
原文备份 · 第 22 / 26 篇 · 查看极客时间原知识库 ↗
本篇目录 · 7 节
来源:大模型技术演进
2024 年 11 月 25 日,Anthropic 发布 Model Context Protocol,简称 MCP。与一次新模型发布不同,这次公告的主角是一种连接标准:它希望让 AI 助手更方便地接触代码仓库、数据库和业务资料。首批配套包括协议、开发工具,以及 Claude Desktop 对本地 MCP 服务的支持。原始公告
这个变化回应了一个越来越明显的落差。聊天窗口里的模型已经能解释复杂代码、分析长篇材料,可一旦用户问“我的项目为什么构建失败”“根据我最近的笔记安排复习”,它需要的资料仍然散落在窗口之外。人得找到文件、复制内容、解释背景,有时还要把模型的建议重新搬回软件执行。
模型越来越会处理任务,应用却还在为“怎样把现场交给它”重复搭桥。MCP 把这个问题推到了行业面前:如果每个助手接每个系统,都重新写一套适配,Agent 的能力就很难随着工具生态一起增长。
后来出现的 A2A、Agent Skills,以及持续演进的插件和连接器,又进一步扩大了讨论范围。我们要连接的,既有可执行的操作,也有独立运行的 Agent,还有完成任务所需的方法和材料。
上一篇讨论框架怎样组织程序。这一篇继续向外看:程序怎样拿到外部能力,又怎样把这些能力交给模型使用?观察截止日期仍为 2026 年 10 月 3 日,以下会区分历史发布节点与后来形成的机制。
从 Function Calling 开始:模型怎样提出一个操作
先回到 2023 年。6 月 13 日,OpenAI 为当时的部分 GPT-4、GPT-3.5 Turbo 模型发布函数调用能力。开发者可以描述函数,模型则根据对话生成相应的调用参数。这是模型 API 走向工具使用的一个重要产品节点,并不意味着此前的研究和应用从未尝试过调用工具。发布说明
第 4 篇已经介绍过它的历史意义。这里需要记住的,是模型与程序之间的分工。
假设我们给复习助手提供一个“搜索笔记”的函数。下面是教学构造的调用示意,不是可以直接复制运行的 API 请求:
用户:找出我关于梯度下降的笔记。
模型提出:search_notes(query="梯度下降")
应用执行搜索,返回匹配的笔记片段。
模型依据返回内容,回答用户或继续请求其他操作。
模型生成调用请求时,搜索还没有发生。对于这种自定义函数,通常由应用执行操作,再把结果交给模型;模型收到结果以后,可以继续回答,也可以提出下一次调用。厂商托管的工具可能由厂商平台执行,不能把所有工具都理解为需要开发者在本地运行。函数调用流程
这解释了两个常见误解。第一,模型输出了一个漂亮的调用参数,不等于任务已经完成。第二,参数格式合法,也不等于业务含义正确:它可能搜错关键词,也可能把应当读取的笔记误当成应当删除的笔记。
Function Calling 建立的是一种协作方式:模型用结构化请求表达操作意图,程序执行具体动作并返回结果。 工具背后可以是本地函数、数据库查询、网页服务,也可以是另一个系统提供的能力。
接下来的问题是:这些工具应该怎样接进来,才能被不同应用复用?
MCP:让外部能力不必为每个助手重新接一次
设想你维护一个笔记服务,希望它同时供桌面助手、代码编辑器和自己的网页应用使用。如果三种应用各有一套接入格式,你就要分别处理工具描述、请求和返回约定。笔记服务增加一个功能时,几套适配也可能一起修改。
MCP 试图减少这部分重复劳动。支持协议的应用与提供能力的服务,按照共同约定交换信息。实际接入仍然需要认证、配置和必要的适配,但双方不必从零协商所有通信细节。
理解 MCP,先分清三个角色。Host 是用户正在使用的 AI 应用;Client 是应用中负责连接服务的组件;Server 是向外提供能力的程序。 这里的 Server 不一定是一台远程机器,也可以是你电脑上的进程。MCP 架构说明
协议里的能力也不只有“执行一个函数”。常见的三类是:
| MCP 提供的内容 | 可以怎样理解 | 复习助手中的教学示例 |
|---|---|---|
| Tools,工具 | 可以请求执行的操作 | 按关键词搜索笔记 |
| Resources,资源 | 可供应用读取的内容 | 某一篇笔记的正文 |
| Prompts,提示模板 | 可复用的交互或任务模板 | 根据选定笔记发起一次复习 |
这些类别来自 MCP 的协议设计;具体服务提供哪些内容、应用支持哪些交互,要看实现。连接成功不会自动让每个功能都出现在用户界面上。MCP 的能力分类
把它与前面的函数调用连起来,流程就清楚了:应用从 MCP 服务获知可用工具,把适合当前任务的工具信息交给模型;模型提出工具调用,应用通过 MCP 请求相应服务执行,再把结果送回模型。模型通常不是自己打开网络连接去操作 MCP 服务。工具发现与调用约定
因此,MCP 与 Function Calling 可以同时出现。前者帮助应用接入外部能力,后者帮助模型表达想使用哪项能力。一个笔记搜索接口可以先是普通 HTTP API,外面再加一层 MCP 服务;这层封装不会重新训练模型,也不会凭空改善底层搜索质量。
2025 年 12 月,Anthropic 宣布将 MCP 捐赠给 Linux Foundation 旗下新设立的 Agentic AI Foundation。这为协议的跨厂商发展提供了新的治理安排,但不意味着所有产品已经实现完全一致的兼容性。治理变化公告
它的产业意义可以这样理解:应用开始有机会共享一部分接入成果。一个服务获得多个助手支持的成本有望降低,个人开发者也更容易利用现成集成,把精力放回自己的应用。
A2A:当你需要交接的是一项任务
工具接入解决了一类问题,却不是全部。
假设复习助手遇到一份扫描讲义。你已经有一个独立运行的资料处理 Agent:它会识别页面、检查段落顺序、发现缺页时提问,最后交回整理后的材料。此时你希望表达的是“请把这份讲义整理好,并告诉我进度”,而不只是调用一次识别文字的函数。
2025 年 4 月 9 日,Google 发布 Agent2Agent,简称 A2A,面向不同厂商和框架构建的 Agent 之间的通信与协作。发布公告
它需要让请求方理解几个问题:对方能做什么,怎样提交请求,任务是否还在运行,是否缺少输入,最后交付什么。A2A 中的 Agent Card 用来描述对方的能力与接入信息;需要持续跟踪的工作可以表示为 Task;完成过程中产生的文档、结构化数据等成果可以表示为 Artifact。简单交互也可以直接返回消息,不必每次都建立长期任务。A2A 核心概念
这里的关键是交接边界。复习助手不必知道资料处理 Agent 内部用了哪个模型、调用了几次识别服务,或者怎样安排步骤。它关心的是约定好的输入、状态与交付物。
这与上一篇的多 Agent 框架也有区别。你在一个程序里创建“规划者”和“执行者”,让它们通过框架交换数据,并不必然需要 A2A。只有当独立系统之间确实需要一种共同的交接约定时,这类协议才会直接回应你的问题。
也不宜把区别简化成“MCP 只能处理短调用,A2A 才能处理长任务”。协议会继续发展,MCP 的现行架构也包含任务扩展。更稳妥的判断是:当前主要在接入可使用的工具和资料,还是在与一个独立承担工作的 Agent 协作? 两者可以组合,能力范围也会有交集。MCP 当前架构与扩展
Skills:有工具之后,还需要知道怎样完成工作
现在,复习助手能搜索笔记,也能请求其他系统处理资料了。但它仍可能把卡片写得太长,一张卡片塞入五个问题,或者把原文中的猜测写成确定答案。
这些问题并不都需要一个新接口。你可能已经知道正确做法,只是每次都要重新告诉助手:一张卡片只检验一个知识点;答案必须能回到原文;概念解释与练习题分开;保存前检查重复。
2025 年 10 月 16 日,Anthropic 介绍 Agent Skills,把指令、脚本和资源组织成可以按需发现与加载的文件夹;12 月 18 日,该文章更新说明其已作为开放标准发布,面向跨平台移植。Agent Skills 原始介绍及更新
一个 Skill 以 SKILL.md 为核心,声明名称、用途并提供操作指导,还可以配有参考资料、脚本和模板。支持这一机制的 Agent 可以先了解有哪些技能,任务匹配后再读取详细说明,必要时继续加载配套材料。这种按需展开的方式,避免一开始就把所有技能全文塞进上下文。Agent Skills 说明
我们可以给复习助手设计一个制卡 Skill。下面只是教学设计,不是已经测试过的技能包:
make-study-cards/
├── SKILL.md # 何时使用、怎样制卡、怎样检查
├── references/examples.md # 好卡片与坏卡片的示例
└── scripts/check_cards.py # 检查字段、重复项等确定性问题
指导文字负责说明取舍,示例帮助模型理解要求,脚本则适合处理字段是否缺失等确定性检查。模型仍需根据笔记内容生成合适的问题,不能只靠一个格式检查脚本证明卡片有教学价值。
这也说明 Skill 的作用与模型微调不同。修改指导文件,是给运行中的 Agent 提供方法和材料;它没有因此修改模型参数。Skill 可以教 Agent 使用 MCP 工具,也可以让它调用普通命令行程序,不以 MCP 为必需前提。
开放格式有利于复用,但一个 Skill 换个产品就能正常运行,还取决于所需工具、脚本环境和权限。Agent Skills 规范专门允许声明环境兼容要求;文件格式相同,不代表执行环境相同。Agent Skills 规范
还有一个容易混淆的同名概念:A2A 的 Agent Card 也可以声明 skills,用来描述远程 Agent 的能力。这不意味着它里面存放的就是上述 SKILL.md 技能包。判断含义需要看所在协议和产品,不能只看一个英文单词。Agent Card 的能力描述
插件与连接器:把能力变成用户可以安装和配置的东西
如果你觉得这些概念仍然很多,可以从普通用户的操作入口再看一遍。
用户往往不会先问“我要哪一种协议”,而是问“怎样让助手连接我的笔记”“这个扩展装上之后能做什么”。插件和连接器通常出现在这一层,但它们没有跨所有产品统一的含义。
以 Claude Desktop 为例,Anthropic 在 2025 年 6 月介绍桌面扩展,希望把本地 MCP 服务及相关配置打包,让安装更简单;文章在同年 9 月注明,原来的 .dxt 格式更名为 .mcpb。这说明扩展包可以承担 MCP 能力的分发工作,并不是另一种模型能力。桌面扩展公告及更名说明
Claude Code 的插件又可以组合 Skills、Agent 定义、事件处理以及 MCP 服务等组件。因此,“安装一个插件”有时是安装一组配套能力,不能据此断定底层只有一种机制。IDE 插件则首先是一种编辑器扩展形式,也不等于这里的 Agent 插件。Claude Code 插件文档
连接器通常强调与某个外部服务的集成,例如连接云盘、邮箱或日历。它可能通过 MCP 实现,也可能采用产品自己的接口。不同平台的“连接器”不能直接互换:OpenAI 的相关文档就分别介绍远程 MCP 服务和内置连接器,并对部分连接器接口规定了适用范围。MCP 与连接器文档
第 4 篇讲过的早期 ChatGPT 插件,也要放回当时的产品机制理解。不能因为今天又看到“插件市场”,就认为它与 2023 年的 ChatGPT 插件是同一套接口。
对读者真正有帮助的,是继续追问具体动作:这个扩展提供搜索还是写入?在哪里执行?需要哪个账号?读取结果会交给哪个模型处理?即使 MCP 服务运行在本机,它返回的资料仍可能进入云端模型请求,“本地运行一个连接程序”不等于“所有数据处理都留在本地”。
放到同一个项目里,它们怎样配合
下面把前面的教学设计合起来。用户提出:“根据我本周的笔记,生成一组能追溯原文的复习卡片,先让我检查。”
助手可以先加载制卡 Skill,理解卡片要求;通过已经配置好的笔记集成,获得搜索工具;模型提出搜索请求,应用调用工具取回笔记;接着生成卡片并执行格式检查,最后把草稿交给用户。
如果其中的扫描材料确实需要另一个独立 Agent 处理,才增加 A2A 任务交接。若普通文字提取函数就足够,没有必要为了使用协议而增加一个 Agent。
把各层放在一起,区别就更容易看清。这是理解职责的对照表,不是必须全部采用的架构清单。
| 名称 | 主要回答的问题 | 在这个示例中的位置 |
|---|---|---|
| Function Calling | 模型怎样表达调用什么、传什么参数? | 提出搜索笔记等操作请求 |
| MCP | 应用怎样按共同约定接入外部能力? | 连接笔记服务并使用其工具、资源 |
| A2A | 独立 Agent 怎样交接任务与成果? | 可选的资料处理任务交接 |
| Agent Skills | 完成这类工作应遵循什么方法? | 制卡规则、示例与检查脚本 |
| 插件 | 怎样把配套能力安装和分发给用户? | 打包相关技能、服务配置等内容 |
| 连接器 | 怎样把特定外部服务接进产品? | 笔记账号与服务的集成入口 |
同一个产品可以占据表里的多个位置,同一个项目也可以只使用其中几层。哪怕你直接写一个函数读取本地 Markdown,再调用模型生成卡片,只要需求得到满足,就是一个合理的起点。
可以用一个问题检查自己是否理解了这些概念:如果助手能读取笔记,却总是生成不符合要求的卡片,换成 MCP 能自动解决吗?通常不能。接入已经成功,接下来应检查任务说明、模型表现和结果验证。反过来,制卡方法写得再好,如果没有读取笔记的工具与权限,Skill 也不能把缺失的资料变出来。
接通之后,新的瓶颈才显现出来
从 2023 年的函数调用,到 2024 年的 MCP,再到 2025 年的 A2A 和 Agent Skills,这条线并不是新名词依次淘汰旧名词。它体现的是应用边界不断向外扩展:模型开始参与操作选择,应用需要共享外部集成,独立 Agent 需要交接任务,成功经验又需要被重复使用。
连接标准与可复用材料有望减少重复开发,但运行成本不会因此消失。工具描述、返回的笔记和加载的指导都可能占用上下文;多次调用增加等待,额外的 Agent 也可能增加模型请求。对一个个人项目,最有价值的往往是恰好够用的连接。
而且,“能连上”“有权限”“做对了”是三件不同的事。服务可以正常返回错误资料,Agent 可以误解任务,技能里的方法也可能不适合当前案例。系统接得越多,越需要知道结果从哪里来、在哪一步产生偏差,以及什么时候该停止或请人查看。
下一篇会把焦点从连接转向工程保障:当模型、资料与工具都已到位,怎样通过上下文管理、评测、追踪、沙箱和执行循环,让一次成功演示变成可以持续使用的应用。
返回:第 0 部分大纲