---
title: "Claude Computer UseをDockerで動かす｜Firefox自動操作環境の構築と精度を左右するプロンプト設計"
excerpt: "Docker（Ubuntu 24.04 + Xvfb + XFCE4 + noVNC）上にComputer Use用のデスクトップ環境を構築し、Firefoxの自動操作を検証しました。タスクは15イテレーションで成功。Ubuntu 24.04のsnap移行によるFirefox起動問題、macOS前提コードのLinux移植、そして精度を決めるシステムプロンプト設計をまとめています。"
author: "AI活編集部"
author_username: ai-katsu-editorial
published_at: 2026-04-06T00:00:00+00:00
verified_at: 2026-04-06T00:00:00+00:00
models: ["Claude"]
tools: ["Computer Use"]
tasks: ["リサーチ・データ収集", "ツール検証"]
canonical_url: https://ai-katsu.jp/articles/claude-computer-use
---
# Claude Computer UseをDockerで動かす｜Firefox自動操作環境の構築と精度を左右するプロンプト設計

AIにパソコンを操作させる「Computer Use」は、APIを叩けば動くものではありません。**操作対象となるデスクトップ環境そのものを用意する必要があります。**

この検証では、Docker上にUbuntu＋XFCE＋Firefoxのデスクトップを構築し、noVNC経由で操作を可視化する環境を作りました。タスク「Firefoxでgoogle.comを開いてClaude AIを検索して」は**15イテレーション・30メッセージ交換で成功**しています。

## この検証の概要

| 項目 | 内容 |
| --- | --- |
| 検証日 | 2026年4月6日（1日で完結） |
| 対象 | Claude Computer Use（Anthropic API beta機能） |
| バージョン | API beta flag `computer-use-2025-01-24`／モデル `claude-sonnet-4-20250514` |
| やりたかったこと | Computer Use APIの実用性を検証し、業務自動化PoCの基盤環境を構築する |
| 結果 | **タスク成功（15イテレーション・30メッセージ交換）** |
| 状況 | 完了 |

## 結論：システムプロンプトが精度を決める

Computer Useを動かして最も強く感じたのはこれです。

**システムプロンプトが非常に重要です。環境に合わない指示（macOSコマンド等）があると、エージェントが迷走します。**

実際に効果があったのは、次のような明示的な制約でした。

-   **「使えるブラウザはFirefoxのみ」**
-   **「macOSコマンドは使うな」**

制約を書く理由は、失敗時の挙動にあります。**エージェントは失敗するとChromiumのインストールやテキストブラウザに逃げがちです。**放っておくと、本来の目的から離れた作業を始めます。プロンプトで先回りして封じておく必要があります。

**Computer Useの精度は、モデルの能力だけでなく「環境の説明をどれだけ正確に与えたか」で変わります。**

## 技術構成

| コンポーネント | 技術 |
| --- | --- |
| コンテナ | Ubuntu 24.04（Docker） |
| 仮想ディスプレイ | Xvfb |
| デスクトップ | XFCE4 |
| VNCサーバー | x11vnc |
| Webアクセス | noVNC（websockify） |
| ブラウザ | Firefox 149.0（Mozilla公式バイナリ） |
| AI API | Anthropic Computer Use beta |
| Python | pyautogui, Pillow, anthropic SDK |

noVNCを挟むことで、**http://localhost:6080 でFirefoxの操作がリアルタイムに可視化されます。**AIが何をしているかを見られるのは、検証段階では重要です。

## Ubuntu 24.04でFirefoxが起動しない

最も時間を要した問題です。

**Ubuntu 24.04の `firefox` パッケージはsnap版への移行パッケージであり、Dockerコンテナ内ではsnapdが動作しないため実体がありません。**

試した対応は2つです。

| 試したこと | 結果 |
| --- | --- |
| Mozilla Team PPA（`ppa:mozillateam/ppa`） | ARM64でダウンロードが極端に遅く断念 |
| **Mozilla公式バイナリ直接ダウンロード** | **成功** |

採用したDockerfileの記述は次のとおりです。

```
RUN ARCH=$(uname -m) && \
    if [ "$ARCH" = "aarch64" ]; then ARCH="linux64-aarch64"; else ARCH="linux64"; fi && \
    wget -q "https://download.mozilla.org/?product=firefox-latest-ssl&os=${ARCH}&lang=ja" \
      -O /tmp/firefox.tar.xz && \
    tar -xf /tmp/firefox.tar.xz -C /opt/ && \
    ln -sf /opt/firefox/firefox /usr/local/bin/firefox
```

追加で必要な依存は `libdbus-glib-1-2`、`libgtk-3-0`、`libasound2t64`、`xz-utils` です。

**Apple Silicon環境では `linux64-aarch64` を指定する必要があります。**アーキテクチャを判定して切り替える形にしておくと、環境をまたいでも動きます。

## その他に遭遇した問題

