binglu’s blog
← 返回文章
Agent 与 RAG

一文讲清楚 Prompt、MCP、Function Call、Agent 和 LLM 之间的关系和区别

冰露6 分钟

一文讲清楚 Prompt、MCP、Function Call、Agent 和 LLM 之间的关系和区别

想象一下,你要计划一次完美的旅行,这里有一位专业的旅行顾问(LLM),你们的沟通方式(Prompt),他能联系的各种服务商(Function Call),整个旅行社的智能规划系统(Agent),以及所有服务商的统一预订标准(MCP)。让我们通过这个旅行场景,一步步理解这些概念。

1. LLM(大语言模型):专业的“旅行顾问”

LLM 就像那位经验丰富的旅行顾问,他了解世界各地的风土人情,能理解你的需求并给出建议。但他的信息有局限性——比如不知道今天的机票价格,也不清楚酒店的实时房态。

2. Prompt:与旅行顾问沟通的“艺术”

System Prompt(系统提示词)

就像旅行社给顾问的工作指南,规定了服务标准风格

具体示例:

System Prompt:
你是一位专业的旅行规划顾问,名叫小游。你需要:
1. 根据客户预算合理规划
2. 考虑天气和季节因素
3. 提供详细的行程安排
4. 推荐性价比高的选择

User Prompt(用户提示词)

就是你向旅行顾问提出的需求

具体示例:

User: 我想下周去杭州玩3天,预算5000元,有什么建议?

实际应用场景

场景 1:商务风格

System Prompt: 你是专注商务出行的顾问,注重效率和便利
User: 去杭州出差3天
AI回复: 建议入住西湖商圈希尔顿酒店,距离商务区15分钟。
        推荐航班:MU5511 早7:30抵达,充足时间准备会议。
        会议间隙可参观西湖,单程仅需10分钟。

场景 2:休闲风格

System Prompt: 你是轻松友好的旅游顾问,注重体验和乐趣
User: 去杭州出差3天
AI回复: 哇,杭州出差真不错!建议住在西湖附近的民宿,
        晚上散步超惬意~白天忙完工作,傍晚一定要去
        看看雷峰塔的日落,超美的!
  1. Function Call:调用外部能力的“电话”

旅行顾问虽然经验丰富,但他需要联系航空公司、酒店、景点等查询实时信息。Function Call 就是这个”联系“的过程。

工作流程示例:

游客:帮我查一下明天北京到杭州的航班

顾问思考:我需要查询航班信息

Function Call: searchFlights(from="北京", to="杭州", date="明天")

航空系统返回:[航班列表数据]

顾问整理信息:明天有以下航班供您选择...
  1. Agent:自主工作的“系统”

Agent 不仅仅是工具,而是整个旅行社的智能规划系统。如果说 LLM 是旅行顾问,那 Agent 就是能够自主协调整个行程的高级管家——它知道先订哪个、如何避免冲突、怎样优化路线。

Agent vs 工具的区别:

  • 工具:计算器(输入数字,返回结果)
  • Agent:数学老师(理解你的问题,选择合适方法,一步步教你解题)

Agent 的核心能力:

  • 行程分解:将“3 天杭州游”分解为交通、住宿、景点、餐饮等模块
  • 时间管理:确保航班时间与酒店入住时间衔接
  • 冲突处理:发现景点周一闭馆,自动调整行程
  • 优化建议:根据天气调整室内外活动比例
  1. MCP(Model Context Protocol):统一的“服务标准”

MCP 就像是外出旅行的标准化手册。

没有 MCP 之前的混乱

想象你的 AI 助手要调用不同的工具,每个工具都有完全不同的接入方式:

调用天气工具:

# 工具A:需要先初始化,再调用
weather_client = WeatherAPI(api_key="xxx")
result = weather_client.get_weather("杭州")
if result.status == 200:
    temp = result.data["temperature"]

调用航班工具:

# 工具B:直接HTTP请求,自己处理JSON
response = requests.post("https://flight-api.com/search",
                       headers={"Authorization": "Bearer yyy"},
                       json={"from": "北京", "to": "杭州"})
flights = json.loads(response.text)["flights"]

调用酒店工具:

# 工具C:使用SOAP协议,返回XML
soap_client = HotelSOAPService(wsdl="https://hotel.com/service?wsdl")
xml_result = soap_client.searchHotels(city="杭州", date="2024-12-28")
hotels = parse_xml(xml_result)

调用地图工具:

# 工具D:使用GraphQL
query = """
query GetRoute($from: String!, $to: String!) {
    route(from: $from, to: $to) {
        distance
        duration
    }
}
"""
result = graphql_client.execute(query, {"from": "西湖", "to": "灵隐寺"})

