Ramp在Inspect的架构方面进行了分享。这个内部编码工具已经得到了广泛应用,大约30%的合并拉取请求都使用了该工具来处理前端和后端代码。这家金融科技公司还提供了详细的技术规格说明,其中解释了他们是如何创建一个系统,让AI助手能够像人类工程师一样访问开发环境。

让编码工具完全拥有对Ramp所有工程工具的访问权限,这才是Inspect真正创新的地方。与传统的编码工具不同,Ramp的系统运行在Modal的沙箱虚拟机中,因此可以无缝地与数据库、CI/CD管道、监控工具如Sentry和Datadog、功能标志以及Slack和GitHub等沟通平台进行协作。编码人员可以使用与工程师相同的测试与验证流程来编写代码并确保其有效性。

Ramp的工程团队表示,这种验证机制代表了与传统代码生成工具相比的重大进步。编码工具可以执行测试、检查监控数据、查询数据库以进行验证,同时还可以参与代码评审。这有助于解决许多AI编码辅助工具所面临的挑战。

Ramp选择基于Modal的基础设施来构建Inspect,这一决策对于Inspect的性能表现至关重要。该平台几乎可以立即启动会话,并且支持无限数量的并发会话。这意味着多个工程师可以同时使用不同的代理实例,而不会互相干扰资源。Modal的沙箱功能和文件系统快照确保了代码的稳定性,同时也使得迭代过程更加高效。

该系统的架构采用了Cloudflare的Durable Objects来进行状态管理。这样可以保持对话上下文和开发会话状态的稳定。这种设计有助于编码工具记住自己的工作进度。就像人类工程师在开发过程中会记住代码库一样。

Ramp还实现了多种客户端接口,使得Inspect可以在不同的工作流程中使用。工程师可以通过多种方式与代理交互:通过Slack机器人进行快速聊天,通过网页界面进行详细任务处理,或者通过Chrome扩展程序来编辑视觉React组件。这种多模态的方式意味着不同的任务需要不同的交互方式。

该系统允许团队成员共同工作。他们可以同时观察和指导代理的行为。这一特性解决了人们对自主编码工具的常见担忧——即如何确保人类的监督仍然有效,从而充分利用自动化的效率。

Ramp明确表示,与其购买现成的编码工具,不如自己开发合适的工具。工程团队认为,拥有自己的工具可以更好地实现集成,因为内部工具可以与专有系统、数据库和工作流程深度结合,而外部供应商则无法做到这一点。

该公司认识到,这种方法需要大量的工程投资。为了激励其他人采用这种方式,Ramp分享了详细的实施规范,包括执行环境、代理集成模式、状态管理以及客户端实现的细节。这种透明性表明,真正的竞争优势在于执行能力,而不是隐藏架构细节。

或许最令人印象深刻的是,Ramp并没有强制要求员工使用Inspect。30%的合并拉取请求之所以被使用,是因为工程师们认为它符合手动编码的要求,无论是在质量、速度还是便利性方面都是如此。持续的增长趋势表明,人们越来越喜欢这个系统的功能及其局限性。

该团队还指出,Inspect使得代码贡献变得更加容易。非工程师也可以使用专业开发人员使用的工具。这意味着产品经理、设计师等人可以直接添加代码。这可能会改变跨职能团队的合作方式。

Ramp的工程团队知道,会话的速度和质量仍然受到模型智能的限制。即使有了最好的工具和设置,编码工具仍然受限于当前的语言模型。这些模型仍然存在错误、产生幻觉、难以进行复杂的推理等问题,因此需要人类的监督。

该公司意识到,他们的“构建 vs 购买”建议可能并不适用于所有组织。要实施类似的系统,需要强大的AI基础设施和技术资源。较小的团队或不同的组织可能没有这样的资源,或者认为没有必要投入这么多资源。

随着编码工具的不断发展,Ramp的技术规范和采用率指标提供了明确的数据支持。这有助于各组织评估其自动化策略。Inspect表明,只要有足够的上下文、工具和验证机制,AI编码工具就可以显著提高工程生产的效率。

Comments are closed.