正在打开每日关注
正在打开每日关注
Pi 以 Codemode 把 MCP 从交互界面降为底层函数库,用 QuickJS 沙箱代码编排解决 token 爆炸与串行调度。
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 退回底层当系统函数库。
是什么 一条关于 Pi(Mario Zechner 开发的编码 Agent)0.99 版本架构转向的深度解读推文,配一张自制的双栏架构对比信息图,并附原文长文拆解。
核心设计 Pi 一改「No MCP」立场,在 0.99 内置 MCP,但通过 Codemode 层彻底重构其使用方式:① Schema 零注入——工具定义不进 Prompt,仅留一行摘要,按需用 BM25 在沙箱内检索,把动辄 30k+ 的预载 token 归零;② 代码即编排——大模型不再单步发指令,而是写一段 JS 脚本扔进 QuickJS 沙箱,用循环和 Promise.all 毫秒级完成并发与异常处理;③ 进程内清洗——1MB 原始数据在沙箱内存 filter/map,只有 3 行有效结果回流上下文。
关键洞察 作者的核心论断是:MCP 只适合做能力标准化暴露,不该直接当交互界面。由此推出未来 Agent 分层范式——大模型当编译器(自然语言编译成脚本),轻量沙箱当 CPU(确定性执行),MCP 退居底层当系统函数库。这把「工具调用」从 ReAct 式逐步往返升级为一次性的代码生成,同时解决 token 成本、延迟和上下文污染三个痛点。
边界与风险 该范式把正确性押注在生成脚本的质量上,脚本错误需沙箱报错回传再修复;调试链路更长,且要求模型具备较强代码生成能力,小模型场景收益存疑。