mcpField
A
agent-browser

agent-browser

github.com/inference-shエージェントワークフロー40 回インストール
リポジトリ

agent-browser について

agent-browser は、inference.sh のコマンドラインから利用する AI エージェント向けブラウザー自動化スキルで、内部で Playwright を使用します。要素参照で操作し、セッション維持、スクリーンショット、任意の動画記録に対応します。

主な機能

  1. 01ページ遷移と要素スナップショット
  2. 02@e 要素参照による操作
  3. 03表示領域または全ページの撮影
  4. 04ブラウザーセッションの動画記録
  5. 05ファイルアップロードと要素のドラッグ
  6. 06ページ内での JavaScript 実行

活用シーン

  1. 01フォーム入力と送信の自動化
  2. 02ページ検索とコンテンツ抽出
  3. 03認証済みブラウザーフローのテスト
  4. 04デバッグ用のブラウザー操作記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/inference-sh/agent-skills --skill agent-browser

インストール後、Claude Code で/agent-browserを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
authentication.md
commands.md
proxy-support.md
session-management.md
snapshot-refs.md
video-recording.md
templates/
authenticated-session.sh
capture-workflow.sh
form-automation.sh

詳細

エージェント型ブラウザー

inference.sh を介した AI エージェント向けのブラウザー自動化です。内部では Playwright を使用し、要素の操作にはシンプルな @e 参照システムを使用します。

エージェント型ブラウザー

クイックスタート

inference.sh CLI(infsh)が必要です。インストール手順

infsh login

# Open a page and get interactive elements
infsh app run agent-browser --function open --input '{"url": "https://example.com"}' --session new

基本的なワークフロー

ブラウザー自動化はすべて、次のパターンに従います。

  1. 開く - URL に移動し、要素の @e 参照を取得します
  2. 操作する - 参照を使ってクリック、入力、ドラッグなどを行います
  3. 再スナップショット - 移動や変更の後、新しい参照を取得します
  4. 閉じる - セッションを終了します(録画中の場合は動画が返されます)
# 1. Start session
RESULT=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com/login"
}')
SESSION_ID=$(echo $RESULT | jq -r '.session_id')
# Elements: @e1 [input] "Email", @e2 [input] "Password", @e3 [button] "Sign In"

# 2. Fill and submit
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
  "action": "fill", "ref": "@e1", "text": "[email protected]"
}'
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
  "action": "fill", "ref": "@e2", "text": "password123"
}'
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
  "action": "click", "ref": "@e3"
}'

# 3. Re-snapshot after navigation
infsh app run agent-browser --function snapshot --session $SESSION_ID --input '{}'

# 4. Close when done
infsh app run agent-browser --function close --session $SESSION_ID --input '{}'

関数

関数説明
openURL に移動し、ブラウザーを設定します(ビューポート、プロキシ、動画録画)
snapshotDOM の変更後に、@e 参照を使ってページの状態を再取得します
interact@e 参照を使って操作を実行します(クリック、入力、ドラッグ、アップロードなど)
screenshotページのスクリーンショットを撮影します(ビューポートまたはページ全体)
executeページ上で JavaScript コードを実行します
closeセッションを終了します。録画が有効な場合は動画が返されます

操作アクション

アクション説明必須フィールド
click要素をクリックしますref
dblclick要素をダブルクリックしますref
fillテキストを消去して入力しますref、text
typeテキストを入力します(消去しません)text
pressキーを押します(Enter、Tab など)text
selectドロップダウンの項目を選択しますref、text
hover要素にカーソルを合わせますref
checkチェックボックスにチェックを入れますref
uncheckチェックボックスのチェックを外しますref
dragドラッグ&ドロップしますref、target_ref
uploadファイルをアップロードしますref、file_paths
scrollページをスクロールしますdirection(up/down/left/right)、scroll_amount
back履歴を戻ります-
waitミリ秒単位で待機しますwait_ms
gotoURL に移動しますurl

要素の参照

要素は @e 参照付きで返されます。

@e1 [a] "Home" href="/"
@e2 [input type="text"] placeholder="Search"
@e3 [button] "Submit"
@e4 [select] "Choose option"
@e5 [input type="checkbox"] name="agree"

