GitHub 71,000スター超、SWE-Bench(ソフトウェアエンジニアリングベンチマーク)で77.6%を記録したオープンソースのAIコーディングエージェント「OpenHands」。Devinの代替として注目され、TikTok・Amazon・Netflix・Google・NVIDIA・Apple・MongoDB・Mastercardのエンジニアにも利用されています。この記事ではOpenHands AIの全容を、CLI・GUI・SDK・クラウドの4つの利用形態ごとにコード付きで徹底解説します。

AI駆動開発はすでに実験フェーズを卒業し、本番環境で使われる段階に入りました。しかし、どのツールを選ぶべきかはチームの規模セキュリティ要件予算によって大きく変わります。この記事を読み終える頃には、自社にフィットするOpenHandsの使い方が明確になっているはずです。導入ハードルの低いCLIから、大規模運用を支えるEnterprise版まで、段階的な活用方法を順に解説していきます。

💡 ポイント OpenHandsは「オープンソースのDevin」として登場し、MITライセンスで無料・セルフホスト・商用利用可能。LLM APIコストだけで運用でき、個人開発者から大企業まで幅広く採用されています。

OpenHands Architecture

この記事ではAIエージェントに特化して解説します。AIエージェント全般は AIエージェントフレームワーク比較2026年版 をご覧ください。

OpenHandsとは何か:AIが自律的にコードを書く開発エージェント

OpenHands(旧称OpenDevin)は、All-Hands-AIが開発するオープンソースのAIソフトウェア開発エージェントです。MITライセンスで公開されており、誰でも無料で利用・改変・商用利用が可能です。プロジェクトは2024年初頭にOpenDevinとして始まり、コミュニティの拡大とともにOpenHandsへと改名されました。現在も活発に開発が続いており、毎月のように新機能がリリースされています。

核となるコンセプトは「AIが開発者と同じ環境でコードを書き、テストし、デバッグする」こと。ターミナルでコマンドを実行し、ファイルを編集し、ブラウザで調査し、最終的にPull Requestを作成するところまで自律的に実行します。人間の開発者がやるべき作業の大半を、エージェントが代行するイメージです。

🎯 OpenHandsを一言で言うと

従来のGitHub Copilotのような補完型AIではなく、タスク完遂型のAIエージェントです。「このIssueを解決して」「このテストを通して」という抽象的な指示に対して、AIが計画→実行→検証→修正のループを自律的に回します。コード補完だけでは終わらず、最後まで動くコードを生み出すまで責任を持つのが大きな違いです。

具体的には、与えられた指示をエージェントがサブタスクに分解し、必要なファイルを読み込み、コードを書き、テストを実行し、エラーが出たら修正し、最終的にコミットしてプルリクエストを作るところまで自動化します。一連の流れがすべてターミナル内で完結するため、開発者はエージェントの作業ログを眺めながら、必要なときにだけ介入する形になります。

📦 主な特徴を整理

項目 内容
SWE-Bench スコア 77.6%(公開ベンチマーク最高水準)
GitHub スター 71,000+
ライセンス MIT(Enterprise版は別ライセンス)
対応LLM Claude, GPT, Gemini, Qwen, Devstral等
利用形態 CLI, ローカルGUI, SDK, クラウド
主要連携 GitHub Actions, Slack, Jira, Linear
言語 Python(バックエンド), React(フロントエンド)
サンドボックス Docker / Kubernetes
採用企業 TikTok, Amazon, Netflix, Google, NVIDIA, Apple, MongoDB

⚡ 他のAIコーディングツールとの違い

OpenHandsが他のAIコーディングツールと一線を画すのは、オープンソースでありながらエンタープライズ級の機能を備えている点です。セルフホストRBAC(ロールベースアクセス制御)Kubernetes対応といった企業向け要件を満たしつつ、個人開発者はCLIですぐに使い始められます。ライセンスの制約がないため、社内ツールへの組み込みや、自社サービスとしての再配布も自由に行えるのが強みです。

既存のGitHub Copilotはコード補完に特化しており、IDE内での次の一行を予測する用途に最適化されています。一方、OpenHandsはタスク単位のエージェントとして設計されているため、「このリポジトリに認証機能を追加して」「このバグを直して」といった高レベルな指示をそのまま投げられます。この違いが、OpenHandsが自律型エージェントと呼ばれる理由です。

✅ チェック OpenHandsは単なるOSSツールではなく、SDK・CLI・GUI・Cloud・Enterpriseの5層構造で提供されています。用途・規模・セキュリティ要件に応じて使い分けられるのが最大の強みです。個人の試用から大企業の本番運用まで、同じコアエンジンで対応できる点が他のツールにはない魅力です。

この章のポイント
・OpenHandsは旧OpenDevinから改名されたMITライセンスのOSSエージェント
・補完型ではなくタスク完遂型で、計画→実行→検証→修正まで自律実行
・SDK・CLI・GUI・Cloud・Enterpriseの5層構造で個人から大企業まで対応

OpenHands CLIの導入手順:5分で始めるAIコーディング

