「AIエージェントキャッチアップ #68 - AI-DLC」を開催しました

ジェネラティブエージェンツの大嶋です。

「AIエージェントキャッチアップ #68 - AI-DLC」という勉強会を開催しました。

generative-agents.connpass.com

アーカイブ動画はこちらです。

www.youtube.com

AI-DLC

今回は、AWSが公開したソフトウェア開発ワークフロー「AI-DLC(AI-Driven Development Life Cycle)」をキャッチアップしました。

AI-DLCのGitHubリポジトリはこちらです。

github.com

AWSのブログ記事はこちらです。

aws.amazon.com

今回のポイント

AI-DLCとは

AI-DLCは、AWSが公開したAIを活用したソフトウェア開発のワークフローです。

ソフトウェア開発にAIを活用するアプローチの中で、開発速度とソフトウェア品質の両立が難しいという課題の解決を目指しているとされています。

AI-DLCの3つのフェーズ

AI-DLCは、大きく3つのフェーズに分かれています。

  • インセプションフェーズ:何をなぜ構築するかを決める
  • コンストラクションフェーズ:どのように構築するかを決めて、実際に構築する
  • オペレーションフェーズ:デプロイしてモニタリングする

自然言語で定義されたワークフロー

AI-DLCでは、ワークフローが全て自然言語で定義されています。

ワークフローの構成は、コアワークフローと詳細のファイル群に分かれています。

<project-root>/
├── .aidlc-rules/
│   └── core-workflow.md   # コアワークフロー
└── .aidlc-rule-details/   # 詳細のファイル群
    ├── common/
    ├── inception/
    ├── construction/
    ├── operations/
    └── extensions/

AI-DLCをClaude Codeで使う場合、CLAUDE.mdにcore-workflow.mdの内容を記載して、.aidlc-rule-details/ディレクトリに詳細のファイル群を配置します。 コーディングエージェントの種類によって、AGENTS.mdにcore-workflow.mdの内容を記載したりします。

最近注目されている「スキル」と同じように、ワークフローの重要な点がcore-workflow.mdに記述され、.aidlc-rule-details/ディレクトリにある詳細のファイル群を必要に応じて読み込むようになっています。

ワークフローの内容自体は自然言語で書かれているため、様々なコーディングエージェントで動作します。

実際に動かしてみた

実際に、Claude CodeにAI-DLCを設定して、ちょっとしたWebアプリの開発を進めてみました。

「AI-DLCを使用して家計簿アプリを作りたいです」と伝えると、インセプションフェーズが開始されました。

インセプションフェーズの流れ

インセプションフェーズが開始すると、まずaidlc-docs/aidlc-state.mdファイルが作成され、現在のフェーズなどが記録されます。

次に、要求分析の質問ファイル(aidlc-docs/inception/requirements/requirements-verification-questions.md)が作成されます。 主要な機能の範囲、認証の要否、データの保存方法、フレームワークの選択などの質問に対して、ファイルに回答を記入していきます。

続けて、矛盾の検出が行われます。もともと「ミニマムなアプリを作りたい」と言っていたにも関わらず多くの機能を盛り込もうとしていたため、矛盾を指摘されました。

これら全てのやりとりはaudit.mdに記録されます。

その後もAI-DLCのワークフローに従って開発が進められていきます。

AI-DLCのルールには条件分岐なども存在し、一部のステップがスキップされることがあります。 ただし、そのような条件分岐も自然言語で記述されているため、AIが判断を誤る場合もありました。

拡張システム(Extensions)でのカスタマイズ

AI-DLCでは、.aidlc-rule-details/extensions/以下にmdファイルを配置することで、ワークフローをカスタマイズすることもできます。

配置したExtensionsは、ヘッダーで有効/無効を切り替えることができます。 なお、この有効/無効の切り替えロジックも自然言語で実装されていました。

あらゆる処理を自然言語で実装していることは、最近の自分の取り組みと近い点もあり、なかなか面白かったです。

次回のご案内

以上、今回は「AI-DLC」をキャッチアップしました。

次回は「AIエージェントキャッチアップ #69 - Recursive Language Models (RLMs)」ということで、言語モデルが入力を分解し自身を再帰的に呼び出す「Recursive Language Models(RLMs)」がテーマです!

generative-agents.connpass.com

ご興味・お時間ある方はぜひご参加ください!

また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!