8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

はじめに

みなさん、Devinをご存知でしょうか?

Devinとは、米国のAIスタートアップ「Cognition」(またはCognition Labs)が開発した、完全自律型のAIソフトウェアエンジニアです。
従来のコード生成AIとは異なり、仕様の指示を受けるだけでなく、システム設計からコーディング、デバッグ、デプロイまで、ソフトウェア開発の全工程を自律的にこなす点が特徴です。

本記事では、そのDevin AIをオープンソースにする試み、OpenHands というオープンソースの AI エージェント フレームワークを使い、実際にどう導入し、どのように運用を進めればいいのかを解説します。


1. OpenHands とは?

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

一番の特徴は、MicroAgents と呼ばれる小規模エージェントの集合体として設計されており、欲しい機能ごとにAIエージェントを組み合わせられる点。
複数のプラグインやDockerベースのSandboxにも対応しているので、セキュリティや拡張性にも配慮しつつ運用が可能です。


2. リポジトリのクローンから初期ビルドまで

以下の例では Docker を使った簡単なセットアップ手順を紹介します。
ローカルで直接動かしたい場合は、後述の「8. ローカル開発用セットアップ方法」も参照してください。

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

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

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

リポジトリ直下に config.template.toml があるので、必要ならこれをコピーして config.toml にリネームし、自分のAPIキーや好みの設定を追記します。

cp config.template.toml config.toml
# お好みで編集(OpenAI Keyなどを設定)

(3) Docker Compose で一気に立ち上げる

docker-compose up --build

これにより、バックエンド(Python, FastAPIベース)やフロントエンド(React/TypeScript)が含まれたコンテナが起動します。
完了すると、http://localhost:3000(あるいは 3001)などにアクセスできるようになります(docker-compose.yml の設定によってポート番号が異なる場合があります)。


3. フロントエンドUIにアクセスしてみる

Webブラウザで http://localhost:3001/ を開き、OpenHandsフロントエンドUIにアクセス。
AIエージェントへの指示(「このファイルを編集して」「Issue #12 の内容を修正して」など)を自然言語で入力すれば、バックエンドが処理してコード変更やPR作成を自動実行してくれます。

  • 設定画面 では、LLMモデルやセキュリティ設定などを切り替えることが可能。
  • 会話リストやログ により、過去のやり取りを振り返って結果を確認することもできます。

4. どんなことができるのか? 機能概要

4-1. 自然言語によるコード修正・生成

例:「src/main.py のバグを直して」 → AIエージェントがファイル内容を変更し、差分をGit管理。

4-2. Issue・PR連携

例:Issueを「openhands」ラベル付きで作成 → OpenHandsが自動的に修正ブランチを切り、PRを生成しようとする。

4-3. ブラウザ操作やコマンド実行

例:「GoogleでPythonのリファレンスを開いて」→ AIエージェントが内部ブラウザツールを呼び出し検索結果を確認…
例:「npm install express を実行して」→ Docker内で実際にコマンドを走らせる。


5. MicroAgents の活用例

OpenHands の核心は、小さな「マイクロエージェント」を組み合わせる設計にあります。

  • typo_fixer_agent: コードのタイポ修正に特化
  • commit_writer: Gitのコミットメッセージ生成
  • repo_explorer: リポジトリ全体をスキャンし構造をまとめる
  • manager: 必要な複数エージェントを連携して大きなタスクを処理

自分のプロジェクトに合わせて microagents/ フォルダ内の定義ファイルを編集し、独自のマイクロエージェントを作成すれば、さらに自動化を柔軟に拡張できます。


6. CI/CD と評価 (Evaluation) の統合

6-1. GitHub Actionsでのテスト

.github/workflows/ フォルダ内に、以下のようなワークフローが用意されています。

  • lint.yml: コードのスタイルチェック
  • py-unit-tests.yml: Pythonテストの自動実行
  • fe-unit-tests.yml: フロントエンド(React/TypeScript)テスト
  • eval-runner.yml: evaluation/ フォルダの自動ベンチマーク

プルリク時にこれらが走るように設定すれば、AIエージェントが行った修正の品質評価を自動で回せます。

6-2. ベンチマーク (evaluation/ ディレクトリ)

OpenHands独自の評価スクリプト一式が格納されています。
たとえば mint, swe_bench, humanevalfix など多彩なケースがあり、Pythonで poetry run python evaluation/benchmarks/xxx/run_infer.py のような形式で実行可能。
外部のCIサーバーからもスクリプトを叩く形で連携すれば「AIが書いたコードが実用レベルか」を自動チェックできます。


7. セキュリティとSandbox

AIエージェントが勝手に危険なコマンドを実行しないか 心配な場合は、以下を考慮します。

  • e2b-sandbox
    containers/e2b-sandbox/ 下にあるDockerfileは、外部からのコマンドを安全に実行するためのSandbox構築用です。
  • Invariant Analyzer
    openhands/security/invariant で、ツールコール(コマンド実行など)が危険かどうかを検知する仕組みが入っており、リスクが高ければ実行をブロックできます。

config.toml などでアナライザを選択したり、カスタムポリシーを加筆して独自ルールを設定したりすることで、運用要件に合わせたセキュリティ対策を行えます。


8. ローカル開発用セットアップ方法

「Docker無しで試したい」「細かいデバッグをしたい」という場合は以下をお試しください。

  1. Poetryインストール

    curl -sSL https://install.python-poetry.org | python3 -
    # または他の方法でPoetryをインストール
    
  2. 依存関係のインストール

    git clone https://github.com/All-Hands-AI/OpenHands.git
    cd OpenHands
    poetry install
    
  3. サーバー起動

    poetry run python -m openhands.server.listen
    # もしくは `listen_socket.py` を使う場合などいろいろスクリプトあり
    

    これでバックエンドが起動します。config.toml で指定したポートなどを用いてアクセスできます。

  4. CLIモードで試す

    poetry run python -m openhands.core.main \
        -t "README.mdに対するtypo修正" \
        -c CodeActAgent \
        -m openai-llms
    

    などと実行すると、AIが実際にファイル編集やコマンド実行を行おうとします。
    (モデル名 -m openai-llms は一例です。openhands.llm を参照してお好みのモデル設定を行ってください。)

  5. フロントエンド
    フロントエンドをローカルで動かしたい場合は cd frontend && npm install && npm run dev
    ポートが 3001 で立ち上がる想定なので、http://localhost:3001/ にアクセスしてください。


9. まとめ:OpenHandsで自動化を加速しよう

OpenHandsは、

  • コード修正 → テスト → PR作成 → レビュー対応
  • AIベンチマーク評価やワークフロー可視化
  • セキュリティやSandboxによる安全な自動化実行
    を包括的に提供する強力なフレームワークです。

導入ステップのヒント:

  1. ローカル or Docker で初期セットアップ
  2. UIまたはCLIモードでエージェント動作を体験
  3. GitHub ActionsなどCI/CDに統合し、PRラベル付けで自動修正
  4. セキュリティやSandboxを調整して本番運用

実運用にあたっては、リポジトリ内の docs/ ディレクトリやサンプルワークフロー(.github/workflows)を確認すると具体例がたくさん見られます。
ぜひ本記事を参考にしていただき、OpenHandsを活用して新時代のAI自動化を開拓してみてください!


参考リンク

以上、OpenHandsのセットアップ・運用方法の概要でした。皆さんのプロジェクトでもぜひお試しください!

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?