CLIはOpenHandsの最も手軽な利用形態です。Claude CodeやOpenAI Codexに馴染みがあれば、同じ感覚で使えます。シェルから1コマンドでインストールでき、APIキー1つあれば即座に使い始められます。ターミナルを離れずに作業したい開発者にとって、もっとも現実的な選択肢です。

Claude CodeのようにIDEと密結合せず、コマンドライン単体で完結するため、エディタの好みを問わず使えるのもメリットです。Vim派でもEmacs派でも、あるいはVS Code派でも、同じCLIを共通して使えます。

📦 インストール

# uvを使ったインストール(推奨・高速)
uv tool install openhands --python 3.12

# または pip でのインストール
pip install openhands

# バージョン確認
openhands --version

uvRust製の高速パッケージマネージャで、Python依存解決がpipより10倍以上高速です。OpenHandsのようなエージェント系ツールは依存パッケージが多いため、uv推奨です。仮想環境の作成から依存解決、インストールまでを一貫して扱えるため、プロジェクトごとに環境を分ける運用が非常にスムーズになります。インストール後は~/.local/binにバイナリが配置されるので、PATHが通っているか確認してください。

🎯 LLMの設定とCLI起動

# APIキーとモデルを環境変数で設定
export LLM_API_KEY="your-api-key-here"
export LLM_MODEL="anthropic/claude-sonnet-4-5-20250929"

# 対話モードで起動(シェルのように使う)
openhands

# タスクを直接指定して起動(ワンショット実行)
openhands -t "このリポジトリのREADMEにAPI仕様セクションを追加して"

# ファイルからタスクを読み込み(複雑な指示向け)
openhands -f task_description.txt

# 作業ディレクトリを指定して起動
openhands -d /path/to/project -t "テストを全部緑にして"

⚠️ 注意 LLM_API_KEYはシェル履歴に残らないよう、.envrcdirenv経由で管理するのが安全です。公開リポジトリに絶対にコミットしないでください。万が一コミットしてしまった場合は、APIキーを即座にローテーションし、git filter-repoなどで履歴からも削除することを強く推奨します。

対話モードで起動すると、シェル上にOpenHandsのプロンプトが表示され、自然言語で指示を送れるようになります。指示を受けたエージェントは、まず作業計画を立てて表示し、続いて実行コマンド編集差分を逐次表示していきます。ユーザーは各ステップで承認するか、指示を修正するかを選べます。

⚡ 3つの確認モード

CLIには実行時のユーザー確認に関する3つのモードがあります。タスクのリスクレベル開発フローに応じて使い分けましょう。

モード コマンド 動作 推奨シーン
デフォルト openhands 毎回確認を求める 本番リポジトリ
自動承認 openhands --always-approve 確認なしで実行 サンドボックス内
LLM判定 openhands --llm-approve AIがセキュリティ判定 中規模プロジェクト

🔄 セッション管理と再開

セッション管理も充実しており、前回の作業を途中から再開できます。長時間かかるリファクタリング作業や、複数日にまたがる実装でも文脈を失いません。セッションには会話履歴実行ログファイル変更の差分がすべて保存されるため、翌日に別のマシンから続きを実行することも可能です。

# 最近の会話一覧を表示
openhands --resume

# 直前のセッションを再開
openhands --resume --last

# 特定のセッションIDで再開
openhands --resume abc123def456

# セッション一覧をJSON形式で出力
openhands --list-sessions --json

💡 ポイント OpenHands CLIはClaude Codeと違い、複数LLMに対応しています。Claude 3.5 Sonnetで書かせて、レビューはGPT-5にやらせる、といったマルチモデル運用も環境変数の切り替えだけで実現可能です。

Tip
APIキー管理はdirenv1Password CLIと組み合わせると、プロジェクトごとに安全に切り替えられます。シェル履歴や.bash_historyに秘密情報を残さない運用を徹底してください。
この章のポイント
・CLIはuv tool install openhandsまたはpip install openhandsで5分導入
・デフォルト・自動承認・LLM判定の3つの確認モードをタスクのリスクで使い分け
・セッション再開機能で長時間の作業でも文脈を失わない

ローカルGUIとDockerセットアップ

GUIはブラウザベースのインターフェースで、Devinに近い操作感を提供します。エージェントの実行状況をリアルタイムで確認でき、REST APIも同時に起動します。チームで共有する管理画面や、デモ環境としても重宝します。CLIに比べて視覚的に分かりやすいため、非エンジニアのステークホルダーに進捗を見せたいときにも便利です。

画面は大きく分けて、チャットパネルファイルブラウザターミナル出力ブラウザプレビューの4領域から構成されます。エージェントが何を見て、どんなコマンドを打ち、どのファイルを編集したかを、視覚的にトレースできるのが大きな特徴です。

🚀 GUI起動方法

# CLIランチャーで起動(推奨・自動セットアップ)
openhands serve

# GPU対応で起動(ローカルLLM使用時)
openhands serve --gpu

# カレントディレクトリをマウントして起動
openhands serve --mount-cwd

# ポートを変更して起動
openhands serve --port 8080

📦 Dockerでの直接起動

