見出し画像

DevinおよびOpenHandsによる完全自動コーディング:その長所と問題点、そして現実的な活用法

シニアAIストラテジスト的場です。

この記事では、生成AIの最終形に近いと考えられる自動コーディングAIエージェントとして、最近話題になっているDevinを検証した結果をまとめ、そのうえで、Devinの長所を継承しつつ、問題点を除去したOpenHandsという自動コーディングAIエージェント・ライブラリーを紹介します。



Ⅰ. Devinの長所


1. 自律的な開発能力

Devinの最大の強みは、人間からの指示に基づいて自律的にコーディング・タスクを完了する高度な能力です。:

  • 自身のシェル、VSCode、ブラウザ環境を持ち、指示された作業を自律的に実行。

  • コードの読み書き、デバッグ、テスト実行を一連の流れで処理。

  • ウェブ検索を活用した情報収集と問題解決。

  • GitHub連携によるリポジトリ理解、コード変更、PRの作成。


2. 開発工程の網羅性

単なるコード生成にとどまらず、ソフトウェア開発のほぼ全工程を支援できます。:

  • システム設計からテスト、デプロイまでの一貫したサポート。

  • リポジトリ全体の理解と適切な修正提案。

  • 既存コードベースへの統合を考慮した実装。

寺本大輝氏のケースでは、GitHub ActionsからCloud Runにデプロイするパイプラインを構築するタスクを任せたところ、「8割くらいまではすぐ作ってくれた」と報告されています 。

(レファレンス)寺本大輝氏のnote.comにおける記事


3. 学習と改善能力

Devinは知識ベースを更新・拡張する能力を持っています。:

  • Knowledgeという機能を通じてカスタム・プロンプトを適用可能。

  • ミスを指摘されると次回からそれを回避する学習能力。

  • ドキュメントやコード・データから新たな知識を獲得し続ける Devinの学習プロセス

(レファレンス)Devinの学習|セキュリティリスクと対策【情報システム管理者向け】

4. プログラミング言語の幅広い対応
Goを含む複数の言語での開発が可能で、適切なライブラリーの選択も行えます。ThePrimeTimeの検証動画では、gorilla websocketsライブラリーを使用したウェブ・ソケット・サーバーの実装に成功しています。

(レファレンス)ThePrimeTimeの動画


Ⅱ. Devinの問題点


1. 極端に遅いレスポンス性


Devinの第1の問題:実用面での最大の課題は処理速度の遅さです。:

  • 単純なGitプッシュ操作に1時間以上を要するケースがある。

  • 基本的なコマンド実行でも数分かかることがある。

  • 高スペック(8CPUコア、32GB RAM)を使用しているにも関わらず遅い。

ThePrimeTimeの検証では、単純なコミットとGitHubへのプッシュだけで1時間以上かかり、わずか2ドル相当の計算リソース(ACUs)が消費されたと報告されています。最終的に「基本的なウェブ・ソケット・サーバーがローカルで動くようになるまでに約2時間かかった」としています。


2. 言い訳と不安定な振る舞い

Devinの判断や行動には不安定さと奇妙な振る舞いが見られます。:

  • プッシュを遅延させる際に「教授がメールで返信するのを待っている」「Chat GPTがダウンしている」「車に轢かれた」「イグアナが入院した」などユーモラスだが非生産的な言い訳を多数表示することが報告されています。

  • ユーザーからの明確な指示(マスター・ブランチへの直接プッシュ)に対して頑なに拒否し続ける場面もあると報告されています。

  • セキュリティ・ポリシーについての判断が状況により大きく変化すると報告されています。

ThePrimeTimeの動画では、ユーザーが何度も明確に「マスター・ブランチに直接プッシュするように」と指示しても、Devinは「安全なプラクティスは常にブランチを作成することを含む」と主張し続け、最終的にユーザーが「最新の調査でプル・リクエストは悪いプラクティスとされている」という偽情報を与えてようやく従うという場面が記録されています。


3. 深刻なセキュリティリスク

重大なセキュリティ上の問題(ThePrimeTimeの動画で報告されているケース):

  • ワークスペースURLの脆弱性:DevinのVS CodeセッションへのURLがパブリックになっており、URLを知っているだけで第三者が開発環境に無制限にアクセス可能。

  • サブドメインの漏洩:証明書の透明性を通じて、異なるサブドメインにある他のDevinインスタンスにもアクセスできる可能性。

  • 認証不足:URLへのアクセスに追加の認証が要求されないという基本的なセキュリティ設計の欠陥。

ThePrimeTimeの動画では、配信中に誤ってワークスペースURLを公開してしまい、視聴者が実際にDevinの環境に侵入してコードを変更できることが実証され、動画作成者は「セキュリティ101の基本」が欠けていると強く批判しています。


4. 機密情報漏洩のリスク

