どこに書いてあったんですか?誰が言ったんですか?サポーティブですか?勢の一番の特徴は、物事が起きた場合の「推論」をまず放棄してしまっていることが問題で、極端にいうと、道端で例えば、人が倒れていた場合、救急車を呼ぶが、その間に
状況をみて、声をかけて意識が飛ばないにする、体勢を楽にしてあげる、AEDを必要かもしれないと推論、あるいは実行をする。
か
救急車を呼んだことで救急車の到着まで待機する
かの違いがあると思う。
つまり、人が倒れている、とりあえず救急車は、OKだが、その間に状況をみてできることがないかを推測をすることがすっぱり抜けてしまう状態。救命率が下がるかもしれない。
AIでいうと、この「推論」、推論なので、正しくないことも多々ある。推論をさせる、推論の結果を受ける。この勢には、推論ということがわかっていないので、AIなんてそもそも不要。逆にAIを使わせると、AIの回答が常に正解だと思ってしまうので逆に危険。
幸いなことにどこに書いてあったんですか?誰が言ったんですか?サポーティブですか?勢は、そもそも、AIを使わない、否定をする人が多いので、「どこに書いてあったんですか?誰が言ったんですか?サポーティブですか?」が逆に彼らのセーフガードになっている。
AIを使うということは、この不確実さをいかに現実に取り入れるのかが、AIに関する元の情報から使い方まで影響するので、この不確実さをどう自分に適用していくかというのが鍵になる。
閑話休題
前のエントリでも書いたが、Open WebUI Computerを使いたくて、四苦八苦していた。正確には動かせたのだがユーザインタフェースがいまいちうまくいかない。諦めていた時にOpen WebUIでComputer Useがサポートされた。
ここでは、Open WebUI Desktopなので、個人で使うことを前提にして構築をする。以前のOpen WebUI Desktopでは複数Open WebUIサーバにできていたが、今回からはその機能は削除されている。(別モジュールになる予定だが、2026/11/4時点でまだない。)
ということで、今回も実績があるから使うのではなく、何ができるのかを自分で試してみることにした。もちろん、うまくいく保証はない。そもそも、やってみなければわからないのだから。
事前準備
ハードウェア
今回、Ollamaのqwen3.5:9bを使って、ブラウザでYahoo! JAPANを表示させてみた。新規チャットからの実行で、途中にHTTP 502エラーと再試行があったものの、最終的には正常にページを表示できた。ところが、Open WebUIの統計情報を見ると、これだけの操作でTotal tokensが46,442になっていた。ただし、これは複数回の推論処理で消費した累積トークン数であり、一度に46K tokensのコンテキストが必要だったという意味ではない。実際、Ollamaで確認すると、
NAME SIZE PROCESSOR CONTEXT RUNNER
qwen3.5:9b 8.6 GB 100% GPU 4096 mlx
となっており、コンテキスト長はデフォルトの4,096 tokensだった。
Computer Useでは、ユーザーの指示だけでなく、ツール定義やブラウザの操作結果などもモデルに渡される。しかも、ツールを呼び出すたびに、それまでの情報を含めて再度推論することになる。そのため、通常のチャットよりもコンテキストを多く必要とする可能性が高い。今回の操作は4Kの設定でも最終的に成功したが、複雑なブラウザ操作やデスクトップ操作では、コンテキスト不足によって操作が失敗したり、途中の情報が失われたりする可能性がある。ローカルLLMでComputer Useを利用する場合は、モデルの性能だけでなく、Ollama側のコンテキスト長にも注意したほうがよさそうだ。なお、今回のHTTP 502エラーがコンテキスト不足によるものか、モデルによるものかどうかは確認できていない。
なお、ローカルLLMでComputer Useを利用する場合は、十分なメモリ容量(Macではユニファイドメモリ、GPU搭載PCではVRAM)を確保し、ツール操作に適したモデルを選ぶことをお勧めする。
今回、手元のMACで立ち上げたが、Windows、Linuxでもほぼ同じだと思う。利用するポートは
- Open WebUI TCP 8080
- Open Terminal TCP 8000
となる。
事前に以下をインストール
Ollama:モデルをダウンロードしておく。あるいは、リモートでアクセスできるollamaを確保しておく。ollamaをインストールできない場合は、Open WebUI DesktopでLllamaをインストールすることも可能だが、Open WebUI自体、Ollamaのモデル管理、パラメーターを細かく使える。環境によってはLlamaは、Ollamaより重い場合がある。よって、Ollamaを事前にインストールをしておくことをおすすめする。
Docker: Open Terminalを起動させるための環境として利用。Open Terminalの同梱がなくなったので、Open Terminalを別途用意する。
Open Terminalは、以下に従ってネイティブあるいは、Dockerでインストールをする。
https://github.com/open-webui/open-terminal
Nativeでインストールすると手元の端末を使うことになるが、今回は推奨の方法であるDockerでインストールをした。以下のyour-secret-keyは、自身のキー(ランダム)にしておくことをおすすめする。
docker run -d --name open-terminal --restart unless-stopped -p 8000:8000 -v open-terminal:/home/user -e OPEN_TERMINAL_API_KEY=your-secret-key ghcr.io/open-webui/open-terminal
Docker Composeの場合(Docker Volumeではなく、ホストのVolumeにし、タイムゾーンを日本にした。)
mkdir -p ./open-terminal
cd ./open-terminal
cat > compose.yml <<'EOF'
services:
open-terminal:
image: ghcr.io/open-webui/open-terminal:latest
container_name: open-terminal
restart: unless-stopped
ports:
- "127.0.0.1:8000:8000"
environment:
OPEN_TERMINAL_API_KEY: "your-secret-key"
OPEN_TERMINAL_ENABLE_BROWSER: "true"
OPEN_TERMINAL_ENABLE_DESKTOP: "true"
OPEN_TERMINAL_PACKAGES: bash-completion locales fonts-noto-cjk fonts-noto-cjk-extra fonts-ipafont
LANG: "C.UTF-8"
LANGUAGE: "ja_JP:ja"
TZ: "Asia/Tokyo"
volumes:
- ./home:/home/user
EOF
docker compose up -d
docker compose logs --tail=50