Dockerで直接起動する場合は以下のコマンドを使います。docker.sockをマウントすることで、OpenHandsがコンテナを起動してサンドボックス環境を動的に作成します。

docker run -it --rm --pull=always \
  -e AGENT_SERVER_IMAGE_REPOSITORY=ghcr.io/openhands/agent-server \
  -e AGENT_SERVER_IMAGE_TAG=1.15.0-python \
  -e LOG_ALL_EVENTS=true \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v ~/.openhands:/.openhands \
  -p 3000:3000 \
  --add-host host.docker.internal:host-gateway \
  --name openhands-app \
  docker.openhands.dev/openhands/openhands:1.6

起動後はhttp://localhost:3000でアクセスできます。

✅ システム要件チェックリスト

OpenHands GUIを快適に動かすために必要な環境を確認しましょう。

  • RAM 4GB以上(推奨8GB)
  • Docker Desktopがインストール済み
  • Python 3.12以上(SDK利用時)
  • ポート3000が空いている
  • LLM APIキー(Claude / GPT / Gemini等)
  • ディスク空き容量 20GB以上(Dockerイメージ用)
  • インターネット接続(LLM API通信用)

⚠️ 注意 M1/M2/M3 MacではDockerのアーキテクチャ(arm64 / amd64)に注意が必要です。エージェントサーバーイメージがamd64のみの場合、Rosetta2経由で動きますがパフォーマンスが低下します。

🏗️ GUIアーキテクチャ

OpenHands GUIは3層構造になっており、ブラウザ・Agent Server・Sandbox環境が明確に分離されています。

