メインコンテンツまでスキップ

Computer Use

Computer Use は、エージェントがネイティブの Windows アプリを人と同じように操作する機能です。 ウィンドウを見て、何をするか決め、クリックと入力を行い、画面が落ち着くのを待ってから、もう一度 見ます(v0.170.0)。

look at the window -> decide -> click / type / press keys -> wait until the screen settles
^ |
+-------------------------------------------------------------------+

ベンダーの機能ではなく ChatWalaʻau 独自の実装なので、ツールが返す画像を読めるチャットモデル なら使えます: Azure OpenAI・OpenAI・Claude のモデルです。Microsoft Foundry プロバイダー 経由のモデルでは使えません。そのコネクタはツール結果の画像を捨ててしまい、エージェントが画面を 見ずに操作することになるためです。

使える環境​

Computer Use は、ChatWalaʻau のバックエンドが動いているマシンの画面を操作します。そのため、 そのマシンがあなた自身のものである場合だけ使えます。

  • Desktop アプリ、または自分の Windows PC 上の chatwalaau / pnpm run dev:full
  • Windows 10 / 11 にサインインしていること(ロック中やサービスとしての実行は不可)
  • サーバーが 127.0.0.1(既定)で待ち受け、そのマシンでチャットを開いていること

サーバーへのデプロイ、Docker、Linux、macOS では提供されません。使えるのは、組み込みエージェント・ カスタムエージェントとのチャット、Computer Use のツールを組み込んだ Harness エージェント、 このマシンで開始した Live 会話(委譲された作業がデスクトップを操作できます)です。 Microsoft Teams、OpenAI 互換 API、スケジュール実行、ワークフローからは使えません。

有効にする​

.env(Desktop アプリは %LOCALAPPDATA%\ChatWalaau\desktop\profile\.env)に追加して再起動します。

COMPUTER_USE_ENABLED=true
# 任意: 計測記録とスクリーンショット履歴の保存先(既定 .computeruse)
COMPUTER_USE_DIR=.computeruse
# 任意: エージェントが「名前」で入力できるパスワード(値はエージェントに見えない)
COMPUTER_USE_SECRETS_FILE=C:\Users\me\secure\computer-use-secrets.json

組み込みエージェントには自動でツールが付きます。カスタムエージェントでは、ツールピッカーで Computer Use のツールを選びます。特定のモデルで使わせないときは、App Settings > Model Offering Catalog でそのモデルの Computer Use を「Not available」にします。

たとえば次のように頼みます: 「メモ帳を開いて、日本語で短いお礼の文を書き、デスクトップに thanks.txt として保存して」

仕組み​

ツール内容
computer_list_windows開いているウィンドウの一覧
computer_focus_windowウィンドウを前面に出し、1920x1080 に揃え、操作対象としてロックする
computer_capture_screen対象のスクリーンショットと、ボタン・入力欄などの一覧。一部を拡大して見ることもできる
computer_perform_actions操作をまとめて 1 回実行し、画面が落ち着くのを待ち、結果を確認して報告する
computer_get_active_windowどのウィンドウが前面か、ダイアログが開いているか
computer_wait_for_changeアプリ側の処理が終わるのを待つ
computer_abortエージェントが理由を添えてタスクを終える

1 回の判断で多くの操作。 エージェントは、ユーザー名欄をクリックして入力し、パスワード欄を クリックして入力し、Enter を押し、「読み込み中」が消えるまで待つ、という一連の手順をまとめて 送ります。モデルとの往復は 1 回ごとに数秒かかるため、これが実用的な速さの鍵です。

固定の待ち時間なし。 操作のあと、ChatWalaʻau はウィンドウを見張り、変化が止まったらすぐ次に 進みます(既定では 400 ms 変化がなければ「落ち着いた」とみなします)。

新しいものだけ。 新しいスクリーンショットは、画面が変わったときか、予想どおりにならなかった ときだけ送ります。会話に残るのは最新の 1 枚だけです(ディスク上の履歴はあなたのためのもので、後述)。

正確なクリック。 エージェントはピクセル位置よりも、アプリ自身のボタンや入力欄(名前)を 優先して指定します。ピクセル位置も、拡大表示のディスプレイや 2 台目のモニターで正確に変換されます。

コードは実行しない。 エージェントが書けるのは手順(クリック、入力、キー、スクロール、ドラッグ、 待機、if / repeat)だけで、自分でプログラムやスクリプトを実行することはできません。ChatWalaʻau 自身の 画面以外はどのウィンドウも操作対象になります。入力した文字がコマンドとして実行されるターミナルも 含まれるので、動作を見守ってください。