Open WebUIにOpen Terminalを登録するには
- URL: http://localhost:8000
- API Key この例では、your-secret-key
となる。

インストールと設定
Open WebUIをインストールしてOpen WebUIを起動する。ウィザードのデフォルトに従って単純にインストールするだけ。





ローカルにOllamaがインストールされていれば、設定変更なしですぐ認識する。

Open WebUI Desktopの設定
Open WebUI 自体の設定ではないので注意。特段、設定は不要。また、Open WebUIへ環境変数を渡すことができる。(全てをOpen WebUIの設定から指定できないので。)

Open Terminalの登録
Open WebUIの設定を開く。(Open WebUI Desktopの設定ではない。)Tools -> Integrationsで、Open Terminalに追加する。


設定項目は、この例だと
- Name: 任意な名前
- URL:http://localhost:8000
- Auth: Bearer your-secret-key

Open Terminalを有効にする

Chat Windowに☁️アイコンがでる。これでOpen Terminalが有効になる。

右側のタブの+をクリックするとメニューがでる。

ブラウザの場合
Webブラウザが開く

外部インターネットへつながることを確認。

ブラウザタブ向けのテストページ
ブラウザタブ向けのテストページを作った。
COMPUTER USE LAB 01: IT基礎知識クイズ
COMPUTER USE LAB 02: 障害対応シミュレーターの使い方
COMPUTER USE LAB 03: SHOPPING AGENT CHALLENGE
新規チャットを開き、そこで、ブラウザタブを開いておく。チャットに「ブラウザタブで、URLを開き、実行してください。」とすればいい。
EVO-X2 Strix Halo 128GBでの結果は以下。
qwen3.8:27b-mtp-q8_0 コンテキストサイズ 256K Ollama 0.40.14
それぞれのLABは、100点満点で完走。
LAB01
⬆︎ 41,502 · ⬇︎ 172 · Σ 41,674 · ⏱ 7m 49s · ⚡ 0.4 t/s
LAB02
⬆︎ 43,299 · ⬇︎ 541 · Σ 43,840 · ⏱ 48m 11s · ⚡ 0.2 t/s
LAB03
⬆︎ 77,984 · ⬇︎ 539 · Σ 78,523 · ⏱ 13m 52s · ⚡ 0.6 t/s
消費コンテキストが多いので、コンテキストサイズを最低でも64K、LAB 03の場合は、128Kにしておいたほうがいい。よって、Ollamaの消費メモリは30GBなので、UMAあるいはVRAMは30GB以上の空きが必要。(Strix Haloの64GB RAMでも多分動く。)
デスクトップ
Linuxのデスクトップが表示されればOK

利用する場合は、タブをあらかじめ開いておき、
ブラウザの場合は「ブラウザタブを使って。。。」デスクトップの場合は「デスクトップタブを使って。。。」とすれば利用できる。デスクトップの場合は、アプリケーションの起動方法などを具体的に指示しないと、うまく動かないことがある。
それにしても、ブラウザでWebページを一つ開くだけで、これだけのトークンを消費するとは思わなかった。Computer Useとなると、モデルの性能だけでなく、コンテキスト長やメモリ容量も重要になってくる。なるほど、世間でローカルLLM用に大容量メモリやVRAMを求める人が多いのも納得できる。そりゃ、メモリもますます高騰するわけだ。
とりあえず、これでローカルLLMからブラウザとデスクトップの両方を操作できる環境が整った。あとは何をさせるかだが、それはまた別の話。