ai-agents-for-beginners

コンピュータ利用エージェント (CUA) の構築

コンピュータ利用エージェントは、人間がブラウザを開いてページを検査し、見た内容から次に行うべき最適な行動を取るのと同じように、ウェブサイトと対話できます。このレッスンでは、Airbnb を検索し、構造化されたリスティングデータを抽出し、ストックホルムで最も安い宿泊先を特定するブラウザ自動化エージェントを構築します。

このレッスンでは、AI駆動のナビゲーションに Browser-Use、ブラウザ制御に Playwright と Chrome DevTools Protocol (CDP)、ビジョン対応の推論に Azure OpenAI、そして構造化抽出に Pydantic を組み合わせています。

はじめに

このレッスンで学ぶ内容:

学習目標

このレッスンを終えた頃には、あなたは以下のことができるようになります:

コードサンプル

このレッスンには以下のノートブックチュートリアルが含まれています:

前提条件

設定

ノートブックで使用されるパッケージをインストールしてください:

pip install browser_use playwright python-dotenv
playwright install chromium

ノートブックで使用されるAzure OpenAIの環境変数を設定します:

AZURE_OPENAI_ENDPOINT=...
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME=...
# オプション: 指定しない場合は最新のAPIバージョンがデフォルトになります
AZURE_OPENAI_API_VERSION=...

アーキテクチャ概要

ノートブックはハイブリッドなブラウザ自動化ワークフローを示しています:

  1. ChromeをCDP有効で起動し、PlaywrightとBrowser-Useの両方が同じブラウザセッションを共有できるようにします。
  2. Browser-UseエージェントがAirbnbのオープンナビゲーションタスク(ポップアップを閉じる、ストックホルムを検索するなど)を処理します。
  3. 構造化されたPydanticスキーマを使ってアクティブページを検査し、リスティングのタイトル、1泊あたりの価格、評価、URLを抽出します。
  4. Pythonのロジックで抽出したリスティングを比較し、最も安い結果を強調表示します。

このアプローチは、Browser-Useの得意な柔軟でビジョンベースの推論を維持しながら、必要な時に決定論的なブラウザ制御を提供します。

重要なポイントとベストプラクティス

エージェントとアクターを使い分けるタイミング

シナリオ エージェントを使う アクターを使う
動的レイアウト はい、AIはページ変更に適応可能 いいえ、セレクターが壊れやすい
構造が既知 いいえ、エージェントは直接制御より遅い はい、高速かつ正確
要素の発見 はい、自然言語が有効 いいえ、正確なセレクターが必要
タイミング制御 いいえ、予測不可能 はい、待機やリトライを完全に制御可能
複雑なワークフロー はい、予期しないUI状態に対応 いいえ、明示的な分岐が必要

Browser-Useのベストプラクティス

  1. 探索や動的ナビゲーションにはまずエージェントを使う。
  2. インタラクションが予測可能になったら直接ページ制御に切り替える。
  3. 抽出データは構造化された出力モデルを使って検証し、型安全にする。
  4. 目に見えるUI変更が起こるアクションの後には戦略的に遅延を入れる。
  5. 反復中はスクリーンショットを取得し、障害のデバッグを容易にする。
  6. ウェブサイトは変化すると想定し、ポップアップやレイアウト変更に対するフォールバック戦略を設計する。
  7. 柔軟性と正確性の両方を得るためにエージェントとアクターのパターンを組み合わせる。

ブラウザエージェントの安全ガードレール

