前几天和一个做系统集成的朋友争论。他维护的 Agent 每次对接新业务系统,都要把接口说明、参数格式、鉴权方式一股脑写进 System Prompt 里。改一个字段描述,整个提示词就要重新测试一遍。他觉得这是 AI 开发的常态,但我认为这恰恰是架构设计上的缺陷。
我的判断很明确:在构建企业级 AI Agent 时,应优先采用 MCP(Model Context Protocol)标准来替代传统的自定义 Prompt 工程实现工具集成。 原因很简单,MCP 将工具定义与模型逻辑解耦了,解决了传统做法中工具描述硬编码导致的维护困难和复用性差的问题。
别再把工具说明硬塞进 Prompt 里了
传统的 Agent 开发模式里,工具和模型之间没有边界。你想让大模型调用一个查询订单的 API,就得在 System Prompt 里用自然语言或者 JSON Schema 把函数名、入参类型、返回值含义甚至错误码解释写得清清楚楚。
当 Agent 只需要调用两三个内部接口时,这种做法勉强能跑通。但一旦接入的系统变多,Prompt 就会膨胀到难以阅读的地步。每次新增或修改一个 API,你不仅要更新代码里的调用逻辑,还要回头去改那段冗长的文本描述。
更隐蔽的问题是上下文浪费。大模型的上下文窗口是有限的资源,把大量静态的工具说明书塞进去,意味着留给真实业务对话的空间被压缩了。而且这些描述往往只对特定的模型有效,换个底层模型,你可能得重写一遍所有的工具提示词。
我之前以为只要把 Prompt 模板化就能解决复用问题,后来发现模板只是把混乱藏得更深了一点,并没有改变模型指令与工具实现强绑定的事实。
MCP 把“用什么”和“怎么连”拆开了
MCP 的核心思路是提供一个标准化的协议层,让 Agent 和外部工具之间的通信不再依赖模型对自然语言的理解。
在这个架构下,Agent 的核心逻辑只负责理解用户意图和规划任务步骤。至于具体有哪些工具可用、每个工具需要什么参数、如何建立连接,全部由独立的 MCP Server 按照统一协议对外暴露。模型不需要知道底层的 HTTP 请求怎么写,也不需要关心数据库的连接字符串。
这种拆分带来的直接好处是职责清晰。开发业务工具的团队可以独立编写和部署 MCP Server,而负责 Agent 核心链路的团队不需要关心具体的业务细节。两边通过协议契约协作,任何一方的变更只要不破坏契约,就不会影响另一方。
工具的定义从一段非结构化的文本,变成了一个可以通过标准接口动态发现的实体。Agent 启动时,向 MCP Server 询问能力清单,按需加载,而不是把所有可能性提前写死在指令里。
引入 MCP 不是没有代价的
解耦从来都是要付出成本的。选择 MCP,首先意味着你需要搭建和维护一套额外的基础设施。每一个需要接入的业务系统,都要封装成符合协议的 MCP Server,这增加了初期的开发工作量。
其次是团队的学习曲线。开发人员需要理解协议的交互机制、消息流转过程以及异常处理规范。对于习惯了直接在代码里拼凑 Prompt 的团队来说,切换到基于协议的架构需要适应期。
还有一个容易被忽视的风险是过度设计。如果你的 Agent 从头到尾只需要调用一个固定的内部接口,且业务逻辑几年内都不会变动,那么专门为此部署一个 MCP Server 显然是多余的。在这种极度简单的单工具场景下,协议层带来的灵活性毫无用武之地,反而增加了系统的复杂度。
为什么我依然建议优先选 MCP
尽管有上述代价,在面对中大型应用场景时,解耦带来的架构收益依然远超初期投入。企业级应用的一个典型特征是异构数据源多。你的 Agent 可能需要同时读取关系型数据库、调用遗留的 SOAP 接口、查询文档库,还要对接外部的 SaaS 服务。
如果把这些系统的接入逻辑全写在 Prompt 里,Agent 的核心代码很快就会变成一个无法维护的泥潭。MCP 提供了一个统一的抽象层,无论底层是哪种技术栈,对 Agent 而言暴露的都是标准的工具描述和调用接口。
长期复用性是另一个关键考量。当你为某个业务线开发了一个查询库存的 MCP Server 后,其他业务线的 Agent 可以直接发现并调用它,而不需要重新编写提示词。这种能力的沉淀和共享,是硬编码 Prompt 无法做到的。
对于希望降低 Agent 核心逻辑与具体工具实现耦合度的团队来说,MCP 提供了一条清晰的演进路径。 它将系统从一个脆弱的整体,拆解成了可以独立演进的模块。
什么时候该回头写死 Prompt
任何架构决策都有适用边界,MCP 也不例外。我目前还没完全想清楚的一点是,在极低延迟要求的边缘计算场景中,协议交互带来的网络开销是否会成为瓶颈。如果 Agent 运行在资源受限的设备上,每一次工具调用都需要经过完整的协议握手,这可能是不现实的。
此外,在早期的原型验证阶段,快速跑通流程比架构优雅更重要。此时直接在 Prompt 里写明工具用法,能让你以最低成本验证想法是否可行。同样,在一个完全封闭、只有单一系统且永远不会扩展的内部脚本中,引入标准化协议也是一种负担。
架构设计的本质是在约束条件下做取舍。MCP 解决的是规模化集成时的复杂性问题。当你的 Agent 开始跨越多个系统边界时,就是该放下拼接 Prompt 的习惯,转向标准化协议的时候了。