ENGINEERINGBrowser agent harness

AIブラウザエージェントに必要な「ハーネス」とは何か

ブラウザエージェント・ハーネスは実行の話ではない。人間が背負っていた判断責任をプロダクトへ移すための確認点を整理する。

Article notes

Updated
2026.06.22
Read time
14 min
Channel
AIエンジニアリング
LLM、評価、設計、実装の話。手を動かす人のために書く。
Scope
Browserbase / OpenAI / Google / Anthropic / Web agent research
Status
Published article

Briefing

ハーネスは、AIに任せる前の約束ごとを決める

この記事では、ブラウザエージェントを本番で使う前に決めるべき確認点、記録、再利用の仕組みを整理します。

「ハーネス」という言葉は便利です。便利すぎて、少しふわっとしています。

モデルの外側にある実行環境、ツール、ログ、権限、評価まで含めて「ハーネス」と呼ぶことがあります。ここまで広げると、言葉の輪郭はぼやけます。

ブラウザエージェントでは、もう少し狭く考えられます。問題は「モデルとブラウザの間で、何を見せ、何を触らせ、何を証跡として残すか」に集まるからです。

ブラウザには、信用できないWebページ、ログイン後に見える情報や権限、クリックや送信のような副作用のある操作、あとから検証するためのスクリーンショットやtraceが同時に存在します。だからハーネスは、抽象的な実行環境ではなく、入力、認証、実行、記録、再利用の境界を決める層として具体化します。

AIにブラウザを触らせるときに必要なのは、クリックや入力の能力だけではありません。信用できない入力をどう扱うか。認証情報をどこで止めるか。実行結果をどう証拠にするか。同じ探索を次回どう省くか。ここまで含めた外側の仕組みが要ります。

言い換えると、ブラウザエージェント・ハーネスは「実行」の話ではありません。誰が、どの条件で、どの操作を許可し、どの証跡を見て結果を受け入れるのか。人間が暗黙に処理していた判断を、実行前の契約と実行後の証跡に分解する仕組みです。

この記事では、内製Browser QAの詳細には深く入りません。主に参照するのは、Browserbaseのbrowser agent harnessの記事です。

Section 00

2026年の前提をそろえる

「AIがブラウザを操作できる」は、もう主張ではなく前提になっている。見るべき差分は、実行ループ、安全確認、記憶、証跡、介入設計にある。

2026年時点で、Computer Useやブラウザエージェントの主要な発信は、かなり収束しています。OpenAIは、モデルがスクリーンショットを見てアクションを返し、ハーネスが実行して次のスクリーンショットを返すループとしてComputer Useを説明しています。

GoogleのGemini Computer Useは、モデルが提案した操作に対してsafety_decisionを返し、人間確認が必要な場合は実行前に止める形をAPIの一部にしています。

AnthropicのComputer Useも、サンドボックス、allowlist、人間確認、画面内のprompt injectionを明示的なリスクとして扱っています。Microsoft Research系のMagentic-UIやWeb agentの介入研究も、人間の関与を「最後に確認する人」ではなく、co-planning、action guard、long-term memory、介入タイミングの設計として扱っています。

つまり、「責任を外側で持つ」はもう当たり前です。ここから先で考えるべきなのは、責任をどう分解するかです。許可された観測、許可された操作、止める条件、記録すべき証跡、次回に残す知識を、実行ループの中で更新できる形にする必要があります。

2026 current signals

いまのComputer Useは、すでにハーネス前提になっている

最新の発信を見ると、「モデルがブラウザを操作できる」はもう差分ではない。差分は、誰が実行し、どこで止め、何を記録し、次回に何を残すかへ移っています。

01

OpenAI

Computer Useは、モデル単体ではなく外側の実行ループとして説明されている

モデルはスクリーンショットを見てアクションを返し、ハーネスがそれを実行し、次のスクリーンショットを返す。つまり、実行者はモデルではなく外側のループです。

02

Google

Gemini Computer Useは、実行前のsafety decisionをAPIの一部にしている

提案されたUI操作に対してrequire_confirmationが返る場合があり、クライアント側はユーザー確認なしに実行できない。安全確認は運用メモではなく、実行プロトコルの一部になっています。

03

Anthropic

Claude Computer Useは、画面上の命令とprompt injectionを明示的なリスクとして扱う

コンピュータ操作はbetaで、インターネット接続時のリスクが高い。サンドボックス、allowlist、人間確認、prompt injection対策が前提として並んでいます。

04

Research

Human-in-the-loopは、ただ人間を待たせる話ではなくなっている

