Simon Willison ★ 85 3 min

Running Python code in a sandbox with MicroPython and WASM

🔗 https://simonwillison.net/2026/Jun/6/micropython-in-a-sandbox/

📌 【開源新方案】用 MicroPython + WASM 打造安全的 Python 程式碼沙箱

在開發 LLM Agent 或插件系統時,最令人頭痛的永遠是:如何讓系統執行由 AI 生成或使用者提供的 Python 程式碼,而不會讓整個伺服器被毀掉?

🤔 執行未受信任程式碼的安全性兩難

對於需要執行動態程式碼的應用(如 Datasette Agent)來說,傳統的 Python 環境缺乏強大的隔離機制。若直接執行 eval()exec(),面臨的是嚴重的安全風險;而傳統的 Docker 容器化隔離雖然安全,但啟動開銷過大,難以在毫秒級的請求中快速部署。

🧪 將 MicroPython 編譯至 WASM 的新嘗試

知名開發者 Simon Willison 提出了一個巧妙的組合方案:利用 MicroPython(輕量級 Python 實作)並將其編譯為 WebAssembly (WASM)

這種設計的核心在於將執行環境完全封裝在 WASM 的沙箱中。WASM 本身就提供了強大的隔離屬性,而 MicroPython 則提供了足夠的 Python 語法支援,讓開發者能在極低開銷的情況下,獲得一個既安全又高效的執行環境。

🚀 從 alpha 套件到實際應用場景

這項方案目前已實作並開源,具備極高的實務可用性:

  • 核心套件:釋出了名為 micropython-wasm 的 alpha 版本套件。
  • 實際應用:已應用於 datasette-agent-micropython 插件,讓 Datasette Agent 能夠在安全的沙箱中執行程式碼。
  • 生態系整合:此方案可無縫整合至支持插件架構的開源項目(如 Datasette, LLM, sqlite-utils)。

💡 對 GenAI 開發者的實務啟示:解決 LLM Code Execution 的痛點

對於正在構建 AI Agent 的工程師來說,這提供了一個輕量級的替代方案。當 LLM 產生 Python 程式碼來處理數據分析或自動化任務時,不再需要維護沉重的虛擬機或容器集群,而是可以直接在 WASM 運行時中執行,大幅降低基礎設施的複雜度並提升回應速度。

⚠️ 目前仍處於 Alpha 階段,功能完整度待驗證

由於 micropython-wasm 目前仍處於 alpha 階段,其支援的 Python 函式庫範圍僅限於 MicroPython 所支援的子集,並非完整的 CPython 環境。對於需要大量第三方重量級套件(如 Pandas, NumPy)的場景,此方案可能尚不適用。

🔗 資源連結 📝 Running Python code in a sandbox with MicroPython and WASM 👤 Simon Willison 🔗 文章:https://simonwillison.net/2026/Jun/6/micropython-in-a-sandbox/

如果你正在尋找一種不需要 Docker 就能安全執行 AI 產生程式碼的方法,這個組合非常值得嘗試。

#Python #WASM #MicroPython #WebAssembly #LLM #AI_Agent #OpenSource #CyberSecurity

google/gemma-4-31b-it:free 自動生成