browser-intent について
browser-intentは、セレクターで特定しにくいページ要素を自然言語で操作するための機能です。page-agentに実行を委ね、利用できない場合はセレクターベースの操作に切り替えられます。
主な機能
- 01自然言語でのブラウザー操作
- 02URLとセッションの指定
- 03実行ステップの履歴
- 04AIDefenceによる結果テキスト処理
- 05操作軌跡のベストエフォート記録
活用シーン
- 01説明によるログインボタンのクリック
- 02検索欄への入力と送信
- 03セレクターが変化するページの操作
MCP 対応
`browser_act`ツールを`browser_*`ブラウザーツールと併用します。返された履歴を参照でき、page-agentが利用できない場合はセレクターベースのツールに切り替えられます。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill browser-intentインストール後、Claude Code で/browser-intentを入力して読み込まれたか確認します。
詳細
ブラウザーインテント
低レベルの browser_* セレクターツールの上に構築された自然言語レイヤーです。browser-extract と browser-form-fill がセレクターベースのプリミティブ(browser_click、browser_fill、browser_snapshot)を組み合わせるのに対し、browser-intent では呼び出し側が希望する操作(「ログインボタンをクリック」「検索ボックスに猫と入力して送信」など)を伝えるだけで、page-agent に実行を委任できます。page-agent はページ内に挿入される JS で、DOM をテキストに変換し、それに対する LLM のツール呼び出しループを実行します。
使用する場面
- 対象の要素を確実に選択するより、言葉で説明するほうが簡単な場合(動的なクラス名、曖昧な構造、A/B テストされたマークアップなど)。
- セレクターの連鎖を書くほどではない、単発の操作。
- 正確なセレクターまたは ref(
@e1)がすでにわかっている場合は、browser_click/browser_fill/browser_snapshotを直接使ってください。browser_actには LLM の遅延とコストが追加されますが、セレクターを直接指定する呼び出しでは発生しません。
手順
browser_actを呼び出し、task文字列と、必要に応じてurl(最初に移動)およびsession(デフォルトは"default")を指定します。mcp__plugin_ruflo-core_ruflo__browser_act({ task: "Click the login button", url: "https://example.com/account", session: "my-session" })- レスポンスの仕様を確認します。
{ success: true, result, steps, history, contentFlagged, llmSource }— インテントが実行されました。resultは AIDefence によるゲート処理後の最終テキストで、page-agent が生成したものです。historyは手順全体のトレース(各手順の内省+アクション+ツール結果)で、stepsはhistory.lengthです。{ success: true, degraded: true, reason, hint }— page-agent がインストールされていないか、OpenAI 互換の LLM プロバイダーが設定されていません。degraded: trueを再試行が必要なエラーとして扱わないでください。hintを表示し、代わりにセレクターベースのbrowser_*ツールを使ってください。{ success: false, error, ... }— 実際の失敗です(ブラウザーを開けなかった、挿入に失敗した、実行がタイムアウトした、または page-agent 自身のexecute()がsuccess:falseを報告した場合)。
contentFlagged: trueの場合、返されたresultはすでに AIDefence によって編集されています(page-agent の出力から PII またはプロンプトインジェクション/脅威のパターンが検出されました)。元のテキストを復元しようとしないでください。- 操作を後で再生することが重要な場合は、記録済みのセッション(
browser-record)を優先してください。browser_act自体は RVF コンテナを開かず、指定されたセッション ID(または"default")を使用します。
プロバイダーの要件(頻繁に縮退する理由)
page-agent はブラウザーページのコンテキストから、プレーンな OpenAI 互換の POST {baseURL}/chat/completions を使って LLM を直接呼び出します。そのため、次の点に注意してください。
ANTHROPIC_API_KEYだけでは不十分です。Anthropic のネイティブ API は別の形式(/v1/messages)です。- 次のいずれかを設定してください。
OPENROUTER_API_KEY(OpenRouter、OpenAI 互換)、OLLAMA_API_KEY(Ollama Cloud、OpenAI 互換)、またはカスタムの OpenAI 互換エンドポイント用のCLAUDE_FLOW_PAGE_AGENT_BASE_URLとCLAUDE_FLOW_PAGE_AGENT_API_KEY。 - 実際のプロバイダーキーがページに渡されることは決してありません。
browser_actはキーをサーバー側に保持する短時間のループバック HTTP プロキシを起動し、実際のAuthorizationヘッダーを自身で挿入します。ページから見えるのは127.0.0.1の URL とプレースホルダーのキー文字列だけです。
注意事項
page-agentはoptionalDependenciesのエントリーです(doctor/degraded ヒントで必要とされた場合はnpm i page-agentを実行してください)。このプラグインはpage-agentがなくても完全に動作しますが、自然言語レイヤーが使えなくなり、セレクター方式のツールに切り替わります。- npm バンドルに含まれるデモの自動初期化用末尾コード(そのままでは Alibaba の公開テストエンドポイントに対して 2 つ目の
PageAgentインスタンスを構築します)は、注入前に取り除かれます。このツールからpage-ag-testing-*ホストへのトラフィックが発生することはありません。 - 成功した
browser_actの呼び出しは毎回、意図とその結果の軌跡をベストエフォートでbrowserメモリ名前空間に記録します(ADR-174 の蒸留ループ)。これはファイア・アンド・フォーゲット方式です。メモリストアでエラーが発生しても、ツールの呼び出しが失敗することはありません。 timeoutMs(デフォルトは 120000)は、browser_actがexecute()の完了を待つポーリング時間の上限です。複数ステップからなる処理に時間がかかる場合は、より大きな値が必要になることがあります。
コメント
Markdown 対応