AIエージェント開発の新時代、DevinとOpenHandsが変える開発プロセス
ソフトウェア開発の世界は、2024年3月にCognition社が発表したDevinによって大きな転換点を迎えました。「世界初の完全自律型AIソフトウェアエンジニア」として登場したDevinは、単なるコード生成ツールではなく、プロジェクト全体を理解し、設計から実装、テスト、デプロイまでを一貫して行える「エージェント」として機能します。
以下の動画では、ブログ記事の内容をもとにDevin は Modal で ControlNet を実行し、Sara へのメッセージを隠した画像を生成しています。(ブログのサムネイル生成に最適)
以下の動画では、アプリをエンドツーエンドで構築して自律的にデプロイする概要を説明しています。
以下の動画では、Game of LifeをシミュレートするインタラクティブなWebサイトを作成しています。ユーザーから要求された機能を段階的に追加し、アプリをNetlifyにデプロイしています。
以下の動画では、自律的にプログラミングの保守とデバッグをサポートしています。
その後、オープンソースコミュニティから生まれた「OpenHands」は、Devinのコンセプトを誰もが利用できる形で実現しようとする野心的なプロジェクトとして急速に発展しています。わずか半年で186名以上のコントリビューターを集め、GitHubで2万スター以上を獲得している点からも、その注目度の高さがうかがえます。
Devinの衝撃と開発パラダイムの変化
従来の開発支援ツールとの根本的な違い
これまでのAI開発支援ツール、例えばGitHub CopilotやAmazon CodeWhispererは、開発者の「アシスタント」としての役割に留まっていました。コードの自動補完や関数の提案など、あくまで人間の開発者が主体となり、AIがその作業を支援するという構図です。
しかし、Devinはこの関係性を根本から覆しました。開発者が「Slackアプリを作って」と指示すれば、Devinは要件定義から始まり、技術選定、アーキテクチャ設計、実装、テスト作成、デバッグまでを自律的に進めていきます。まるで一人の開発者がプロジェクトに取り組むかのように、問題に直面すれば自らインターネットで解決策を検索し、エラーが発生すればデバッグを行い、必要に応じてリファクタリングも実施します。
SWE-benchでの驚異的な成績
Devinの能力を客観的に示すものとして、「SWE-bench」という実世界のGitHubイシューを解決する能力を測定するベンチマークでの成績があります。2024年3月の発表時点で、Devinは13.86%という当時の最高記録を達成しました。これは従来のLLMベースのツールと比較して大幅な改善であり、実際の開発タスクにおいても実用的なレベルに達していることを示しています。
OpenHands!オープンソースが切り拓く民主化されたAI駆動開発

