1 Function Call 简介

Function Call 是大模型提供的一种调用外部工具的能力。用户通过传入工具的名称、简介、参数及其描述,让大模型能够理解工具的用途和用法。在对话过程中,大模型会根据当前的上下文和用户需求,自动判断是否需要调用某个工具,并生成相应的调用请求。

典型流程:

  1. 用户输入问题或需求。
  2. 大模型分析上下文,判断是否需要调用外部工具。
  3. 如需调用,则自动生成请求(包括工具名、参数等)。
  4. 工具返回结果,大模型将结果整合进回复。

这种方式适合快速集成简单工具,开发者只需在模型端描述工具,模型即可按需调用。


2 MCP 简介

MCP通过标准协议实现工具调用。Client 在使用工具前,会先连接 Server 获取最新的工具和资源信息,建立好连接后再进行后续操作。

这种机制让工具的注册、参数、能力等信息都能动态同步,便于后续维护和扩展。


3 方案对比

如果使用 Function Call,当接口有变动时,需要在每个使用该接口的地方都做相应修改。而采用 MCP,Client 会在使用前自动从 Server 获取最新的工具信息(包括参数),即使接口发生变化,也无需逐个修改各个 Client 的实现,极大提升了维护效率。

维度 MCP 协议 Function Call
协议标准 行业通用开放标准(如 HTTP、USB) 厂商私有接口(如 Apple Lightning)
通信格式 JSON-RPC 2.0 结构化协议,三层架构 结构化 JSON,API 私有格式
服务发现 支持服务注册与动态发现,自动同步新工具/能力 静态配置,需开发者手动更新所有函数
执行模式 客户端可异步批量触发,支持跨系统调用、会话 通常为单步、同步调用,逐步执行
扩展性 工具/数据源一次开发,全模型生态可复用 针对每个模型需单独适配
跨平台能力 强,厂商无关,可混用多家模型 仅限单一厂商生态,迁移需重写适配
安全细粒度 内置字段脱敏、同态加密、权限分级、审计日志 HTTPS 基本传输,开发者自管风险

3.1 开发体验对比

3.2 扩展性与生态兼容

3.3 工作流灵活性


4 参考资料

  1. Agent学习之:MCP和Function Call - 极客产品GeekPM
  2. Function calling & MCP for LLMs

版权声明

作者: Yao

链接: https://yaoliu.site/posts/mcp-vs-functioncall/

许可证: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键