Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AgentCore Harness × AgentCore Browser × Live View

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for ryu-ki ryu-ki
July 25, 2026
33

AgentCore Harness × AgentCore Browser × Live View

Avatar for ryu-ki

ryu-ki

July 25, 2026

More Decks by ryu-ki

Transcript

  1. お話しすること フェリーの予約をAIエージェントに任せたい – 空席確認〜予約操作をブラウザでやってもらう AgentCore に Live View という機能があるらしい –

    エージェントが実行中のブラウザセッションをリアルタイムで閲覧・操作できる機能 – 面白そう!とりあえず使ってみる – AgentCore Harness でも簡単に設定できるらしい – ここでの経験について共有します とはいえ、実在の予約サイトでは実演するといろいろ配慮が必要になるので... 3
  2. Harness 側の設定 ブラウザは harness.json の tools に宣言するだけ { } "type":

    "agentcore_browser", "name": "browser" Live View のための追加設定は不要(標準でコンソールから閲覧・操作できる) – ただし、「ログインは人間に任せる」はシステムプロンプト側で指示 – 指示がないと LLM は Live View のことを知らないので、ログインのために 平気でガンガンパスワードを要求してくる(物騒) 8
  3. Live View でのログイン引き継ぎ AgentCore Browser のセッションを AWS コンソールからリアルタイムに閲覧・操作 – 自作の承認コンソール側に「Live

    View を開く」導線を実装(boto3 で数行) # 稼働中のブラウザセッションを見つけて r = agentcore.list_browser_sessions(browserIdentifier=BROWSER_ID) ready = [s for s in r["items"] if s["status"] == "READY"] sid = ready[0]["sessionId"] # その Live View ページ(AWS コンソール)の URL を開くだけ url = f"https://{REGION}.console.aws.amazon.com/bedrock-agentcore/" \ f"builtInTools/browser/{BROWSER_ID}/sessions/{sid}" 人間がログイン →「ログイン完了」→ エージェントが操作を再開 9
  4. 参考:ブラウザプロファイルという選択肢 AgentCore Browser にはログイン状態を保存するブラウザプロファイル機能もあり – 一度手動でログイン → セッション状態を保存 → 以後はログイン済みで起動

    – 毎回のログインを楽にするならこちらの方がよさそう こちらについてはちょうど記事が投稿されていたのでご参照ください – AgentCore Browserのブラウザプロファイルでログインが必要なWebサイトへアク セスできるようにする 10
  5. HITL の実装 停止の仕組みは inline_function で実装可能 – 「このツールが呼ばれたらループを止めて人間に聞く」を設定の宣言だけで作れる { } "type":

    "inline_function", "name": "confirm_ferry_booking", "config": { "inlineFunction": { "description": "予約内容の確認画面まで到達したら、予約を確定する前に 必ずこのツールを呼び出して人間の承認を得ること。..." } } 11
  6. inline_function の仕組み の実態は実行先を持たない、宣言だけのツール – 呼ばれても実行するものが無い → ループが停止し、制御がクライアントに返る inline_function モデル: confirm_ferry_booking(航路・日時・人数・金額)

    を呼ぶ → Harness のループが停止(stopReason: "tool_use") → 人間が承認 / 却下 → toolResult を返すとモデルが再開 で予約内容を構造化データで提出させるので承認画面にそのまま出せる – ただし、停止〜再開を受ける承認 UI は自作する必要あり inputSchema 12
  7. おまけ2:Bedrockのコストが見やすくなっている 7/20 から CUR(Data Exports)にモデル名などの標準メタデータが追加 – IAM プリンシパル付与で「どのエージェント実行がいくら」まで割れる いまは SELECT

    1つでモデル別のコスト表が出せる ┌───────────┬───────────────────┬──────────┐ │ provider │ model │ cost_usd │ ├───────────┼───────────────────┼──────────┤ │ Anthropic │ Claude Sonnet 4.6 │ 15.31 │ │ Anthropic │ Claude Haiku 4.5 │ 1.57 │ └───────────┴───────────────────┴──────────┘ 手前味噌ですが、詳細は以下記事に書いています – モデル別コストの集計が楽になったので Data Exports で確かめてみた 16
  8. まとめ Live View のログイン引き継ぎが Harness でも簡単にできる – 基本的に Browser をツールとして渡すだけ

    HITL は inline_function で実現可能 – ただし承認 UI は自分で作る必要あり Live View は人間が舵を取りに行く仕組み、 inline_function はエージェントが舵を 差し出してくる仕組み – 制御の受け渡し(ログイン・承認)を作り込めばエージェントに任せられる範囲は広 げられるかも? – 実運用というよりはPoC段階で活用かも? 18