graph LR A["ユーザー
ブラウザ"] -->|"HTTP :3000"| B["OpenHands GUI
React SPA"] B -->|"REST API"| C["Agent Server
Python"] C -->|"LLM API"| D["Claude / GPT
Gemini / Qwen"] C -->|"コマンド実行"| E["Docker Sandbox
隔離環境"] E -->|"ファイル編集
テスト実行"| F["ワークスペース
ソースコード"]

この分離により、AIが何をしているかがすべて観測可能で、不正なコマンドが発行されてもサンドボックス内で完結します。セキュリティ的に非常に堅牢な設計です。ホスト側のファイルシステムには明示的にマウントしたディレクトリしかアクセスできず、ネットワークも隔離されたDockerネットワーク内に閉じるため、未知のコマンドを実行されるリスクを最小化できます。

さらに、REST APIが同時に立ち上がるため、外部ツールからの自動化連携も容易です。SlackボットやCIパイプラインからエージェントを起動する、といった運用もGUIと同じコアエンジンで実現できます。

この章のポイント
・GUIはブラウザ・Agent Server・Dockerサンドボックスの3層構造
openhands serve一発で起動、ポート3000でアクセス可能
・サンドボックスによりホストから隔離された安全な実行環境が自動構築される

Software Agent SDKでカスタムエージェントを構築する

OpenHandsの真価はSDKにあります。SDKは汎用的なAIフレームワーク(LangChainなど)とは異なり、ソフトウェアエンジニアリングに特化して設計されています。ターミナル実行ファイル編集ブラウザ操作MCP連携といったコーディング向けのツールが組み込み済みです。LangChainは汎用的なRAGや会話アプリには向きますが、コード生成・実行・検証に関してはOpenHands SDKの方が直接的で強力です。

SDKで定義したエージェントは、ローカルのCLIから呼び出すことも、Kubernetesクラスタ上に大量にデプロイすることもできます。同じコードが開発環境と本番環境で動くため、PoCから本番への移行コストがほぼゼロです。

📦 SDKのインストール

# コアSDK
pip install openhands-sdk

# ツール群(Terminal, FileEditor, Browser等)
pip install openhands-tools

# ワークスペース管理
pip install openhands-workspace

# すべてまとめてインストール
pip install 'openhands-sdk[all]'

🎯 エージェントの定義と実行

PythonコードでAIエージェントを定義し、ローカルでもクラウドでも実行できます。以下はテストカバレッジを自動改善するエージェントの最小例です。

import os
from openhands.sdk import LLM, Agent, Conversation, Tool
from openhands.tools.file_editor import FileEditorTool
from openhands.tools.task_tracker import TaskTrackerTool
from openhands.tools.terminal import TerminalTool

# LLMの設定(モデルは環境変数で切り替え可能)
llm = LLM(
    model=os.getenv("LLM_MODEL", "anthropic/claude-sonnet-4-5-20250929"),
    api_key=os.getenv("LLM_API_KEY"),
    base_url=os.getenv("LLM_BASE_URL", None),
)

# エージェントにツールを装備
agent = Agent(
    llm=llm,
    tools=[
        Tool(name=TerminalTool.name),
        Tool(name=FileEditorTool.name),
        Tool(name=TaskTrackerTool.name),
    ],
)

# ワークスペースを指定して会話を開始
cwd = os.getcwd()
conversation = Conversation(agent=agent, workspace=cwd)
conversation.send_message("テストカバレッジが低いファイルを特定し、テストを追加して")
conversation.run()

📦 SDKの組み込みツール一覧

ツール 用途 依存
TerminalTool bash/shellコマンドの実行 Docker
FileEditorTool ファイルの作成・編集・削除 なし
TaskTrackerTool タスクの分解と進捗管理 なし
BrowserTool Webブラウジング・情報収集 Playwright
MCP連携 外部ツールとの統合 MCP Server
JupyterTool Jupyter Notebookの実行 Jupyter
GitTool Git操作(commit, push等) Git

💡 ポイント SDKはローカル実行だけでなく、Kubernetes上で1,000以上のエージェントをスケールアウトさせることも可能です。大規模なリポジトリ群を一括で移行する際、並列エージェントで作業時間を劇的に短縮できます。

⚡ カスタムツールの追加

既存ツールで足りない場合は、独自ツールを追加できます。社内APIとの連携や、独自のコード解析ロジックなどを組み込めます。

from openhands.sdk import Tool, ToolResult

class SlackNotifyTool(Tool):
    name = "slack_notify"
    description = "Slackチャンネルに通知を送信する"

    def __call__(self, channel: str, message: str) -> ToolResult:
        import requests
        webhook_url = os.getenv("SLACK_WEBHOOK_URL")
        response = requests.post(
            webhook_url,
            json={"channel": channel, "text": message}
        )
        return ToolResult(
            success=response.ok,
            output=f"Sent to {channel}"
        )

# エージェントに追加
agent.tools.append(SlackNotifyTool())

これとBrowser-useのようなブラウザ自動化エージェントを組み合わせれば、Web調査→コード実装→Slack通知という一連のワークフローを完全自動化できます。たとえば、競合サービスのドキュメントをBrowser-useで取得して仕様を整理し、その仕様をOpenHandsに渡して実装させ、完成したPRをSlackで通知する、といった横断的な自動化パイプラインが構築可能です。

カスタムツールを増やすほどエージェントの能力は高まりますが、ツール数が多すぎるとLLMが選択に迷うこともあります。実運用では5〜10個程度に厳選し、必要に応じてツールセットを切り替える運用が推奨されます。

この章のポイント
・SDKはソフトウェアエンジニアリングに特化した組み込みツール群を提供
・Terminal・FileEditor・Browser・Jupyter・GitなどがPythonで即利用可能
・独自ツールを追加すれば社内APIや外部サービスと自由に連携できる

📌 ここまでの要点まとめ

ここまででOpenHandsの3つの利用形態を解説しました。

✅ チェック

  • CLI:もっとも手軽。Claude Code代替として使える
  • GUI:Devinライクな操作感。チームデモ可視化に最適
  • SDKカスタムエージェント構築の最強基盤。K8sスケール対応

次はGitHub Actions連携クラウド版の使い方に進みます。ここからがOpenHandsの真骨頂です。

この章のポイント
・CLIは手軽さ、GUIは可視性、SDKは拡張性が強み
・用途に応じて使い分けることで個人から大規模組織まで対応できる
・次章以降はGitHub Actions連携とクラウド版の実践編に進む

GitHub Actions連携:Issueを自動修正するワークフロー

OpenHandsの実用的な強みの一つが、GitHub Actionsとのネイティブ連携です。IssueやPRに対してAIエージェントが自動で修正提案を行います。社内のバックログに溜まった軽微なバグ修正を、夜間に一括処理できます。営業時間外にエージェントが働き、朝出社したらPRが並んでいる、という運用が現実のものになります。

特に効果が大きいのは、「やる気は出ないが価値はある」タスクです。たとえば古いテストフレームワークから新しいフレームワークへの移行、依存パッケージのメジャーアップデートに伴うコード修正、ドキュメントの英訳や日本語訳など、機械的だが手間がかかる作業を一気に処理できます。

🎯 基本的な使い方

  1. リポジトリのIssueにfix-meラベルを付ける
  2. OpenHandsエージェントがIssueの内容を分析
  3. 自動でコードを修正し、Pull Requestを作成
  4. 開発者はPRをレビューしてマージするだけ

コメントで@openhands-agentを使えば、特定の指示に基づいた修正も可能です。たとえば「この関数のテストを追加して」「このメソッドをリファクタしてパフォーマンスを改善して」といった自然言語での指示ができます。

📦 設定変数

GitHubリポジトリのSettings → Secrets and variables → Actionsで以下を設定します。

# リポジトリのSecretsで設定(機密情報)
LLM_API_KEY: "sk-ant-api03-xxxxxxxxxxxxx"
PAT_TOKEN: "ghp_xxxxxxxxxxxxx"

# リポジトリのVariablesで設定(公開情報)
LLM_MODEL: "anthropic/claude-sonnet-4-5-20250929"
OPENHANDS_MAX_ITER: 10        # エージェントの最大反復回数
OPENHANDS_MACRO: "@openhands-agent"  # トリガーキーワード
TARGET_BRANCH: "main"          # マージ先ブランチ

⚡ ワークフローファイルの例

.github/workflows/openhands.ymlに以下を配置するだけで、OpenHandsエージェントがIssue自動修正を開始します。

name: OpenHands Agent
on:
  issues:
    types: [labeled]
  issue_comment:
    types: [created]

jobs:
  openhands:
    if: contains(github.event.label.name, 'fix-me') || contains(github.event.comment.body, '@openhands-agent')
    runs-on: ubuntu-latest
    permissions:
      contents: write
      issues: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
      - uses: OpenHands/OpenHands-action@v1
        with:
          llm_api_key: $
          llm_model: $
          max_iterations: $
          target_branch: $

⚠️ 注意 エージェントはPATトークンまたはGitHub Appで動作します。リポジトリ書き込み権限PR作成権限が必要です。セキュリティ上、デフォルトブランチへの直接push権限は付与しない運用が推奨されます。

🔄 ラベルとメンションの使い分け

fix-meラベルはIssue全体の解決を指示し、@openhands-agentコメントは特定の問題に焦点を絞った修正を指示します。フィードバックをPRコメントで返すと、エージェントが追加修正を行う反復的なワークフローにも対応しています。人間のレビュアーが指摘するように、「ここの変数名を変えて」「このテストケースも追加して」とコメントを書くだけで、エージェントが再度コミットしてくれます。

トリガー 用途 スコープ 料金目安
fix-meラベル Issue全体を自律解決 Issue全文 $0.5〜$3/件
@openhands-agentコメント 特定タスクの指示 コメント+差分 $0.1〜$1/件
PRレビューコメント 既存PRへの追加修正 PR diff $0.1〜$0.5/件

💡 ポイント LLMコスト削減のコツ:Claude HaikuやQwen3 Coderのような安価なモデルをIssue分析用に、Claude Sonnetを実装用に使い分ける2段階構成がおすすめです。OpenHandsはモデルを途中で切り替え可能です。

この章のポイント
fix-meラベルと@openhands-agentメンションでIssue自動修正が動く
・夜間バッチ運用でバックログを一気に消化できる
・安価モデルと高性能モデルの2段階構成でコストを最適化

OpenHands vs Devin vs Claude Code:AIコーディングツール徹底比較

AIコーディングエージェントの選択は、コスト・機能・運用要件のバランスで決まります。OpenHandsとDevinの違い、Claude Codeとの使い分けを整理します。2026年現在、AIコーディングエージェント市場は急速に広がっており、用途によって最適解が変わる状況です。ここでは代表的な3ツールを実運用の観点から比較します。

📊 総合機能比較表

比較項目 OpenHands Devin Claude Code
ライセンス MIT(OSS) クローズドソース クローズドソース
料金 無料(LLM APIコストのみ) 月額$500〜 Max $100/Pro $20
SWE-Bench 77.6%(公開) 非公開 非公開
GUI あり(React) あり なし(CLIのみ)
SDK あり(Python) なし なし
対応LLM 複数(Claude, GPT, Gemini等) 独自モデル Claude専用
セルフホスト 可能(Docker/K8s) 不可 不可
GitHub連携 Actions + Issue自動修正 PR連携 PR連携
Slack/Jira連携 あり(Cloud版) あり なし
IDE統合 VS Code拡張 ブラウザIDE VS Code, JetBrains
エンタープライズ RBAC, K8s, VPC対応 チーム機能あり Team契約あり
オンプレ対応 完全対応 不可 不可

💰 コスト比較(月額・中規模チーム想定)

プラン OpenHands Devin Claude Code
個人利用 ~$20(API代のみ) $500 $20〜$100
5人チーム ~$150(API代+サーバー) $2,500 $100〜$500
20人チーム ~$800(API代+K8s) $10,000 $400〜$2,000
100人部門 Enterprise相談 $50,000 Team契約

🎯 選び方の指針

  • コストを抑えたい・セルフホストしたいOpenHands一択。MITライセンスでLLM APIコストのみ
  • 環境構築なしですぐ使いたいDevin(SaaS)またはClaude Code(CLIインストールのみ)
  • 複数LLMを切り替えたいOpenHands。環境変数1つでモデル変更可能
  • ターミナル中心の開発スタイルClaude Code。IDE統合とClaude専用最適化が強み
  • チームでAI開発を標準化したいOpenHands Enterprise。RBAC・監査ログ・VPCデプロイ対応
  • 機密コードを扱う金融・医療OpenHands Enterprise。VPC内で閉じた運用が可能

📊 機能マトリクス(詳細)

機能 OpenHands Devin Claude Code
自律ブラウザ操作 ⚠️ 限定的
ターミナル実行
ファイル編集
マルチエージェント ⚠️ 限定的
カスタムツール追加 ✅ SDK ⚠️ Hooks
MCP対応
サンドボックス隔離 ✅ Docker/K8s ⚠️ ホスト実行
オフライン動作 ✅(ローカルLLM時)
料金透明性 ✅ API従量 ❌ 固定 ✅ 従量+固定

💡 ポイント TikTok・Netflix・Googleなどの大企業がOpenHandsを採用している理由は、VPC内でのセルフホストSDKによる社内ツール統合の2点です。クローズドなSaaSでは機密コードが外部サーバーを通るため、コンプライアンス上採用できないケースが多いのです。金融・医療・防衛などの規制産業では、コードベースを社外に出せない制約があり、OpenHandsのようなセルフホスト可能なOSSがほぼ唯一の選択肢になります。

一方、スタートアップや個人開発者にとっては、DevinやClaude Codeのようなサービス型の方が手軽なケースもあります。サーバー運用コストとAPI課金コストのバランス、チーム全員のスキルセット、必要なセキュリティレベルを総合的に判断して、自社にフィットするツールを選ぶのが賢明です。

この章のポイント
・OpenHandsはOSSでLLM API代のみ、Devinは月額$500、Claude Codeは月額$20〜
・規制業種や機密コードを扱うならセルフホスト可能なOpenHands一択
・チーム規模とセキュリティ要件で最適解が変わる

OpenHands Cloudと無料プラン:すぐに試す方法

ローカル環境を用意せずにOpenHandsを試したい場合は、クラウド版app.all-hands.dev)が便利です。GitHubログインだけで即座に試せます。Dockerのインストールや環境構築が不要で、ブラウザがあれば誰でも使えるため、エージェントの挙動を試したい初心者にも最適です。