ブラウザエージェントはライブウェブサイト上で動作するため、既知のAPIを呼び出すだけのスクリプトよりも厳格な制限が必要です。ノートブックのデモから実際のワークフローに移行する前に、エージェントが何を見てクリックし、送信できるかの範囲を明確に定義してください。

  1. ブラウズ環境のスコーピング。 エージェントは専用のブラウザプロファイルやサンドボックスで実行し、タスクに必要なドメインに制限します。
  2. 観察と行動を分離。 まずエージェントに検索、読み取り、データ抽出をさせ、フォーム送信、メッセージ送信、旅行予約、購入、レコード削除、アカウント設定変更などは明示的な承認ステップを必須にします。
  3. 機密情報をプロンプトやトレースに含めない。 パスワード、支払い情報、セッションCookie、未加工の個人データはモデルコンテキストに入れず、認証はユーザーに任せ、ログからは機密フィールドを省きます。
  4. ページ内容は信用できない入力として扱う。 ウェブサイトにはエージェント向けの指示(目標変更、データ開示、保護解除、サイト訪問指示)が含まれることがあり、エージェントはそれらを無視すべきです。
  5. リスキーなステップ前後には決定論的なチェックを。 最終ステップをユーザーに承認してもらう前に、現在のURL、ページタイトル、選択項目、価格、受取人、操作概要をコードで検証します。
  6. 予算と停止条件の設定。 エージェントが使うアクション数、リトライ数、タブ数、時間を制限し、ページ状態が曖昧な場合はクリックを続けず停止します。
  7. 有用な証拠のみ記録。 アクション概要、タイムスタンプ、URL、選択要素の説明、スクリーンショット参照を保存し、不要な機密ページ内容は保存しません。

Airbnbサンプルでは、安全なデフォルトとしてリスティングの検索と価格抽出のみを行います。ログイン、ホストへの連絡、予約完了はユーザー承認が必要な別操作とします。

実世界の応用例

実世界の例:Microsoft Project Opal

このレッスンで構築するエージェントは、小規模なローカル版のコンピュータ利用エージェント (CUA) であり、人間のようにブラウザを操作するプログラムです。Microsoft はこの考え方を企業向けに展開しており、Microsoft 365 Copilot の機能であるProject Opal (Frontier)として提供しています。

Project Opal では、タスクを記述するとエージェントがあなたに代わってWindows 365 Cloud PC上で安全にコンピューター操作を行い、組織のブラウザベースのアプリケーションやサイト、データを横断して作業します。作業は非同期でバックグラウンド実行され、いつでも作業の指示や制御を行えます。例としては:

Opal は実運用対応で信頼性の高いコンピュータ利用エージェントの良い例であり、これまでのレッスンのコンセプトを強化しています:

このコースのコンセプト Project Opal の適用例
人間の介入 (Lesson 06) Opalはログイン認証情報や機密情報、曖昧な指示を待機し、明示的な確認なしにパスワード入力やフォーム送信を一切行いません。作業中に制御を引き継ぐ戻すことが可能です。
信頼性と安全性 (Lessons 06 & 18) 専用のWindows 365 Cloud PCで隔離実行され、初期状態はブラウザのみ(他のコンピュータアクセスはIntune管理でブロック)で、あなたのIDを使って認可された範囲のみにアクセスし、すべてのアクションが監査ログに記録されます。
計画とメタ認知 (Lessons 07 & 09) Opalは最初に作業計画を生成し、各ステップごとに自己推論を監督し、疑わしい動作を検知すると一時停止します。
再利用可能な機能・ツール (Lesson 04) スキル機能を使うと、繰り返しの仕事の指示を記述し(.mdファイルでインポートまたはOpalで編集)、会話間で再利用できます。

利用状況: Project Opal は現在 Frontier早期アクセスプログラム に参加しているMicrosoft 365 Copilotのユーザーが利用可能であり、管理者による設定が必要です。実験的な Frontier 機能のため、機能は随時変更される可能性があります。

追加リソース

前のレッスン

Microsoft Agent Framework を探る

次のレッスン

スケーラブルなエージェントの展開


免責事項: 本書類は AI 翻訳サービス Co-op Translator を使用して翻訳されています。正確性を期していますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知おきください。原文の原語版が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や解釈違いについても、当方は責任を負いかねます。