LLM 写 Python,Go 安全执行
monty-go: Pure-Go wrapper for Pydantic's Monty Python Interpreter
让 LLM 直接编写 Python 代码,而非进行多次工具调用,能显著提升效率并降低成本。monty-go 是一个纯 Go 实现的 Pydantic Monty Python 解释器封装,通过 WASM 和 wazero 在沙箱中安全运行。它无需容器、CGO 或子进程,仅需 2.9MB 的 WASM 二进制文件即可嵌入 Go 程序。当 Python 代码调用外部函数时,执行会暂停,由 Go 回调处理后再恢复。结合 Gollem 框架,开发者可以实现“代码模式”,让 LLM 在一次模型调用中完成复杂逻辑编排,大幅减少延迟和 Token 消耗,同时保持 Go 的类型安全和安全性。
LLM 在编写代码而非进行顺序工具调用时,运行速度更快、成本更低且更可靠。
HN 评论区
12- digdugdirk
这是 Python 在 Rust 里,Rust 在 WASM 里,WASM 又在 Go 里吗?
Monty 这个名字选得太妙了,我读 readme 的时候,仿佛远处正放着《Yakety Sax》。
玩笑归玩笑,我很高兴看到 WASM 成为实现这类酷炫功能的桥梁。
- mkl
Monty 本身似乎比“一个运行 Rust 实现的 Go 包装器,而该 Rust 实现又运行 Python 代码的 WASM 运行时”有趣得多。6 个月前大家对此有过一场大讨论:https://news.ycombinator.com/item?id=46918254
- camdenclark
挺有意思——我自己刚写了一个纯 Go 的包装器,因为现有的这个版本太旧了!
https://github.com/CamdenClark/monty-go
它实现了新的 subprocess 模型,用于启动 Monty VM,这样如果某个 VM 崩溃,主线程也能保持隔离。
因为 Monty 现在是以二进制文件形式分发的,你不需要再做 WASM 嵌入那些事了,只要确保你拥有这个二进制文件就行。(就像你在 Go 里运行 playwright 那样)