コーディングエージェントは、ソースコードだけでなく、依存関係の追加、ビルド、テスト、サーバープロセスの起動まで扱うようになりました。
開発者としては、エージェントをローカルで動かし、経過を確認しながら指示を加えたい。
一方、依存関係や任意プロセスを伴う生成結果は、開発者端末とは分離した環境で検証したい。
この「対話しながら作る」と「独立した環境で確かめる」の両立が課題です。
汎用runnerへ検証対象ごとのツールを積み増せば環境管理が複雑になり、変更ごとに専用Imageを作ると構築待ちが生じます。
本セッションでは、エージェントをMicroVM上で動かすのではなく、エージェントがローカルで作った成果物をCIが変更ごとのAWS Lambda MicroVMsで再実行するServerless CIを提案します。
そのために、更新頻度の異なる「検証環境」と「エージェントの成果物」を分離します。
OS、ランタイム、ビルドツール、テスト実行機能は、バージョン管理したMicroVM Imageとして再利用します。
一方、成果物の取得先、ハッシュ値、実行条件はjob入力としてCIから渡します。
CIは変更ごとにMicroVMを払い出し、artifactを照合してビルド・テストを実行し、結果回収後に環境ごと破棄します。
これにより、エージェントとの対話性を維持したまま、変更のたびにImageを増やすことなく、再現性が高く独立した検証環境を用意できます。
何をMicroVM Imageへ含め、何をjob入力に残すか、Imageをどの条件で更新するかを中心に、継続利用するImageをIaCで管理し、一時MicroVMをCIから払い出す構成、ライフサイクルフック、結果回収とMicroVMの終了までを、実AWS上のプロトタイプに基づいて解説します。
すべてのテストをMicroVMへ移すことが目的ではありません。
通常のCIで十分な検証と、独立した環境が有効な検証を見極める基準も示します。
エージェントとの対話性と、生成結果を独立して検証する実行環境を両立するための設計知を共有します。