MCP(Model Context Protocol)

功能: 和本地环境有强交互需要的, 需要修改文件的

  • 读取我电脑的terminal history, 总结常用功能, 结合项目文件, 给项目写readme
  • 快速配置环境, 跑通一个开源项目

概念对比:Function Calling vs Agent vs MCP vs Skills

1. 核心定义

  • Function Calling (函数调用)
    • 定义: LLM 的一种基础能力。模型不直接执行代码,而是输出一个结构化数据(通常是 JSON),声明“我想调用这个函数,参数是这些”。宿主程序捕获这个请求,执行实际代码,并将结果传回给 LLM。
    • 角色: LLM 的“手”和“眼”。它是实现工具使用的底层机制。
  • Agent (智能体)
    • 定义: 一个拥有自主性的系统架构。它利用 LLM 进行感知、规划(Planning)、记忆(Memory),并主动使用工具(Tool Use)来完成复杂的、多步骤的目标。
    • 角色: 独立工作的“员工”。它是上层的逻辑编排者。
  • Skills (技能/插件)
    • 定义: 通常指一组特定领域能力的打包封装(在 Semantic Kernel 等框架中常见)。它将相关的 Prompts 和 Functions 组合在一起,形成一个功能模块。
    • 角色: Agent 的“工具箱”。它是功能的组织单位。
  • MCP (Model Context Protocol)
    • 定义: 一个开放标准协议。它标准化了 AI 应用(Client)如何连接到外部数据(Resources)和工具(Tools)。
    • 角色: AI 时代的“USB 接口”。它是基础设施层的连接标准,旨在解决“每个工具都要写一遍适配代码”的问题。

2. 关系与区别

  • Function Calling 是原子能力: 无论是 Agent 还是 MCP 暴露的工具,底层通常都依赖模型输出 JSON 这种 Function Calling 能力来触发。
  • MCP 是连接标准:
    • 传统方式: 为了让 Agent 读数据库,开发者要手写 Python 代码封装 SQL 查询并转为 Function。
    • MCP方式: 数据库运行一个 MCP Server,Agent (作为 Client) 自动发现并使用数据库暴露的资源和工具,无需专门写胶水代码。
  • Skills 是管理方式: 开发者将多个 Function 整理成一个 Skill 赋予 Agent。

3. 适用场景

概念 适用场景 典型例子
Function Calling 单步、确定的操作。需要模型输出结构化数据时。 让 AI 提取用户句子中的日期和地点:“帮我订明天去上海的票”。
Skills 模块化开发。需要复用特定领域的业务逻辑时。 开发一个“办公三件套”技能包(发邮件、查日历、写文档),供不同的 Bot 调用。
Agent 复杂任务闭环。需要多步推理、容错、自主决策时。 “帮我调研一下 MCP 协议的优缺点,写一篇博客,并发布到我的网站上”。
MCP 生态集成与解耦。需要连接本地环境、异构数据源,且希望一次开发到处运行时。 Cursor/Claude Desktop 等编辑器读取本地 Git、Postgres、Notion 数据。