Magentic-UIやWeb agentの介入研究は、co-planning、action guard、long-term memory、介入タイミングの予測を扱う。人間確認はボタン1つではなく、協働設計の問題です。

Browserbaseの記事が面白いのは、raw CDPか抽象化か、という道具選びの話に留めていないところです。Security、cache、identity、credential broker、skill、filesystemという分解は、「ブラウザを動かす」ではなく「ブラウザ経由の委任を運用する」ための分解です。

ただし、この分解を読むにはBrowserbase自体の位置づけを先に見たほうがよい。Browserbaseは単に「クラウドでChromeを起動するサービス」ではなく、ブラウザエージェントがWebに出るときの実行面を束ねようとしているからです。

Section 01

Browserbaseを何の会社として読むか

Browserbaseは、遠隔ブラウザだけではなく、検索、取得、セッション、認証状態、身元、ログ、実行基盤までを束ねる。だからハーネスの議論が具体になる。

Browserbaseの話を薄く扱うと、この記事は「Browserbaseの記事を読んで、自分のBrowser QAに当てはめました」で終わってしまいます。それでは少し弱い。

公式ドキュメントでは、Browserbaseは「Webを人間のように閲覧し操作するエージェントを作り、デプロイするためのプラットフォーム」と説明されています。中身は、クラウドブラウザだけではありません。

Browser API、Search API、Fetch API、Functions、Model Gateway、Agent Identity、Stagehand、observabilityが同じ面に置かれています。つまり、Webを読む、開く、ログイン状態を持つ、操作する、記録する、モデルへ渡す、再実行する、という工程を1つの実行面として扱おうとしている。

ここで重要なのは、Browserbaseが「ブラウザをAPI化する会社」だと言い切るだけでは足りないことです。API化だけならCDPやPlaywrightですでにあります。Browserbaseが足しているのは、AIにブラウザを任せたときに必ず出てくる、状態、身元、証跡、記憶、デプロイの面です。

Browserbase platform reading

Browserbaseを、6つの委任インフラとして読む

公式ドキュメント上のプロダクト要素をそのまま列挙すると、遠隔ブラウザ、検索、認証、ログの集合に見えます。ハーネスの観点では、それぞれが「AIに任せる前後の境界」を受け持っています。

何を提供しているか

クラウド上の隔離されたブラウザセッション

Browserbaseの基本単位は、クラウドで動く1つのブラウザセッションです。PlaywrightやPuppeteerから接続でき、region、viewport、recording、logging、metadataなどを実行単位に紐づけられます。

この記事での読み方

実行環境を、あとから参照できるsession idと設定に閉じる。

何を提供しているか

読むだけのWeb取得と、操作が必要なブラウザ実行を分ける

Browserbaseは、SearchとFetchをブラウザセッションの補助として置いています。すべてをブラウザで開かず、探索や事前調査は軽いAPIで済ませ、ログインや動的UIが必要な時だけブラウザに渡す設計です。

この記事での読み方

観測コストを下げ、ブラウザ操作を必要な局面へ絞る。

何を提供しているか

ログイン状態をセッション間で再利用する

Contextsはcookies、localStorage、IndexedDB、Service Workerなどを保存し、複数のブラウザセッションで再利用する仕組みです。毎回ログインし直すのではなく、認証済み状態を実行単位から分離できます。

この記事での読み方

認証済み状態を、モデルの文脈ではなくブラウザ側の状態として扱う。

何を提供しているか

正当な自動化としてWebに到達する

Agent Identityは、Verified browser、proxy、CAPTCHA対応、allowed domainsなどを含む層です。単にブロックを回避する話ではなく、どのサイトに、どの権限と身元でアクセスするかを管理する話です。

この記事での読み方

実行できる範囲、信頼の示し方、止める条件を環境側で持つ。

何を提供しているか

人間があとから判断できる証跡を残す

Session Inspector、live view、recording、replay、console、network、CDP eventsは、ブラウザが動いたかではなく、採用できる実行だったかを判断する材料になります。

この記事での読み方

実行結果を、レビュー可能なpacketへ変換する。

何を提供しているか

操作知識を再利用できる単位へ戻す

Stagehandはact、observe、extractなどのAI向けブラウザ操作を提供し、Browse.shやAutobrowseはサイトごとのSkillを蓄積する方向を示しています。1回の成功を、次回の短い手順へ戻すための層です。

この記事での読み方

探索で得た知識を、手順、schema、selector fallbackとして残す。

つまりBrowserbaseの面白さは、ブラウザ操作を「モデルがクリックする能力」としてではなく、セッション、状態、身元、証跡、記憶を持つ実行面として設計しているところにあります。