少ない機能でも動作。 画面座標でのクリック、キー操作、文字入力は常に使えます。アプリのボタンや 入力欄の読み取り、クリップボード経由の貼り付け、ダイアログの検出は精度を上げますが、デスクトップ側が それらを提供できない場合、エージェントは座標指定と文字入力で代替します。これは、将来 Computer Use の 処理を別アプリや MCP サーバー(言語は問わない)として作るときの約束事でもあります。

作業の様子を見る​

全幅のチャット画面では、右上の小さな角丸ウィンドウにエージェントが見ている画面が表示され、作業中は 新しいスクリーンショットのたびに更新され、作業が終わると消えます。角の x で現在の画像を隠せ、次の スクリーンショットで再び表示されます。閉じてもエージェントの作業は止まりも一時停止もしません。作業を 追いかけるための表示です。ポップアップ、サイドバー、スマートフォン幅の画面では表示されません。

スクリーンショットはチャットごとに COMPUTER_USE_DIR/captures/(既定 .computeruse/captures/)にも 保存されるので、あとから実行を振り返れます。モデルが見るのは常に最新の 1 枚だけです。スクリーンショット には機密情報が写ることがあるため、不要になったらフォルダを削除してください。

止め方​

エージェントの作業中は、メッセージ入力欄の上に Controlling the desktop のバナーが出ます。 操作中のアプリがチャット画面を隠すことが多いため、止める方法は 4 つあります。

  • どこでも Ctrl+Alt+End を押す
  • マウスを動かす -- 操作を奪われたことに気づいた時点で止まります
  • Stop ボタン
  • バナーの Abort

止めたあと、その返答の残りはデスクトップに触れません。

安全性​

  • COMPUTER_USE_ENABLED=true にするまで無効です。
  • エージェントはロックした 1 つのウィンドウだけを操作します。別のウィンドウが前面に来たら、 間違った場所に入力せずに止まります。
  • ChatWalaʻau 自身の画面、サインインや権限の確認画面は操作対象になりません。
  • パスワードは名前で。 秘密ファイル({"crm_password": "..."})に入れておけば、エージェントは {"secret": "crm_password"} と書くだけで入力できます。値がモデル・チャット・ログに届くことは ありません。
  • 画面上の文字は命令ではありません。 エージェントにはそう伝えていますが、画面に表示された Web ページやメールがエージェントを誤誘導しようとする可能性は残ります。最初のうちはキャプチャの 表示で動作を見守り、すぐマウスを動かせるようにしておいてください。

設定​

App Settings > Computer Use: 対象ウィンドウのサイズ、モデルに送るスクリーンショットのサイズ (既定 1920。Claude のモデルでは、サービスがそのまま受け付けるサイズに抑えます)、一覧にする コントロールの数、変化のしきい値、画面が落ち着いたとみなす時間、待機のタイムアウト、1 回で実行 するステップ数、1 回の返答での操作回数、会話に残すスクリーンショットの枚数。

デスクトッププロバイダー​

画面を取得し、マウスとキーボードの入力を送る部分は、小さなネイティブのプログラム chatwalaau-computer-use です。Windows x64 では ChatWalaʻau と一緒にインストールされます(より多くの プラットフォーム向けのデスクトッププロバイダーへの第一歩です)。エージェントが初めてデスクトップを 使うときに ChatWalaʻau がこのプログラムを起動し、MCP で通信します。設定は不要で、MCP サーバーの一覧にも 出ません。起動は一瞬で、ウィンドウのキャプチャは約 18 ms、スクリーンショットの準備は約 36 ms です (2880x1824 の画面での実測)。止まったり応答しなくなったりすると、エージェントには「デスクトップが 使えない」と伝わり、次の操作でプログラムが再起動します。COMPUTER_USE_PROVIDER_COMMAND で別の プロバイダーのプログラムを指定できます。

画面を待つといっても、何度も画面を見に行くわけではありません。プロバイダーは画面のどこが描き直されたかを Windows から受け取るので、ChatWalaʻau は対象のウィンドウの中が描き直されたときだけ画面を見直します。 変化にはほぼすぐに気づき、落ち着いた画面は落ち着いている間キャプチャし直しません。画面が変わったか どうかは今までどおりスクリーンショットを比べて判断するので、点滅するカーソルが変化とみなされることは ありません。Windows が描き直しを知らせられない場合(ロック画面、リモートセッション、2 つのモニターに またがるウィンドウ)は、120 ms ごとに画面を確かめます。

このプログラムにはまだコード署名がありません。初めて動くときに、Windows やセキュリティソフトが確認を 求めることがあります。

速さの確認​

GET /api/computer-use/metrics?days=7 で最近の実行をまとめて見られます: 工程ごとの時間(モデル、 取得、エンコード、操作、安定待ち)、95 パーセンタイルのサイクル時間と 1 分あたりのサイクル数、 1 回の判断で実行したステップ数。GET /api/computer-use/status は、このマシンで Computer Use が 使えるかどうか、使えない理由、デスクトッププロバイダーが動いているかを返します。