AutoDevとは

 Microsoftが開発している 自律型 AI エージェントで自動化された開発フレームワークMicrosoft AutoDev
※2024年3月13日にMicrosoftが掲載した論文  (詳細はこちら


従来のAIでは単一のタスク( コード生成、テスト自動化など))を自動化していたが、AutoDevは「開発プロセス全体を自動化する開発プラットフォーム」となっています。

その結果、人間が開発する際の負担軽減が可能となり、また、開発の効率化、コスト削減など、多くのメリットがあると考えられます。

Youtube のコンテンツは現在の Cookie 設定では表示されません。"コンテンツを見る"を選択し、Youtube の Cookie 設定に同意すると閲覧できます。詳細は Youtube のプライバシーポリシーをご確認ください。Cookie の利用は、Cookie 設定からいつでも変更できます.

コンテンツを見る

AutoDevの性能

 In our evaluation, we tested AutoDev on the HumanEval dataset, obtaining promising results with 91.5% and 87.8% of Pass@1 for code generation and test generation respectively, demonstrating its effectiveness in automating software engineering tasks while maintaining a secure and user-controlled development environment. (論文より抜粋)

評価では、私たちはAutoDevをHumanEvalデータセットでテストし、コード生成では91.5%、テスト生成では87.8%のPass@1を得ました。これは、ソフトウェアエンジニアリングタスクを自動化する効果を示しており、安全でユーザーが制御可能な開発環境を維持しています。

上記の事から、AutoDevの自動化は効果があり有効と示されている。

※ HumanEval:HumanEval は OpenAI 社が2021年に公開した、プログラミング能力を評価するためのベンチマーク 

AutoDevの特徴

自立性

人間の介入なしに、 ソフトウェア開発のフロー全体を 自動化できる

 汎用性

様々な種類のソフトウェア開発のプロジェクトに利用できる

拡張性

AIエージェントやドメイン知識を追加可能で、機能を調整・拡張できる

 AutoDevのコンセプトと機能


AI 同士が会話

  • 複数のAI が、ソフトウェア開発の目的を達成するために助け合う(また、AI エージェントが互いにステータスを共有して処理していく)
  • 環境内で、ファイル編集、検索、ビルド・コンパイル、コードの実行、テスト、Git操作など、様々なリソースに直接アクセスし操作する 

AI が人間にフィードバックを求める

  • talkコマンドとaskコマンドを使い、タスク・進捗状況を伝え、人間の管理者にフィードバックを求める=質問に回答できる知見を有した人間が必要

共有可能なプロンプト

  • 特定の要件やトリガーとなるプロンプトを人間が与える事で AIエージェントが会話を始める。また、チーム内でこのプロンプトを共有・配布できるため、プロジェクトの一貫性が保つことが可能

 自動テスト

  • テストケースの生成を自動化する機能を持っており、コード分析、コンテキストの理解することで、適切なテストシナリオを提案可能 
  • その結果、 テスト・プロセスが合理化され、コード品質が向上する

幅広いプログラミング言語に対応

  • JavaScript/TypeScript 、Java, Kotlin, Python, Rust, Go, C/C++ 
  • プロジェクトで、シームレスに言語を切り替えることができる

セキュリティとプライバシー

  • セキュリティとプライバシーの保証するように設計されている
  • 全ての操作は Docker などのコンテナ内で行われ、ホストシステムから隔離されて実行される。また、ガードシステムを持ち、機密ファイルを保護する
  • 環境内で実行できるコマンドや権限を定義・制限して、開発環境内の制御秩序を維持することができる 


 AutoDevの活用例

 

コード生成

  • 新規のアプリケーションをプロンプトから開発

リファクタリング

  • ソースコードを理解して改善・提案

ドキュメンテーションの自動化

  • コメントとソース構造を理解し、ドキュメントを自動生成・提案

テスト自動化と品質向上

  • テストケースの作成
  • ソースコードレビューや、潜在的なバグの特定
  • 不具合を調査させて資料作成

バージョン管理

  • Gitのバージョン管理を自動化・視覚化
  • デプロイメントや CI/CD の領域を簡略化
  • GitHubのIssueの処理や資料化

AutoDev は研究開発が進められている段階で、製品化化されていません。
開発状況などに進展があった場合、またお知らせいたします。

※参照・引用

https://arxiv.org/html/2403.08299v1
https://qiita.com/to3izo/items/fc5b1e2bdb65466b466c