antithesis-agent-browser について
snouty APIで必要な情報を取得できない場合に、認証済みのAntithesisページを読み取るスキルです。レポート、ログ、実行履歴、因果関係ページから情報を抽出し、他のAntithesisスキルからも利用されます。
主な機能
- 01認証済みAntithesisセッションの利用
- 02レポート・ログ・実行ページの読み取り
- 03実行メタデータとプロパティの抽出
- 04因果関係レポートの確認
活用シーン
- 01レポート画面からrun IDを特定
- 02失敗した実行のエラーログを取得
- 03APIで得られないページ情報を読む
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ antithesishq/ antithesis-skills --skill antithesis-agent-browserインストール後、Claude Code で/antithesis-agent-browserを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/antithesis-agent-browser.jsdownload-logs-from-url.shreferences/error-reports.mdproperties-from-ui.mdrun-discovery-ui.mdsetup-auth.md詳細
Antithesis agent-browser
スキルのバージョン: 2026-09-23 a8fe900
snouty API では必要な情報を取得できない場合に、認証済みの Antithesis Web ページからデータを読み取るためのヘルパースキルです。認証済みブラウザーセッションが必要な場合、他のスキル(antithesis-triage、antithesis-debug、antithesis-query-logs)はこのスキルに処理を委ねます。
目的
- ユーザーの Antithesis テナントでの対話型認証を、できるだけ作業を妨げない形で処理します。
- Antithesis の Web ページ(レポート、ログ、実行、因果関係)を読み込み、注入したランタイムを介してデータを抽出します。
使用する場合
- 他のスキルが、snouty では確実に取得できない Antithesis ページの情報を必要とする場合。
- ユーザーまたは他のスキルが、Antithesis Web ページを直接操作する必要がある場合。
前提条件
agent-browserがインストールされていない場合は、処理を続行しないでください。インストール方法については、https://raw.githubusercontent.com/vercel-labs/agent-browser/refs/heads/main/README.mdを参照してください。agent-browserのバージョンがv0.23.4より古い場合は、処理を続行しないでください。agent-browser upgradeでアップグレードできます。jqがインストールされていない場合は、処理を続行しないでください。インストール方法については、https://jqlang.org/download/を参照してください。
リファレンスファイル: このスキルの references/ ディレクトリには、特定のタスクに関する詳細なガイドが含まれています。最初にすべてを読まないでください。リファレンスファイルは、指示があったときにのみ読んでください。各リファレンスファイルは、必要な箇所で名前が示されています。
一般的なガイダンス
- まず必ず認証済みであることを確認してください。
- 使い捨てセッションを使用してください。 このスキルを呼び出すたびに、一意の
SESSIONを生成してください。 - ナビゲーション後にランタイムを注入してください。
openの実行後、ページが変わる可能性のあるリンクをクリックした後、そして検出結果のルートからレポートを再度開いた後は、毎回networkidleになるまで待ち、assets/antithesis-agent-browser.jsを注入してから、対応する*.waitForReady()メソッドを使用して続行してください。 agent-browserの呼び出しを並列で実行しないでください。 状態を持ち、副作用が発生します。- ランタイム不足のエラーは、再注入して再試行してください。
window.__antithesisAgentBrowserが未定義または見つからないためにコマンドが失敗した場合は、ランタイムを注入して同じメソッドを再実行してください。 - レポートの評価処理は、メインのレポートビューで行ってください。 誤って別のページに移動した場合は、レポートクエリを再開する前に元のレポート URL を開き直してください。
agent-browser のセッション管理
agent-browser には、次の 2 つのセッション変数があります。
--session:一意で分離されたブラウザーインスタンスの名前--session-name:Cookie を名前で自動保存/復元します
呼び出しのたびに、一意の --session 値を必ず使用してください。このスキルで $SESSION が指定されている箇所では、値を一度生成して再利用してください。
SESSION=antithesis-ab-$(date +%s)-$$
新しい $SESSION を参照する最初の agent-browser コマンドでは、--session-name antithesis を使用してください。これによりセッションが作成され、保存済みの Cookie が復元されます。同じ $SESSION を使用する後続のコマンドでは、セッションはすでに存在するため、--session-name は不要です。
完了したら、実行中のセッションを終了してください。
agent-browser --session $SESSION close
認証
認証を確認するだけの目的でホームページに移動しないでください。代わりに、セッション作成コマンドを使用して、対象の URL(レポート、実行ページなど)に直接移動してください。
agent-browser --session "$SESSION" --session-name antithesis open "$TARGET_URL"
agent-browser --session "$SESSION" wait --load networkidle
agent-browser --session "$SESSION" get url
URL が https://$TENANT.antithesis.com で始まる場合は、認証済みです。ログインページにリダイレクトされた場合は、認証が必要です。ユーザーの確認後に対話型の画面ありログインを行うための手順が記載された references/setup-auth.md を読んでください。
ランタイムの注入
このスキルには、Antithesis のページからデータを読み取るためのヘルパーメソッドを window.__antithesisAgentBrowser 上に公開するランタイム(assets/antithesis-agent-browser.js)が含まれています。ナビゲーション完了後に注入します。
cat assets/antithesis-agent-browser.js \
| agent-browser --session "$SESSION" eval --stdin
メソッドは agent-browser eval で呼び出します。
agent-browser --session "$SESSION" eval \
"window.__antithesisAgentBrowser.report.getRunMetadata()"
agent-browser eval は Promise を自動的に await するため、非同期メソッドと同期メソッドは同じ呼び出しパターンを使用できます。
エラー処理: ランタイムメソッドはエラー時に例外をスローするため、agent-browser eval はゼロ以外の終了コードを返します。失敗を検出するには終了コードを確認してください。出力を解析する必要はありません。エラーメッセージには、問題の内容(ページ違い、要素が見つからない、タイムアウトなど)が記載されています。
window.__antithesisAgentBrowser が見つからない場合は、assets/antithesis-agent-browser.js を再度注入して、もう一度試してください。
agent-browser の呼び出しを並列で実行しないでください。これらは副作用を伴うステートフルな呼び出しです。並列呼び出しを行うと、処理が失敗したり、紛らわしい結果が返されたりすることがあります。
ナビゲーションと読み込み
各 Antithesis ページはコンテンツを非同期で読み込みます。Antithesis のページに移動したら、次の手順に従ってください。
まず、networkidle を待ちます。
agent-browser --session "$SESSION" wait --load networkidle
次に、URL を確認して、認証ページにリダイレクトされていないか確認します。
agent-browser --session "$SESSION" get url
認証ページが表示された場合は、処理を中断し、再認証してから続行してください。
次に、ランタイムを注入します。
cat assets/antithesis-agent-browser.js \
| agent-browser --session "$SESSION" eval --stdin
最後に、ページに応じた wait 関数を eval し、すべての非同期チャンクの読み込みが完了するまで待ちます。
- レポートページ:
window.__antithesisAgentBrowser.report.waitForReady() - ログページ:
window.__antithesisAgentBrowser.logs.waitForReady() - 実行ページ:
window.__antithesisAgentBrowser.runs.waitForReady()
各待機メソッドは、デフォルトで最大 60 秒間ポーリングします。成功すると { attempts, waitedMs } を返します。タイムアウトした場合、メソッドは例外をスローし、agent-browser eval はゼロ以外の終了コードを返します。
1 回限りの確認が必要な場合は、低レベルのブール値チェックを使用します。
- レポートページ:
window.__antithesisAgentBrowser.report.loadingFinished() - ログページ:
window.__antithesisAgentBrowser.logs.loadingFinished() - 実行ページ:
window.__antithesisAgentBrowser.runs.loadingFinished()
ページの準備が完了しない場合は、状態を確認します。
- レポートページ:
window.__antithesisAgentBrowser.report.loadingStatus() - ログページ:
window.__antithesisAgentBrowser.logs.loadingStatus() - 実行ページ:
window.__antithesisAgentBrowser.runs.loadingStatus()
エラーレポートの処理
レポートの waitForReady() を呼び出すたびに、result.error を確認してください。存在する場合は、エラーレポートのワークフローについて references/error-reports.md を読んでください。
このスキルでできること
- テナントに認証します。 対話型ログインの手順については、
references/setup-auth.mdを読んでください。 - 実行ページから実行を見つけます。
references/run-discovery-ui.mdを読んでください。可能な限りsnouty runs listを優先し、API が利用できない場合、または必要な情報が API から取得できない場合にのみ UI を使用してください。 - トリアージレポートからプロパティを読み取ります。
references/properties-from-ui.mdを読んでください。可能な限りsnouty runs --json propertiesを優先してください。 snouty runs listで照合できないトリアージレポートの URL からrun_idを調べます。run_idはメインのレポートページの下部に表示されます(report_id → run_idは現在 API で取得できません)。- 失敗した実行のレポートページからエラーログをダウンロードします。
references/error-reports.mdを参照してください。 - 因果関係レポートを読み取ります。 因果関係レポートの URL をユーザーに尋ねてください。主なシグナルは、バグが発生するまでのログにおけるバグ発生確率の推移です。