AI进化论:Function Calling与MCP深度对比与推荐

2026-06-14阅读 0热度 0
ai

如果你关注过AI领域的技术演进,一定听说过Function Calling——它曾是大模型连接外部世界的“敲门砖”。但Anthropic近期推出的MCP协议正在重塑规则。本文梳理从私有函数调用到开放上下文协议的演进路径,详解AI的“手脚”如何真正装上,以及在实际业务场景中能释放哪些价值。

AI进化路径:从Function Calling到MCP,你的大模型还困在“聊天”里吗?

文章目录

  • AI进化路径:从Function Calling到MCP,你的大模型还困在“聊天”里吗?
    • 一、 给AI装上手脚:Function Calling究竟解决了什么?
      • 1. 技术定义与场景化理解
      • 2. 核心功能与代码示例
    • 二、 实战演练:构建“门票数据助手”
      • 1. 业务场景描述
      • 2. 升级:单次调用完成查询+可视化
    • 三、 MCP:AI界的“USB-C”通用协议登场
      • 1. MCP是什么?
      • 2. MCP核心架构拆解
    • 四、 玩转MCP:从旅游攻略到桌面文件统计
      • 1. 案例:高德地图旅游助手
      • 2. 案例:桌面TXT统计器(MCP SDK实战)
    • 五、 未来扩展:3个高价值方向
    • 六、 总结与互动
      • 转载声明
      • 参考链接

一、 给AI装上手脚:Function Calling究竟解决了什么?

1. 技术定义与场景化理解

技术定义: Function Calling(函数调用)是模型厂商(如OpenAI、阿里云Qwen)提供的私有接口能力。开发者预先定义一组工具(函数),当模型识别到用户意图需要调用外部数据或执行操作时,输出符合函数签名的 **结构化参数(JSON)**,由后端执行后返回结果,模型据此生成最终回答。

场景化理解: 想象你雇佣了一位才华横溢但手无寸铁的“参谋”(大模型)。若你问“今天外面多少度?”,他只能胡编。但若你递给他一支温度计(Function),并教会他读数方法,他就能先检测温度,再汇报:“主公,室外35度,建议室内办公。”

生活类比: 好比点外卖。你(用户)对大模型说“我饿了”。大模型(外卖员)不会自己做饭,但懂得调用“美团下单”这个函数,填好“红烧肉”和“收货地址”,最终把餐食送到你手上。

2. 核心功能与代码示例

在Qwen-Agent等框架中,Function Calling支持实时数据获取、复杂数学计算以及外部系统操作。

# 示例:一个简单的天气查询函数注册
from qwen_agent.tools.base import BaseTool, register_tool

@register_tool('get_weather')
class WeatherTool(BaseTool):
    description = '获取指定城市的实时天气'
    parameters = [{
        'name': 'city',
        'type': 'string',
        'description': '城市名称,如:北京',
        'required': True
    }]

    def call(self, params: str, **kwargs) -> str:
        # 这里模拟调用 API
        import json
        args = json.loads(params)
        city = args['city']
        return f"{city}今天晴转多云,25度,适合摸鱼。"

二、 实战演练:构建“门票数据助手”

1. 业务场景描述

我们需要搭建一个能够查询门票销售数据的助手。其底层依赖 tkt_orders 数据表,包含订单时间、用户ID、省份、订单金额等字段。

2. 升级:单次调用完成查询+可视化

传统模式下,数据查询与图表绘制割裂。但在升级版 exc_sql 工具中,我们实现了自动推断图表字段,并直接返回Markdown表格与图片。

核心逻辑实现:

  • SQL查询:执行SQL获取结果集 df
  • 自动绘图:优先将字符串列作为X轴,数值列作为Y轴。
  • 样式处理:自动设置标签倾斜45度,避免文字重叠。
# 自动推断并绘图的逻辑片段
x_candidates = df.select_dtypes(include=['object']).columns.tolist()
x = x_candidates if x_candidates else df.columns
y_fields = df.select_dtypes(include=['number']).columns.tolist()

import matplotlib.pyplot as plt
plt.figure(figsize=(8, 5))
for col in y_fields:
    plt.bar(df[x].astype(str), df[col], label=col)
plt.xticks(rotation=45)
plt.savefig('chart.png')

三、 MCP:AI界的“USB-C”通用协议登场

1. MCP是什么?

技术定义: Model Context Protocol (MCP) 是Anthropic推出的开放协议标准。它旨在标准化LLM与外部数据源、工具之间的交互方式,实现“一次开发,多模型兼容”。

场景化理解: 此前各家AI接口互不兼容,像极了充电接口混乱的年代(iPhone用Lightning,安卓用Micro-USB)。MCP就是AI界的USB-C,无论Claude、GPT还是Qwen,只要接入这个“标准插口”,所有工具都能即插即用。

2. MCP核心架构拆解

  • MCP Host:AI运行环境(如Cursor、Claude Desktop)。
  • MCP Client:负责发起请求的“翻译器”。
  • MCP Server:提供具体功能的“工具库”。

2. 案例:桌面TXT统计器(MCP SDK实战)

借助Python的 FastMCP 框架,几行代码即可让AI获得“查看桌面文件”的能力。

from pathlib import Path
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("桌面统计器")

@mcp.tool()
def count_desktop_txt_files() -> int:
    """统计桌面上 .txt 文件的数量"""
    desktop_path = Path("~/Desktop").expanduser()
    return len(list(desktop_path.glob("*.txt")))

if __name__ == "__main__":
    mcp.run()

五、 未来扩展:3个高价值方向

在现有能力基础上,我们可以进一步延伸AI的“触角”:

  1. 智能家居“边缘大脑”:
    • 方案:通过MCP协议连接本地Home Assistant服务器。
    • 价值:消除云端延迟。即使离线,你也能对AI说:“看我眼神行事,把卧室灯调成暖色调。”
  2. AI投资情报助手:
    • 方案:集成Tavily搜索MCP + 实时股价Function Calling。
    • 价值:AI自动抓取半导体行业新闻,结合本地持仓数据,绘制盈亏分析图并给出操作建议。
  3. 自动化“代码医生”:
    • 方案:开发具有文件修改权限的MCP Server,接入IDE。
    • 价值:发现Bug后,AI不仅能“建议”,还能直接修改代码,测试通过后自动关闭Jira工单。

六、 总结与互动

从私有的Function Calling到开放的MCP,AI正从“只会聊天的复读机”进化为“能动手干活的执行者”。底层能力的标准化,让开发门槛大幅降低。


转载声明

本文为原创内容。转载请注明出处,并保留原文链接。

参考链接

  1. Model Context Protocol 官方文档
  2. Qwen-Agent 开源仓库
  3. Tavily AI 搜索服务
  4. 高德开放平台
免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策