だからBrowserbaseの記事の「Security、cache、identity、credential broker、skill、filesystem」という6層は、単なる概念整理ではありません。彼らのプラットフォームが実際に持っている論点から出てきた分類です。

セッションを作る。必要ならSearchやFetchで先に読む。Contextでログイン状態を再利用する。Identityで正当な自動化として到達する。Observabilityで実行をあとから見返す。StagehandやBrowse.shで操作知識をSkillへ戻す。この流れは、そのまま「委任を運用する」ための構成になります。

この記事では、この分解をBrowser QAに引き寄せて読みます。ブラウザQAは、単なる画面確認の自動化ではありません。どの範囲ならAIに任せてよいかを、実行結果から更新していく委任契約の台帳になります。

Section 02

CDPだけでは方針は決まらない

ブラウザを動かすAPIはすでにある。ただし、そのAPIは何を信用し、何を隠し、何を記録として残すかまでは決めてくれない。

ブラウザを動かすための道具は、すでにあります。Chrome DevTools ProtocolはChromiumやChromeを検査、操作、デバッグするためのプロトコルです。

PlaywrightやPuppeteerは、ブラウザ操作の高水準APIを提供しています。Stagehandのように、AIによる操作と決定論的なコードを組み合わせる道具もあります。

でも、CDPやPlaywrightが与えるのは「ブラウザを動かす能力」です。何を信用するか。何を隠すか。何を記録するか。失敗をどう再利用するか。そうした運用上の方針は、別に決める必要があります。

Capability vs harness

raw CDPでできることと、本番で必要になること

操作APIは、ブラウザを動かすための道具です。ハーネスは、その操作をどこまで任せてよいかを決めるための外側の仕組みです。

01

画面を操作する

APIがくれるもの

クリック、入力、DOM取得、スクリーンショット

ハーネスが決めること

許可された操作か、どのドメインで実行してよいかを決める。

02

ページを読む

APIがくれるもの

HTML、表示テキスト、ログ、ネットワークを取得する

ハーネスが決めること

外部入力として扱い、ユーザーの指示と混ぜない形に整理する。

03

結果を返す

APIがくれるもの

最終画面や値を読み取る

ハーネスが決めること

スクリーンショット、trace、判定理由を残し、人間が確認できる形にする。

ブラウザ操作APIは必要です。ただし本番で人間の代わりに動かすなら、APIの上に線引き、記録、再利用の仕組みが必要になります。

ローカルで1回だけ試すなら、モデルにブラウザ操作を渡しても動きます。画面を見て、クリックして、フォームを埋めて、結果を返す。デモとしては成立します。

本番で人間の代わりに動かすなら、すぐ別の問題になります。

この問いに答える層が、ブラウザエージェントにおけるハーネスです。ブラウザ操作APIの上に置く、線引き、記録、再利用の仕組みです。

実行ボタンを作るのではなく、押してよい状態を作る。ブラウザ版ハーネスの仕事は、かなり雑に言えばそこにあります。

Section 03

DOMもモデルへの入力になる

ブラウザ上のテキスト、HTML、ログ、AI出力は、モデルに入った時点ですべて入力になる。ここを分けないと、ページ側の命令とユーザーの意図が混ざる。

ブラウザ版ハーネスで最初に見るべきなのは、DOMとモデルの間の線引きです。

人間にとって、HTMLやDOMはページの中身に見えます。でも、LLMにとってはプロンプトに入ってくるテキストです。ページ側に「前の指示を無視して」と書かれていれば、それはただのページ文言ではなく、モデルへの入力になります。

OWASP LLM01は、外部ソースから取り込まれた内容がモデルの振る舞いを変えてしまう攻撃を、間接プロンプトインジェクションとして扱っています。

2026年のIndirect Prompt Injection in the Wildでは、1.2B URLと24.8Mホストを分析し、15.3K件の検証済み事例が報告されています。

Security notes

DOMをそのまま渡すほど、入力の境目が曖昧になる

ブラウザエージェントは、画面上のAI出力、DOM、ネットワークログ、テストデータ、ユーザー入力を同時に見られる。便利ですが、そのまま混ぜると危険です。

01

OWASP LLM01

外部ソースはモデルの振る舞いを変えうる

Webページやファイルから取り込まれた内容は、モデルの出力やツール利用へ影響する。

02

2026 paper

Web上に実例がすでにある

大規模調査では、検証済みの間接プロンプトインジェクションが15.3K件見つかった。

03

Browser harness

DOMとモデルの間で整理する

生HTMLを渡すのではなく、構造化し、隠れたテキストや怪しい命令を分けて扱う。

