Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AgentCore Harness × AgentCore Browser × Live View
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ryu-ki
July 25, 2026
140
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AgentCore Harness × AgentCore Browser × Live View
ryu-ki
July 25, 2026
More Decks by ryu-ki
See All by ryu-ki
なぜ LT をするのか
ryuki0947
0
72
北海道の地名をAIは読めるのか
ryuki0947
1
170
VPCとも向き合いたい2026(年度)
ryuki0947
0
340
Strands Agents × AWS DevOps Agent 〜自作エージェントに組み込んでみた〜
ryuki0947
0
95
AI-DLCを試してみて困ったことを共有したい
ryuki0947
0
530
Claude Codeに要件をヒアリングしてもらった体験がかなり良かった(2026年版)
ryuki0947
0
550
Qiita 週1投稿を1年間完走した感想
ryuki0947
0
69
AWS × LINE で始める FinOps ~Terraform を添えて~
ryuki0947
0
170
A2A のトレース事情 〜親子エージェントの動きをLangfuseで可視化してみる〜
ryuki0947
1
660
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
520
Designing for Timeless Needs
cassininazir
1
490
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
280
The untapped power of vector embeddings
frankvandijk
2
1.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
The Spectacular Lies of Maps
axbom
PRO
1
1k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Un-Boring Meetings
codingconduct
0
420
Transcript
AgentCore Harness AgentCore Browser × Live View フェリー予約エージェントを作ってみた 2026/07/25 JAWS-UG新潟
in 佐渡 Lightning Sado 2026
お話しすること 2
お話しすること フェリーの予約をAIエージェントに任せたい – 空席確認〜予約操作をブラウザでやってもらう AgentCore に Live View という機能があるらしい –
エージェントが実行中のブラウザセッションをリアルタイムで閲覧・操作できる機能 – 面白そう!とりあえず使ってみる – AgentCore Harness でも簡単に設定できるらしい – ここでの経験について共有します とはいえ、実在の予約サイトでは実演するといろいろ配慮が必要になるので... 3
海津フェリー 自作のダミー予約サイト「海津フェリー」で試します 4
今回作ったもの 5
構成 6
仕組みの話 7
Harness 側の設定 ブラウザは harness.json の tools に宣言するだけ { } "type":
"agentcore_browser", "name": "browser" Live View のための追加設定は不要(標準でコンソールから閲覧・操作できる) – ただし、「ログインは人間に任せる」はシステムプロンプト側で指示 – 指示がないと LLM は Live View のことを知らないので、ログインのために 平気でガンガンパスワードを要求してくる(物騒) 8
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
参考:ブラウザプロファイルという選択肢 AgentCore Browser にはログイン状態を保存するブラウザプロファイル機能もあり – 一度手動でログイン → セッション状態を保存 → 以後はログイン済みで起動
– 毎回のログインを楽にするならこちらの方がよさそう こちらについてはちょうど記事が投稿されていたのでご参照ください – AgentCore Browserのブラウザプロファイルでログインが必要なWebサイトへアク セスできるようにする 10
HITL の実装 停止の仕組みは inline_function で実装可能 – 「このツールが呼ばれたらループを止めて人間に聞く」を設定の宣言だけで作れる { } "type":
"inline_function", "name": "confirm_ferry_booking", "config": { "inlineFunction": { "description": "予約内容の確認画面まで到達したら、予約を確定する前に 必ずこのツールを呼び出して人間の承認を得ること。..." } } 11
inline_function の仕組み の実態は実行先を持たない、宣言だけのツール – 呼ばれても実行するものが無い → ループが停止し、制御がクライアントに返る inline_function モデル: confirm_ferry_booking(航路・日時・人数・金額)
を呼ぶ → Harness のループが停止(stopReason: "tool_use") → 人間が承認 / 却下 → toolResult を返すとモデルが再開 で予約内容を構造化データで提出させるので承認画面にそのまま出せる – ただし、停止〜再開を受ける承認 UI は自作する必要あり inputSchema 12
デモ 13
おまけ 14
おまけ1:ブラウザ操作はトークンを食う スクリーンショットやページ全文を毎回読み込むため入力トークンが膨らむ – 検証した日のコストは...(7/11は $11.70) モデル選びと使いどころは考えましょう 15
おまけ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
まとめ 17
まとめ Live View のログイン引き継ぎが Harness でも簡単にできる – 基本的に Browser をツールとして渡すだけ
HITL は inline_function で実現可能 – ただし承認 UI は自分で作る必要あり Live View は人間が舵を取りに行く仕組み、 inline_function はエージェントが舵を 差し出してくる仕組み – 制御の受け渡し(ログイン・承認)を作り込めばエージェントに任せられる範囲は広 げられるかも? – 実運用というよりはPoC段階で活用かも? 18
ご清聴ありがとうございました 質問・フィードバックお待ちしています 19