アーキテクチャと技術スタック
OpenHandsは、フロントエンドとバックエンドの2層構成を採用しています。バックエンドはPython製で、FastAPIとUvicornによるサーバー上でエージェントのロジックを実行します。フロントエンドはReact製のWeb UIで、TypeScriptとTailwind CSSを用いて実装されており、VS Codeエンジンをベースとしたエディタ、ターミナル、ブラウザビューなど、開発に必要なすべてのコンポーネントが統合されています。
特筆すべきは、すべてのコマンド実行がDockerコンテナ内の「サンドボックス環境」で行われる点です。これにより、エージェントが誤って破壊的な操作を行った場合でも、ホストOSへの影響を最小限に抑えることができます。
LLMの柔軟な選択と「CodeAct」手法
OpenHandsの大きな特徴の一つは、特定のLLMに依存しない設計です。「LiteLLM」という抽象化レイヤーを通じて、OpenAI GPT系、Anthropic Claude系、そしてオープンソースのCode LLM(Qwenなど)まで、幅広いモデルを利用できます。
エージェントの動作原理には「CodeAct」という独自の手法が採用されています。これは自然言語での会話「Converse」とコード実行「CodeAct」を1つの統一的な行動空間として扱うアプローチで、エージェントはLinuxコマンドやPythonスクリプトの実行を通じて、開発環境上で人間の開発者と同じように振る舞うことができます。
Microagentによるプロジェクト特化型カスタマイズ
OpenHandsの「Microagent」機能は、プロジェクト固有の知識やベストプラクティスをエージェントに組み込むための仕組みです。.openhands/microagents/
フォルダに定義されたプロンプトの断片は、そのプロジェクトにおけるコーディング規約や設計指針として機能し、エージェントは常にこれらをコンテキストに含めて作業を進めます。
例えば、repo.md
にプロジェクト全体の設計思想を記述しておけば、エージェントはその方針に沿ったコードを生成し、スタイルの一貫性を保つことができます。
サーバーレスアーキテクチャとの相性
イベント駆動型開発の自動化
サーバーレスアーキテクチャの中核をなす「イベント駆動型」の設計は、OpenHandsのようなAIエージェントとの相性が抜群です。AWS LambdaやAzure Functionsなどのサーバーレスプラットフォームでは、各機能が独立したユニットとして実装されるため、エージェントが管理しやすい粒度に分割されています。
実際に、「S3にファイルがアップロードされたらサムネイルを生成してDynamoDBに記録する」といったワークフローを構築する場合、OpenHandsに指示を出すだけで以下のような作業が自動化されます。
Lambda関数のコード生成において必要な処理の流れは以下の通りです。
- S3イベントトリガーの設定とIAMロールの作成
- 画像処理ライブラリを含むLambdaレイヤーの準備
- エラーハンドリングとリトライロジックの実装
- CloudWatchによる監視設定の追加
インフラストラクチャのコード化(IaC)との融合
2024年のAWS re:Inventで発表されたAmazon Q Developerの進化を見ても明らかなように、インフラストラクチャのコード化はAIエージェントにとって格好の活躍場所となっています。OpenHandsはTerraformやAWS CDKなどのIaCツールと組み合わせることで、インフラ構成からアプリケーション実装までを一貫して自動化できます。
例えば、「3つのプライベートサブネットと1つのパブリックサブネットを持つVPCをTerraformで定義して」という指示を与えれば、必要なAWSリソースブロックを記述したTerraformコードを生成し、さらにそのインフラ上で動作するサーバーレスアプリケーションまで実装してくれます。
コスト最適化への応用
サーバーレスアーキテクチャにおける「コスト最適化」は、多くの企業にとって重要な課題です。OpenHandsは、CloudWatchのメトリクスやCost Explorerのデータを分析し、以下のような最適化提案を自動的に行うことができます。
コスト最適化において考慮すべき主要な観点は次の通りです。
- Lambda関数のメモリサイズとタイムアウト設定の最適化
- DynamoDBのオンデマンドモードとプロビジョンドモードの使い分け
- API Gatewayのキャッシュ設定による呼び出し回数の削減
- Step Functionsを活用したワークフローの効率化
実践的な活用事例と導入効果
スタートアップでの活用事例
あるフィンテック系スタートアップでは、OpenHandsを導入することで「8ポイントの開発タスクが2ポイント程度まで圧縮され、開発所要時間が80%短縮できた」という報告があります。特に、定型的なCRUD操作の実装やAPIエンドポイントの作成といった作業では、エージェントがボイラープレートコードを自動生成することで、開発者はビジネスロジックの実装に集中できるようになりました。
エンタープライズでのトラブルシューティング
大手製造業のIT部門では、AWSのEC2インスタンスにSSH接続できない問題の調査にOpenHandsを活用しました。エージェントにAWS認証情報を提供し、問題の診断と解決を依頼したところ、セキュリティグループの設定ミスを自動的に発見し、修正まで完了させました。従来であれば管理者が数時間かけて調査する作業を、わずか15分で解決したという成果が報告されています。
教育分野での新しい活用法
興味深い事例として、建築学科の教授がOpenHandsを使ってインタラクティブなキャンパスマップWebアプリケーションを学生と共同開発した例があります。プログラミング知識が乏しい状況でも、主要コンポーネントをAIエージェントで構築し、細部の調整だけを自力で行うことで、時間と費用を大幅に削減できたと報告されています。
現実的な課題と対処法
モデル性能への依存とコスト問題
OpenHandsの実力は、背後で動作するLLMの性能に大きく依存します。GPT-4やClaude Sonnet 4 などの高性能モデルを使用すれば優れた結果が得られますが、API利用料が高額になる点は無視できません。
コスト管理における実践的なアプローチは以下の通りです。
- 開発初期段階では性能重視のモデルを使い、本番環境では費用対効果を再評価
- プロンプトの最適化により、不要な往復を削減
- 自社でホストするオープンソースLLMの活用検討
セキュリティとガバナンスの確保
企業でOpenHandsを導入する際、最も慎重に検討すべきはセキュリティとガバナンスの観点です。エージェントがソースコードやインフラ設定にアクセスできることは、同時にリスクも伴います。
表 OpenHands導入時のセキュリティチェックリスト
項目 | 確認内容 | 対策例 |
---|---|---|
アクセス制御 | エージェントの権限範囲は適切か | IAMロールによる最小権限の付与 |
監査ログ | すべての操作が記録されているか | CloudTrailとの連携強化 |
データ保護 | 機密情報の取り扱いは適切か | ローカルLLMの活用、暗号化の徹底 |
コードレビュー | 生成されたコードの品質確認 | 自動テストとピアレビューの併用 |
インシデント対応 | 問題発生時の対処手順 | ロールバック手順の明確化 |
上記の表に示したように、各項目について事前に対策を講じることで、安全にOpenHandsを活用することができます。
今後の展望と個人的な考察
AIエージェント開発の進化の方向性
2025年に入り、AIエージェント開発ツールの進化は加速の一途をたどっています。Microsoftが発表したAutoGenのようなマルチエージェントフレームワークや、GoogleのProject IDXのようなクラウドネイティブな開発環境との統合が進むことで、より高度な自動化が実現されるでしょう。
個人的に注目しているのは、「エージェント間の協調作業」です。例えば、フロントエンド専門のエージェント、バックエンド専門のエージェント、インフラ専門のエージェントが連携して、一つのプロジェクトを完成させるような未来が近づいています。
サーバーレス開発における新たなベストプラクティス
サーバーレスアーキテクチャとAIエージェントの組み合わせは、開発プロセスに革命的な変化をもたらす可能性を秘めています。特に、「Function as a Service(FaaS)」の粒度の細かさは、エージェントによる管理に最適です。
今後のベストプラクティスとして考えられる要素は以下の通りです。
- エージェント駆動開発(Agent-Driven Development)の確立
- サーバーレスパターンライブラリの構築と共有
- AIによる自動スケーリング戦略の最適化
- イベント駆動型アーキテクチャの自動設計
開発者の役割の再定義
AIエージェントが台頭する中で、開発者の役割も大きく変わっていくと感じています。コーディング作業そのものよりも、「何を作るか」「なぜ作るか」という上流工程での意思決定や、生成されたコードの品質保証、エージェントへの適切な指示出しといったスキルが重要になってきます。
実際、私自身もOpenHandsを日常的に活用していますが、エージェントとの「対話力」が成果を大きく左右することを実感しています。適切な粒度でタスクを分割し、必要な文脈を与え、生成された結果を批判的に評価する能力は、今後のエンジニアにとって必須のスキルとなるでしょう。
実装における実践的なTips
OpenHands導入時の環境構築
OpenHandsを実際に導入する際の手順を、私の経験を踏まえて共有します。まず重要なのは、Dockerとの相性を考慮した環境設計です。
環境構築で押さえるべきポイントは以下の通りです。
- Dockerのリソース制限を適切に設定(最低でもメモリ8GB以上を推奨)
- LLMのAPIキーは環境変数として管理し、
.env
ファイルで一元管理 - プロジェクトごとに独立したワークスペースを作成
- バックアップとバージョン管理の徹底
プロンプトエンジニアリングのコツ
OpenHandsを効果的に活用するには、適切なプロンプトの書き方が欠かせません。私が実践している方法として、「段階的詳細化」というアプローチがあります。
まず大まかな要件を伝え、エージェントが基本構造を作成したら、徐々に詳細な要件を追加していきます。例えば、「ToDoアプリを作って」から始めて、「期限日を追加して」「優先度でソートできるようにして」と段階的に機能を追加していくことで、エージェントが迷走することなく、確実に要件を満たすアプリケーションを構築できます。
トラブルシューティングの実例
実際にOpenHandsを使用していて遭遇した問題とその解決策を共有します。最も頻繁に発生するのは、「エージェントが無限ループに陥る」問題です。
この問題への対処法は次の通りです。
- タスクの終了条件を明確に定義する
- 最大試行回数を設定し、自動的に中断させる
- 中間成果物を定期的に確認し、必要に応じて軌道修正
まとめ
DevinからOpenHandsへと続くAIエージェント開発ツールの進化は、ソフトウェア開発のあり方を根本から変えつつあります。特にサーバーレスアーキテクチャとの組み合わせは、開発の効率化とスケーラビリティの両立を可能にし、これまでにない速度でのイノベーションを実現しています。
しかし、これらのツールは万能ではありません。適切な使い方を理解し、人間の創造性や判断力と組み合わせることで、初めてその真価を発揮します。開発者として私たちに求められているのは、AIエージェントを「使いこなす」スキルと、それでも人間にしかできない価値創造に集中することです。
OpenHandsのようなオープンソースプロジェクトが活発に開発されている現状は、この技術が特定の企業に独占されることなく、広く開発者コミュニティに還元されていることを示しています。GitHubでのコントリビューションも歓迎されており、誰もがこの革命的な技術の発展に貢献できる環境が整っています。
今後、AIエージェントはさらに高度化し、より複雑な開発タスクをこなせるようになるでしょう。しかし同時に、それを適切に活用し、ビジネス価値に変換できる開発者の重要性もますます高まっていきます。この変革の時代を、脅威ではなくチャンスと捉え、新しい開発パラダイムを積極的に取り入れていくことが、私たちエンジニアには求められています。