Ramp 在数月内构建了 Inspect以下是如何在一个周末内交付它

  • dabit3
  • 发布于 8小时前
  • 阅读 27

本文介绍了如何利用 Devin API 快速构建类似于 Ramp 公司内部编程代理 Inspect 的功能,从而避免数月的底层基础设施搭建工作。文章详细阐述了 Devin API 在沙盒环境、会话管理、结构化输出、并行代理、技能管理、秘密管理以及外部工具集成等方面的能力,并提供了具体的使用示例。

Image

Ramp 构建了 Inspect,这是一个令人难以置信的内部后台编码 Agent,负责了他们大约 60% 的合并 PR。构建它需要数月的基础设施工作:托管沙盒、Agent 编排、会话状态和自定义工具。

像 AWS 和 Cloudflare 这样的云基础设施消除了管理物理服务器、修补操作系统和维护正常运行时间的需要。开发人员可以专注于他们的应用程序逻辑,而云提供商处理其余部分,而不是管理基础设施。Devin 将同样的原则应用于编码 Agent:沙盒、开发环境、Agent 运行时、编排、集成和工具都得到全面管理。你提供 prompt;Devin 处理其背后的一切。

以下是如何在 Devin API 之上复制 Inspect 功能的方法。你无需进行数月的基础设施工作,可以直接构建你团队独有的部分。

让我们直接开始!

通过 API 在此处涵盖的所有内容也都是

Devin

平台的一部分。

认证

在你的 Devin 组织中创建一个服务用户(设置 > 服务用户)。你将获得一个以 cog_ 为前缀的 API 密钥。以下所有示例都从 .env 文件加载凭据:

Base URL: https://api.devin.ai/v3

沙盒问题(已解决)

Ramp 的规范在沙盒基础设施上投入了大量精力:每 30 分钟构建一次镜像,在 Modal 上快照文件系统,同步 Git 状态,预热沙盒池,以及管理生命周期。这是他们构建中最困难的部分。

Devin 会话已经在 隔离的 Linux VM 中运行,并拥有完整的开发环境。每个会话都从保存的快照启动,其中包含你克隆的仓库、安装的依赖项和配置的环境。机器拥有 shell、IDE、浏览器、Docker 和你需要的任何运行时。

你在 Devin 的仓库设置中配置一次。之后,每个通过 API 创建的会话都会自动从该快照启动。没有镜像注册表,没有重建镜像的 cron job,没有池管理。

核心循环:创建、监控、行动

启动会话

你还可以传递 max_acu_limit 来限制每个会话的计算使用量。这对于自动化管道非常重要,因为失控的会话可能会消耗大量信用。

响应:

注意:API 返回一个 session_id(例如,abc123),但会话端点期望一个 devin_id,它是以 devin- 为前缀的会话 ID(例如,devin-abc123)。通过在 session_id 前面加上 devin- 来构建 devin_id

轮询完成状态

status_detail 字段为你提供更细粒度的状态:在会话运行时为 workingwaiting_for_userwaiting_for_approvalfinished,以及在暂停时为 inactivityusage_limit_exceeded 等原因。

读取消息

发送后续消息

Ramp 将执行期间发送的后续 prompt 排队。你也可以这样做:

终止会话

终止一个失控的会话或归档一个已完成的会话:

会话归属(多人)

Ramp 称多人模式为“任务关键型”。他们希望多人共同参与一个会话,并将提交归属于正确的作者。

Devin 的 API 通过 create_as_user_id 支持此功能。拥有 ImpersonateOrgSessions 权限的服务用户可以代表任何组织成员创建会话:

会话会出现在该用户的会话列表中。PRs 会归属于他们。任何团队成员都可以打开会话 URL 并发送消息。

结构化输出(机器可读结果)

Ramp 将 Token 实时流式传输到其客户端。使用 Devin,你将获得结构化输出:通过 structured_output_schema 参数传递 JSON Schema,Devin 会在工作时验证并更新它。你轮询会话以读取它。

这就是你将 Devin 的工作导入你自己的 UI、Slack bot 或仪表板的方式。

衍生子会话(并行 Agent)

Ramp 的规范推荐一种工具,让 Agent 衍生子会话用于研究或将大型任务拆分为更小的 PRs。Devin 通过 Managed Devins 内置了此功能。你无需编写编排代码;只需用自然语言要求 Devin 并行处理工作。

Devin 充当协调者:它确定工作范围,启动子会话(每个都在自己的隔离 VM 中运行),监控进度,解决冲突,并汇总结果。

例如,跨多个表并行化迁移:

或者在多个模块中运行相同的任务:

Devin 分析你的请求并在启动之前提出会话供你批准。协调者还可以向子会话发送消息,监控它们的 ACU 消耗,并终止卡住的会话。

