简单点说,目前在做的是在浏览器内基于 Webcontainer 实现的 Agent 。(侧重在展示,并支持代码修改)
重构 Webcontainer 封装
发现同事之前写的代码对 Webcontainer 的 spawn
方法封装并没有很好的管控,不是单例级别的调用和销毁,多次调用会产生多个 WebContainerProcess
的泄露和污染。
于是对 Webcontainer 的封装进行了重构,以更清晰的形式进行管理和使用。
另外,在启动时,开启 forwardPreviewErrors
配置项,可以获得到更多的报错信息,以保证流程完整性。
Webcontainer 内运行的工程优化
之前在 Webcontainer 中使用的 Node.js 工程是基于 vite 脚手架的工程代码,并且专门写了一个 vite 插件来监控 vite 的 dev 编译流程。
在此工程中充斥着一些与工程无关的业务逻辑,导致模型在修改代码的时候,可能会无意改动到关键位置,从而影响到正常的业务流程。
在此背景下,也进行了优化,将大部分逻辑迁移到 Webcontainer 外层,通过 Webcontainer 提供的 setPreviewScript
方法进行注入,此过程中还接触到了一些 vite 编译态的代码风格。
进行相应的兼容处理,从而让工程相对更为纯净,目前还无法将工程做的百分之百纯净(努力中)。
也在模型和用户修改代码时,附加了校验代码,利用 Babel 对剩余的部分文件进行了必要的监管,以防止被意外修改,保证业务的完整性。
Agent 的流程完善
在 Agent 的流程上,基于原流程补充前端自校验代码流程。
原流程模块有:模型路由、用户意图判断、图片解析、生成需求文档、生成UI设计文档、生成当前任务TODO清单、生成代码、校验代码等流程完善模块。
前端自校验代码则是,通过通信的方式使得前端能够进行自主的校验检测,任务开始直至运行完成,会便利所有的前端路由。
若期间产生报错信息,则进入到错误修复模式,待修复完成后重新进行前端自校验代码,直至没有错误产生。
则代表完成此次任务。
- 本文链接: https://zongzi531.github.io/2025/09/01/Webcontainer-and-Agent/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!