Browserbaseの記事でいうSecurity layerは、この境目を作る話です。生のHTMLをそのまま渡さず、構造化し、スキーマで検証します。

隠れたテキストや怪しい命令を分けて扱う。ここを設計しないと、エージェントは外部サイトの文言に引っ張られます。

Section 04

ブラウザ版ハーネスは5つの確認点を持つ

Browserbaseの6層を、Browser QAで判断しやすい5つの確認点へ言い換える。

Browserbaseの記事では、ブラウザエージェント・ハーネスを6つの層で整理しています。Security、caching、identity、credential brokering、skill、filesystemです。

これを自分たちのBrowser QAに引き寄せると、5つの確認点として読めます。

Boundary guide

5つの確認点として見返せるようにする

Browserbaseの記事では6つの層で整理されている。ここでは、Browser QAで使うときに判断しやすいように、問い、守り方、残す記録へ絞って並べる。

01入力Security

DOMや画面テキストをどこまでモデルに渡すか

守り方

DOMをそのまま渡さない。画面から読んだ情報として整理し、隠しテキストや命令文を分けて扱う。

残すもの

sanitized observation / schema validation / suspicious text log

02認証Credential broker

パスワードやMFAをどこで止めるか

守り方

認証操作はモデルの外側で扱う。モデルにはログイン済みの状態だけを渡す。

残すもの

credential handoff log / redacted trace / human approval marker

03実行Identity

ブロック、CAPTCHA、セッションをどう扱うか

守り方

クラウドブラウザ、固定セッション、許可ドメイン、実行権限を分けて管理する。

残すもの

browser session id / domain allowlist / run configuration

04記憶Cache / Skill

毎回ゼロから探索させないために何を残すか

守り方

サイトごとの手順、セレクタ、fallback、前回見た結果をSkillやScenarioとして残す。

残すもの

site skill / selector fallback / scenario cache / previous observation

05記録Filesystem / Runtime

人間があとから何を見れば判断できるか

守り方

screenshot、video、trace、console、network、判定理由をレビュー材料としてまとめる。

残すもの

review packet / screenshot / trace / video / verdict

Delegation rule

モデルに渡してよいのは、確認済みの画面情報と、許可された次の操作だけです。未整理の入力、秘密情報、失敗の記録は、モデルの外側で扱う。

たとえばcredential brokerを外すと、事故が起きやすくなります。モデルにパスワードやMFAコードを見せると、その情報はscratchpad、実行ログ、trace、デバッグ出力に残る可能性があります。

ブラウザを操作するエージェントは、人間が到達できる認証済みの画面にも到達できます。だから、認証情報をモデルに渡さない層が必要になります。

OpenAIのComputer Useドキュメントでも、ブラウザ操作は単なる便利機能ではなく、安全上の線引きが必要なものとして説明されています。

隔離されたブラウザやコンテナで実行すること、ドメインやアクションをallowlistで制限することが推奨されています。

ここはもう少し深い話があります。最初のハーネスは、CDPやPlaywrightを補う実行補助に見えます。

でも、実行履歴、動画、trace、レビュー判断、失敗修正が溜まってくると、それは単なるログではなくなります。「どの条件ならAIに任せてよいか」を判断するための記録台帳になります。ブラウザ版ハーネスは、実行補助から、任せる範囲と確認条件を明文化していく場所へ変わっていきます。

Section 05

Browser QAで見ると分かりやすい

ブラウザQAは、画面確認の自動化だけではない。AIに任せてよい範囲と確認条件を確かめ、記録し、次に使える形へ戻す仕組みになっていく。

自分たちのBrowser QAも、最初はPlaywright MCPを操作するSkillから始めました。その後、Claude Agent SDK + TypeScript workflowに載せ替えました。

今はBrowserbaseベースのBrowser Eval Harnessに寄せています。

雑に言うと、同じ問題を3回ぐらい作り直しています。

Browser QA evolution

同じ問題を3回作り直して、今の形に近づいた

01

Playwright MCPを操作するSkill

最初は、AIにブラウザを触らせれば画面確認になると考えていた。ローカルでは動いたが、記録、再実行、レビューへの接続が弱かった。

Lesson

記録がなければ、チームの判断材料にならない。

02

Claude Agent SDK + TypeScript workflow

PR、ログ、レビューには接続できた。一方で、録画、cache、セッション、失敗ケースの再利用はまだ弱かった。

Lesson

ワークフローだけでは、ブラウザ実行の状態を保存しきれない。

03

BrowserbaseベースのBrowser Eval Harness

