老张开了一家餐厅。创业第一天没有菜单,顾客只能口头描述“来点那个有汤的、你拿手的”,全凭伙计的悟性——这就像早期的“提示词工程”:想让 AI 调用工具,得在提示词里反复描述工具怎么用,AI 还不一定配合。生意做大了,老张印了第一版精装菜单,菜名、价格、忌口写得清清楚楚,顾客照着点菜——这就是 Function Calling 的本质:模型从预定义的固定工具列表里挑选一个,填好参数,后端执行。 再后来,老张加盟了连锁集团。集团没有让他继续印菜单,而是给了他一个统一的服务台标准:平板电脑实时显示后厨有什么食材、哪个档口开着、供应商今天送来了什么,所有门店遵循同一套对接规范——这就是 MCP(Model Context Protocol,模型上下文协议)。看到这里你会发现一个关键问题:餐厅既需要菜单(顾客做选择),也需要服务台(统一调度执行),那 AI 工具调用到底该选谁?答案藏在两者的层级关系里:Function Calling 是大模型原生的工具调用能力,MCP 是更上层的标准协议;FC 做决策,MCP 做执行。这篇文章就用“点餐”这个比喻,把它们的差异、优劣和组合姿势讲透。
对 AI 从业者而言,搞清楚 FC 与 MCP 的分工是 Agent 工程落地的分水岭——既能避免“杀鸡用牛刀”的过度设计,也能防止工具一多就失控的架构灾难。本文帮你建立选型直觉,胜任工具调用层的技术决策。
可视化演示
Function Calling是大模型原生的工具调用能力,MCP是更上层的标准协议,两者什么关系?这篇从调用... 切换模式查看不同维度。
本节配有交互动效(进入视口后自动加载,约 3KB)。
Functi:核心原理 动态展示关键流程与数据流动 交互控件调节参数实时渲染 f(x) = transform(x) 核心概念的可视化呈现
工具调用演进
老张的餐厅一开始没有菜单,顾客只能口头描述“来点那个有汤的、你拿手的”,全凭伙计的悟性和运气——这正是早期“提示词时代”的写照:开发者把工具说明、调用格式、示例输出全部写进 prompt,指望模型“发挥悟性”按格式输出。语义稍一复杂,模型就频繁翻车,输出的 JSON 十个有八个缺字段。老张被折磨得不轻,直到印刷厂送来精装菜单,点菜才从自由发挥变成结构化动作。
菜单的本质是“结构化约束”:顾客从固定列表里选菜、填忌口、下单。对应到技术世界,这就是 Function Calling 诞生的逻辑——开发者在请求里传入工具定义(名称、描述、参数 JSON Schema),模型不再自由发挥,而是输出结构化的函数调用意图:工具名 + 参数对象。后端拿到这个结构体,按名执行。可菜单一旦付印就固定了:新菜要等下一版印刷(代码重新发版),食材下架菜单也不能及时改,这就是“静态定义”的先天痛点。
连锁集团给老张的方案是统一服务台标准。这个服务台就是 MCP(Model Context Protocol,模型上下文协议):它不替代菜单,而是定义了一套“门店—供应商—档口”之间的对接规范。工具提供方按标准接口把自己的能力暴露出来,使用方通过标准流程发现和调用,协议层面统一了传输格式、发现方式、错误处理。至此,从提示词到函数调用再到协议标准化,工具调用的“基础设施”完成了三级跳。
从喊单到菜单再到服务台,本质是“门槛越来越低、标准越来越高”的演进史。工具调用早就不再是“模型能不能输出对格式”的问题,而是“整个系统能不能以标准化方式接入和扩展”的问题。
- 起点状态自然语言指令表达自由,但模型行为不可预期,可靠性差。
- 第一次升级Function Calling 将松散表达转换为精确的结构化工具调用,代价是工具集静态固定。
- 第二次升级MCP 把静态调用提升为动态标准协议,让工具接入获得生态化扩展能力。
核心原理对比
印刷菜单的最大特点是:一旦付印就改不了了。新菜要等版本更新,供应不上的食材菜单上照样印着,顾客点了只能尴尬地说“不好意思今天没有”。而服务台的平板是实时数据:后厨有什么、哪个档口开着、供应商今天送来什么,一目了然。这两者的差别,就是 Function Calling 与 MCP 在“调用方式”上的核心分野。
Function Calling 是模型服务商在 API 层提供的内置能力:开发者把工具 schema 随请求发给模型,模型经推理后输出“该调哪个工具、传什么参数”。工具集在对话开始时就被“印死”在一次请求里,属于静态预定义。如果中间要增加、修改或下架工具,只能改代码重新发版。它解决的问题是“模型如何结构化地表达调用意图”——这是它的主场。
MCP 则把视角拉高了一层:它不关心模型怎么输出意图,只规范“客户端与服务端之间如何发现和调用工具”。一个 MCP Client 可以连接多个 MCP Server,每个 Server 暴露自己的工具集,Client 在运行时查询、按需调用。工具集不再是封闭的固定集合,而是所有 Server 上报内容的动态并集。架构上,FC 是模型厂商的私有 API 行为,MCP 是开放的应用层协议,二者不在同一层,谈不上取代,只有配合。
菜单付印即固定,服务台实时即所见——“静态定义”与“动态发现”最朴素的差别就在于此。理解了这一层,后面所有维度的对比都有了锚点。
- 左侧静态集合FC 的工具集是开发者预先定义好的固定 n 个工具,随请求固化。
- 对比符号vs 表示两种范式在思想和架构上的根本差异。
- 右侧动态并集MCP 的工具集是所有接入 Server 上报工具的并集,运行时动态变化。
动态发现能力
服务台的平板之所以厉害,在于它“长在”后厨的数据上:厨师长早上备了什么菜,平板就显示什么;下午新增甜品档口,平板立刻多一行。这种“能力即插即用”的体验,就是 MCP 动态发现能力的直观体现。新工具上线,不需要重新印菜单,也不需要通知所有顾客换新版——打开平板就在那里。
MCP 实现动态发现的钥匙是 tools/list 方法。客户端随时可以向服务端发起 tools/list 请求,服务端返回当前支持的全部工具清单(含名称、描述、参数结构)。新增工具时,只需在 Server 端注册新函数,客户端下一次 list 就能看到它,上层 Agent 代码、模型 prompt、工具 schema 全部无需改动。这一机制把“工具接入”从开发时行为变成了运行时行为,极大降低了扩展成本。
更精妙的是版本协商机制。MCP Server 在握手阶段声明自己支持的协议版本,Client 按版本自动适配,避免“工具上线了,但两边格式对不上”的尴尬。配合 MCP 的资源(Resources)与提示(Prompts)能力,一个 Server 不仅能动态提供工具,还能动态暴露上下文资源,形成完整的可发现能力面。这也是 MCP 在复杂 Agent 场景中不可或缺的原因。
菜单改版要花印刷费,服务台改版只需要后厨说一声。动态发现的本质是“解耦”——工具提供方和消费方不再被同一个发布周期捆绑,这正是大型 Agent 系统最渴望的灵活性。
- 差集运算ΔT 表示两次工具列表查询之间新增的工具集合——这就是“新发现”的部分。
- 推出符号含义是“动态发现带来了以下结果”。
- 结果表达新增工具无需修改上层任何代码即可投入使用。
生态兼容性
一个城市的餐厅各有各的菜单,外地游客看不懂;但连锁集团的服务台是统一的:不管进哪家门店,报会员号、点标准套餐、开电子发票,流程完全一样。MCP 想做的就是这种“跨店标准”。当你的 Agent 需要对接数据库、GitHub、浏览器、支付系统等十几个外部服务时,统一的协议远胜于为每个服务手写一套私有对接代码。
Function Calling 由各家模型厂商分别实现:OpenAI 的 function calling、Anthropic 的 tool use、国内通义和文心的 tool calling,接口细节各不相同。这意味着如果直接依赖各家 FC,每接入一个新模型,工具层就要重新适配一遍。MCP 则站在厂商中立的位置:Client 和 Server 都遵循同一协议,一套写好的 MCP Server 可以同时服务多种模型的 Agent——模型厂商可以不同,工具接入层却可以完全复用。
生态上,MCP 已然成为事实标准:OpenAI、Anthropic、Google 等主流厂商以不同形式兼容支持,社区涌现出大量开箱即用的 Server,覆盖数据库、文件系统、开发工具、浏览器自动化等领域。集成成本从“逐个适配私有 API”降至“一行配置连接”。对技术决策者来说,生态兼容性直接决定了团队未来在集成上要烧多少资源。
菜单各自为政还是统一服务台?生态兼容性差的方案,团队越用越累;生态好的方案,行业越用越厚。MCP 的开放性让它不仅在当下省事,更让未来的接入变得可预期。
- 私有协议成本每接入一个模型都要单独开发适配器,成本随模型数量线性增长。
- 标准协议成本MCP 场景下只需一次性对接,边际成本几乎为零。
- 系数含义α 是单次适配工作量,β 是 MCP 接入的一次性成本,通常 α ≫ β。
安全模型
在老张的小餐厅,顾客喊一声“上菜”,后厨就动手做——没有登记、没有审批、没有留痕。这在创业期没问题,但连锁集团不能这么干:供应商要验资质、厨师凭工号上岗、特殊菜品要经理授权。安全模型的核心差异,就在于是“信任所有调用”还是“管控每一次调用”。
Function Calling 的安全依赖上层业务代码自行把关:模型输出了工具调用意图,后端收到后自己判断“这个参数合法吗?这个操作该不该执行?”。协议层不提供任何约束——FC 的职责止于“听懂你点了什么菜”,至于后厨要不要真做这道菜,完全是业务方的事。工具少时这很简单,工具一旦涉及支付、删除、对外发送消息,风险就全压在业务代码的自觉性上。
MCP 把安全做进了协议层:Server 声明工具权限与作用域范围,Client 可以对敏感操作要求用户显式审批(human-in-the-loop),调用全过程生成审计日志,谁在什么时候调了什么工具一目了然。这意味着 MCP 天然适合企业级场景——敏感操作必须经过确认,每次调用留痕可追溯。安全不再是散落在业务代码里的 if-else,而是协议保证的标准化能力。
小餐厅靠信任,大集团靠制度。工具调用能力越强,越需要协议的“门禁”来守门——MCP 把安全从“业务代码的质量问题”提升为“协议层面的标准能力”,这对企业落地 Agent 几乎是刚需。
- 作用域约束工具只能访问声明范围内允许的资源,越界默认拒绝。
- 审批环节关键操作必须经过用户(或授权人)显式确认才可执行。
- 审计日志全部调用过程记录在案,支持事后追溯与责任认定。
组合实践
聪明的食客不会冲进后厨自己炒菜——他们看菜单做决定,剩下的交给服务台调度。AI 工具调用的最佳实践同样是分层:让模型做它最擅长的决策,让协议做它最擅长的事情。现实中不少团队把 FC 和 MCP 当二选一的竞品,其实它们天生是一对搭档。
组合的分工逻辑非常清晰:Function Calling 负责“决策层”。模型根据用户自然语言,输出结构化的调用意图——“我要调用哪个工具、传什么参数”。这一环利用了 LLM 强大的意图理解与参数抽取能力,是 FC 的绝对主场。MCP 则负责“执行层”:拿到模型输出的工具名和参数后,通过 MCP Client 动态发现工具所在 Server、完成认证与路由、执行调用、返回结果。
实践中一个典型 Agent 的调用链路是:用户输入 → 模型通过 FC 输出结构化意图(工具名 + 参数 JSON)→ MCP Client 根据工具名路由到对应 Server → Server 执行真实函数 → 结果回传模型生成最终回复。这样设计的好处是:既能享受 MCP 的动态接入、统一安全和生态复用,又不放弃 FC 让模型精准决策的能力。决策与执行完全解耦,任何一层升级都不影响另一层。
点菜的是顾客,炒菜的是后厨,服务台负责连接——各司其职,才是一家大餐厅的高效运作。记住这个分工,你就能在架构评审会上从容回答“到底该用 FC 还是 MCP”:不是二选一,而是分两层。
- 决策函数给定用户查询 q,FC 让模型输出结构化的工具选择结果。
- 流转箭头决策结果(工具名+参数)作为标准输入传递给执行层。
- 执行函数MCP 路由到具体 Server 完成工具调用,返回真实结果。
选型决策矩阵
摆摊的小吃车需要豪华服务台吗?不需要,一张菜单足够了。可要开连锁酒店餐厅,没有统一服务台,早晚乱成一锅粥。选型的本质,是对自身业务规模与复杂度的诚实评估。老张的生意经很简单:多大盘子,配多大的系统。
决策矩阵可以用三把尺子来量。第一把尺子是规模:工具数量少于 5 个、模型单一、团队就两三人——直接用 Function Calling,简单直接,别引入额外基础设施;工具数量几十上百、多个模型并发调用——上 MCP,把工具接入标准化,否则团队会淹没在适配代码里。第二把尺子是复杂度:工具需要频繁动态更新、按需暴露给不同 Agent——MCP 的动态发现是刚需;工具长期固定不变——FC 的轻量反而是优势。第三把尺子是生态:目标系统已有现成的 MCP Server(数据库、GitHub、浏览器等常见中间件)——接 MCP 事半功倍;所有工具都得从零自研——FC 上手更快。
一个稳健的落地节奏是:由 FC 入局,按需上 MCP。MVP 阶段用 FC 快速验证产品和业务逻辑;当工具多到维护成本失控、或者需要接入外部生态时,再引入 MCP 作为统一执行层,把 FC 保留为决策层。这样既不错过 MCP 的生态红利,也避免在验证期过度建设。
先想清楚自己是小吃车还是连锁餐厅,再决定用菜单还是服务台。选型本质上是对业务边界的回答:现在复杂吗?未来会多复杂?答案不同,最优解不同。
- 三维度加权规模、复杂度、生态三个维度按各自权重打分,反映团队关注点。
- 阈值判定总分超过阈值 θ 时选择 MCP,否则使用 FC。
- 权重调优不同团队按实际瓶颈调整 w 值——比如强约束合规的团队加大 S 的权重。
AI 应用场景
企业内部 Agent 统一工具接入
阶段:工具调用与执行层
解决的问题:大公司内部有 ERP、CRM、工单、支付等十几个系统,传统做法是为每个系统写一套函数定义和鉴权逻辑,每接一个新 Agent 都要重复适配一遍。用 MCP 将各系统封装成标准 Server,统一权限声明与审计日志;上层模型用 FC 做工具决策,新增系统时只需注册一个 Server,工具接入时间从“人天”级降为“分钟”级。
具体案例:某电商公司用 6 个 MCP Server 封装库存、订单、物流、支付、客服、财务系统,接入两个不同厂商的大模型 Agent。改造前接入一个新系统约 3 人天,改造后注册即用,新 Agent 接入免去重复工具适配。
电商智能客服的决策与执行分离
阶段:意图识别与工具调度
解决的问题:售后机器人需要识别用户意图(查物流、退换货、开发票),再调用对应业务系统。若全部依赖 FC,每增加一个业务动作就要改代码重新发版;若全部依赖 MCP,模型在复杂意图下选择工具容易失准。最佳实践是 FC 判断“用户想做什么”,MCP 路由“对应系统怎么调”,敏感操作(如退款)在 MCP 层走人工审批流。
具体案例:某品牌电商客服机器人日均处理 2 万次咨询。FC 负责从 20 个工具意图中选出正确项,MCP 统一接入订单、物流、售后三大系统,退款操作带用户确认弹窗与全链路审计,客诉率下降 40%。
多模型 Agent 工具网关
阶段:模型适配与工具编排
解决的问题:企业中不同团队使用不同厂商的大模型,各家 Function Calling 接口格式不统一。搭建一层“FC 适配器”把各家模型的工具调用输出翻译为标准意图,后端统一接入一组 MCP Server。模型可以随意切换,工具层完全不动,实现“模型可换、工具统一”。
具体案例:某金融科技公司同时使用 OpenAI 和通义千问构建投研 Agent。通过适配层统一了两家模型的工具调用格式,下游接 MCP Server 获取行情、公告、研报数据,模型切换无需改动工具层代码。
Python 演示
"""MCP vs Function Calling 简化模拟演示"""import jsonfrom typing import Callable def get_weather(city: str) -> str: return f"{city} 今日晴 22°C" def calc_price(amount: float, discount: float = 1.0) -> str: return f"实付 {amount * discount:.2f} 元" class FunctionCalling: """固定菜单:工具预先静态注册,模型从中选择""" def __init__(self): self.tools = {} def register(self, name: str, fn: Callable, desc: str) -> None: self.tools[name] = {"fn": fn, "desc": desc} def decide(self, intent: str) -> str: for name in self.tools: if name.replace("_", "") in intent.replace(" ", ""): return name return "get_weather" class MCPServer: """服务台:动态发现工具,统一路由执行""" def __init__(self): self.servers = {} def add_server(self, name: str, tools: dict) -> None: self.servers[name] = tools def list_tools(self) -> list: result = [] for server, tools in self.servers.items(): for tname in tools: result.append({"server": server, "name": tname}) return result def call(self, name: str, args: dict) -> str: for tools in self.servers.values(): if name in tools: return tools[name](**args) raise KeyError(f"工具 {name} 未发现") class Agent: """组合模式:FC 做决策,MCP 做执行""" def __init__(self, fc: FunctionCalling, mcp: MCPServer): self.fc = fc self.mcp = mcp def run(self, query: str) -> str: tool = self.fc.decide(query) args = {"city": "北京"} if "天气" in query else {"amount": 99} return self.mcp.call(tool, args) if __name__ == "__main__": fc = FunctionCalling() fc.register("get_weather", get_weather, "查询天气") fc.register("calc_price", calc_price, "计算价格") mcp = MCPServer() mcp.add_server("weather_svc", {"get_weather": get_weather}) mcp.add_server("billing_svc", {"calc_price": calc_price}) print("MCP 动态发现工具:", mcp.list_tools()) agent = Agent(fc, mcp) print(agent.run("今天北京天气")) print(agent.run("买 3 个苹果 99 元打 8 折"))
fc.register("get_weather", get_weather, "查询天气")静态注册一个工具到函数调用表,相当于把菜品印上菜单。def decide(self, intent: str) -> strFC 层的决策函数,基于意图匹配选择工具,模拟模型输出结构化选择。mcp.add_server("weather_svc", {...})向 MCP 服务台添加一个服务端,相当于连锁集团接入一个新供应商档口。def list_tools(self) -> listMCP 动态发现的关键操作,运行时返回所有 Server 当前暴露的工具清单。def call(self, name: str, args: dict) -> strMCP 层的路由执行,根据工具名称找到对应 Server 并执行真实函数。tool = self.fc.decide(query)组合模式的第一步:FC 做决策,选出“调哪个工具”。return self.mcp.call(tool, args)组合模式的第二步:MCP 做执行,完成真实调用并返回结果。
常见误区
误区我听说 MCP 是更先进的技术,现在用 Function Calling 是不是过时了?赶紧把所有方案换成 MCP 吧。
正解二者根本不在一个层级。FC 是模型 API 层的结构化输出能力,MCP 是工具接入的应用层协议。前者解决“模型怎么表达调用意图”,后者解决“工具怎么被发现和调用”。就像菜单不会取代服务台一样,FC 负责决策、MCP 负责执行,它们是配合关系,不是替代关系。
为何常见:对比类文章常把它们放在一起 PK,读者没有注意层级差异,误以为是“新版本替代旧版本”。
误区MCP 是函数调用的进阶版,函数调用的功能它全都有,直接升级就行。
正解MCP 是协议规范,FC 是模型能力,解决的问题维度不同。MCP 不决定模型如何输出意图,只规定服务器与客户端之间如何发现和调用工具。FC 可以由模型厂商各自实现,MCP 则是跨厂商的统一标准。两者不是“新旧版本”关系。
为何常见:名字都带“调用”,层级被混淆,容易被“升级版”的说法带偏。
误区用了 MCP 以后,AI 就自动拥有所有工具了,我不用再写任何函数。
正解MCP 只负责动态“发现”和标准化“路由”,工具背后的真实代码仍然需要你开发。MCP Server 的本质是在你已有的函数外面包一层标准协议接口,让客户端能查到它、调它。动态发现不等于凭空生成。
为何常见:“动态发现”听起来太智能,被误解为“自动创造工具”,忽略了背后的实现成本。
误区Function Calling 是 OpenAI 独有的功能,其他模型都用不了。
正解OpenAI 是 Function Calling 最早的普及者之一,但现在主流大模型厂商都提供了类似能力:Anthropic 的 tool use、Google 的 function calling、国内通义和文心的 tool calling,只是接口细节和参数格式存在差异。FC 是行业共性的模型能力,不是某家独有。
为何常见:OpenAI 先发优势太强,形成了“提起 Function Calling 就想到 OpenAI”的刻板印象。
误区MCP 多了一层网络通信和协议解析,延迟肯定很高,不如直接函数调用快。
正解性能差距要分部署方式看。MCP Server 可以本地进程运行(stdio 传输),也可以远程部署(HTTP)。即便远程调用,额外延迟通常在毫秒级,而大模型自身的推理响应是秒级,多出的耗时可忽略。真正影响响应速度的往往是工具设计本身和网络环境,而不是 MCP 协议这一层。
为何常见:“多一层 = 慢很多”是直觉判断,忽略了 LLM 场景下毫秒与秒的数量级差异。
面试题
Q1. MCP 协议的"MCP"全称是什么?
- A.Model Context Protocol← 正确答案
- B.Model Calling Protocol
- C.Multi-Chat Platform
- D.Machine Control Protocol
答案:A。MCP 全称是 Model Context Protocol(模型上下文协议)。B 的 Calling 是函数调用方向的错误联想,C、D 是干扰项。记住"Context"二字,它强调为模型提供上下文和工具访问的标准化通道。
Q2. Function Calling 的核心作用是什么?
- A.让模型以结构化形式调用外部工具← 正确答案
- B.让模型批量生成训练数据样本
- C.替代所有网络请求代理网关
- D.让模型自动提升基础算力配置
答案:A。Function Calling 让模型输出结构化的“工具名 + 参数 JSON”,从而可靠地调用外部函数。B、D 与工具调用无关,C 夸大了它的职责——FC 不替代网关,只管意图的结构化表达。就像菜单只负责让顾客规范点菜,不管后厨怎么做菜。
Q3. 关于 Function Calling 的“静态定义”,下列说法正确的是?
- A.工具由开发者在会话前静态声明传入← 正确答案
- B.工具由开发者在会话中动态注册发现
- C.工具由模型自主编写并调用函数代码
- D.工具由第三方服务器实时下发注册
答案:A。FC 的工具 schema 由开发者在请求时预先传入,模型只能在给定集合里选,这就是“静态定义”。B、D 描述的是 MCP 的动态发现机制,C 把模型的能力幻想成了自主生成代码,都不正确。
Q4. MCP 动态发现工具主要使用哪个方法?
- A.tools/list← 正确答案
- B.tools/create
- C.model/infer
- D.server/connect
答案:A。MCP 客户端通过 tools/list 向服务端请求当前可用的工具清单,实现运行时动态发现。B 是“创建工具”的错误联想,MCP 的工具由服务端实现而非动态创建;C、D 是干扰项。tools/list 就像服务员拿平板刷新当天菜单。
Q5. 在“FC 决策 + MCP 执行”的组合模式下,下列分工正确的有?
- A.FC 负责解析用户意图并选择工具← 正确答案
- B.MCP 负责统一路由并执行工具调用← 正确答案
- C.FC 负责直接访问数据库执行查询
- D.MCP 负责替代模型做语义理解决策
答案:AB。组合模式的核心是决策与执行分离:FC 利用模型能力做意图理解和工具选择(A 对),MCP 负责将选中的工具路由到对应 Server 执行(B 对)。C 把执行职责误给了 FC,D 把决策职责误给了 MCP,顺序反了。
Q6. MCP 在生态兼容性上的核心优势是什么?
- A.开放协议支持跨模型跨语言互通← 正确答案
- B.仅支持 OpenAI 单家模型接入
- C.依赖厂商私有 SDK 才能使用
- D.只能连接外部网络 API 接口
答案:A。MCP 是开放的应用层协议,客户端与服务端可跨厂商、跨语言复用,一套 MCP Server 能服务多种模型的 Agent。B、C 描述的是封闭生态,D 中的“只能连接外部 API”是无依据的限制。连锁集团的服务台对任何门店开放,MCP 对任何模型开放。
Q7. 相比 Function Calling,MCP 在安全模型上的增强包括哪些?
- A.工具权限声明与作用域约束← 正确答案
- B.敏感操作的用户审批机制← 正确答案
- C.取消所有中间权限校验环节
- D.自动绕过安全策略执行操作
答案:AB。MCP 将安全做进协议层:Server 声明权限作用域(A 对),敏感操作可要求用户显式审批(B 对)。C、D 描述的是削弱安全的行为,与 MCP 设计方向完全相反。服务台要验资质、要登记、要审批,而不是放行一切。
Q8. 在“FC 决策、MCP 执行”模式中,“决策”具体指什么?
- A.模型输出结构化的工具名与参数← 正确答案
- B.模型直接执行后端函数逻辑
- C.模型自动安装部署新服务
- D.模型编写完整业务流程代码
答案:A。FC 决策的产物是结构化调用意图——工具名 + 参数字典,后续执行交给 MCP。B 说的是执行而非决策,C、D 超出了 FC 能力范围。顾客的任务是报出菜名和忌口,而不是进后厨炒菜。
Q9. 某团队只有 3 个固定工具、单一大模型、无第三方生态接入需求,合理的选型建议是?
- A.直接用 Function Calling 保持轻量← 正确答案
- B.必须搭建多套 MCP Server 才能运行
- C.不适用任何工具调用方式
- D.需要自研全新协议替代两者
答案:A。规模小、工具固定、生态需求低时,FC 是最优解——无需引入额外基础设施和运维成本。B 把 MCP 当成了必需品,C、D 否定了现成方案。小吃车一张菜单就够用,不必上豪华服务台。
Q10. 大规模企业级场景选择 MCP 的典型原因有哪些?
- A.统一工具接入标准降低集成成本← 正确答案
- B.动态发现新工具无需重新发版← 正确答案
- C.权限声明与审计满足合规要求← 正确答案
- D.取消权限控制加速工具上线速度
答案:ABC。企业级场景选择 MCP 是因为它统一标准(A)、动态扩展免发版(B)、协议层安全合规(C)。D 主张取消权限控制,这与企业级需求完全相反——安全合规恰恰是选择 MCP 的关键动机。