🎯 Cloud版の特徴

  • GitHubまたはGitLabアカウントでサインイン
  • Minimaxモデル無料で利用可能
  • Slack・Jira・Linear連携がクラウド版で利用可能
  • マルチユーザー対応、会話共有機能あり
  • RBACと権限管理
  • ブラウザのみで完結、インストール不要

📦 Cloud版の使い始め方

  1. app.all-hands.devにアクセス
  2. 「Sign in with GitHub」または「Sign in with GitLab」を選択
  3. 連携するリポジトリを選択
  4. 新しい会話を開始し、タスクを入力
  5. エージェントが自動でブランチを切り、PRを作成

✅ チェック Cloud版は検証・PoC用途に最適。まず無料枠で試し、チーム導入が決まったらEnterpriseへ移行する流れが定番です。

⚡ Enterprise版とセルフホスト

Enterprise版はKubernetes上のVPCセルフホストに対応し、RBAC監査ログといった企業向けセキュリティ要件を満たします。ライセンスは1ヶ月の無料試用期間付きです。大規模な導入を検討する場合、まずはこの試用期間で社内PoCを実施し、効果を測定してから本契約に進む流れが一般的です。

クラウド版にはソースアベイラブル(source-available)の追加機能が含まれており、ForgeCodeのような他のAIコーディングツールと併用する運用も増えています。1つのAIエージェントに依存しないポリシーを持つ企業では、複数ツールを使い分けて最適解を探る動きが加速しています。

