AWSは、AWS APIエンドポイントを処理し、開発者が実際のクラウドへの呼び出しを行うことなくソフトウェアをテストできるローカルプログラム「AWS Emulator」を公開しました。特筆すべきは、エミュレータのコードの全行が人間のエンジニアではなく、自律型AIエージェントによって書かれ、テストされたことです。この開発は、エージェントが人間チームよりも速くコードを反復処理できるローカル環境を提供することで、複雑な分散システムのテストにおける困難を解決することを目的としています。

分散システムテストの進化

大規模な分散システムのテストは、並行性のバグが特定のネットワーク条件やイベントの順序においてのみ発生することが多いため、非常に困難であることで知られています。これに対処するため、Amazonのエンジニアは「Alf」(Paxosベースのロックサービス)のような初期のサービスにおいて、制御されたJVM環境内でパケットをドロップしたりフォールトを注入したりするためのシミュレーション環境を構築しました。

シミュレーションや形式的な推論(TLA+など)はソフトウェアの品質を向上させましたが、AWSが200以上のサービスに成長するにつれ、これらの環境を手動で構築することは持続不可能になりました。AWS Emulatorは、既存のサービス仕様に基づいてAIエージェントを使用してこれらのテスト環境を自動的に生成することで、この課題に対処しています。

「エージェントがコードを書き、自身の作業をチェックする場合、エンジニアの仕事は、彼らが自立して作業できる空間を与え、その作業が正しいかどうかを決定する仕様、テスト、およびマージゲートを構築することになります。」

— AWS Emulator and the engineer's job when agents write the code

エージェントによる開発ワークフロー

エミュレータは3つのチームからなるエージェントアーキテクチャを使用して構築されました。最初のチームは、Smithy APIモデルと実際のAWSの動作を「フィデリティテスト(忠実度テスト)」に変換します。2番目のチームは、これらのテストをエミュレータに対して再現して差異を特定し、「things-that-do-not-work」フォルダに問題を記録します。3番目のチームはこれらの問題を引き継ぎ、修正を書き、レビューのために提出します。

A diagram illustrating the three-team AI agent architecture for the AWS Emulator.
The agentic workflow involves three distinct teams: test writers, issue finders, and fixers, all operating through a shared repository and merge gate.www.aboutamazon.com

This diagram visualizes the three-team agent architecture described in the article, showing how different AI teams collaborate to build and maintain the emulator.

AWS エミュレーターの規模: API モデル 438; AWS サービス 200
AWS エミュレーターの規模aboutamazon.com

HN Digest による図(aboutamazon.com の報告数値に基づく)。数値はソースの表記通り。

これらのエージェントは「マージゲート」内で動作します。これは、コードがコンパイルされ、コーディング標準を満たし、安全であり、実際のAWSクラウドに対する忠実度を維持していることを検証する一連の自動チェックです。これにより、エージェントは人間が最終的なコミットを見る前に、自身の作業を修正しながらコードをループ内で反復処理することができます。

AWS Emulatorのための3チーム構成のAIエージェントアーキテクチャを示す図。
エージェントのワークフローには、テスト作成、問題発見、修正の3つの異なるチームが含まれ、すべてが共有リポジトリとマージゲートを通じて動作します。www.aboutamazon.com

この図は、記事で説明されている3チーム構成のエージェントアーキテクチャを視覚化し、異なるAIチームがどのように協力してエミュレータを構築・維持するかを示しています。}{

エンジニアの役割の変化

エージェントがコーディングとテストの大部分を引き受けるにつれ、人間のエンジニアの役割は、高レベルの監視とインフラ設計へと移行しています。エンジニアは現在、エージェントのための「塗り絵」を定義することに集中しています。つまり、公開APIモデル、フィデリティテスト、およびエージェントが「枠の外を塗らない」ことを保証する自動ガードレールの設計です。

このプロジェクトは、AI時代におけるソフトウェアの品質がこれらのガードレールに依存することを示しています。エージェントが自身の作業をチェックできるローカル環境を提供することで、エンジニアはプロセスをより効果的に監視でき、手動の実装から自動化された生産を統制するシステムの設計へと移行することができます。

使用方法と制限事項

AWS Emulatorは、構築およびテストのために厳密に意図されたものであり、本番のワークロードやセキュリティテストのために設計されたものではありません。これはユーザーのマシン上でオフラインで動作し、AWS APIのローカルコピーを提供しますが、すべての可能なクラウド動作の1:1の複製を提供するものではありません。

個々のサービスのギャップは、リポジトリの問題ディレクトリで追跡されています。エミュレータはローカルテスト能力において大きな飛躍をもたらしますが、各サービスの「フィデリティスコア」は、一部の動作がまだライブのAWS環境と異なる可能性があることを示しています。