Pi 的作者 Mario Zechner 早期是死硬派的「No MCP」代表:核心只留 4 个工具,公开把 MCP 当反面教材。
结果在逼近 1.0 的 0.99 大版本里,Pi 突然把 MCP 设为了内置功能。
这看起来像妥协,但翻完源码就会发现:Pi 根本不是向 MCP 低头,而是用一层 Codemode 把 MCP 彻底降维驯服了。
传统 MCP 为什么是灾难?直给两组数字:
1. Token 炸弹:挂个 Playwright 吃 13.7k token,Chrome DevTools 吃 18k token。还没开始聊,3 万 token 先没了,首字延迟崩盘,工具疯狂选错。
2. 调度极慢:查 50 个 Issue,传统 ReAct 循环要跑 50 轮完整大模型往返,几十万字节原始 JSON 垃圾全挤进上下文。把大模型当单步 CPU 用,又贵又脆。
Pi 0.99 给出的解法非常干脆:代码即编排(Code-as-Orchestration)。
- Schema 零注入:MCP 工具默认 exposure 全是 codemode,工具定义根本不给大模型看,Prompt 仅留一行摘要,按需用 BM25 在沙箱里搜。几万 token 预载成本瞬间归零。
- 调度权收回代码:大模型不再发单步指令,而是直接写一段 JS 脚本,扔进 QuickJS 沙箱跑。循环、并发(Promise.all)、异常处理毫秒级完成。
1MB 的原始数据在沙箱内存里直接 filter/map,最终只有清洗后的 3 行有效结果才会回到大模型上下文。
MCP 只适合做能力的标准化暴露,从来不该直接当交互界面。
未来的 Agent 架构很明确了:大模型当编译器(自然语言编译成脚本),轻量沙箱当 CPU(跑并发与清洗),MCP 退回底层当系统函数库。
显示更多