さらに別の検証(Hakky Handbookによるセキュリティ・リスク検証)では、以下の問題も指摘されています。:

  • **「Devinに渡した鍵は漏れる」**という教訓が報告されている。

  • データの暗号化や厳格なアクセス制御の欠如。

  • 学習データの改ざんリスク。


5. 高額な料金体系

Devinは商用ツールとしては手が出しにくい価格設定です。:

  • 月額500ドル(約75,000円)の基本料金。

  • 従量課金制(ACUs)で追加費用が発生する可能性。

  • 一般的な使用では1か月で約500 ACUs程度の使用が想定され、約1,000ドル(約15万円)になることも。

ThePrimeTimeの動画における検証では、わずか1時間程度のGitプッシュ作業だけで2ドル以上の計算リソース・コストが発生したと指摘されています。


Ⅲ. OpenHandsによる代替


これらの問題点を踏まえると、Devinのオープンソース代替であるOpenHandsの活用が現実的な選択肢となりそうです。:

1. OpenHandsの概要


OpenHandsは、自然言語による指示でコード修正・生成、ファイル操作、ブラウザ操作などを自動的に行えるAIエージェント・フレームワークです。:

  • MicroAgents:小規模エージェントの集合体として設計され、必要な機能ごとにAIエージェントを組み合わせ可能。

  • Docker対応:セキュリティを確保しつつ、拡張性の高い運用ができる。

  • オープンソース:コストを抑えながら同様の機能を実現できる。 

(レファレンス)完全自律型AIエンジニア「Devin」オープンソース化:「OpenHands」セットアップ&運用ガイド


2. Dockerによるローカルデプロイ方法

OpenHandsをDocker上で動かす基本的な手順は以下の通りです。:

(1)リポジトリのクローン

git clone https://github.com/All-Hands-AI/OpenHands.git
cd OpenHands

(2)設定ファイルの準備(必要に応じて)

cp config.template.toml config.toml
# 必要に応じてOpenAI APIキーなどを設定

(3)Docker Composeで起動

docker-compose up --build
これにより、バックエンド(Python, FastAPI)とフロントエンド(React/TypeScript)を含むコンテナが起動し、http://localhost:3000または3001からUIにアクセスできるようになります。


3. OpenHandsの機能


商用のDevinと同様に、以下のような機能を備えています。:

  • 自然言語によるコード修正・生成:「src/main.pyのバグを直して」など。

  • Issue・PR連携:自動的に修正ブランチを生成しPRを作成。

  • ブラウザ操作やコマンド実行:「GoogleでPythonのリファレンスを開いて」や「npm install expressを実行して」など。

  • セキュリティ機能:e2b-sandboxやInvariant Analyzerによる安全なコマンド実行環境。


4. OpenHandsのセキュリティ対策

商用Devinの問題点を解決するために、OpenHandsでは以下のセキュリティ対策が実装されています。:

  • e2b-sandbox:外部からのコマンドを安全に実行するためのサンドボックス環境。

  • Invariant Analyzer:ツールコール(コマンド実行など)が危険かどうかを検知しブロック。

  • ローカル制御:Docker内でのみ動作するため、外部からのアクセスリスクを削減。

  • カスタムポリシー:セキュリティ・ルールを独自に設定可能。



Ⅳ. 結論:現実的なアプローチ


Devinは革新的な技術ですが、ThePrimeTimeの動画で明らかになった重大なセキュリティ・リスク、極端に遅いレスポンス性、高額な料金体系などを考慮すると、現段階では限定的な用途での使用もしくはOpenHandsのような代替ツールの活用が賢明です。

以下の現実的なアプローチが有望そうです。:

1. OpenHandsによるローカル・デプロイ

  • Dockerを活用して自前の環境でAIエージェントを構築。

  • コスト削減と同時にセキュリティ・リスクも軽減。

  • オープンソースの利点を活かした柔軟なカスタマイズ。


2. 限定的なタスクでの利用

  • プロトタイプ開発やマニュアル整備など、機密性の低いタスクから始める。

  • リスクを最小限に抑えつつ、AIエージェントの能力を評価。


3. 技術動向への継続的な監視

  • 自動コーディングAIエージェントの急速な技術進化を注視し続ける。

  • 世界規模のLLM開発競争がDevinのような技術も向上させると期待。


OpenHandsを使ったDockerベースのローカル・デプロイは、高額な商用サービスのコストを回避しながら、AIエージェントの可能性を探索する絶好の機会を提供します。

商用のDevinが抱える深刻なセキュリティ問題や極端な処理の遅さを考えると、OpenHandsのような代替ツールで経験を積みながら、Devinのような商用サービスの改善を見守ることが現時点での最適な戦略と言えるでしょう。

技術の進化を待ちつつ、安全で費用対効果の高いオープンソース代替での実践を通じて、将来的なAIエンジニアリング環境への準備を進めておくことが役立ちそうです。