技术

AWS Emulator离线模拟亚马逊200项云服务,全部代码由AI智能体编写

Susan Hill
在 Google 中添加我们

亚马逊推出的新开发工具 AWS Emulator,能在普通电脑上运行一套可用的云服务替身,让原本需要连接亚马逊服务器的软件可以离线测试,而且免费、无需账号。令人意外的是它的开发方式:亚马逊称,代码的每一行都是由 AI 智能体编写的,参与项目的工程师既没有写过,也没有审阅过任何代码。

对软件开发者来说,这改变了一种既缓慢又昂贵的惯常做法。要用真实云环境测试应用,就得等待服务器,还要为那些测试结束后便会弃置的资源付费。亚马逊的 Kiro、Anthropic 的 Claude Code 等编程智能体让问题更加突出,因为它们会反复运行代码来检查结果,每次往返云端都会增加延迟和成本。这个模拟器则让整个测试循环可以直接在笔记本电脑上运行。

最引人注目的是它的规模。该工具覆盖 200 多项 AWS 服务,基于亚马逊 400 多份公开 API 描述生成,并使用 Rust 编写。负责这一项目的 AWS 高级首席工程师马特·戈德堡(Matt Goldberg)说,项目最初只是一次周末实验。他只给 Kiro 输入了一条提示,大约 15 分钟后就得到了一份还算像样的亚马逊消息队列服务副本;到了周一,AWS 其余部分的粗略版本也已成形,他的团队随即开始用它测试自己的软件。

让代码保持可靠的并非人工审查,而是一连串自动化检查。亚马逊介绍说,有三组智能体在其 Bedrock AgentCore 平台上运行。第一组编写“保真度测试”,用创建队列、发送消息、删除队列等真实场景逐一对照线上云服务进行验证。第二组在模拟器上重放这些测试,并将每个失败案例登记为问题。第三组负责修复,每个问题由一个智能体处理;只有其他智能体——其中有好几个专门负责安全的智能体——对改动进行检验之后,代码才能合并。戈德堡说,如今每天有数百个智能体修复数千个问题。

他自己的解释朴实得出人意料。戈德堡把这些智能体比作幼儿园里的自己:年纪太小,连蜡笔都握不稳,还因为毁掉了班级画的恐龙图而挨了批评。他由此得出结论:智能体需要涂色书,也就是一块边界清楚、可以填色的区域。缺少这样的结构时,早期一代智能体曾决定自己编写 Python 解释器来运行 Lambda 函数;团队后来已经引导它们不再走这条弯路。

这款工具确实有局限,而且亚马逊自己也公开列出了不少。项目文档提醒开发者,不要将模拟器用于生产工作负载或安全测试;代码仓库还设有一个公开目录,列出目前仍与真实 AWS 不一致的行为,目录名为“things-that-do-not-work”。IDC 分析师德文·普拉特(Devin Pratt)告诉 InfoWorld,该工具还不能模拟限流、服务中断或不同区域的服务可用性差异,也不会对运行的代码进行沙箱隔离。从源码构建至少需要 100 GB 可用磁盘空间;默认情况下,向亚马逊报告使用情况的遥测功能也处于开启状态,不过用户可以将其关闭。

它进入的还是一个已有成熟玩家的市场。据 GeekWire 报道,知名度最高的 AWS 模拟器 LocalStack 今年将免费版改为必须注册账号才能使用,并限制其用于非商业用途。亚马逊的工具则以 CC0 公共领域贡献协议发布,同时公开完整的提交历史和智能体提交的每一个问题,任何人都可以查看、分叉或在此基础上继续开发。

这次发布既是一款产品,也是在表达一种立场。AWS 代理式 AI 副总裁斯瓦米·西瓦苏布拉马尼安(Swami Sivasubramanian)在亚马逊首席技术官沃纳·沃格尔斯(Werner Vogels)的博客上写道,当代码由智能体编写时,工程师的工作就变成了搭建规格、测试和合并关卡,由此判断成果何时才算正确。他还讲述了自己连续四个晚上监督 Kiro 的经历:智能体尝试重建一套他大约二十年前亲手编写的复制引擎;等智能体拿到规格说明和测试环境后,这项工作大约两小时就完成了。

AWS Emulator 于 11 月 11 日面向全球免费开放下载,提供 Linux 安装包、适用于 Windows 和 macOS 的 Docker 运行方式,以及供 Rust 测试套件使用的嵌入模式。亚马逊表示,几周后将在 re:Invent 大会上进一步介绍这个项目。

团队是否会信任一份没有任何人读过的代码,是亚马逊选择公开抛出的问题。多数开发者最先会去看的,大概就是那个列出“无法运行”事项的目录。

标签: , , , , ,

在 Google 中添加我们

讨论

有 0 条评论。