本来想写篇MCP专题文章,结果发现这东西根本不值得长篇大论,发个帖子就够了。
MCP到底是啥?
你可能听过这些说法:'它是语言模型的Type-C接口'、'连接工具和资源的协议'...但具体什么意思?为啥这么多人嚷嚷它改变游戏规则?
先回答后一个问题:它改变个屁。语言模型照样胡说八道,基于它们的'智能体'也根本不智能。
说人话版原理:
我们都知道语言模型可以通过微调学会'使用工具'。比如用户问'3+2等于几',模型会输出'使用工具:计算器,2+3'。这时候需要开发者写个解析脚本,把工具名和参数提取出来传给真正的计算器API。
工具一多,这个脚本就会变得又臭又长难维护。
MCP的解决方案是:
让模型直接输出工具能识别的格式,省掉解析步骤。具体流程:
1. 用户问"3+2等于几"
2. 聊天机器人后台连上各种工具供应商的服务器,拉取工具清单
- 每个工具附带文字说明(质量全看供应商语文水平)
3. 后台把所有工具说明和用户问题一起塞给模型
4. 模型看完决定调用计算器工具,并按供应商要求的格式生成JSON
- 比如{"操作":"加法","参数1":3,"参数2":2}
5. 模型直接输出标准化指令,省去解析环节
但没人敢说的几个致命伤:
1. 模型必须经过专门微调才能理解工具说明,不是随便什么模型都能用MCP
2. 就算微调过,生成的JSON也不一定完全合规,毕竟没针对具体工具特训
- 即使用强制校验框架,键值对也可能出错
3. 复杂工具的参数结构能让人看晕,再加上供应商瞎写说明...
- 模型很可能选错工具或填错参数
4. 演示时一两个工具看着很美好,但现实需要成千上万个工具
- 全塞进上下文会爆内存,模型直接懵圈
- 不全塞进去就得先做工具分类,又得多训练个模型
所以再说一遍:'智能体'这玩意儿,玩两三个简单工具时像模像样,一旦规模上去就现原形。