跳到正文
meng shao· @shao__meng · X·· 2 小时前AI 评分71
AI 导读

作者解读 Shopify Engineering 文章:Shopify 为 Slack 里的 AI Agent「River」搭建 Remote Dev,用远程 Mac 机群加挂载 Linux 的 Android 模拟器,让 Agent 并行编译、测试 iOS/Android、截图录屏并做 Live Preview。

正文 · 原文

给 AI Agent 一台「远程手机开发机」:Shopify 如何用 Remote Dev 跑并行移动端

Shopify 为 Slack 里的 AI Agent「River」搭了 Remote Dev:远程 Mac 机群 + 挂载 Linux 上的 Android 模拟器,让 Agent 并行编译、测 iOS/Android、截图录屏甚至做 Live Preview;合并的移动端 PR 中由 River 产出的比例从约 6% 提到约 61%。
https://shopify.engineering/remote-dev

为什么要做
Web/后端已能靠 River 在远端干活;移动端一开 3–4 条 Agent 工作流,本机就被编译器、模拟器吃满,合上盖还直接断。River 跑在 Linux 上:能改 Swift,但真正 build/test iOS 仍得回到那台已被打满的 Mac。委托能力超过了本机算力,于是做 Remote Dev。

能做什么
· 并行:一条 River 会话独占一套环境——可同时修 Android、做 iOS 功能、测 PR。
· 后台自治:改代码、编译、跑测、操作模拟器、截图、开 PR;失败则看日志再修。还可夜间自动捡 bug → 修 → 测 → 提 PR。
· 可验证:不止「能编译」;Agent 在真模拟器里点 UI、录 before/after;最近还能把录屏做成带 3D 手机框、动画和旁白的讲解视频。
· 谁都能参与:Web 工程师、设计师、PM 可经 Slack 动移动端,不必本地配 Xcode/Studio。

Live Preview
远程 iOS Simulator / Android Emulator 经 WebSocket 推到 Quick 站点;浏览器看实时画面并把操作回传。每会话自动有双端预览,可分享多人同看;支持 deep link 与 mobile CLI 直播。无需本机安装、无需 Mac。

怎么建(工程要点!)
1. 机群:远程 Mac 装好开发环境与 iOS 模拟器;Agent 经 SSH 接入。
2. Android:云 Mac 不支持嵌套虚拟化 → 把 Android 模拟器放在 开了嵌套虚拟化的 Linux VM,再挂到同一 SSH 会话。
3. 热池:冷启动(checkout 巨型 monorepo + 首次编译)曾超 30 分钟 → 改为预热池:main 已 checkout、工具已装、App 已编、缓存热;Agent 认领后同步分支、挂上预构建 Android VM。到「在设备上看改动」压到几分钟。
4. 轮换:会话结束销毁并补机;空闲机定期刷新 main 与重建;错开轮换保可用。
5. 教 Agent:写 skill + 封装 SSH 的 CLI;长任务用 tmux 让 River 实时观察,而不是 sleep/超时瞎等。早期 Agent 会「忘记远程 Mac」或长时间沉默,靠迭代 skill 修好。

组织侧:习惯与采纳
问题不只是技术,还有心理:大家习惯本地摸模拟器;早期 River「慢、编不过、不好用」→ 退回本地。他们用角色化「River 终于有了 Mac」的内部广告(仿 Mac vs PC)推采纳。数据:River 产出的合并移动端 PR 占比 6% → 61%。

自我改进环
River 默认多人可见。用便宜分类模型 Jev 观察移动端对话、打标签、按结果好坏归类,失败案例再喂给 LLM 找改进;用 River 自己迭代体验。

展望
实时健康监控 → Agent 自动开修 crash 的 PR;多 Agent 并行 bug bash(多商家、设备、语言、流程)。

引用Mustafa Ali@mustafa01ali
Local machines had become a bottleneck for agentic mobile development at @Shopify, so we gave agents their own remote dev environments. They now author 61% of our merged PRs 🧵
在 X 查看被引用的帖子

来源:meng shao · x.com