🏗️ 利用形態の選び方フロー

graph TB Q1["個人 or チーム?"] Q1 -->|"個人"| Q2["ローカル環境
あり?"] Q1 -->|"チーム"| Q3["セルフホスト
要件?"] Q2 -->|"あり"| A1["CLI
pip install openhands"] Q2 -->|"なし"| A2["Cloud版
app.all-hands.dev"] Q3 -->|"なし"| A3["Cloud版
チーム機能付き"] Q3 -->|"あり"| A4["Enterprise版
K8s + VPC"] A1 --> B1["無料枠
~$20/月"] A2 --> B2["無料枠
Minimaxモデル"] A3 --> B3["$20-100/月/ユーザー"] A4 --> B4["年間契約
相談ベース"]

✅ 導入前チェックリスト

OpenHandsを導入する前に確認すべき項目をまとめました。

  • チーム規模(個人/5人/20人/100人+)
  • セルフホスト要件の有無(機密コード/規制業種)
  • 予算(LLM API代 vs SaaS固定費)
  • 使用するLLM(Claude/GPT/Gemini/ローカル)
  • GitHub/GitLabどちら運用か
  • 連携ツール(Slack/Jira/Linear)
  • セキュリティ要件(RBAC/監査ログ/VPC)
  • オンプレミス必須か否か
この章のポイント
・Cloud版はGitHubログインだけで即座に試せるPoCに最適な入り口
・Enterprise版はK8s+VPCセルフホスト、RBAC、監査ログを完備
・導入前にチーム規模・予算・セキュリティ要件を整理しておく

OpenHandsを運用する際のベストプラクティス

実際にOpenHandsを本番環境で運用する際の注意点とノウハウをまとめます。公式ドキュメントと技術レポート(arXiv: 2511.03690)から抽出した運用知見です。ツールを導入するだけで生産性が上がるわけではなく、運用ルールモニタリング体制を整えることが成功の鍵になります。

⚡ コスト最適化

LLM APIコストは反復回数コンテキスト長の積で決まります。OpenHandsではOPENHANDS_MAX_ITERで反復上限を設定できます。タスクの難易度に応じてモデルとイテレーション数を調整することで、コストを大幅に削減できます。簡単なタスクには軽量モデル、難しいタスクには高性能モデルという段階的な使い分けがポイントです。

# 小規模タスク:反復5回まで、軽量モデル
export LLM_MODEL="anthropic/claude-haiku-4-5"
export OPENHANDS_MAX_ITER=5

# 中規模タスク:反復10回まで、標準モデル
export LLM_MODEL="anthropic/claude-sonnet-4-5"
export OPENHANDS_MAX_ITER=10

# 大規模タスク:反復20回まで、強力モデル
export LLM_MODEL="anthropic/claude-opus-4-6"
export OPENHANDS_MAX_ITER=20

🎯 セキュリティ設定

Dockerサンドボックスを必ず有効化し、ホストファイルシステムへの直接アクセスを避けます。エージェントは与えられたコンテキストで判断するため、プロンプトインジェクションや誤動作のリスクを完全には排除できません。そのため、物理的な隔離で二重の安全装置を設けるのが基本戦略です。

# サンドボックス必須設定
export SANDBOX_USE_DOCKER=true
export SANDBOX_NETWORK_MODE=isolated
export WORKSPACE_MOUNT_MODE=read_only

⚠️ 注意 本番リポジトリで--always-approveモードを使わない。AIが誤ってsecretsを書き込んだり、意図しないコマンドを実行するリスクがあります。CI/CD上で使う場合は別リポジトリ・別環境に分離してください。

📦 マルチエージェント運用

大規模なリファクタリングでは、複数のエージェントを並列実行すると効率的です。SDKではConversationインスタンスを複数作成することで並列化できます。エージェントごとに別のワークスペースを割り当てることで、互いに干渉せず独立して作業できます。完了後にブランチをマージする流れにすれば、並列数を増やすだけで作業時間が短縮されます。

import asyncio
from openhands.sdk import LLM, Agent, Conversation

async def run_parallel_agents(tasks: list[str]):
    llm = LLM(model="anthropic/claude-sonnet-4-5")
    agent = Agent(llm=llm, tools=[...])

    conversations = [
        Conversation(agent=agent, workspace=f"/workspaces/task_{i}")
        for i in range(len(tasks))
    ]

    async def run_one(conv, task):
        conv.send_message(task)
        await conv.run_async()
        return conv.summary()

    results = await asyncio.gather(*[
        run_one(c, t) for c, t in zip(conversations, tasks)
    ])
    return results

# 20個のファイルを並列リファクタ
tasks = [f"src/module_{i}.pyをリファクタして" for i in range(20)]
asyncio.run(run_parallel_agents(tasks))

💡 ポイント Kubernetes上で1,000エージェント並列実行した事例もあります。クラウドLLMのレートリミットに注意しつつ、モノレポの一括移行大規模コードベースの型付け追加などに威力を発揮します。

この章のポイント
OPENHANDS_MAX_ITERと軽量モデルの組み合わせでコストを大幅削減
・Dockerサンドボックスは必須、本番リポジトリで--always-approveは使わない
・SDKの並列実行で大規模リファクタリングを高速化できる

OpenHandsの実際の活用シーン:4つの典型パターン

OpenHandsを導入した開発現場で実際に効果が出ている4つの活用パターンを紹介します。どのパターンも公式ドキュメントやコミュニティで報告されている実例をベースにしています。

🎯 パターン1:Issueバックログの自動消化

多くの開発チームでは、優先度の低いIssueがバックログに溜まり続けています。タイポ修正、小さなバグ、ドキュメントの誤記、軽微なUIの調整など、いつかやりたいが手が回らないタスクです。こうしたIssueにfix-meラベルを一括で付与し、夜間にOpenHandsを走らせる運用で、数週間分のバックログを一晩で処理した事例があります。

人間が判断すべき重要なIssueは手動のまま残し、自動化できる部分だけを切り分けるのがポイントです。エージェントが作ったPRは必ずレビューするため、品質担保は人間の目で最終確認できます。

📦 パターン2:レガシーコード移行

Python 2から3への移行、古いJavaScriptフレームワークから最新版への乗り換え、廃止予定APIの置き換えなど、大規模かつ機械的なコード変換はOpenHandsが得意とする領域です。SDKでエージェントを並列実行すれば、数百ファイルの変換を1日以内に終えられます。

従来は専任チームが数週間かけていたような移行作業を、エージェントによる一括変換+人間によるレビューという構成に置き換えることで、工数を1/10程度に圧縮できます。移行作業の品質を保つコツは、テストケースの網羅性です。テストが充実していれば、エージェントが壊しても即座に検知できます。

⚡ パターン3:テストカバレッジの向上

カバレッジが低いファイルを特定し、網羅的なテストケースを追加するタスクも、エージェントが非常に得意です。カバレッジレポートを読んで、テストされていない関数を洗い出し、正常系・異常系・境界値のテストを書く、という一連の流れを自動化できます。

人間のエンジニアが本質的な機能開発に集中している間に、エージェントが品質保証の裏方を担う分業体制が実現します。特にスタートアップのように人手が足りない環境では、この効果が絶大です。

🏗️ パターン4:ドキュメント生成とメンテナンス

READMEの更新、API仕様書の自動生成、変更履歴の整備など、ドキュメント系のタスクもエージェントが得意とします。コードベースを読み込んで、最新の仕様に基づいたドキュメントを生成し、定期的にメンテナンスする運用が可能です。

💡 ポイント 人間のエンジニアがドキュメントを後回しにしがちな問題を、エージェントが補完する形で解決できます。ドキュメントが常に最新に保たれることで、新メンバーのオンボーディング時間も短縮されます。

この章のポイント
・Issueバックログ消化・レガシーコード移行・テストカバレッジ向上・ドキュメント整備の4領域で効果大
・機械的だが手間のかかる作業ほど投資対効果が高い
・人間は本質的な機能開発、エージェントは裏方タスクという分業体制が実現する

OpenHandsの今後の展望とコミュニティ

OpenHandsは活発なOSSコミュニティに支えられて進化しています。2024年のOpenDevinとしてのスタートから、2025年にはOpenHandsへの改名、そして2026年時点では71,000スター超の巨大プロジェクトに成長しました。

📌 ロードマップから読み取れる方向性

公式のProduct Roadmapを見ると、今後の注力領域は以下の3点に集約されます。

  • マルチエージェント協調:複数のエージェントが分業する仕組みの強化
  • 評価基盤の拡充evaluation infrastructureの整備
  • エンタープライズ機能:RBAC、監査、VPC対応の深化

🎯 Theory-of-Mindモジュールという新機軸

OpenHandsはTheory-of-Mind(ToM)モジュールという研究も公開しています。これはエージェントが他のエージェントや人間の意図を推論する能力を持たせるための仕組みで、マルチエージェント環境での協調動作を大幅に改善する可能性があります。

この方向性は、従来の単体で動くエージェントから、チームとして働くエージェント群へのパラダイムシフトを示しています。今後、OpenHandsはAIソフトウェア開発組織を丸ごと代替する方向へ進むかもしれません。

⚡ コミュニティへの参加方法

OpenHandsのコミュニティには、以下のチャンネルから参加できます。

  • Slackdub.sh/openhandsで招待リンクを取得
  • GitHub Issues:バグ報告や機能要望を自由に投稿
  • GitHub Discussions:運用ノウハウや質問の共有
  • Chrome拡張機能openhands-chrome-extensionの開発にも参加可能

✅ チェック OSSへの貢献はキャリアにも効く活動です。PRを1つマージしただけでも、大規模OSSコミッターとして経歴に書けます。OpenHandsは日本人コントリビューターもすでに多数在籍しており、英語が苦手でもコードで貢献できる環境が整っています。

この章のポイント
・マルチエージェント協調・評価基盤・エンタープライズ機能が3大注力領域
・Theory-of-Mindモジュールなど研究の最前線も公開中
・Slack・GitHub Issues・Discussionsから誰でもコミュニティに参加できる

🎯 要点まとめ:OpenHandsが変えるAI駆動開発の現在地

OpenHandsは「オープンソースのDevin」という位置づけから出発し、71,000スター超のコミュニティに支えられて急速に進化しています。SWE-Bench 77.6%のスコアは、OSSのAIコーディングエージェントとして最高水準です。

✅ 記事のチェックリスト

  • CLIpip install openhandsで5分導入
  • GUIopenhands serveでDevin風UIが起動
  • SDK:Kubernetes上で1,000エージェント並列対応
  • Cloudapp.all-hands.devで無料お試し
  • Enterprise:VPC内セルフホスト+RBAC
  • GitHub Actionsfix-meラベルでIssue自動修正
  • マルチLLM:Claude/GPT/Gemini/Qwen/Devstral対応

📌 利用形態のまとめ

利用形態 対象 コスト セットアップ時間
CLI 個人開発者 LLM API代のみ 5分
GUI ローカルチーム LLM API代のみ 15分
SDK カスタム構築者 LLM API代+開発工数 1日〜
Cloud 検証・PoC Minimax無料枠 1分
Enterprise 大企業 年間ライセンス 1週間〜

CLIで個人開発を加速させるもよし、SDKでカスタムエージェントを構築するもよし、GitHub Actionsで既存のCI/CDに組み込むもよし。MITライセンスのため、企業でもPoCから本番導入まで法務リスクを最小限に抑えられます。

AIエージェントによるソフトウェア開発自動化の分野は、2026年に入って急速に選択肢が増えていますLangChainベースのエージェント構築Browser-useのようなブラウザ自動化と組み合わせれば、コーディングだけでなくRAGや外部API連携を含む高度なワークフローも実現可能です。Claude CodeForgeCodeとの併用運用も増えており、複数ツールの使い分けが競争力になる時代が到来しています。

💡 ポイント OpenHandsの強みは「選べる自由」です。CLI・GUI・SDK・Cloud・Enterpriseの5層構造により、個人の5分から大企業の1,000エージェント運用まで、同じコアエンジンで対応できます。OSSでここまで完成度の高いAI開発エージェントは他にありません

この章のポイント
・OpenHandsは71,000スター超のOSS、SWE-Bench 77.6%の最高水準スコア
・5層構造で個人から大企業まで同じコアエンジンで運用可能
・MITライセンスで法務リスクを最小限にPoCから本番導入まで進められる

参照ソース