这种混乱导致:

  • LLM 需要“学会”每个工具的特殊调用方式
  • 每接入一个新工具,都要写特殊的适配代码
  • 错误处理方式各不相同,难以统一管理
  • 有的要 API 密钥,有的要 OAuth,有的要证书…

就像你要打电话,但是:

  • 给 A 公司要用座机
  • 给 B 公司要发传真
  • 给 C 公司要用对讲机
  • 给 D 公司要写信

这样 AI 助手怎么高效工作?

MCP 带来的统一

有了 MCP,所有工具调用都遵循统一标准:

# 所有服务都用统一格式
mcp.call("flight", {"from": "北京", "to": "杭州", "date": "2024-12-28"})
mcp.call("hotel", {"city": "杭州", "checkin": "2024-12-28", "nights": 3})
mcp.call("attraction", {"city": "杭州", "type": "必游景点"})

完整工作流程

了解了各个概念后,让我们通过一张架构图来看看它们是如何协同工作的:

文章配图

这里理解意图部分并不是所有任务都需要 Agent 参与。LLM 会根据任务复杂度智能判断,可根据任务复杂度决定是否调用 Agent 参与任务执行。

简单任务(直接处理):LLM 理解用户需求后,如果需要外部信息(如查实时航班),它会直接决策并利用 Function Call 机制(遵循 MCP)调用相应工具,然后整合信息直接回复。这里的 LLM 行为本身已经具备了基础的 Agent 特征(决策、工具调用)。

复杂任务(Agent 介入):当 LLM 判断任务需要多步骤规划、多工具协调、状态管理、冲突解决等高级功能时,它会启动或将其交给一个更完备的“Agent 系统/流程”。这个 Agent 系统依然以 LLM 为核心进行推理,但会进行更复杂的任务分解、工具序列调用、记忆管理等。

文章配图

让我们通过一个完整例子串联所有概念:

场景:用户想规划杭州3日游

1. System Prompt设定身份
   "你是专业的旅行规划顾问,擅长设计个性化行程..."

2. User输入需求
   "下周去杭州玩3天,预算5000元,喜欢人文景点"

3. LLM理解意图
   需要:查天气 → 订交通 → 订酒店 → 规划景点 → 推荐美食

4. Agent介入协调
   - 先查天气,确定适合出行
   - 根据预算分配交通住宿比例
   - 查询景点,优先人文类
   - 检查时间冲突,优化路线

5. 通过Function Call调用各服务
   - 天气查询API(通过MCP)
   - 机票/高铁查询API(通过MCP)
   - 酒店预订API(通过MCP)
   - 景点信息API(通过MCP)
   - 餐厅推荐API(通过MCP)

6. LLM整合信息,生成完整行程
   "您的杭州3日文化之旅:
    Day1: 抵达→灵隐寺→飞来峰(禅文化)
    Day2: 中国茶叶博物馆→西湖→雷峰塔(茶文化+历史)
    Day3: 宋城→南宋御街(宋文化)

    交通:高铁往返 ¥600
    住宿:西湖边精品酒店 ¥1200
    门票+餐饮:¥2000
    预留机动资金:¥1200"

常见误区澄清

❌ **误区 1**:Agent 就是工具的集合

✅ **正确**:Agent 是能自主规划和决策的系统

❌ **误区 2**:每次对话都需要 Function Call

✅ **正确**:LLM 有知识储备时直接回答,只在需要实时信息时调用

❌ **误区 3**:MCP 让所有工具功能一样

✅ **正确**:MCP 只统一调用方式,使接口兼容,工具功能各不相同

总结

  • **LLM(旅行顾问):**核心大脑,拥有丰富的旅行知识
  • Prompt(沟通方式):System Prompt 是服务标准User Prompt 是客户需求
  • **Function Call(服务专线):**LLM 调用外部工具的机制,顾问(llm)联系各个服务商(tool)的方式
  • **Agent(行程规划系统):**基于 LLM 的自主系统,能规划和执行复杂任务,协调复杂行程,确保完美体验
  • MCP:让所有服务商(tool)说同一种“语言”的统一标准,标准化确保了工具的稳定性和可维护性,确保兼容

这就像一家专业的旅行社:经验丰富的旅行顾问(LLM)按照服务标准(System Prompt)工作,理解客户需求(User Prompt),必要时联系各个服务商(Function Call),整个行程规划系统(Agent)智能协调,而所有合作方都遵循统一预订标准(MCP)——最终为客户打造完美的旅行体验!

如有任何问题,欢迎评论区留言讨论!!!