今は、クラウドブラウザでシナリオを実行し、動画やtraceを残し、失敗を次の検証ケースへ戻す形に寄せている。

Lesson

失敗を次の検証ケースに戻して、運用で使える材料に変える。

ここまで来ると、Browser QAは画面確認の自動化ではありません。

Browser QAは、AIに任せてよい範囲と確認条件を、ブラウザ上で確かめ、記録し、再利用する仕組みである。

この考え方は、以前のハーネスエンジニアリング登壇で話した内容にも近いです。

Section 06

毎回ゼロから探索させない

Skillとcacheは、モデルを賢く見せるためではない。モデルに毎回同じ探索をさせないための運用設計である。

もう1つ、運用で効くのがSkillとcacheです。

BrowserbaseのBrowse.shAutobrowseの記事では、同じサイトを毎回探索し直す問題が扱われています。

サイトごとの手順、落とし穴、API、セレクタ、fallbackをSkillとして残す発想です。

これはBrowser QAでもそのまま効きます。クラウドでPRごとにBrowser QAを回すと、モデルにスクリーンショットを何十枚も見せることになります。

やり直しもあります。複数ユーザーや複数環境まで見るなら、さらに増えます。

毎回モデルにゼロから考えさせると、コストと時間がすぐ膨らみます。だから、決まった手順で書けるものはPlaywrightなどで書く。サイトごとのSkillやScenarioを残す。前回見た結果や手順を再利用する。

ここでのハーネスは、モデルを賢く見せるための仕掛けではありません。モデルに毎回同じことを考えさせないための仕組みです。

Takeaway

クリックではなく、どこまで任せるか

AIブラウザエージェントに必要なハーネスとは、クリックや入力をするための薄いラッパーではありません。

信用できない入力を扱う。認証情報を守る。探索結果を再利用する。実行の記録を人間が受け取れる形にする。失敗を次の検証へ戻す。

ふわっとした「ハーネス」という言葉も、ブラウザに持ち込むとこのくらい生々しくなります。ブラウザエージェントの難しさは、操作ではなく、委任を契約、証跡、再利用できる知識に分解することにあります。

Appendix

方法と出典

本文で参照した一次情報、関連資料、運用メモの扱いを明示します。

Sources

Browserbase

The web wasn't built for browser agents, here's how we built a harness to make it work.

browserbase.com/blog/what-is-a-browser-agent-harness

Browserbase Docs

What is Browserbase?

docs.browserbase.com/welcome/what-is-browserbase

Browserbase Docs

Browser agents

docs.browserbase.com/use-cases/agents

Browserbase Docs

Create a browser session

docs.browserbase.com/platform/browser/getting-started/create-browser-session

Browserbase Docs

Contexts

docs.browserbase.com/platform/browser/core-features/contexts

Browserbase Docs

Agent Auth & Identity

docs.browserbase.com/platform/identity/overview

Browserbase Docs

Observability

docs.browserbase.com/platform/browser/observability/observability

CDP

Chrome DevTools Protocol

chromedevtools.github.io/devtools-protocol

Stagehand

Introducing Stagehand

docs.stagehand.dev/v3/first-steps/introduction

OWASP

LLM01:2025 Prompt Injection

genai.owasp.org/llmrisk/llm01-prompt-injection

Paper

Indirect Prompt Injection in the Wild

arxiv.org/abs/2604.27202

OpenAI

Computer use: Keep a human in the loop

developers.openai.com/api/docs/guides/tools-computer-use#keep-a-human-in-the-loop

OpenAI

Computer use: Run the built-in Computer use loop

developers.openai.com/api/docs/guides/tools-computer-use#option-1-run-the-built-in-computer-use-loop

Google

Gemini API: Computer Use

ai.google.dev/gemini-api/docs/computer-use

Anthropic

Claude API: Computer use tool

platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool

Research

Magentic-UI: Towards Human-in-the-loop Agentic Systems

arxiv.org/abs/2507.22358

Research

Modeling Distinct Human Interaction in Web Agents

arxiv.org/abs/2602.17588

Browserbase

Browse.sh, a catalog of browser skills for the agentic future

browserbase.com/blog/browse.sh

Browserbase

Autobrowse: The Mythos moment for Browser Agents is here

browserbase.com/blog/autobrowse

Deck

How to approach Harness Engineering

speakerdeck.com/rkaga/how-to-approach-harness-engineering

Share

この記事を保存する

読み返すときのためにリンクをコピーできます。必要ならそのまま共有できます。

あとで読み返す用にリンクをコピー
AIブラウザエージェントに必要な「ハーネス」とは何か | rkagaya.post