AI駆動開発、AI中心設計

ChatGPTは、自然言語と比較して、厳密な記載になっているプログラミングに向いている。開発スピードはかなり加速するようで、Open AI社の開発が早いのもGPTが貢献していると推測している。

将来、ChatGPT等やコード入力支援系を使った開発が標準になると考えていたが、よくよく考えると、AIが全てを開発した方が、遥かに早い。

すなわち、人間の作業をAIで置き換える、もしくはサポートするのではなく、AIを中心にして、AIが最も有効に機能するよう、ソフトウェア開発を再構築することで、今よりも遥かに開発スピードが早くなる。

以下の記事で、完全自立型AIとして、Devin AIが紹介されている。機能としては、簡単な作業を行うもので、課題に対して、解決策やアルゴリズムを考えるまでは、まだ距離があるが、これから進歩する完全自立型AIを最も有効に活用できるよう、開発プロセスやドキュメント、システム構造、データ構造の見直しを始めるべきだと思う。

qiita.com

AIを中心にした開発、すなわち、AI駆動開発という概念について、マイクロソフトから論文が概念的な論文が出ている。

紹介記事は、以下のリンクから。すでに、複数のツールを組み合わせるAIは登場しており、どのようにタスクを分解するかが、これから重要になるし、開発や保守においても、”AIが最も活躍できるよう”に、システムそのものを見直す流れがやってくると考えている

qiita.com

AutoDev の仕組み

AutoDevは、以下の4つの主要なコンポーネントで構成されている様です。

 

Multi-Agent(複数の AI エージェント)

開発プロセスを自動化する AIモデル群

エージェント・スケジューラ を備えており、ここで複数の AI エージェントを管理・配置する

ここで役割毎の専門家を複数用意するようなイメージ

Conversation Manager(会話マネージャ)

「AI エージェント」の活動を管理し、開発プロセス全体 を統括・管理するコンポーネント

目的や定義の設定、アクションに関するルールや権限の制御を行う(たぶん)

Tools Library(ツール・ライブラリ)

AI がアクセス可能な、ファイル操作、検索、ビルド・実行、テスト、Git 操作を提供するツール群(実際には、AI に対してコマンドを提供する)

Eval Environment(評価環境)

Docker コンテナを利用したセキュアな実行環境

実際に、ビルド・実行・テストなどを行う場所

 

査読前であるが、マイクロソフトの論文は以下のリンクから。

arxiv.org

AutoDevは、自律的なAIエージェントがコードリポジトリと対話し、複雑なソフトウェアエンジニアリングのタスクを実行できるフレームワークです。

 

ユーザーがソフトウェアエンジニアリングの目的を設定すると、自律AIエージェントがその目的を達成するよう割り当てられる。

AIエージェントは、ファイル編集、検索、ビルド、実行、テスト、Gitオペレーションなど、多様な操作をツールライブラリを通じてコードベース上で実行できる。

会話マネージャーがユーザー・AIエージェント・環境間の対話を管理し、エージェントのコマンドを解析し、Docker環境内で安全に実行する。

エージェントスケジューラーが、ラウンドロビントークンベース、優先順位ベースなどのアルゴリズムを使って、共通の目標に向けて複数のAIエージェントを協調させる。

HumanEval データセットでの評価において、AutoDevはコード生成で91.5%の高いPass@1スコアを達成(上位3位)し、テスト生成でも87.8%のPass@1とカバレッジが高い。

ゼロショット手法に比べ、AutoDevでは推論回数が多いが、テスト・ビルド等の検証を自動で行うため、開発者が手動で行う作業を軽減できる。

IDEへの統合、マルチエージェント協調、Human-in-the-Loop、より複雑なデータセットでの評価などが今後の課題である。

要するに、AutoDevは大規模言語モデルの能力を高め、AIエージェントが安全な環境下でコードリポジトリと直接対話・操作できる革新的な自動ソフトウェア開発フレームワークである。

 

以上