从openai的Function_calling到mcp_原创

115 阅读7分钟

关键要点

  • 从 OpenAI 的函数调用到模型上下文协议(MCP),技术发展似乎主要集中在标准化和扩展功能上。
  • 研究表明,这包括从专有方法转向开放标准,促进 AI 模型与外部系统的互操作性。
  • 证据倾向于表明,MCP 提供了更全面的功能,如工具、资源和提示,超越了函数调用的局限。

概述

从 OpenAI 的函数调用到模型上下文协议(MCP),技术发展反映了 AI 模型与外部系统交互方式的演进。以下是主要方面的详细解释,适合普通读者理解。

什么是 OpenAI 的函数调用?

OpenAI 的函数调用是其 API 的一部分,允许 AI 模型根据用户输入生成函数调用。这些调用由开发者处理,用于连接模型与外部工具或服务,例如天气 API 或数据库查询。它于 2023 年 6 月引入,基于 gpt-3.5-turbo-0613 模型。

什么是模型上下文协议(MCP)?

MCP 是 Anthropic 于 2024 年 11 月提出的开放标准,旨在连接 AI 助手与外部数据源,如内容库、业务工具和开发环境。其目标是帮助前沿模型提供更相关、更准确的响应。MCP 包括工具(模型可调用的函数)、资源(数据源)和提示(指导模型行为的预定义消息)。

技术发展的关键点
  • 标准化:从 OpenAI 的专有函数调用,发展到 MCP 的开放标准,促进了不同 AI 提供商之间的协作和互操作性。
  • 功能扩展:MCP 不仅支持函数调用,还包括数据访问和提示管理,使其更全面。例如,MCP 可用于 SQLite 数据库交互,而函数调用主要专注于生成函数调用。
  • 架构改进:MCP 采用客户端-服务器架构,增强了模块化和可扩展性,相比之下,函数调用更集成在 OpenAI 的 API 生态系统中。
  • 社区驱动:作为开放标准,MCP 鼓励社区贡献,推动创新和更广泛的采用。
一个意想不到的细节

MCP 的发展不仅限于技术进步,还涉及政策和社区协作的推动,例如欧盟 AI 法案等监管框架可能间接影响了标准化需求。


详细报告

以下是关于从 OpenAI 的函数调用到 MCP 技术发展的全面分析,旨在像专业文章一样详细记录所有相关信息。

背景与时间线

研究表明,OpenAI 的函数调用功能于 2023 年 6 月引入,基于 gpt-3.5-turbo-0613 模型。这允许 AI 模型生成函数调用,开发者可据此调用外部工具,如天气 API 或数据库查询。相比之下,Anthropic 于 2024 年 11 月 24 日推出了模型上下文协议(MCP),这是一个开放标准,旨在连接 AI 助手与外部数据源和工具。

时间范围为 2023 年 6 月至 2024 年 11 月,期间 AI 技术经历了显著发展,包括新模型发布和功能增强。

技术发展的具体内容

证据倾向于表明,从函数调用到 MCP 的发展包括以下几个方面:

  1. 标准化与开放性

    • 最初,OpenAI 的函数调用是其 API 的专有功能,限制了与其他 AI 提供商的互操作性。MCP 的引入则是一个开放标准,旨在统一 AI 模型与外部系统的交互方式。例如,MCP 支持多种模型如 OpenAI、Google Gemini 和 Meta Llama 3.3 70B,通过客户端-服务器架构实现统一访问。
    • 这促进了社区协作,鼓励开发者贡献工具和资源服务器,推动创新。例如,GitHub 上有多个 MCP 客户端项目,如 mcp-openai,支持本地推理引擎如 vLLM 和 Llama.cpp。
  2. 功能扩展与全面性

    • 函数调用主要专注于模型生成函数调用,开发者需手动处理这些调用。而 MCP 提供了更全面的功能,包括:
      • 工具:模型可调用的函数,如搜索天气或执行 SQL 查询。
      • 资源:数据源如文件、数据库或 API,例如通过 MCP 服务器访问 SQLite 数据库。
      • 提示:预定义消息,指导模型行为,如系统提示优化。
    • 这使 MCP 更适合构建复杂工作流和安全代理。例如,MCP 可用于自然语言接口与 MySQL 数据库交互,而函数调用更多用于特定任务如电子邮件生成。
  3. 架构与可扩展性

    • MCP 采用客户端-服务器架构,AI 代理作为客户端,与提供工具和资源的服务器通信。这与函数调用的集成式 API 设计形成对比。例如,MCP 服务器可远程运行,支持动态扩展,而函数调用依赖 OpenAI 的 API 生态系统。
    • 这种架构增强了模块化,例如,MCP 服务器可为不同模型提供统一接口,支持远程服务器和认证(仍在开发中)。
  4. 安全性和隐私

    • MCP 的标准化协议允许定义更好的安全措施,如认证和授权。例如,MCP 服务器可实现企业级安全,保护数据隐私,这在函数调用中依赖开发者自行实现。
    • 这对大规模部署尤为重要,例如在医疗或金融领域,需确保数据安全。
  5. 社区驱动与创新

    • 作为开放标准,MCP 鼓励社区贡献,如 GitHub 上的 MCP 服务器项目,支持 Bitrefill API 或文档提取。这些项目扩展了 MCP 的应用场景,如生成图像或管理 Xano 数据库。
    • 相比之下,函数调用的创新更多依赖 OpenAI 的更新,如 GPT-4 Turbo 或 Assistants API 的发布。
相关 AI 技术进展

从 2023 年 6 月到 2024 年 11 月,AI 领域还有其他相关进展,可能间接支持了 MCP 的发展:

  • 新模型发布:如 GPT-4 Turbo(2023 年 8 月)、Gemini(2023 年 12 月)、Claude 3(2024 年 5 月),这些模型增强了工具使用和多模态能力。
  • 多模态能力:如 GPT-4 Turbo with Vision(2024 年 1 月),支持图像输入,可能影响模型与外部系统的交互。
  • 检索增强生成(RAG):MCP 的资源组件与 RAG 类似,允许模型访问外部知识库,提供更准确的响应。
  • AI 代理发展:AI 代理的兴起需要标准化协议,MCP 正好填补这一需求,例如通过工具调用执行任务。
对比分析

以下表格详细对比函数调用和 MCP 的关键差异:

特征OpenAI 的函数调用模型上下文协议(MCP)
定义AI 模型生成函数调用,开发者处理执行开放标准,连接 AI 模型与外部数据源和工具
架构集成在 OpenAI API 中,基于 JSON Schema客户端-服务器架构,支持工具、资源和提示
组件主要为工具调用,依赖开发者实现包括工具、资源(如数据库)和提示
示例使用用于天气查询或电子邮件生成用于 SQLite 数据库交互或文档提取
安全与隐私依赖开发者实现,安全性有限支持企业级安全,如认证(开发中)
社区支持依赖 OpenAI 生态系统开放标准,鼓励社区贡献,如 GitHub 项目
意想不到的细节

一个意想不到的细节是,MCP 的发展不仅受技术驱动,还受到政策和社区需求的推动。例如,欧盟 AI 法案等监管框架可能间接促进了标准化需求,而社区项目如 mcp-openai 的出现展示了开发者对开放标准的热情。

结论

从 OpenAI 的函数调用到 MCP,技术发展体现了从专有到开放、从单一功能到全面系统的演进。这不仅提升了 AI 模型的实用性,还为未来 AI 代理和复杂工作流的开发奠定了基础。