让多个AI编程代理同时修改同一个网页应用,听起来能成倍提高效率。但真要把它们放在一台机器上跑起来,问题会从四面八方冒出来。
端口先打起来。代理A占了3000端口,代理B也想用同一个端口启动前端,其中一个直接报错退出。即便端口分配好了,进程管理又是另一笔乱账——代理A刚重启了自己的服务端,浏览器里显示的却还是代理B之前启动的版本。你以为在审查A的改动,实际上盯着的是别人的代码,这个错误无声无息,你根本不知道。
前端和后端的浏览器标签页散落在不同窗口里,没有分组,找不到对应关系。Docker服务之间互相踩踏,认证信息和浏览器状态在不同代理会话间泄漏。这些不是偶发bug,是架构层面缺失导致的必然结果。
Git worktrees确实把源代码隔离做得不错。每个代理在自己的worktree里修改代码,改动相互独立,可以分别审查。但它管不了运行时的应用。当多个代理同时跑同一个全栈项目的不同版本时,worktree就帮不上忙了。
这恰恰是Agent-Up要解决的问题。
Agent-Up是一个开源的跨平台桌面应用,专门用来在同一台机器上运行和审查多个AI编程代理的工作区,瞄准的就是网页应用开发这个场景。它的核心设计思路很直接:每个代理的工作区不是一个代码目录,而是一个完整的、相互隔离的运行时环境。
具体怎么做到?每个工作区获得的东西包括:自己独占的进程空间、预先分配好的稳定端口、隔离的Docker服务、专属浏览器会话、归好组的浏览器标签页,还有独立的日志和运行时状态。代理通过MCP来管理自己的环境,而你在一个统一的界面里审查所有工作区。
工作区在这里代表的是整个monorepo——包含多个网页应用、API、后台worker、数据库、消息队列和Docker服务。切换工作区,意味着切换到那个代理所管理的完整环境。你始终清楚自己在审查哪个工作区,哪个前端和后端版本在运行,哪些浏览器标签页属于同一组,哪些日志和进程对应哪个工作区。
代理完成一轮修改后,通过Agent-Up的MCP服务端启动新版本。MCP服务端接手剩余工作:启动或重启所需的应用,拉起声明好的Docker服务,分配不冲突的端口,把端口号以环境变量形式注入各个进程,追踪日志和进程状态,然后把运行中的网页应用以浏览器标签页形式呈现在桌面应用里。
整条技术栈不需要全部塞进Docker。对于很多网页应用来说,进程隔离加上端口隔离已经足够让多个版本同时运行而不互相干扰。这套设计让多个代理可以在同一台机器上同时跑同一个全栈网页应用的不同版本,环境之间井水不犯河水。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.