mirror of
https://github.com/All-Hands-AI/OpenHands.git
synced 2026-01-08 22:38:05 -05:00
Simplify workspace mounting with SANDBOX_VOLUMES (#8242)
This commit is contained in:
@@ -1,43 +1,44 @@
|
||||
# ヘッドレスモード
|
||||
|
||||
OpenHandsは、Webアプリケーションを起動せずに、単一のコマンドで実行できます。
|
||||
これにより、OpenHandsを使用してスクリプトを作成したり、タスクを自動化したりするのが簡単になります。
|
||||
OpenHandsは、Webアプリケーションを起動せずに単一のコマンドで実行できます。
|
||||
これにより、スクリプトを作成してOpenHandsでタスクを自動化することが容易になります。
|
||||
|
||||
これは、インタラクティブで、アクティブな開発に適した[CLIモード](cli-mode)とは異なります。
|
||||
これは対話型で、アクティブな開発に適している[CLIモード](cli-mode)とは異なります。
|
||||
|
||||
## Pythonを使用する場合
|
||||
## Pythonでの実行
|
||||
|
||||
PythonでOpenHandsをヘッドレスモードで実行するには:
|
||||
1. [開発セットアップの手順](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md)に従っていることを確認してください。
|
||||
2. 以下のコマンドを実行します:
|
||||
PythonでヘッドレスモードでOpenHandsを実行するには:
|
||||
1. [開発セットアップ手順](https://github.com/All-Hands-AI/OpenHands/blob/main/Development.md)に従っていることを確認してください。
|
||||
2. 次のコマンドを実行します:
|
||||
```bash
|
||||
poetry run python -m openhands.core.main -t "write a bash script that prints hi"
|
||||
```
|
||||
|
||||
モデル、APIキー、その他の設定は、環境変数[または`config.toml`ファイル](https://github.com/All-Hands-AI/OpenHands/blob/main/config.template.toml)を介して設定する必要があります。
|
||||
環境変数または[`config.toml`ファイル](https://github.com/All-Hands-AI/OpenHands/blob/main/config.template.toml)を通じて、モデル、APIキー、その他の設定を必ず設定してください。
|
||||
|
||||
## Dockerを使用する場合
|
||||
## Dockerでの実行
|
||||
|
||||
DockerでOpenHandsをヘッドレスモードで実行するには:
|
||||
DockerでヘッドレスモードでOpenHandsを実行するには:
|
||||
|
||||
1. ターミナルで以下の環境変数を設定します:
|
||||
1. ターミナルで次の環境変数を設定します:
|
||||
|
||||
- `WORKSPACE_BASE`をOpenHandsが編集するディレクトリに設定 (例: `export WORKSPACE_BASE=$(pwd)/workspace`)。
|
||||
- `LLM_MODEL`を使用するモデルに設定 (例: `export LLM_MODEL="anthropic/claude-3-5-sonnet-20241022"`)。
|
||||
- `LLM_API_KEY`をAPIキーに設定 (例: `export LLM_API_KEY="sk_test_12345"`)。
|
||||
- `SANDBOX_VOLUMES`でOpenHandsがアクセスするディレクトリを指定します(例:`export SANDBOX_VOLUMES=$(pwd)/workspace:/workspace:rw`)。
|
||||
- エージェントはデフォルトで`/workspace`で作業するため、エージェントにファイルを変更させたい場合はプロジェクトディレクトリをそこにマウントします。
|
||||
- 読み取り専用データの場合は、異なるマウントパスを使用します(例:`export SANDBOX_VOLUMES=$(pwd)/workspace:/workspace:rw,/path/to/large/dataset:/data:ro`)。
|
||||
- `LLM_MODEL`に使用するモデルを設定します(例:`export LLM_MODEL="anthropic/claude-3-5-sonnet-20241022"`)。
|
||||
- `LLM_API_KEY`にAPIキーを設定します(例:`export LLM_API_KEY="sk_test_12345"`)。
|
||||
|
||||
2. 以下のDockerコマンドを実行します:
|
||||
2. 次のDockerコマンドを実行します:
|
||||
|
||||
```bash
|
||||
docker run -it \
|
||||
--pull=always \
|
||||
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.36-nikolaik \
|
||||
-e SANDBOX_USER_ID=$(id -u) \
|
||||
-e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \
|
||||
-e SANDBOX_VOLUMES=$SANDBOX_VOLUMES \
|
||||
-e LLM_API_KEY=$LLM_API_KEY \
|
||||
-e LLM_MODEL=$LLM_MODEL \
|
||||
-e LOG_ALL_EVENTS=true \
|
||||
-v $WORKSPACE_BASE:/opt/workspace_base \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v ~/.openhands-state:/.openhands-state \
|
||||
--add-host host.docker.internal:host-gateway \
|
||||
@@ -46,10 +47,12 @@ docker run -it \
|
||||
python -m openhands.core.main -t "write a bash script that prints hi"
|
||||
```
|
||||
|
||||
`-e SANDBOX_USER_ID=$(id -u)`はDockerコマンドに渡され、サンドボックスユーザーがホストユーザーの権限と一致するようにします。これにより、エージェントがマウントされたワークスペースにroot所有のファイルを作成するのを防ぎます。
|
||||
|
||||
## 高度なヘッドレス設定
|
||||
|
||||
ヘッドレスモードで利用可能なすべての設定オプションを表示するには、`--help`フラグを付けてPythonコマンドを実行します。
|
||||
ヘッドレスモードで利用可能なすべての設定オプションを表示するには、Pythonコマンドに`--help`フラグを付けて実行します。
|
||||
|
||||
### 追加のログ
|
||||
### 追加ログ
|
||||
|
||||
ヘッドレスモードでエージェントのすべてのアクションをログに記録するには、ターミナルで`export LOG_ALL_EVENTS=true`を実行します。
|
||||
ヘッドレスモードですべてのエージェントアクションをログに記録するには、ターミナルで次のコマンドを実行します:`export LOG_ALL_EVENTS=true`
|
||||
Reference in New Issue
Block a user