1
0

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エージェントの1つであるOpenHandsを試すための導入手順

Posted at

はじめに

OpenHandsは、AIを活用したソフトウェア開発エージェントであり、人間の開発者が行うようなコードの修正、コマンドの実行、ウェブの閲覧、APIの呼び出しなど、さまざまなタスクを自律的に実行することができます。このツールは、開発プロセスを効率化し、反復的な作業を自動化することで、開発者がより創造的なタスクに集中できる環境を提供します。本記事では、OpenHandsの導入手順とその活用方法について詳しく解説します。

導入手順

OpenHandsを導入するには、以下の手順を実行します。

必要な環境の準備

  1. Dockerを使用して以下のコマンドでOpenHandsを起動します

    export WORKSPACE_BASE=XXX
    
    docker pull docker.all-hands.dev/all-hands-ai/runtime:0.19-nikolaik
    
    docker run -it --rm --pull=always \
        -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.19-nikolaik \ # コンテナのランタイムイメージを指定
        -e LOG_ALL_EVENTS=true \ # すべてのイベントをログに記録する設定
        -e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \ # コンテナ内のワークスペースのマウントパスを環境変数で設定
        -v $WORKSPACE_BASE:/opt/workspace_base \ # ホストのワークスペースディレクトリをコンテナの/opt/workspace_baseにマウント
        -v /var/run/docker.sock:/var/run/docker.sock \ # ホストのDockerソケットをコンテナにマウントし、コンテナ内からホストのDockerデーモンを操作可能にする
        -v ~/.openhands-state:/.openhands-state \ # ホストのOpenHands状態ディレクトリをコンテナの/.openhands-stateにマウント
        -p 8888:3000\ # ホストの8888ポートをコンテナの3000ポートにマッピング
        --add-host host.docker.internal:host-gateway \
        --name openhands-app \
        docker.all-hands.dev/all-hands-ai/openhands:0.19
    
    • OpenHandsのQuick Startではローカルフォルダのマウント設定は入っていませんが、入れておくとローカルフォルダのファイルをOpenHandsで直接編集できるようになり、OpenHandsと共同で作業する際に便利です
  2. OpenHandsの起動が完了したら、ブラウザでhttp://localhost:8888にアクセスします

    • QuickStartでは3000ポートで起動しますが、フロントエンド開発でよく使われるため、8888ポートで起動しています
      openhands_top.png

モデル設定手順

OpenHandsを使用する際は使用したいモデルを指定できます。今回はAzure OpenAI Serviceを利用するため、以下の手順で設定を行います。

  1. AzureポータルでOpenAIリソースを作成します。

  2. 作成したリソースのエンドポイントURLとAPIキー、モデル名を取得します。

  3. http://localhost:8888で立ち上げたOpenHandsの画面左端歯車アイコンからAI Provider Configurationをクリック、Advanced Optionsをトグルして、APIキー、エンドポイントURL、モデル名を入力します。

    1. Custom Model: azure/<モデル名>
    2. Base URL: <エンドポイントURL>
    3. API Key: <APIキー>

    ※ Agent, Security Analyzer, Enable Confirmation ModeはデフォルトのままでOKです。
    openhands_azure_settings.png

  4. 設定が完了したら、Saveをクリックします。

Github連携

OpenHandsはGithubと連携できます。

  1. http://localhost:8888で立ち上げたOpenHandsの画面左端人型アイコンからAccount Settingsをクリックします。

  2. Github Token(Optional)にGithubのAPIトークンを入力します。
    openhands_github.png

    • トークンを作成していない場合、Get your token hereのhereからGithubのトークン作成ページに遷移するため、そちらからトークンを作成してください
  3. トークンを作成したら、Connectをクリックします

  4. Topページ左下のOpenRepoからGithubのリポジトリを選択します
    openhands_repository_choice.png

  5. WorkspaceにリポジトリがCloneされた状態でOpenHandsが起動します

ディレクトリ構成

起動時のWORKSPACE_BASE配下にリポジトリがCloneされるため、以下の構造になります。
そのため、ユーザがOpenHandsと共同で作業する際は、OpenHandsのワークスペースをVSCodeなどで開き、OpenHandsのワークスペースを開くことで、ローカルファイルを編集できるようになります。

WORKSPACE_BASE
├── GithubリポジトリA
├── GithubリポジトリB
...

おわりに

昨年末にDevin AIが発表されてからAIエージェントが気になっていましたが、既存のLLM基盤を用いたAIエージェントの1つであるOpenHandsを試してみました。
その際の導入手順をまとめただけですが、AIエージェントを試す際に参考にしていただければと思います。

参考

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?