| エラー | 原因 | 解決 |
| --- | --- | --- |
| `ModuleNotFoundError: No module named 'computer_use'` | `PYTHONPATH=/app` だがパッケージは `/app/src/computer_use/` に配置 | Dockerfileで `ENV PYTHONPATH=/app/src` に変更 |
| pyautoguiのXauthority / tkinterエラー | `.Xauthority` が存在しない＋`python3-tk` 未インストール | `python3-tk`、`python3-dev` を追加、entrypoint.shで `touch ~/.Xauthority` |

## macOS前提のコードをLinuxへ移植する

元のコードは完全にmacOS前提（`screencapture`、`osascript`、`pbcopy`等）でした。修正が必要だったのは4ファイルです。

| ファイル | 変更内容 |
| --- | --- |
| `agent.py` | システムプロンプトをLinux/Firefox/XFCE用に全面書き換え（ctrl系ショートカット、firefox起動方法等） |
| `config.py` | スクリーン検出を `osascript` → `xdpyinfo` ＋環境変数フォールバックに変更 |
| `computer.py` | スクリーンショット: `screencapture` → `scrot`／クリップボード: `pbcopy` → `xclip`／キーマッピング: cmd → ctrl |
| `Dockerfile` | Firefox PPA → 公式バイナリ、xclip / x11-utils等を追加 |

注目すべきは `agent.py` です。**コマンドの置き換えだけでなく、システムプロンプト自体を書き換える必要がありました。**Computer Useでは、プロンプトが環境仕様の説明書になっています。

## 動作確認：15イテレーションで完了

タスク「**Firefoxでgoogle.comを開いてClaude AIを検索して**」を実行しました。

**結果は成功（15イテレーション、30メッセージ交換で完了）。**エージェントの動作フローは次のとおりです。

1.  スクリーンショットでデスクトップ確認
2.  `firefox &` でブラウザ起動
3.  アドレスバーにgoogle.comを入力
4.  検索ボックスに「Claude AI」を入力
5.  検索結果を確認・スクロール

スケーリングについては、**Xvfbの解像度とClaudeの論理解像度が一致（1280x832）するためスケール1.0となり、座標変換の誤差はありませんでした。**解像度を合わせておくと、クリック位置のずれを考えなくて済みます。

## Computer UseのPoCに向くタスク

公式が推奨する条件は次のとおりです。

-   **バッチ処理**
-   **再試行可能**
-   **低リスクデータ**
-   **時間圧力なし**

この4条件は、裏返すと**「失敗してもやり直せる範囲で使う」**という意味です。画面操作は環境の変化に弱く、100%の成功は前提にできません。

これを踏まえ、優先度の高いPoC候補として次を整理しています。

1.  **レガシーシステムへのデータ入力自動化**
2.  **行政ポータルの操作自動化**
3.  **競合調査・市場情報収集**

いずれも**APIが提供されていない画面が対象**という共通点があります。API連携ができるならそちらが確実です。Computer Useが効くのは、その手段がない領域です。

## よくある質問

### Computer Useを動かすには何が必要ですか？

**操作対象となるデスクトップ環境が必要です。**この検証ではDocker上にUbuntu 24.04 + Xvfb + XFCE4 + x11vnc + noVNC + Firefoxを構築しました。

### 精度を上げるコツはありますか？

**システムプロンプトに環境の制約を明示することです。**「使えるブラウザはFirefoxのみ」「macOSコマンドは使うな」といった指示が効果的でした。エージェントは失敗すると別ブラウザのインストール等に逃げるため、先回りして封じます。

### Docker内でFirefoxが起動しないのはなぜですか？

**Ubuntu 24.04のfirefoxパッケージがsnap版への移行パッケージで、Dockerコンテナ内ではsnapdが動作しないためです。**Mozilla公式バイナリを直接ダウンロードする方式が最も確実でした。

### どんな業務に向いていますか？

**バッチ処理・再試行可能・低リスクデータ・時間圧力なし、の4条件を満たすタスクです。**レガシーシステムへのデータ入力、行政ポータルの操作、競合調査などが候補になります。

## まとめ

-   Docker（Ubuntu 24.04 + Xvfb + XFCE4 + noVNC）上にComputer Use用のデスクトップ環境を構築
-   **「Firefoxでgoogle.comを開いてClaude AIを検索」は15イテレーション・30メッセージ交換で成功**
-   **システムプロンプトが精度を決める。**環境に合わない指示があるとエージェントが迷走する
-   Ubuntu 24.04のfirefoxパッケージはsnap移行のため**Docker内では実体がない。Mozilla公式バイナリの直接ダウンロードが確実**（ARM64では `linux64-aarch64`）
-   Xvfbの解像度とClaudeの論理解像度を一致させる（1280x832）と**スケール1.0で座標変換の誤差なし**
-   PoC適性は**バッチ処理／再試行可能／低リスクデータ／時間圧力なし**の4条件

Computer Useは、APIが用意されていない画面を自動化する手段です。環境構築とプロンプト設計に手間はかかりますが、他に手がない領域では有力な選択肢になります。

株式会社AI棒では、こうしたAI活用の検証を日々行い、企業の業務自動化を支援しています。ご相談は[お問い合わせフォーム](/contact)から、継続的な伴走支援については[AI参謀](/ai-sanbo)をご覧ください。
