【Code With SOLO】用 10MB WASM 把 Node/Python 搬进浏览器,让 Agent 纯前端运行!

1. 摘要:

现在的 AI Agent(如 Claude Code)通常依赖 Node、Bash 和底层文件系统,部署门槛高且极度依赖云端容器。我使用 TRAE SOLO 辅助开发了 Web Pilot(Browser OS),仅通过一个 10MB 的 WASM 文件,就在浏览器端原生实现了完整的 Node.js + Python + Bash 运行时环境,让全功能 Agent 得以纯前端运行,大幅降低了计算成本和部署难度。

2. 背景:

我是一名全栈开发者/机器人运控算法工程师/硬件黑客。这次想探索些和职业无关的事情,我在探索 AI Agent 的落地场景时,我发现了一个痛点:目前强大的 Agent 往往需要直接读写文件系统、执行 Bash 脚本或运行代码。传统的 Web 部署方案需要为每个用户分配一个昂贵的 Docker 容器(Sandbox),不仅服务器成本极高,还存在安全隔离的隐患。 因此,我希望利用 WebAssembly 技术,打破这个限制,探索一种让 Agent 直接在用户浏览器中“内生”运行的轻量化方案。

3. 实践过程:

这个项目的技术栈非常杂,跨越了前端界面、Web Worker 通信、WASM 运行时以及底层文件系统的虚拟化。

任务拆解:

  1. 核心运行时构建:引入并配置支持 Node.js 和 Python 的 WASM 模块。

  2. 虚拟文件系统桥接:实现一套能在内存中运行的 Reactive MemFS,并与 WASM 侧互通。

  3. 前端界面与交互:搭建 React 界面,实现终端模拟器和文件目录树。

用了 SOLO 哪些能力:

  • 全局代码库理解(Codebase Context):在 Monorepo 架构(包含 apps/webpackages/core)下,SOLO 能精准定位跨包的类型定义和逻辑关联。

  • Agent 自动执行与排错:直接让 SOLO 接管终端运行命令,遇到报错自动分析并修复。

  • 跨语言生成:无缝在 TypeScript 业务逻辑、Vite 配置、以及底层 Node Bridge 之间切换。

关键 Prompt / 操作过程:

  • 架构设计:“请帮我实现一个基于 Reactive MemFS 的文件系统(reactive-mem-fs.ts),并桥接到 WASM 的 Node 运行时中(node-bridge.ts)。”

  • 自动化排错:“给我运行整个前端。” —— 这一步体验极佳,由于环境中缺少依赖且存在执行权限问题,SOLO 自动执行了 npm install,随后在启动 vite 遇到 Permission denied 时,它直接在终端利用 ls -lchmod +x node_modules/.bin/* 自动排查并修复了权限坑,随后成功在 5173 端口跑起了服务。

中间踩过什么坑: WASM 的加载跨域问题,以及 Monorepo 下前端工作区依赖核心包的构建顺序问题。因为有 SOLO 强大的报错读取和多步修复能力,我基本不需要去 StackOverflow 查资料,直接看它在终端里一遍遍跑通。

4. 成果展示:

成功搭建了 Web Pilot (Browser OS) 原型! 现在,一个依赖 Bash、Node 和文件系统的 Agent 能够直接在浏览器页面中跑通。

5. 效果与总结:

提效了多少? 探索 WASM 编译和底层文件系统劫持,原本需要查阅大量零散的 C++ 编译和底层 API 文档,耗时可能长达数周。使用 SOLO 后,我只用了很短时间就跑通了最核心的 MVP 原型。效率提升至少在 5 倍以上。

SOLO 在我流程中做了什么? 它不仅仅是一个“代码补全器”,而是真正的“结对编程伙伴”兼“DevOps 运维”。当我专注于高层架构时,它帮我填补了繁琐的桥接代码;当环境起不来时,它能自己拿终端权限去 debug。而且它可以启动一个沙盒自动运行浏览器,这个功能惊呆了我(图1)。而且他竟然可以绑定我的github直接操作,大大避免了装环境的痛苦。他的QA模式做的很漂亮,然后问题问的都在点子上,他甚至比我思考的还要全(图3)。

可复用的方法: 在开发这类高度复杂的系统时,强烈建议把任务拆解并让 SOLO 先写“接口/协议”。定好 shared-types.ts 后,再让 SOLO 去分别实现核心逻辑和 UI 层。另外,遇到环境报错,直接甩一句“帮我运行并解决报错”,能极大程度解放双手。

个人感受: 这次TRAE SOLO 2.0确实厉害,我使用的国际版的SOLO 2.0版本,使用后,惊呼“WC”,TRAE团队的创新能力相当可以,这次感觉是融入了桌面沙盒在里面。之前是terminal的沙盒+浏览器,个人觉得这个增加自动化程度应该是小事,感觉是进而增加prompt的维度。反正真的是强!

1 个赞

打不开,这样就不行了

1 个赞

没问题的

1 个赞

我给你投了一票,你这个工具可以具体用来做什么? 具体的使用场景是什么?

1 个赞

我的理解:原来只能在服务器上跑的全能 AI 助手,现在直接在浏览器里本地跑,不用后端、不用服务器。
很牛的样子,改天试试!

2 个赞

很神奇的样子,但我不是很理解

1 个赞

可以在线体验,觉得好的话,可以投一票

1 个赞

10MB WASM跑Agent,这个技术含量很高!我做的KineTap整个APK才5MB,171个离线短语全部本地运行,零网络依赖。你追求的是"把大模型塞进浏览器",我追求的是"把沟通能力塞进5MB的老年机",都是在挑战"小体积大功能"的极限。不过方向相反——你往大了做(更多能力),我往小了做(更低门槛)。技术路线不同,但都挺有意思的