软件交付曾围绕键盘前人类的局限设计。如今,代理在后台自主运行于数千个代码仓库中。Stripe等公司已出现这一趋势,他们最近发表了关于其Minions平台,以及Ramp我们的旧流程已无法再吸收这些变化。如今,每位工程负责人都在问同一个问题:我们该如何从当前的交付流程过渡到自动驾驶代码库?
自动补全演变成了编码代理。编码代理又演变成了在你的笔记本电脑上并行运行的三个编码代理。工程师们开始使用工作树、越来越多的终端、备用Mac Mini。为了运行更多代理,他们什么都尝试。
但本地主机(localhost)并非为此设计。代理会争抢机器状态,机密会被泄露,而且当机器休眠时一切都会停止。
这对独立开发者可行,但对专业工程来说难以维持。我们必须让工程师摆脱工作站的束缚。代理需要在后台安全地大规模运行。
你推出了编码代理。工程师们速度更快了。拉取请求大量涌入。
然而,周期时间丝毫未变。DORA指标持平。积压任务不断增加。
因为收益是与个人叠加,而非与组织叠加。如果你在编码代理上投入时间却不解决其周围的系统问题,你只会陷得更深。
这就是虚假的巅峰。
编码代理需要你的机器和关注,后台代理两者都不需要。它在云端的独立开发环境中运行:完整的工具链、测试套件、所有组件,完全与你的设备和会话解耦。
从你的笔记本电脑启动,从手机查看结果。可通过PR、Slack线程、Linear工单、webhook触发,或手动启动。
你无需操控它,也无需盯着它。这是一个异步任务:委派、离开、之后查看,它会运行到完成所需的时间。
| 编码代理 | 后台代理 | |
|---|---|---|
| 它们在哪里运行 | 你的笔记本电脑或本地机器 | 云端基础设施,远程触发 |
| 它们如何被触发 | 你手动调用它们 | 事件、计划、Slack消息、API调用——任何信号 |
| 范围 | 单个仓库中的单个任务 | 跨仓库、跨团队,以及整个SDLC |
| 开发者的角色 | 参与其中——观察、操控、迭代 | 置身事外——提示、离开、查看输出 |
自主代理需要你笔记本电脑上不存在的基础设施。以下这些构建块是区分演示和部署的关键——沙箱执行、治理、与内部系统的连接、触发自动化以及集群协调。每一个构建块都为下一个铺路。
在后台运行的代理需要拥有完整工具链、能够运行测试并通过密钥访问系统的执行环境。
环境应具备隔离性和可重现性,且与生产系统高度一致,以支持代理集群。其他所有构建都基于此。
代理拥有完整的开发环境。一台虚拟机运行开发容器,其中包含你的代码库、测试套件、数据库以及内部网络访问。
这是最接近人类开发者工作方式的模式。所有公开分享其代理架构的企业(包括Stripe和Ramp)都选择了这种模式。
代理在服务器或本地运行。当需要执行代码时,它通过API调用独立的远程沙箱。沙箱运行代码并返回结果。这在一定程度上隔离了密钥和执行过程,但代理只能执行代码,无法进行完整开发。
最适合开发代理产品的公司,而非改进自身工程工作流的组织。
代理是你系统中的行为主体。它们需要与人类贡献者相同的管控——身份、权限、审计跟踪。
差异在于:由系统提示(“请不要删除文件”)执行的治理只是一种建议。在执行层实施的治理——拒绝列表、受限凭证、确定性命令阻止——才是实际治理。没有它,安全团队会完全否决自主代理。而他们这么做是对的。
无法访问内部系统的沙箱只是个玩具。代理需要承担IAM角色、查询数据库副本、调用内部API,并从私有仓库拉取内容——所有操作都在你的网络内部进行。上下文和连接性将孤立执行转化为实际工作。
如果每次代理运行都从开发者输入提示开始,那你只是自动化了工作本身,而非工作流。触发器将代理与关键事件连接起来:定时任务、Webhook、系统信号。每种模式对应不同的范围和节奏。
按定时器触发。可预测、有边界、高频率——依赖更新、代码检查、覆盖率检查。
由系统事件触发——比如PR开启、CVE发布、警报触发。响应式、并发、持续监听。
跨多个仓库执行一项任务。每个代理独立工作并产生自己的贡献。
多个代理,一个结果。每个代理处理不同方面,结果汇聚成单一交付物。
直接从手机或iMessage触发一个或多个代理。一条短信,一支队伍便会散开。这就是新的TDD——出租车驱动开发(Taxi Driven Development)。
更新一个仓库是编码代理的任务。更新500个则是队伍任务。同一个沙箱会被复制到每个需要变更的仓库中——并行配置、进度跟踪、汇总结果。这正是个人生产力转化为组织吞吐量的关键所在。
这些基础方法赋予你能力,而关键在于如何应用它们。这意味着要实际行动:调研开发者,与团队沟通,梳理时间消耗在哪里。每个组织的瓶颈各不相同,值得优先解决的瓶颈往往并不明显。
拉取请求(PRs)会因你频繁切换上下文而搁置数小时。在规模化时,审查队列会积压,尽管编码速度加快,交付周期却依然持平。后台代理会在人类查看前自动审查每个PR,让审查者专注于设计而非格式。
工程组织是一个工业系统。如今,开发者在每个工位上:编写、审查、测试。后台代理改变了运营模式。工厂在运转,但你的工程师们在移动向前在循环中而非深陷其中
开发流程(工厂车间)正在运转。代码被持续且自主地编写、审查、测试、部署。你的工程师在观察、设定约束、验证结果。