重要: 参照はページ移動後に無効になります。次の操作の後は、必ず再スナップショットを取得してください。

  • ページ遷移を伴うリンクやボタンのクリック
  • フォームの送信
  • 動的コンテンツの読み込み

機能

動画録画

デバッグやドキュメント作成のために、ブラウザーセッションを録画します。

# Start with recording enabled (optionally show cursor indicator)
SESSION=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com",
  "record_video": true,
  "show_cursor": true
}' | jq -r '.session_id')

# ... perform actions ...

# Close to get the video file
infsh app run agent-browser --function close --session $SESSION --input '{}'
# Returns: {"success": true, "video": <File>}
カーソルインジケーター

スクリーンショットや動画に見えるカーソルを表示します(デモに便利です)。

infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com",
  "show_cursor": true,
  "record_video": true
}'

カーソルは、マウスの動きに追従し、クリックのフィードバックを表示する赤い点として現れます。

プロキシのサポート

プロキシサーバー経由でトラフィックをルーティングします。

infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com",
  "proxy_url": "http://proxy.example.com:8080",
  "proxy_username": "user",
  "proxy_password": "pass"
}'
ファイルのアップロード

ファイル入力欄にファイルをアップロードします。

infsh app run agent-browser --function interact --session $SESSION --input '{
  "action": "upload",
  "ref": "@e5",
  "file_paths": ["/path/to/file.pdf"]
}'
ドラッグ&ドロップ

要素をターゲットにドラッグします。

infsh app run agent-browser --function interact --session $SESSION --input '{
  "action": "drag",
  "ref": "@e1",
  "target_ref": "@e2"
}'
JavaScript の実行

カスタム JavaScript を実行します。

infsh app run agent-browser --function execute --session $SESSION --input '{
  "code": "document.querySelectorAll(\"h2\").length"
}'
# Returns: {"result": "5", "screenshot": <File>}

詳細ドキュメント

リファレンス説明
references/commands.mdすべてのオプションを含む関数の完全なリファレンス
references/snapshot-refs.md参照のライフサイクル、無効化のルール、トラブルシューティング
references/session-management.mdセッションの永続化、並行セッション
references/authentication.mdログインフロー、OAuth、2FA の処理
references/video-recording.mdデバッグ用の録画ワークフロー
references/proxy-support.mdプロキシ設定、地域テスト

すぐに使えるテンプレート

テンプレート説明
templates/form-automation.sh検証付きのフォーム入力
templates/authenticated-session.sh一度ログインして、セッションを再利用
templates/capture-workflow.shスクリーンショットを使ったコンテンツ抽出

使用例

フォームの送信
SESSION=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com/contact"
}' | jq -r '.session_id')

# Get elements: @e1 [input] "Name", @e2 [input] "Email", @e3 [textarea], @e4 [button] "Send"

infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "John Doe"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e2", "text": "[email protected]"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e3", "text": "Hello!"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "click", "ref": "@e4"}'

infsh app run agent-browser --function snapshot --session $SESSION --input '{}'
infsh app run agent-browser --function close --session $SESSION --input '{}'
検索と抽出
SESSION=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://google.com"
}' | jq -r '.session_id')

infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "weather today"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "press", "text": "Enter"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "wait", "wait_ms": 2000}'

infsh app run agent-browser --function snapshot --session $SESSION --input '{}'
infsh app run agent-browser --function close --session $SESSION --input '{}'
動画付きスクリーンショット
SESSION=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com",
  "record_video": true
}' | jq -r '.session_id')

# Take full page screenshot
infsh app run agent-browser --function screenshot --session $SESSION --input '{
  "full_page": true
}'

# Close and get video
RESULT=$(infsh app run agent-browser --function close --session $SESSION --input '{}')
echo $RESULT | jq '.video'

セッション

ブラウザーの状態はセッション内で保持されます。必ず次の手順に従ってください。

  1. 最初の呼び出しでは --session new を指定します
  2. 以降の呼び出しでは、返された session_id を使用します
  3. 完了したらセッションを閉じます

関連スキル

# Web search (for research + browse)
npx skills add inference-sh/skills@web-search

# LLM models (analyze extracted content)
npx skills add inference-sh/skills@llm-models

ドキュメント

コメント