跳到正文
Modal Blog·· 2026-02-19精选AI 评分62

Ramp 如何在 Modal 上构建全上下文后台编码智能体

How Ramp built a full context background coding agent on Modal

AI 导读

Ramp 基于 Modal Sandboxes 构建内部后台编码智能体 Ramp Inspect,目前 Ramp 前端和后端仓库约一半的已合并 PR 由它发起,Inspect 自身超过 80% 的代码也由它编写。

推荐理由

Ramp 用 Modal Sandboxes 搭建后台编码智能体的工程细节,可供团队参考如何让智能体启动速度接近本地环境。

正文 · AI 翻译

Ramp 使用 Modal 驱动 Ramp Inspect,这是一个内部后台编码代理,现在编写了 Ramp 所有已合并拉取请求的一半以上。借助 Modal Sandboxes,Ramp 能在几秒内启动完整的开发环境,让公司里的每位构建者都能获得实际上无限的并行工程能力,并以 Ramp 的内部代码库、企业上下文和开发者工具为基础。

理念:一个像本地一样快的编码代理,人人都能用

Ramp 的 AI 团队看到了一个机会,让 Ramp 的每位构建者——工程师、产品经理、设计师——都能使用 AI 交付代码。他们希望超越本地代理所能达到的水平,因为本地代理需要设置开发环境,且难以与内部工具集成。然而,他们知道,一个比本地工作更慢或能力更弱的后台代理永远不会被采用。性能至关重要。

要做到这一点,它必须像本地代理一样快速启动,与 Ramp 的技术栈——Sentry、Datadog、LaunchDarkly、Temporal——深度集成,以端到端验证自己的工作,并且无需任何设置,让 Ramp 的任何人像工程师一样轻松使用它。

Ramp Inspect UI

解决方案:Inspect,一个运行在 Modal 上的后台编码代理

Ramp 已经在使用 Modal 进行微调和批量推理,因此在 Modal Sandboxes 之上构建后台编码代理是自然的下一步。几位工程师开始利用业余时间进行原型开发,它很快证明了自身的价值。

“Modal 让上手变得非常容易。第一个版本只花了我几天时间就搭建起来,而且它提供了我们所需的所有合适 API,让我们能够构建出所需规模的东西。”
Zach Bruggeman Ramp 工程师

每个 Inspect 会话都在一个包含全栈开发环境的 Modal Sandbox 中运行:Postgres、Redis、Temporal、RabbitMQ,以及工程师本地会有的每一项服务。在沙箱内,OpenCode 作为编码代理运行,同时还有一个用于手动编辑的 VS Code 服务器、一个 Web 终端,以及一个带有 Chromium 的 VNC 栈,用于对前端更改进行可视化验证。代理可以拍摄前后对比截图,在真实浏览器中浏览应用,并像人类一样通过视觉确认自己的工作。整个设置已接入 GitHub、Slack、Buildkite 以及 Ramp 的可观测性栈,包括 Sentry 和 Datadog。

在单个沙箱内运行所有内容意味着代理对服务、文件和工具的访问延迟与工程师本地一样低。代理与测试套件之间没有网络跳转,也没有需要同步的远程文件系统。

在沙箱之外,Inspect 的其余基础设施构建在 Modal 的分布式原语之上:

  • Functions 按 cron 作业运行,每 30 分钟克隆仓库、安装依赖并构建全新的文件系统快照——因此沙箱始终从接近当前的状态启动
  • Dicts 管理会话锁并存储镜像元数据,提供使多人会话成为可能的共享协调层
  • Queues 将来自任何客户端——Slack、Web、Chrome 扩展——的提示路由到正确的会话,将输入与执行解耦,使多个客户端可以馈入同一个会话而不会发生冲突

这些正是让 Inspect 能够支持多人协作,并扩展到数百个并发会话而互不影响的关键。由于 Modal 负责分布式协调,Ramp 的团队可以完全专注于智能体体验——工具、集成、用户体验——而非底层基础设施。这就是一个几天内构建的原型如何在不重写的情况下扩展到数百个并发会话。

