AI Agent 通信进化史:从 Prompt 到 MCP
本文是《深度解析 Model Context Protocol (MCP)》的姊妹篇——从「为什么」视角回顾 Agent、Prompt、Function Calling 到 MCP 的必然之路。
TL;DR
- 历史主线:Prompt → AutoGPT → Function Calling → MCP,本质是「让模型可靠地调用外部世界」的层层封装。
- 格式混战:SystemPrompt vs FunctionCalling 并存,各家 JSON Schema 不兼容 → 需要统一协议。
- MCP 定位:Agent 与 Tool 之间的「USB-C 插座」,不关心模型是谁,只负责把工具标准化插上去。
1. 史前时代:Prompt 里「夹带私货」
- 做法:把函数签名、示例输出一股脑写进 user prompt,让模型“悟”出该调啥。
- 痛点:
- 长度爆炸,上下文占用高;
- 概率生成,格式经常跑偏;
- 换模型 = 重写 prompt,维护地狱。
2. 第一次觉醒:AI Agent 与「AgentTool」雏形
- 核心思想:模型不再只回答,而是成为中间调度员——
- 接收用户目标;
- 自主拆解任务链;
- 调用外部工具(搜索、代码执行、文件读写);
- 把结果汇总再返回。
- AgentTool 雏形(下图灰色部分):
- 早期 Demo(如 AutoGPT)用自由文本把工具说明塞给模型,让模型自己决定何时、如何调用;
- 实际执行由本地脚本代理,无统一格式、无类型校验,幻觉一多就爆炸。
- 遗留问题:格式混乱、幻觉调用、维护地狱。
3. 规范之战:Function Calling 登场
- 解法:把「工具说明书」结构化——JSON Schema 描述函数名、参数类型、必填项。
- 各家实现(2023 起):
- OpenAI:
functions[]/tool_choice(1.x 版 Schema) - Google:
tools.function_declarations(差异字段命名) - Anthropic:
tools(支持<tool_call>XML 标记)
- OpenAI:
- 共同点:都走SystemPrompt 注入 → 模型生成符合 Schema 的调用 → 客户端代理执行。
- 并存现实:
- 老模型/开源模型不支持 FC,只能继续拼 SystemPrompt;
- 同一套工具要维护两份描述 → 急需“与模型无关”的抽象层。
4. 通用插座:MCP 接管工具侧
设计哲学:
- 把「工具」做成标准服务,与模型解耦;
- 任何 Agent(不论用 GPT、Claude 还是 Llama)只要会讲 MCP,就能即插即用;
- 统一资源、提示词、函数三合一抽象,详见姊妹篇%EF%BC%9AAI%20%E6%97%B6%E4%BB%A3%E7%9A%84%E9%80%9A%E7%94%A8%E6%8E%A5%E5%8F%A3%E6%A0%87%E5%87%86/)。
角色划分:
- MCP Server:暴露工具/资源/提示词;
- MCP Client:随 Agent 启动,负责协议握手、调用、结果回传;
- Agent:专注决策与编排,不再关心工具格式。
5. 端到端通信全景

6. 小结与展望
- Prompt 时代靠「说」;Function Calling靠「规范说」;MCP靠「把工具做成标准件」。
- 对开发者:写一次 Tool → 任何 Agent 可用;对模型方:专注推理,无需兼容 N 种格式。
- 下一步:多 Agent 之间用 MCP 互相发现、交易、组合,形成「工具即服务」市场——模型只负责决策,工具生态交给协议。
想亲手跑通一个 MCP Server?移步《深度解析 Model Context Protocol (MCP)》%EF%BC%9AAI%20%E6%97%B6%E4%BB%A3%E7%9A%84%E9%80%9A%E7%94%A8%E6%8E%A5%E5%8F%A3%E6%A0%87%E5%87%86/),其 3.2 节「稳定性与高性能」中包含最小可运行示例与最佳实践清单。
AI Agent 通信进化史:从 Prompt 到 MCP
https://blog.baoyanfudao.com/tech/AI-Agent-通信进化史:从-Prompt-到-MCP/