60 秒回答模板

我会先把四类调用放在同一张边界表里。模型调用是 Agent 向 LLM 请求推理、规划或生成,输入是消息和上下文,输出是文本、结构化结果或工具调用意图,风险是幻觉、成本和延迟。本地函数调用是在当前服务进程或受控运行时里执行确定性能力,接口最直接、延迟低,但要严格限制参数、权限和副作用。MCP 调用可以理解为通过标准化协议访问外部工具或资源服务,边界更清楚,适合把文件、数据库、浏览器、业务服务等能力作为远程工具暴露,但要处理认证、网络、版本和服务可用性。Skill 调用更像把一组可复用能力、说明、脚本、依赖和使用规则打包给 Agent,强调发现、加载和执行上下文,适合较复杂的本地或半结构化能力。区别不是谁更高级,而是信任边界、部署位置、协议契约、权限控制和运维方式不同。

考点 模型调用
难度 真实面经题
回答目标 讲清工程边界与实现取舍

深入解析

01

模型调用负责不确定推理

模型调用的输入是任务上下文,输出是自然语言、结构化计划或工具调用意图。它适合理解、规划、生成和判断,但不应直接承担真实副作用。模型结果需要被 schema、策略和工具网关约束。

02

本地函数负责确定性执行

本地函数调用通常在同一服务或受控进程中执行,接口简单、延迟低、类型和测试更容易控制。它适合轻量计算、格式转换、内部查询等能力,但要注意副作用、幂等、参数校验和权限。

03

MCP 负责跨边界工具接入

MCP 调用把工具和资源服务放在协议边界后面,Agent 客户端通过统一方式发现和调用。它适合跨进程、跨语言或外部系统集成,但需要处理认证、连接、版本兼容、超时和远程错误。

04

Skill 负责能力打包和复用

Skill 通常把能力说明、触发条件、脚本、依赖、示例和约束组织成可复用单元。它强调让 Agent 发现某类任务应该怎么做,并在本地或沙箱中执行对应步骤,边界更接近能力包而不是单个函数。

05

四者的信任边界不同

模型输出不可信,需要验证;本地函数可信度取决于代码和调用权限;MCP 服务可信度取决于外部服务认证和协议;Skill 可信度取决于注册来源、沙箱权限和执行脚本。不同边界决定不同审计和防护方式。

06

工程上可以组合使用

一个 Agent 可以先模型规划,再调用 Skill,Skill 内部调用本地函数或 MCP 服务。关键是每层都有清晰输入输出、权限、超时、错误和 trace,避免模型把所有能力混成一个不可控黑盒。

易错点

  • 把 MCP、Skill 和 Function Calling 混为一谈。
  • 认为模型输出了工具调用就可以直接执行。
  • 只按是否远程调用区分,不看协议、权限和生命周期。
  • 忽略本地函数的副作用和幂等问题。
  • 把 Skill 讲成单个函数,没有体现能力包和发现机制。
  • 没有说明错误、超时、认证和 trace 如何处理。

面试官追问

本地函数和 Skill 有什么区别?

本地函数通常是一个明确 API;Skill 更像能力包,包含说明、触发条件、依赖、脚本和使用规则,可能内部再调用多个函数或工具。

MCP 和本地函数怎么取舍?

同进程、低延迟、强类型能力适合本地函数;跨进程、跨语言、外部资源或需要统一工具协议的能力更适合 MCP。

模型调用结果为什么不能直接执行?

模型可能幻觉、漏约束或误解权限。真实执行前必须经过 schema 校验、权限检查、风险确认和工具层约束。

四类调用如何统一观测?

统一记录 requestId、调用类型、输入摘要、权限结果、耗时、错误、输出摘要和成本,让链路可以回放和归因。