快如本地:文件系统快照实现即时启动

为了被 Ramp 行动迅速的团队采用,他们的编码智能体需要匹配甚至超越本地智能体的体验——在本地,代码仓库已经设置好,服务也已经在运行。

“我们一直试图将 Inspect 设计得尽可能接近本地智能体的速度。沙箱启动时间是其中很大的一部分。Modal 让这一点在大规模下非常容易优化和调整。”
Rahul Sengottuvelu Ramp 应用 AI 负责人

他们通过 Modal 的 文件系统快照 解决了这个问题。每 30 分钟,一个 Modal Cron 会克隆 Ramp 的每个代码仓库,安装所有依赖,运行初始构建,并保存沙箱文件系统的快照。由于文件系统快照以基础镜像的差异形式存储,只有修改过的文件会被持久化——从而保持快速和轻量。

当构建者启动一个会话时,Inspect 会从最新的快照创建一个新的沙箱。由于快照最多只有 30 分钟旧,与代码仓库最新提交同步几乎是瞬间完成的。端到端,会话在几秒钟内就能开始处理提示。

零设置,无限扩展:为每个构建者提供沙箱

因为每个会话都在自己的 Modal 沙箱中运行,会话之间没有争用,也不会给任何人的笔记本电脑带来负载。构建者可以启动同一提示的多个版本,尝试不同的模型,或者让 Inspect 生成子会话以跨代码仓库并行工作——所有这些都在云中同时运行。

这正是后台智能体超越本地智能体的地方。Inspect 为 Ramp 的每个构建者提供了 Rahul 所描述的“实际上数百台可以同时工作的计算机”。

“没有 Modal,构建 Inspect 会非常困难。很多复杂性都被隐藏了,只需能够非常快速地启动带有大量服务和数据的沙箱,并且在任何给定时间实际上拥有无限个这样的沙箱。”
Rahul Sengottuvelu Ramp 应用 AI 负责人

在构建者工作的地方与他们相遇

后台智能体还为不想在本地安装东西的用户提供了完全的可访问性,并让团队能够将其放置到用户已经在工作的所有地方。Ramp 为 Slack 构建了客户端,一个带有托管 VS Code 编辑器和流式桌面视图的 Web 界面,以及一个 Chrome 扩展,让非工程师可以可视化地选择要更改的 UI 元素。所有客户端都同步到同一个会话状态,并且每个会话都支持多人协作,以便同事可以实时协作。

无需本地设置。产品经理或设计师发送一个提示,Inspect 就会启动一个完整的沙箱环境,安装所有依赖,他们就能获得与工程师完全相同的开发环境,而无需考虑任何细节。

影响:已合并拉取请求的一半,且还在增长

Ramp 并没有强制推行 Inspect,而是让产品自己说话。短短几个月内,Ramp 前端和后端仓库中约一半的已合并拉取请求都由 Inspect 发起,而 Inspect 本身现在有超过 80% 的代码是由 Inspect 编写的。

其影响远不止于工程领域。产品经理能够直接为产品添加功能。设计师在意图与实现之间进行紧密的反馈循环。该智能体让工程师得以专注于高影响力、高复杂度的工作,在这些工作中他们的专业知识能发挥最大杠杆作用——比如构建像 Inspect 这样的系统。

下一步是什么

“非常值得一试。AI 的一大优点就是你可以以极低的风险快速尝试很多事情。别再问‘它能做到这个吗’,直接看看它能不能做到。”
Zach Bruggeman Ramp 工程师

Ramp 认为,随着模型不断改进,后台智能体对卓越工程只会变得越来越关键。当前这一代已经能产出可供审查的拉取请求。随着这一能力提升,在数千亿美元人工智能资本支出的推动下,瓶颈将从“智能体能否写出正确的代码”转变为“你能并行运行多少个智能体”。Modal Sandboxes 提供了团队打破这一瓶颈所需的基础设施,而不是被瓶颈所击垮。今天就试试吧。

来源:Modal Blog · modal.com