代理开发生命周期已在 Cloudflare 上线
工程经理们花费了几十年的时间,寻找让多个程序员在共享代码库中协同工作的方式。这项工作可以追溯到“系统开发生命周期”([RAND, 1975](https://www.rand.org/pubs/reports/R1855.html)),如今通常被称为“软件开发生命周期”(SDLC),包括以下阶段:
- 计划
- 设计
- 实现
- 测试
- 部署
- 维护
- 退役
人工智能使得原本最慢、最昂贵的实现阶段变得最快、最便宜。这反过来又影响到整个 SDLC 中负责其他步骤的人,例如开放源代码的维护者面临成千上万的拉取请求和问题,生产工程师则努力应对软件交付速度大幅提高所带来的生产风险。
我们都在努力保护我们的系统、客户以及我们自己,避免失误。
—— 矛盾的是,答案是赋能代理去做更多事情。这是公平的!你不会让团队中的一名工程师写代码,然后指望别人来验证、合并、部署、保持生产状态,并处理即将到来的问题。但大多数公司现在对代理就是这样做的。模型得到了显著改进,代理能够在更长的时间范围内运行,并承担更大的任务。但它们在 SDLC 中的使用仍不均衡。
Cloudflare 把代理视作我们的客户。它们可以[购买域名](https://blog.cloudflare.com/agents-stripe-projects/)、创建[临时账户](https://blog.cloudflare.com/temporary-accounts/)并[使用整个 Cloudflare API](https://blog.cloudflare.com/code-mode-mcp/)。我们知道代理需要 APIs 和工具,以便能够代表我们的客户管理完整的 SDLC,而不仅仅是开始部分。
因此,今天我们推出了一系列新工具,让代理能够超越单纯的代码生成,承担更多的 SDLC。我们分享我们所构建和学习的以下内容:
- [@cloudflare/ci](https://blog.cloudflare.com/ci-workflows) — 一种新的方法,可以在数百万个代码库中运行 CI/CD,该工具可以自我修复并生成代理来完成更复杂的任务,同时基于 Cloudflare Workflows。
- [本地开发中的 OpenTelemetry 跟踪](https://blog.cloudflare.com/local-tracing) — 为代理提供与生产环境中相同的可观察性,内置于 Wrangler 和 Cloudflare Vite 插件中。
- [介绍:Cloudflare 代理和代理跟踪](http://blog.cloudflare.com/agents-on-cloudflare) — 一个新的平台,用于观察、维护和改进代理,聚焦于来自代理的 OpenTelemetry 跟踪。
- [Cloudflare 如何使用 AI 强制执行工程标准](http://blog.cloudflare.com/engineering-standards-enforcement) — 我们自己在所有产品和系统的代码库及规范中执行最佳实践的经验。
- [如何建立一个软件工厂,将 Astro 的 GitHub 问题数降至零](https://blog.cloudflare.com/astro-issue-triage) — 我们在为一个大型日益增长的开源项目自动分类、重现、验证和修复问题方面的经验。
但这里还有更大的事情。当我们审视 SDLC 时,即便是最好的自动化,其假设对于代理能写的代码量和软件工程团队必须跟随的步伐不再适用。我们认为,是时候用 ADLC(代理开发生命周期)取代 SDLC 了。
## SDLC 适用于软件团队。ADLC 适用于软件工厂。
现在,[每个人](https://x.com/zachlloydtweets/status/2069789929073262945) [都](https://x.com/matanSF/status/2066578088184680920) [在](https://x.com/dexhorthy/status/2081797628552270027) [谈论](https://x.com/bcherny/status/2077929390806073807) [构建](https://x.com/gokulr/status/2032271386161684665)“软件工厂” — 驱动代理的系统,能够接收输入,并自主构建、改进、部署和管理软件。无论是生产错误、来自客户的错误报告,还是新功能的想法,都可以完全交由代理处理。
即使有代理,大多数软件项目仍受限于人工干预步骤。人们提示代理,告诉它们继续执行,指示代理应用代码审查反馈,时刻关注多个代理并给它们指令。在大多数软件团队中,人仍然管理着 SDLC 模型中的每一步——唯一的变化是,他们将任务委派给代理。
因此,软件工厂背后的梦想是:如果重新构思这种方法,构建一个涵盖构建软件整个过程的工厂会怎样?我们如何将更多的人力投入到真正需要灵感、品味和判断的事情上?这将使我们有更多时间进行设计、与客户交流,甚至进行更大的梦想。
软件工厂必须管理 SDLC 中的相同步骤,但对构建平台的要求更高。因为当你交出控制权,让代理驾驶时,所有以前依赖于人类的手动步骤都必须适应以下要求:
- **程序化** — “ClickOps”对人类来说是不良实践,但对代理而言是非起点。每一个操作都需要代理可以调用、调试和依赖的 API。
- **横向可扩展** — 预览部署在构建过程中对人类来说是“好用”的,但对于代理而言,每个代理必须有与生产匹配的预览。
- **可重现** — 如果有一个错误只能在模拟 iPhone 15 上的 4G 网络时重现,或者从特定国家的 IP 地址访问时如何?典型的单元测试和集成测试工具将无能为力。
- **实时推送** — 依赖于人类查看正确的仪表盘一直是判断系统是否正常工作的糟糕方式,但对于代理而言则完全失效。你需要一种事件来触发代理执行工作。
- **原子性** — 每个变更都需要独立测试、发布、可观察和可逆,且不影响无关行为。
- **权限管控** — 你知道你可能不该这样做,但目前你会让几个值得信任的工程师拥有 SSH 进入生产环境的权限,以防事情真的搞砸。但你绝对不会让代理这样做 — 不过没有能力提升权限的方式,代理又如何完成它的工作?
- **自我改进** — 人从经验中学习。无论是第一周的发货还是第一次的值班,人类都很缓慢,需要向他人学习,但随后会变得更好更快。代理同样需要从经验中学习。
如果我们想让软件工厂安全地用于真实生产软件,我们需要一些新的东西。软件工厂面临的挑战与其他自主系统(如自动驾驶汽车)所面临的挑战相同 — 从 80% 的成功率提升到超过 99%的高达 n 个九。
## 为了让代理掌控 SDLC,你不能给它们设计给人类使用的汽车
一辆自主驾驶的车辆装载了常规汽车所没有的传感器和技术。激光雷达传感器、摄像头、强大的计算任务以进行推理,以及联网的中央指挥系统,可以在必要时远程接管。
为了让一辆自主驾驶的汽车达到与人类相近的 80% 的驾驶水平,可能不需要所有这些技术。自驾技术十年前就已经达到与人类驾驶水平的 80%。但这并不是要达到的标准 — 要求是比人类驾驶员更安全、更优秀。这就是我们在交出控制权给机器后所期待的,以便安心地在 101 高速公路上 60 英里每小时行驶时小憩。而这也就是为什么自主驾驶车辆需要专门为自动驾驶设计的技术 — 这才能建立信任,并处理无法事先设计的边缘情况。
自驱动软件同样如此。问问自己 — 为什么你还没有让你的代理自动批准和合并自己的 PR 到生产服务中?你构建的风险越高,你的理由清单几乎必然会越长。
当你开始认真考虑这一过程中的所有可能出现的灾难,以及构建正确产品所需的方方面面时,这样的复杂性是非常显著的。它不适合将其细分为 GitHub Actions YAML 文件中的线性步骤,也远远超出了运行传统自动化测试的范畴。即使是对仪表盘的小变更,也可能跨越角色、专业和组织架构,并且主观变更是最难以测试和委派的。这些内容可能今天并没有在你的 CI/CD 管道中,但如果你希望它们继续被执行,同时将完全控制权交给运行软件工厂的代理,那它们将必须被包含在内。
为了让代理掌控整个过程,我们需要一种更好的方式来协调这些动态步骤。我们认为这就是 [Workflows](https://blog.cloudflare.com/ci-workflows),可以生成容器、代理和浏览器的能力。一个可以设置功能标志并为测试用户启用它、检查日志和跟踪、观察生产指标在变更逐步部署时的表现,并完成其他所有在安全发布时所需的操作的 Workflows。
## CI/CD 管道只是一个 Workflows。然而,Workflows 可以远不止于 CI/CD 管道。
[Cloudflare Workflows](https://developers.cloudflare.com/workflows/) 让你可以将多个步骤链接在一起,自动重试失败的任务,并在几分钟、几小时甚至几周内保存状态。它们旨在将复杂和动态的业务流程编码为逻辑清晰并且易于理解的程序。[这篇博客](https://blog.cloudflare.com/ci-workflows) 详细介绍了为什么 Workflows 与 [Artifacts](https://blog.cloudflare.com/artifacts-git-for-agents-beta/) 的结合,使得定义和触发 CI/CD 管道变得根本上更简单。例如:
然而,Workflows 超越了一系列线性步骤。它们可以 [动态定义](https://blog.cloudflare.com/dynamic-workflows),并且可以生成代理或其他 Workflows。[这个示例](https://flueframework.com/docs/guide/workflows/#example-cloudflare-workflows) 展示了一个审查过去一天数据的 Workflows。这个 Workflows 具有完全的控制权,可决定何时以及如何提示代理,并可在步骤之间传递上下文。
一旦你看到这种模式,并被 Cloudflare 的“Workflow 吸引”,你可能会开始思考:我还可以让 Workflows 为我处理哪些任务?还有哪些人类瓶颈的步骤可以委托给这个 Workflows + [Flue agents](https://flueframework.com/) 的组合?
## 完整的 ADLC,在 Cloudflare 架构上
借助 [Workflows](https://developers.cloudflare.com/workflows/) 能够协调复杂步骤,并以 [Artifacts](https://developers.cloudflare.com/artifacts/) 作为代码的存储层,当你审视 SDLC 阶段时,代理所需的所有工具,涵盖从构建、发布到维护软件的完整过程,都在 Cloudflare 上。
## 构建你的软件工厂的原始组件
现在,处于前沿的团队正在构建未来的软件工厂。最终,软件工厂将成为像代理和 AI 一样的常态。然而,对于大多数人和组织来说,我们尚未达到那个阶段。
我们希望改变这一点。
为了做到这一点,我们问自己:我们如何才能简化和可得,以便互联网上的每一个人都能从这种范式转变中受益?以及我们能向每个人开放哪些基础构建组件,从最小的初创公司到世界上最大的企业?
在这个案例中,我们认为原始组件已经到位。我们还有更多工作要做以将它们连接起来,继续构建自己的软件工厂并从中学习,但今天,我们准备好让你在 Cloudflare 上构建你的机器,用于构建机器。开始使用 [@cloudflare/ci](https://blog.cloudflare.com/ci-workflows)、[构建一个代理](http://blog.cloudflare.com/agents-on-cloudflare),看看你能使 SDLC 的多少过程实现自主化。
---
原文链接:[点击查看](https://blog.cloudflare.com/agent-development-lifecycle/)
- 计划
- 设计
- 实现
- 测试
- 部署
- 维护
- 退役
人工智能使得原本最慢、最昂贵的实现阶段变得最快、最便宜。这反过来又影响到整个 SDLC 中负责其他步骤的人,例如开放源代码的维护者面临成千上万的拉取请求和问题,生产工程师则努力应对软件交付速度大幅提高所带来的生产风险。
我们都在努力保护我们的系统、客户以及我们自己,避免失误。
—— 矛盾的是,答案是赋能代理去做更多事情。这是公平的!你不会让团队中的一名工程师写代码,然后指望别人来验证、合并、部署、保持生产状态,并处理即将到来的问题。但大多数公司现在对代理就是这样做的。模型得到了显著改进,代理能够在更长的时间范围内运行,并承担更大的任务。但它们在 SDLC 中的使用仍不均衡。
Cloudflare 把代理视作我们的客户。它们可以[购买域名](https://blog.cloudflare.com/agents-stripe-projects/)、创建[临时账户](https://blog.cloudflare.com/temporary-accounts/)并[使用整个 Cloudflare API](https://blog.cloudflare.com/code-mode-mcp/)。我们知道代理需要 APIs 和工具,以便能够代表我们的客户管理完整的 SDLC,而不仅仅是开始部分。
因此,今天我们推出了一系列新工具,让代理能够超越单纯的代码生成,承担更多的 SDLC。我们分享我们所构建和学习的以下内容:
- [@cloudflare/ci](https://blog.cloudflare.com/ci-workflows) — 一种新的方法,可以在数百万个代码库中运行 CI/CD,该工具可以自我修复并生成代理来完成更复杂的任务,同时基于 Cloudflare Workflows。
- [本地开发中的 OpenTelemetry 跟踪](https://blog.cloudflare.com/local-tracing) — 为代理提供与生产环境中相同的可观察性,内置于 Wrangler 和 Cloudflare Vite 插件中。
- [介绍:Cloudflare 代理和代理跟踪](http://blog.cloudflare.com/agents-on-cloudflare) — 一个新的平台,用于观察、维护和改进代理,聚焦于来自代理的 OpenTelemetry 跟踪。
- [Cloudflare 如何使用 AI 强制执行工程标准](http://blog.cloudflare.com/engineering-standards-enforcement) — 我们自己在所有产品和系统的代码库及规范中执行最佳实践的经验。
- [如何建立一个软件工厂,将 Astro 的 GitHub 问题数降至零](https://blog.cloudflare.com/astro-issue-triage) — 我们在为一个大型日益增长的开源项目自动分类、重现、验证和修复问题方面的经验。
但这里还有更大的事情。当我们审视 SDLC 时,即便是最好的自动化,其假设对于代理能写的代码量和软件工程团队必须跟随的步伐不再适用。我们认为,是时候用 ADLC(代理开发生命周期)取代 SDLC 了。
## SDLC 适用于软件团队。ADLC 适用于软件工厂。
现在,[每个人](https://x.com/zachlloydtweets/status/2069789929073262945) [都](https://x.com/matanSF/status/2066578088184680920) [在](https://x.com/dexhorthy/status/2081797628552270027) [谈论](https://x.com/bcherny/status/2077929390806073807) [构建](https://x.com/gokulr/status/2032271386161684665)“软件工厂” — 驱动代理的系统,能够接收输入,并自主构建、改进、部署和管理软件。无论是生产错误、来自客户的错误报告,还是新功能的想法,都可以完全交由代理处理。
即使有代理,大多数软件项目仍受限于人工干预步骤。人们提示代理,告诉它们继续执行,指示代理应用代码审查反馈,时刻关注多个代理并给它们指令。在大多数软件团队中,人仍然管理着 SDLC 模型中的每一步——唯一的变化是,他们将任务委派给代理。
因此,软件工厂背后的梦想是:如果重新构思这种方法,构建一个涵盖构建软件整个过程的工厂会怎样?我们如何将更多的人力投入到真正需要灵感、品味和判断的事情上?这将使我们有更多时间进行设计、与客户交流,甚至进行更大的梦想。
软件工厂必须管理 SDLC 中的相同步骤,但对构建平台的要求更高。因为当你交出控制权,让代理驾驶时,所有以前依赖于人类的手动步骤都必须适应以下要求:
- **程序化** — “ClickOps”对人类来说是不良实践,但对代理而言是非起点。每一个操作都需要代理可以调用、调试和依赖的 API。
- **横向可扩展** — 预览部署在构建过程中对人类来说是“好用”的,但对于代理而言,每个代理必须有与生产匹配的预览。
- **可重现** — 如果有一个错误只能在模拟 iPhone 15 上的 4G 网络时重现,或者从特定国家的 IP 地址访问时如何?典型的单元测试和集成测试工具将无能为力。
- **实时推送** — 依赖于人类查看正确的仪表盘一直是判断系统是否正常工作的糟糕方式,但对于代理而言则完全失效。你需要一种事件来触发代理执行工作。
- **原子性** — 每个变更都需要独立测试、发布、可观察和可逆,且不影响无关行为。
- **权限管控** — 你知道你可能不该这样做,但目前你会让几个值得信任的工程师拥有 SSH 进入生产环境的权限,以防事情真的搞砸。但你绝对不会让代理这样做 — 不过没有能力提升权限的方式,代理又如何完成它的工作?
- **自我改进** — 人从经验中学习。无论是第一周的发货还是第一次的值班,人类都很缓慢,需要向他人学习,但随后会变得更好更快。代理同样需要从经验中学习。
如果我们想让软件工厂安全地用于真实生产软件,我们需要一些新的东西。软件工厂面临的挑战与其他自主系统(如自动驾驶汽车)所面临的挑战相同 — 从 80% 的成功率提升到超过 99%的高达 n 个九。
## 为了让代理掌控 SDLC,你不能给它们设计给人类使用的汽车
一辆自主驾驶的车辆装载了常规汽车所没有的传感器和技术。激光雷达传感器、摄像头、强大的计算任务以进行推理,以及联网的中央指挥系统,可以在必要时远程接管。
为了让一辆自主驾驶的汽车达到与人类相近的 80% 的驾驶水平,可能不需要所有这些技术。自驾技术十年前就已经达到与人类驾驶水平的 80%。但这并不是要达到的标准 — 要求是比人类驾驶员更安全、更优秀。这就是我们在交出控制权给机器后所期待的,以便安心地在 101 高速公路上 60 英里每小时行驶时小憩。而这也就是为什么自主驾驶车辆需要专门为自动驾驶设计的技术 — 这才能建立信任,并处理无法事先设计的边缘情况。
自驱动软件同样如此。问问自己 — 为什么你还没有让你的代理自动批准和合并自己的 PR 到生产服务中?你构建的风险越高,你的理由清单几乎必然会越长。
当你开始认真考虑这一过程中的所有可能出现的灾难,以及构建正确产品所需的方方面面时,这样的复杂性是非常显著的。它不适合将其细分为 GitHub Actions YAML 文件中的线性步骤,也远远超出了运行传统自动化测试的范畴。即使是对仪表盘的小变更,也可能跨越角色、专业和组织架构,并且主观变更是最难以测试和委派的。这些内容可能今天并没有在你的 CI/CD 管道中,但如果你希望它们继续被执行,同时将完全控制权交给运行软件工厂的代理,那它们将必须被包含在内。
为了让代理掌控整个过程,我们需要一种更好的方式来协调这些动态步骤。我们认为这就是 [Workflows](https://blog.cloudflare.com/ci-workflows),可以生成容器、代理和浏览器的能力。一个可以设置功能标志并为测试用户启用它、检查日志和跟踪、观察生产指标在变更逐步部署时的表现,并完成其他所有在安全发布时所需的操作的 Workflows。
## CI/CD 管道只是一个 Workflows。然而,Workflows 可以远不止于 CI/CD 管道。
[Cloudflare Workflows](https://developers.cloudflare.com/workflows/) 让你可以将多个步骤链接在一起,自动重试失败的任务,并在几分钟、几小时甚至几周内保存状态。它们旨在将复杂和动态的业务流程编码为逻辑清晰并且易于理解的程序。[这篇博客](https://blog.cloudflare.com/ci-workflows) 详细介绍了为什么 Workflows 与 [Artifacts](https://blog.cloudflare.com/artifacts-git-for-agents-beta/) 的结合,使得定义和触发 CI/CD 管道变得根本上更简单。例如:
然而,Workflows 超越了一系列线性步骤。它们可以 [动态定义](https://blog.cloudflare.com/dynamic-workflows),并且可以生成代理或其他 Workflows。[这个示例](https://flueframework.com/docs/guide/workflows/#example-cloudflare-workflows) 展示了一个审查过去一天数据的 Workflows。这个 Workflows 具有完全的控制权,可决定何时以及如何提示代理,并可在步骤之间传递上下文。
一旦你看到这种模式,并被 Cloudflare 的“Workflow 吸引”,你可能会开始思考:我还可以让 Workflows 为我处理哪些任务?还有哪些人类瓶颈的步骤可以委托给这个 Workflows + [Flue agents](https://flueframework.com/) 的组合?
## 完整的 ADLC,在 Cloudflare 架构上
借助 [Workflows](https://developers.cloudflare.com/workflows/) 能够协调复杂步骤,并以 [Artifacts](https://developers.cloudflare.com/artifacts/) 作为代码的存储层,当你审视 SDLC 阶段时,代理所需的所有工具,涵盖从构建、发布到维护软件的完整过程,都在 Cloudflare 上。
## 构建你的软件工厂的原始组件
现在,处于前沿的团队正在构建未来的软件工厂。最终,软件工厂将成为像代理和 AI 一样的常态。然而,对于大多数人和组织来说,我们尚未达到那个阶段。
我们希望改变这一点。
为了做到这一点,我们问自己:我们如何才能简化和可得,以便互联网上的每一个人都能从这种范式转变中受益?以及我们能向每个人开放哪些基础构建组件,从最小的初创公司到世界上最大的企业?
在这个案例中,我们认为原始组件已经到位。我们还有更多工作要做以将它们连接起来,继续构建自己的软件工厂并从中学习,但今天,我们准备好让你在 Cloudflare 上构建你的机器,用于构建机器。开始使用 [@cloudflare/ci](https://blog.cloudflare.com/ci-workflows)、[构建一个代理](http://blog.cloudflare.com/agents-on-cloudflare),看看你能使 SDLC 的多少过程实现自主化。
---
原文链接:[点击查看](https://blog.cloudflare.com/agent-development-lifecycle/)
评论
暂无评论。