技能、知识和剧本(编码你的交付方式)

Ramp 使用“编码 Ramp 交付方式的技能”。Devin 有三种机制来实现这一点:

  1. 知识:持久上下文 Devin 根据触发器描述自动回忆的提示、标准和指令。
  2. 剧本:可重用任务模板 用于重复工作流的系统 prompt。通过 ID 将它们附加到会话。
  3. 技能:仓库提交的程序 SKILL.md 文件提交到你的仓库 .agents/skills/<name>/SKILL.md。Devin 会自动发现它们。这些遵循开放的 Agent Skills 标准,因此它们适用于多种 AI 工具。

密钥管理

Ramp 将 Inspect 连接到 Sentry、Datadog、LaunchDarkly 等。每个集成都需要凭据。Devin 以两种方式处理此问题:

  1. 组织密钥(持久、共享)
  2. 会话密钥(临时、单会话)

MCP 服务器(外部工具集成)

Ramp 将 Inspect 连接到 Sentry、Datadog、LaunchDarkly、Braintrust、GitHub、Slack 和 Buildkite。在 Devin 中,你将这些配置为 MCP 服务器。Devin 的市场有 40 多个预配置集成:Datadog、Sentry、Linear、Slack、Figma、PostgreSQL、BigQuery 等。

对于自定义内部工具,使用 STDIO、SSE 或 HTTP 传输添加你自己的 MCP 服务器。配置在 Devin UI 的设置中完成。

自动化(自维护系统)

Ramp 的第二篇博客文章描述了一个监控生产并自动分类警报的系统。

计划会话 API 允许你直接设置此功能:

对于 Ramp 的监控驱动模式(Datadog 警报触发,Agent 调查),使用调用 Devin API 的 webhook:

文件附件

上传文件供 Devin 使用:

下载会话生成的文件(屏幕截图、生成的代码、日志):

构建 Slack Bot

Devin 已经有 原生的 Slack 集成,让你的团队可以直接从 Slack 启动会话、发送后续消息和获取更新。对于大多数团队来说,这已足够。

如果你想要自定义行为(将消息路由到特定仓库、使用来自其他系统的上下文丰富 prompt,或连接到你自己的内部工具),你可以在 API 之上构建自己的 bot。这是一个最小版本:

Ramp 建议构建一个分类器来确定要在哪个仓库中工作。你可以在创建会话之前使用快速模型调用来完成此操作,或者让 Devin 从 prompt 和你连接的仓库中找出。

构建 GitHub Actions 集成

在 PR 事件上触发 Devin:

你跳过什么

以下是 Ramp 构建而你无需构建的内容:

  • Modal 沙盒基础设施、镜像注册表、30 分钟重建 cron → 带快照的托管 VM、仓库设置
  • OpenCode Agent 集成 → Devin Agent(IDE、shell、浏览器、计算机使用)
  • Cloudflare Durable Objects 用于会话状态 → 带有消息、状态、附件的会话 API
  • WebSocket 流媒体基础设施 → 轮询 API + 结构化输出(你的客户端轮询;无推送通知)
  • 沙盒快照和恢复 → 内置会话快照
  • 每个用户的 Git 配置管理 → 通过 create_as_user_id 进行会话归属
  • 自定义工具系统 → MCP 服务器(40 多个集成 + 自定义)
  • 预热沙盒池管理 → 自动环境配置

你仍然需要构建:你的自定义客户端。一个 Chrome 扩展程序、一个网络仪表板、一个 GitHub webhook 处理程序,或者任何超出 Devin 开箱即用功能之外的集成。这些是你的团队工作方式独有的部分。Devin API 为所有这些提供了后端。

完整示例:Webhook 驱动的 Bug 修复管道

将所有内容整合在一起:一个从任何来源接收 Bug 报告并将其推动到合并 PR 的服务:

结论

在某些情况和特定限制下,内部构建基础设施是合理的,但对于大多数团队而言,实现价值最快的途径是利用现有资源,并将工程精力集中在只有你的团队才能解决的问题上。

Ramp 的 Inspect 是一个精心设计的工具。构建它需要 Modal、OpenCode、Cloudflare Durable Objects、自定义沙盒生命周期、Git 集成管道以及数月的基础设施工作。

Devin API 将所有这些压缩为一组 REST 端点。会话在完全配置的 VM 中运行,其中你的仓库、依赖项和工具均已设置完毕。

你只需构建客户端。API 处理其背后的一切。

如果你根本不想构建任何东西,你可以直接使用 Devin

8 分钟了解 Devin。

  • 原文链接: x.com/dabit3/status/2037...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
dabit3
dabit3
江湖只有他的大名,没有他的介绍。