无需容器!Pydantic推出浏览器中安全运行AI生成代码的“双重沙箱”方案

发布时间:2026/9/7 11:00:06
无需容器!Pydantic推出浏览器中安全运行AI生成代码的“双重沙箱”方案 基于RustWebAssembly的Python子集Monty启动仅需微秒级彻底隔离网络与文件系统访问小伙伴们,在AI代码生成爆发的今天如何在安全可控的环境中执行大模型生成的代码成为开发者面临的关键挑战。近日Pydantic团队推出的Monty项目以其独特的设计思路引发了技术圈的关注一个用Rust编写的Python安全子集现在更被成功编译为WebAssembly实现了“沙箱中的沙箱”双重安全保障。为什么需要Monty传统的代码沙箱方案往往依赖完整容器存在启动慢数百毫秒、资源消耗大、部署复杂等问题。而Monty瞄准的正是LLM生成代码这一特定场景——不需要完整的Python环境只需要足够表达意图的语法子集。Monty的核心理念很清晰•微秒级启动相比容器方案的数百毫秒Monty的启动时间仅需个位数微秒•完全环境隔离默认阻塞所有文件系统、环境变量和网络访问•可控的外部调用开发者可以精确控制允许调用的宿主函数•LLM友好设计当代码包含不支持特性时返回明确错误信息方便AI迭代修改技术实现Rust WebAssembly的双重魅力Monty的核心是用Rust实现的Python子集解析器和执行引擎。近期开发者通过Claude Code的研究协助成功将其编译为两种WebAssembly形态1. 纯WASM模块可直接在浏览器JavaScript环境中加载调用无需Python运行时。2. Pyodide兼容的Wheel包可作为Python包在Pyodide浏览器中的Python科学计算栈中安装使用。快速试用uv run --with pydantic-monty python -m asyncio# 在Pyodide中的使用示例 import pydantic_monty code pydantic_monty.Monty(print(hello str(4 * 5))) await pydantic_monty.run_monty_async(code)现场体验两个在线演示项目提供了即开即用的在线演示Monty WASM原生演示https://simonw.github.io/research/monty-wasm-pyodide/demo.html• 直接加载Rust编译的WASM模块• JavaScript API直接调用执行Monty Pyodide演示https://simonw.github.io/research/monty-wasm-pyodide/pyodide-demo.html• 先加载Pyodide运行时• 再安装Monty的WASM Wheel包• 在Pyodide的Python环境中使用支持的Python特性足够AI使Monty目前支持的Python特性有限但足够LLM表达常见逻辑• 基本数据类型整数、浮点数、字符串、列表、字典• 函数定义与调用• 条件判断和循环• 异常处理这种“有限但足够”的设计哲学很巧妙既减少了攻击面又满足了大多数AI生成代码的需求。当AI生成的代码包含不支持特性时明确的错误信息会引导它调整实现方式。应用场景不只是AI代码执行虽然Monty最初为LLM生成代码设计但其应用潜力更广1.浏览器中的轻量级Python运行时2.教育平台的代码执行沙箱3.插件系统的安全执行环境4.在线评测系统的代码运行器5.任何需要隔离执行不可信代码的场景开发启示现代工具链的威力这个项目的构建过程展示了现代开发工具链的强大•Rust的跨平台能力同一代码库可编译为本地库、Python包和WASM•WebAssembly的通用性既可作为独立模块又可集成到Pyodide生态•AI辅助开发使用Claude Code进行代码研究快速探索技术方案•自动化测试配合Playwright实现端到端的浏览器测试结语沙箱技术的新思路在大家都在追求更重、更全的隔离方案时Monty反其道而行之——通过精心设计的“最小可用子集”在安全性和实用性间找到了优雅的平衡点。对于前端开发者它提供了在浏览器中安全运行Python代码的新选择对于AI应用开发者它解决了LLM生成代码的安全执行难题对于所有关心代码安全的工程师它展示了“精简设计”可能比“全面防护”更有效。思考题在你的项目中是否有可以应用这种“最小安全子集”思想的场景欢迎在评论区分享你的想法感谢大家的点赞和关注我们下期见