はじめに
Devinのオープンソース化プロジェクトである OpenHands(旧OpenDevin) をGitHub Copilotだけで動かす方法を開拓したので共有します。
OpenHandsについて
OpenHands(旧OpenDevin) は、Devinのような自立型AIソフトウェアエージェントを目指すオープンソースプロジェクトです。「Code Less, Make More」をスローガンに掲げ、コードの記述、コマンドライン操作、サンドボックス環境下での開発など、人間の開発者と同様の方法でタスクを実行できるDevinライクな機能を持っています。
設定でOpenAI、Anthropic、DeepSeekなどのAPIと組み合わせて使います。
背景
まず、優秀なAIエージェントであるDevinを使いたいと思っても実際には非常に高額で手を出しづらいのが現状です。
そのオープンソース実装であるOpenHandsも利用するにはOpenAIやAnthropicなどの従量課金APIが必要で、高度なタスクを頻繁に実行するとDevinの契約と同等レベルまで費用が膨らむ可能性がありました。そこで無制限に使用できるGitHub Copilotを使用できないか検討したところ、VSCode拡張の LM Proxy を使用することで、CopilotのモデルにOpenHandsからバイパスしAIエージェントを利用できるようになりました。
構成図
💡 解説
- ユーザーがOpenHandsにタスクを入力
- OpenHandsがLM Proxy経由でVSCodeのCopilotにアクセス
- VSCodeがCopilotのLLMを呼び出し、結果がLM Proxy経由でOpenHandsに返却
- 最終的にOpenHandsが結果をユーザーに提示
- これにより、CopilotだけでOpenHandsの自立型AIエージェントが利用可能
手順
1. VSCodeに LM Proxy をインストール
Marketplaceから LM Proxy 拡張を導入します。
設定から「APIを公開」できるようにしておきます。
LM Proxyを起動したらそのAPIが使えるかCURLコマンドで動作確認しておきましょう。
2. OpenHands の Docker を起動
OpenHands は公式がDockerイメージを提供しているので、そのまま動かせます。
git clone https://github.com/All-Hands-AI/OpenHands.git
cd OpenHands
docker compose up -d
3. OpenHands で LM Proxy を設定
ブラウザからOpenHandsを開き、設定ページの「LLM - 詳細設定」で以下を指定します。
例:
設定項目 | 設定値 |
---|---|
カスタムモデル | openai/vscode-lm-proxy |
ベースURL | http://host.docker.internal:4000/openai/v1/ |
APIキー | (入力不要) |
エージェント | CodeActAgent |
💡 補足
ベースURLはOpenHandsがコンテナ上で動作しているため、ホスト側のLM Proxy API(http://host.docker.internal:4000/openai/v1/
)を指定します。
ベースURLとカスタムモデルはOpenAIのAPI準拠なのでプロバイダ名に「openai」と入れても普通に動きます。
このとき、VSCode側でCopilotが有効になっていれば、CopilotのAIモデルを通じてOpenHandsが利用可能になります。
実際に動かした感想
- タスクを与えると、Devinと同じようにOpenHandsが自動でファイルを生成したり修正してくれます。
- 依頼すればPRまでやってくれるので、人間側は成果物のチェックに徹底できます。
- Copilotで使えるモデルなので精度と応答速度も良好でした。
- 従来なら別途従量課金のAPIキーを用意する必要がありましたが、Copilotの契約内で使用するのでお財布に優しい運用になりました。
まとめ
- GitHub Copilotさえあれば、OpenHandsを追加料金なしで使える。
- LM ProxyをVSCodeに入れるだけでエンドポイントを用意できる
- OpenHandsはDockerで簡単に起動できる。
- LM Proxyへの接続も簡単にできる。
Devinのような自立型のAIエージェントを試してみたい人にとってはかなり手軽な方法だと思います 🚀