active-research について
active-researchは、Actionbook Browserでトピック、分野、論文を調査し、レポートを作成するスキルです。入力に応じて検索方法を選び、動的ページ向けのブラウザー操作も含みます。
主な機能
- 01トピック、分野、論文の調査
- 02入力に応じた検索方法の選択
- 03SPAと動的ページへの対応
- 04HTMLレポートの生成
- 05JSON出力先の指定
活用シーン
- 01トピックに関する情報の収集と整理
- 02論文の閲覧と関連研究の探索
- 03指定URLのページ内容の分析
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ actionbook/ actionbook --skill active-researchインストール後、Claude Code で/active-researchを入力して読み込まれたか確認します。
詳細
アクティブリサーチ
Actionbook Browser を使用して、あらゆるトピック、分野、論文を分析し、美しい HTML レポートを生成します。SPA 対応のナビゲーション、ネットワークアイドル検出、一括操作、インテリジェントなページ分析を備えています。
強化されたブラウザー機能
| 機能 | 説明 |
|---|---|
| ページ読み込みの待機 | wait-idle — ネットワークが落ち着くまで fetch/XHR を監視します |
| SPA コンテンツ | wait-fn — 抽出前に JS の条件が満たされるまで待機します |
| ページの理解 | snapshot --filter interactive --max-tokens N — 対象を絞り、トークン数を節約します |
| ポップアップのブロック | --auto-dismiss-dialogs — alert/confirm/prompt を自動処理します |
| 読み込み速度 | --block-images — 画像を読み込まず、テキスト抽出を高速化します |
| ページの安定化 | --no-animations — CSS トランジションを停止します |
| エラー検出 | console --level error — ページの問題を確認します |
| 複数ステップのフォーム | batch — 1 回の呼び出しで複数の操作を実行します |
| 要素のデバッグ | info <selector> — 可視性、位置、プロパティを調べます |
| 変更の追跡 | snapshot --diff — 変更された部分だけを確認します |
| 検出回避 | 保護されたサイトでは --stealth と fingerprint rotate を使用します |
| 認証管理 | storage set — 制限されたコンテンツ向けに JWT/トークンを注入します |
| 1 回限りの取得 | browser fetch <url> — 1 つのコマンドで移動、待機、抽出、終了を行います |
| 静的ページの高速化 | --lite — HTTP を優先し、必要な場合のみブラウザーにフォールバックします |
| スクレイピング対策 URL | --rewrite-urls — x.com→xcancel.com、reddit→old.reddit |
| 待機時間の調整 | --wait-hint — ドメインに応じた待機(fast/normal/slow/heavy) |
| ログの関連付け | --session-tag — デバッグ用にすべての操作にタグを付けます |
使い方
/active-research <topic>
/active-research <topic> --output ./reports/my-report.json
または、Claude に「XXX を調査してレポートを生成して」と伝えるだけです。
パラメーター
| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
topic | はい | - | 調査する対象(任意のテキスト) |
--output | いいえ | ./output/<topic-slug>.json | JSON レポートの出力先 |
トピックの検出
| パターン | 種類 | 戦略 |
|---|---|---|
arxiv:XXXX.XXXXX | 論文 | arXiv Advanced Search と ar5iv の詳細な読み込み |
doi:10.XXX/... | 論文 | DOI を解決し、関連研究を arXiv Advanced Search で検索します |
| 学術関連のキーワード(paper、research、model、algorithm) | 学術トピック | arXiv Advanced Search と、学術以外の情報源を Google で検索します |
| URL | 特定のページ | ページを取得して分析します |
| 一般的なテキスト | トピック調査 | Google 検索を行い、関連がある場合は arXiv Advanced Search も実行します |
アーキテクチャ
┌──────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐
│ Claude │────▶│ Actionbook │────▶│ Web Pages │────▶│ Extract │
│ Code │ │ Browser │ │ (multiple) │ │ Content │
└──────────┘ └──────────────┘ └──────────────┘ └─────┬────┘
│ │ wait-idle │ │ SPA / dynamic │ │
│ │ batch ops │ │ protected │ │
│ │ --stealth │ │ mobile-only │ │
│ │ snapshot │ └───────────────┘ │
│ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ │
├─────────▶│ Actionbook │ │ arXiv Adv. │ │
│ │ search/get │────▶│ Search Form │───────────▶│
│ │ (selectors) │ │ (40+ fields) │ │
│ └──────────────┘ └──────────────┘ │
│ │
┌──────────┐ ┌──────────────┐ ┌──────────────┐ │
│ Open in │◀────│ json-ui │◀────│ Write JSON │◀───────────┘
│ Browser │ │ render │ │ Report │ Synthesize
└──────────┘ └──────────────┘ └──────────────┘
Actionbook CLI の使用が必須です
Web の閲覧には、必ず actionbook browser コマンドを使用してください。Web へのアクセスにほかの方法を使用してはいけません。
- bash 経由で
curl、wget、httpieなどの HTTP CLI ツールを使用してはいけません - bash 経由で
python -c "import requests"やスクリプト言語の HTTP ライブラリを使用してはいけません - WebFetch や WebSearch ツールを使用してはいけません
actionbook browserとactionbook search/actionbook getコマンドのみを使用してください
Web コンテンツが必要な場合は、次の方法を優先してください:actionbook browser fetch <url> --format text --json(1 回限り)。
複数の操作を行う対話型ワークフローでは、actionbook browser open <url> → actionbook browser wait-idle → actionbook browser text を使用してください。
ブラウザーのフラグ — 調査時のデフォルト
重要:調査のためにブラウザーを開く際は、必ずこれらのフラグを使用してください。
# PREFERRED: One-shot fetch (I1) — handles open+wait+extract+close automatically
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json
# For interactive multi-step workflows, use explicit open:
actionbook --block-images --auto-dismiss-dialogs --no-animations --rewrite-urls browser open "<url>"
| フラグ | 理由 |
|---|---|
--block-images | 画像のダウンロードを省略し、テキスト抽出時のページ読み込みを2~5倍高速化します |
--auto-dismiss-dialogs | アラート/確認/プロンプトが自動化を妨げないようにします |
--no-animations | CSS アニメーションを停止し、安定したスナップショットを取得してタイミングの問題を防ぎます |
--rewrite-urls | ボット対策によるブロックを避けるため、x.com→xcancel.com、reddit→old.reddit に URL を書き換えます |
--wait-hint <hint> | ドメインに応じて待機します:instant、fast、normal、slow、heavy、またはミリ秒 |
--session-tag <tag> | ログの照合とデバッグのため、すべての操作にタグを付けます |
--lite(fetch のみ) | まず HTTP を試し、静的ページ(Wikipedia、ドキュメント、ブログ)ではブラウザーを省略します |
ボット対策が施されたサイトでは、--stealth を追加してください:
actionbook --block-images --auto-dismiss-dialogs --no-animations --stealth --rewrite-urls browser open "<url>"
ナビゲーションのパターン — 必ず従うこと
オプション A:一括取得(読み取り専用のページ抽出に推奨):
# Single command: navigate → wait (domain-aware) → extract → close
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json
# For static pages (Wikipedia, docs, blogs), add --lite to skip browser entirely:
actionbook --rewrite-urls browser fetch "<url>" --format text --lite --json
# For accessibility tree:
actionbook --block-images --rewrite-urls browser fetch "<url>" --format snapshot --max-tokens 2000 --json
オプション B:対話型の複数ステップパターン(フォーム、クリック、複数ページにわたる操作フロー向け):
# Step 1: Navigate
actionbook browser open "<url>" # or: goto, click a link
# Step 2: Wait for load (MANDATORY in v2)
actionbook browser wait-idle # Wait for fetch/XHR to settle
# Step 3: Extract content
actionbook browser text [selector] # Extract text
# OR
actionbook browser snapshot --filter interactive --max-tokens 500 # Understand page structure
wait-idle が重要な理由:
- SPA(React、Vue、Next.js)は、初期 HTML の読み込み後に fetch/XHR でコンテンツを読み込みます
- 待機しないと、
textの結果が空または不完全になります wait-idleは保留中のネットワークリクエストをすべて監視し、500ms 間通信が途切れるまで待機します
ネットワークが落ち着いた後にコンテンツを動的に読み込むページの場合:
actionbook browser wait-idle
actionbook browser wait-fn "document.querySelector('.results')" # Wait for specific element
actionbook browser text ".results"
完全なワークフロー
注意: このワークフローでのすべてのウェブアクセスには、必ず
actionbook browserコマンドを使用してください。curl、wget、python requests、その他の HTTP ツールを使用することは厳禁です。 bash ツールは、actionbookCLI コマンドとローカルファイル操作(json-ui render、open)にのみ使用してください。
Step 1:検索戦略を立てる
トピックに基づいて、異なる観点から5~8件の検索クエリを作成します:
- 中心となる定義/概要
- 最新の動向/ニュース
- 技術的な詳細/実装
- 比較/代替案
- 専門家の意見/分析
- ユースケース/用途
検索の順序 — 必ず Actionbook API にクエリしてから検索してください:
| ステップ | 操作 | 理由 |
|---|---|---|
| Step 2(最初) | Actionbook API にクエリ | ブラウズする前に、arXiv、ar5iv、その他の既知のサイトの検証済みセレクターを取得します。 |
| Step 3(2番目) | arXiv の詳細検索 | 複数のフィールドを使った絞り込み検索には、Actionbook のセレクターを使用します。 |
| Step 4(3番目) | Google/Bing で検索 | ブログ、ニュース、コード、議論など、学術論文以外の情報源で補足します。 |
Step 2:セレクターを取得するため Actionbook API にクエリする(必ず最初に実行)
URL をブラウズする前に、Actionbook のインデックス済みセレクターを必ず照会してください。
# Search for indexed actions by domain
actionbook search "<keywords>" -d "<domain>"
# Get detailed selectors for a specific page
actionbook get "<domain>:/<path>:<area>"
調査に役立つ、事前にインデックスされたサイト:
| サイト | area_id | 主なセレクター |
|---|---|---|
| arXiv 詳細検索 | arxiv.org:/search/advanced:default | 40件以上のセレクター:フィールド選択、検索語入力、カテゴリのチェックボックス、日付範囲フィルター |
| ar5iv の論文 | ar5iv.labs.arxiv.org:/html/{paper_id}:default | h1.ltx_title_document、div.ltx_authors、div.ltx_abstract、section.ltx_section |
| Google Scholar | scholar.google.com:/:default | #gs_hdr_tsi(検索)、#gs_hdr_tsb(送信) |
| arXiv ホームページ | arxiv.org:/:default | 240万件以上の論文を横断検索 |
アクセスする予定の URL については、actionbook search "<keywords>" -d "<domain>" を実行して、インデックスされているか確認してください。
ステップ 3:arXiv 検索(URL を優先し、フォームは予備として使用)
教訓:ブラウザー自動化による arXiv フォームの送信は不安定です。URL ベースの検索を主な方法として使用してください。
オプション A:URL ベースの検索(主な方法 — 最も信頼性が高い):
# Simple keyword search
actionbook --block-images --auto-dismiss-dialogs --no-animations browser open "https://arxiv.org/search/?query=large+language+model+agent&searchtype=all"
actionbook browser wait-idle
actionbook browser text "#main-container"
# Advanced URL search with filters
# searchtype: all, title, author, abstract
# start: result offset (0, 50, 100, ...)
actionbook browser open "https://arxiv.org/search/?query=Rust+machine+learning&searchtype=all&start=0"
actionbook browser wait-idle
actionbook browser text "#main-container"
検索戦略:広く検索してから絞り込みます:
- 最初の検索:広範な用語(例:
"Rust" "machine learning")を使用します — 50 件以上の結果を目指します - 結果が少なすぎる場合(10 件未満):さらに対象を広げ、日付やカテゴリのフィルターを削除します
- 結果が多すぎる場合(200 件超):より具体的な用語を追加し、
searchtype=titleを使用します - 2~3 種類の異なる検索の切り口を試します(例:フレームワーク名、ユースケース、ベンチマーク)
オプション B:バッチによるフォーム操作(予備 — URL 検索で不十分な場合に使用):
# Open arXiv with research flags
actionbook --block-images --auto-dismiss-dialogs --no-animations browser open "https://arxiv.org/search/advanced"
actionbook browser wait-idle
# Use batch for form — fewer round-trips, more reliable
cat <<'EOF' | actionbook browser batch --delay 150
{
"actions": [
{"kind": "click", "selector": "#terms-0-field"},
{"kind": "click", "selector": "option[value='title']"},
{"kind": "type", "selector": "#terms-0-term", "text": "large language model agent"},
{"kind": "click", "selector": "#classification-computer_science"},
{"kind": "click", "selector": "#date-filter_by-3"},
{"kind": "type", "selector": "#date-from_date", "text": "2025-01-01"},
{"kind": "type", "selector": "#date-to_date", "text": "2026-02-23"},
{"kind": "click", "selector": "button:has-text('Search'):nth(2)"}
],
"stopOnError": true
}
EOF
actionbook browser wait-idle
actionbook browser text "#main-container"
# If batch form submission fails (page shows form again instead of results):
# → Fall back to Option A URL-based search immediately
# → Do NOT retry the form — it wastes time
arXiv の検索機能(インデックス済みのセレクターより — オプション B 用):
| 機能 | セレクター |
|---|---|
| 検索フィールド(Title/Author/Abstract) | #terms-0-field select |
| 検索語句 | #terms-0-term input |
| ブール演算子の語句を追加 | button "Add another term +" |
| フィルター:Computer Science | #classification-computer_science |
| フィルター:Physics、Math など | #classification-physics、#classification-mathematics |
| 日付:過去 12 か月 | #date-filter_by-1 radio |
| 日付:特定の年 | #date-filter_by-2 radio + #date-year |
| 日付:カスタム範囲 | #date-filter_by-3 radio + #date-from_date / #date-to_date |
| アブストラクトを表示 | #abstracts-0 radio |
ステップ 4:Google / Bing 検索で補足
# Search via Google (with wait-idle for SPA results)
actionbook browser open "https://www.google.com/search?q=<encoded_query>"
actionbook browser wait-idle
actionbook browser text "#search"
# Or search via Bing
actionbook browser open "https://www.bing.com/search?q=<encoded_query>"
actionbook browser wait-idle
actionbook browser text "#b_results"
検索結果を解析して URL を抽出します。見つかった URL ごとに Actionbook API に問い合わせ、インデックス済みかどうかを確認します。
重要:URL の取り扱いルール(実運用から得た教訓)
-
検索スニペットから URL を手動で構築しないでください。 Google のスニペットに表示される URL の多くは、省略されたり形式が変更されたりしています。代わりに、次の方法を使用します:
actionbook browser snapshot --filter interactiveを使用して、実際のリンク要素を見つけます- リンクを直接クリックします:
actionbook browser click "a[href*='domain.com']" - または、スナップショットの参照から href を抽出します
-
URL の 20~30%は無効だと想定してください。 実際には、20 件中約 5 件の URL が 404 を返します。次のように対処します:
actionbook browser open "<url>" actionbook browser wait-idle # Check if the page is a 404 or error page actionbook browser wait-fn "!document.title.includes('404') && !document.title.includes('Not Found')" --timeout 3000 # If timeout → page is dead, skip immediately. Do NOT retry. -
Google のスニペットから情報を救済します。 URL が無効でも、Google のスニペットに有用な情報が含まれていた場合:
- すでに抽出したスニペットのテキストは有効なデータです
- ソースが利用できなくなっている旨を記して、レポートに使用します
- 代替サイト(archive.org、キャッシュ版)で同じ内容を検索します
-
異なる検索クエリを 4 つ以上使用します。 1 つの切り口だけに頼らないでください:
- クエリ 1:トピックの概要(例:「Rust AI ecosystem 2026」)
- クエリ 2:特定のフレームワーク/ツール(例:「Candle vs Burn Rust ML framework」)
- クエリ 3:ユースケース/ベンチマーク(例:「Rust LLM inference performance benchmark」)
- クエリ 4:最近のニュース/動向(例:「Rust machine learning latest 2026」)
- クエリ 5:コミュニティ/エコシステム(例:「Rust AI agent framework comparison」)
ステップ 5:ソースを詳しく読む
推奨:1 回でページを抽出できる browser fetch を使用します(待機、抽出、クリーンアップを処理します):
# Quick text extraction (most common)
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json
# Static pages (Wikipedia, docs, blogs) — skip browser entirely
actionbook --rewrite-urls browser fetch "<url>" --format text --lite --json
# Page structure analysis
actionbook --block-images --rewrite-urls browser fetch "<url>" --format snapshot --max-tokens 2000 --json
# With token budget for LLM context management
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --max-tokens 4000 --json
インタラクティブなワークフロー(フォーム、クリック)では、複数ステップの方法に切り替えます:
actionbook browser open "<url>"
actionbook browser wait-idle # MANDATORY: wait for network
actionbook browser text # Full page text (fallback)
actionbook browser text "<selector>" # Use Actionbook selector if indexed
ページの内容が不完全に見える場合は、デバッグします:
# Check for JS errors that might block rendering
actionbook browser console --level error
# Check if a specific element exists
actionbook browser wait-fn "document.querySelector('.content')" --timeout 5000
# Inspect element properties
actionbook browser info ".content"
arXiv の論文では、次の順にソースを試します:
# 1. arXiv abstract (most reliable) — use fetch
actionbook --block-images browser fetch "https://arxiv.org/abs/<arxiv_id>" --format text --json
# 2. HuggingFace papers page
actionbook --block-images browser fetch "https://huggingface.co/papers/<arxiv_id>" --format text --json
# 3. ar5iv HTML (structured, but fails on new papers) — use --lite for static HTML
actionbook browser fetch "https://ar5iv.org/html/<arxiv_id>" --format text --lite --json
# NOTE: if content too short, ar5iv didn't render. Fall back.
# 4. GitHub repo (from search results) — use fetch
actionbook --block-images browser fetch "<github_repo_url>" --format text --json
保護されたサイト(Cloudflare、ボット検知)では、ステルス機能を備えたインタラクティブモードを使用します:
actionbook --stealth --block-images --auto-dismiss-dialogs --rewrite-urls browser open "<protected_url>"
actionbook browser wait-idle
actionbook browser text
モバイル専用コンテンツの場合:
actionbook browser emulate iphone-14
actionbook browser open "<url>"
actionbook browser wait-idle
actionbook browser text
Google Scholar(Actionbook によりインデックス済み)の場合:
actionbook browser open "https://scholar.google.com"
actionbook browser wait-idle
actionbook browser click "#gs_hdr_tsi"
actionbook browser type "#gs_hdr_tsi" "<query>"
actionbook browser click "#gs_hdr_tsb"
actionbook browser wait-idle
actionbook browser text "#gs_res"
インデックスされていないサイトでは、スナップショットを使用して構造を確認します:
actionbook --block-images browser fetch "<url>" --format snapshot --max-tokens 800 --json
ステップ 6:調査結果を統合
収集した情報を、以下の構成で一貫性のあるレポートにまとめます:
- 概要/エグゼクティブサマリー
- 主な調査結果
- 詳細な分析
- 裏付けデータ/証拠
- 影響/重要性
- ソース
ステップ 7:json-ui JSON レポートを生成
@actionbookdev/json-ui スキーマに従って JSON ファイルを作成します。Write ツールを使用します。
出力パス: ./output/<topic-slug>.json(またはユーザーが指定した --output パス)
Step 8: HTML をレンダリングする
重要:あきらめる前に、必ずすべてのフォールバック方法を試してください。最初の失敗で中止しないでください。
重要:JSON_FILE と HTML_FILE には、必ず絶対パスを使用してください。
成功するまで、各方法を順番に試してください。
# Method 1: Monorepo absolute path (most reliable if inside actionbook project)
node "$(git rev-parse --show-toplevel)/packages/json-ui/dist/cli.js" render /absolute/path/to/report.json -o /absolute/path/to/report.html
# Method 2: Global install (if user ran: cd packages/json-ui && npm link)
json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html
# Method 3: npx (if published to npm)
npx @actionbookdev/json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html
**何も伝えずにあきらめてはいけません。**すべての方法が失敗した場合は、ユーザーに次のことを伝えてください。
- JSON レポートの保存先は
<path>です - HTML のレンダリングを有効にするには、次を実行してください:
cd <actionbook-repo>/packages/json-ui && npm link
Step 9: ブラウザーで開く
# macOS
open <report.html>
# Linux
xdg-open <report.html>
Step 10: ブラウザーを閉じる
作業が終わったら、必ずブラウザーを閉じてください:
actionbook browser close
エラー回復パターン
高度なブラウザー機能を使用したインテリジェントなエラー回復:
パターン:ページの読み込みに失敗した場合
# 1. Open page
actionbook browser open "<url>"
actionbook browser wait-idle --timeout 15000
# 2. Check for JS errors
actionbook browser console --level error
# If errors found → page is broken, skip to next source
# 3. Check if content rendered
actionbook browser wait-fn "document.body.innerText.length > 100" --timeout 5000
# If timeout → content didn't render, try fallback
パターン:セレクターが見つからない場合
# 1. Use snapshot to discover actual page structure
actionbook browser snapshot --filter interactive --max-tokens 800
# 2. Or inspect a specific area
actionbook browser info "<parent_selector>"
# Returns: suggested selectors, visibility, tag info
# 3. Adjust selector and retry
パターン:ボット対策の検出
# 1. If initial load returns CAPTCHA or access denied:
actionbook browser close
# 2. Reopen with stealth
actionbook --stealth --no-animations --auto-dismiss-dialogs browser open "<url>"
actionbook browser wait-idle
# 3. If still blocked, rotate fingerprint
actionbook browser fingerprint rotate --os windows
actionbook browser open "<url>"
actionbook browser wait-idle
パターン:SPA のコンテンツが読み込まれない場合
# 1. Wait for network
actionbook browser wait-idle --idle-time 1000 --timeout 15000
# 2. Wait for specific element
actionbook browser wait-fn "document.querySelector('.results')" --timeout 10000
# 3. If still empty, check console
actionbook browser console --level error
# 4. Try clicking a loading trigger
actionbook browser snapshot --filter interactive --max-tokens 300
# Look for "Load More", "Show Results", etc.
エラー処理の完全なリファレンス
| エラー | 回復方法 |
|---|---|
| ブラウザーを開けない | actionbook browser status を実行し、再試行してから console --level error を確認 |
| ページの読み込みがタイムアウトする | wait-idle --timeout 15000 を実行し、その後 console --level error で診断 |
| URL が 404 を返す | wait-fn "!document.title.includes('404')" で素早く検出します。**すぐにスキップし、再試行しないでください。**代替データとして Google のスニペットテキストを使用します。 |
| arXiv のフォーム送信に失敗する | URL ベースの検索に切り替えます:arxiv.org/search/?query=...&searchtype=all |
| ar5iv のコンテンツが途中で切れる | arxiv の概要に切り替え、wait-fn "document.body.innerText.length > 5000" で確認します |
| セレクターが見つからない | snapshot --filter interactive で実際の構造を確認します |
| 動的コンテンツが見つからない | wait-idle と、特定の条件を指定した wait-fn を使用します |
| アラートポップアップが妨げになる | --auto-dismiss-dialogs を指定すると完全に防げます |
| ボット対策の検出 | --stealth と fingerprint rotate を使用します |
| メディアの多いページの読み込みが遅い | --block-images または --block-media で 2~5 倍高速化します |
| CSS アニメーションが干渉する | --no-animations ですべてのトランジションを停止します |
| json-ui のレンダリングがクラッシュする | MetricsGrid を確認します。suffix/value はプレーンな文字列である必要があります |
npx json-ui が 404 を返す | 3 つすべての方法(モノレポ、グローバル、npx)を試します |
| 検索結果が見つからない | まず広く検索し(50 件以上)、その後絞り込みます。4 つ以上の検索クエリの切り口を使用します。 |
重要:エラーが発生した場合も含め、終了前に必ず actionbook browser close を実行してください。
機能の使用チェックリスト
調査を完了する前に、以下の機能を使用したことを確認してください:
| 機能 | 使用する場面 | 確認 |
|---|---|---|
browser fetch | ページの読み取り専用抽出(open+wait+text より優先) | ほとんどのページの読み取りに使用 |
--lite | 静的ページ(Wikipedia、ドキュメント、ブログ)— ブラウザーを完全に省略 | 静的サイトでは fetch に追加 |
--rewrite-urls | 常に使用(x.com、reddit のボット対策を回避) | ブラウザーの初回起動時に設定 |
--wait-hint | ドメインに応じた待機時間の調整(fast/slow/heavy) | fetch または手動のフローで使用 |
--session-tag | ログの関連付けが必要な複数手順の操作 | デバッグセッション用に設定 |
wait-idle | ナビゲーションを開始する open/goto/click の後に毎回使用 | すべてのページで必ず使用 |
--block-images | 常に使用(調査に画像は不要) | ブラウザーの初回起動時に設定 |
--auto-dismiss-dialogs | 常に使用(操作の妨げを防止) | ブラウザーの初回起動時に設定 |
--no-animations | 常に使用(安定したスナップショットを取得) | ブラウザーの初回起動時に設定 |
wait-fn | ネットワークが落ち着いた後にコンテンツが非同期で読み込まれる場合 | SPA、動的ページで使用 |
console --level error | ページのコンテンツが不完全、または壊れているように見える場合 | デバッグに使用 |
batch | 複数手順のフォーム(arXiv、Google Scholar)に入力する場合 | 5 回以上の逐次コマンドを置き換え |
snapshot --filter interactive | 未知のページ構造を調べる場合 | インデックス化されていないサイトで使用 |
info <selector> | クリックや入力が想定どおりに動作しない場合 | 要素の表示状態をデバッグ |
--stealth | サイトで CAPTCHA またはアクセス拒否が返される場合 | 再試行時に追加 |
避けるべきよくある間違い:
browser fetchなら 1 つのコマンドで済むのに、手動でopen → wait-idle → text → closeを使用する- 静的ページ(Wikipedia、ドキュメント、ブログ)で
--liteを使用しない(ブラウザーの起動に 5〜10 秒かかる) --rewrite-urlsを使用しない(x.com と reddit.com は強力なボット対策によりスクレイピングがブロックされる)- インタラクティブモードでナビゲーション後に
wait-idleを忘れる(コンテンツが空に見える) - フォーム操作で
batchを使用しない(遅く、信頼性が低い) - 使えなくなった URL を再試行する(スキップしてください)
- 検索結果のスニペットから URL を手動で組み立てる(リンクをクリックしてください)
- 1 つの検索クエリの切り口しか使わない(多様なクエリを常に 4 つ以上使用してください)
- コンテンツを抽出する前に 404 ページかどうかを確認しない
json-ui レポートテンプレート
重要:必ず BrandHeader と BrandFooter を含めてください。
{
"type": "Report",
"props": { "theme": "auto" },
"children": [
{
"type": "BrandHeader",
"props": {
"badge": "Deep Research Report",
"poweredBy": "Actionbook"
}
},
{
"type": "Section",
"props": { "title": "Overview", "icon": "paper" },
"children": [
{
"type": "Prose",
"props": {
"content": "Overview of the topic..."
}
}
]
},
{
"type": "Section",
"props": { "title": "Key Findings", "icon": "star" },
"children": [
{
"type": "ContributionList",
"props": {
"items": [
{
"badge": "Finding",
"title": "...",
"description": "..."
}
]
}
}
]
},
{
"type": "Section",
"props": { "title": "Detailed Analysis", "icon": "bulb" },
"children": [
{
"type": "Prose",
"props": { "content": "..." }
}
]
},
{
"type": "Section",
"props": { "title": "Key Metrics", "icon": "chart" },
"children": [
{
"type": "MetricsGrid",
"props": { "metrics": [], "cols": 3 }
}
]
},
{
"type": "Section",
"props": { "title": "Sources", "icon": "link" },
"children": [
{
"type": "LinkGroup",
"props": { "links": [] }
}
]
},
{
"type": "BrandFooter",
"props": {
"timestamp": "YYYY-MM-DDTHH:MM:SSZ",
"attribution": "Powered by Actionbook",
"disclaimer": "This report was generated by AI using web sources. Verify critical information independently."
}
}
]
}
論文レポートテンプレート(arXiv 論文向け)
学術論文を分析する際は、以下を含む、より詳細なテンプレートを使用してください:
PaperHeader(タイトル、arxivId、日付、カテゴリ)AuthorList(著者と所属)Abstract(キーワードのハイライトを含む)ContributionList(主な貢献)MethodOverview(手順ごとの手法)ResultsTable(実験結果)Formula(主要な数式、LaTeX)Figure(ar5iv の論文図)
利用可能な json-ui コンポーネント
| コンポーネント | 用途 | 主なプロパティ |
|---|---|---|
BrandHeader | レポートのヘッダー | badge, poweredBy |
PaperHeader | 論文のメタデータ | title, arxivId, date, categories |
AuthorList | 著者 | authors: [{name, affiliation}], maxVisible |
Section | 主要なセクション | title, icon (paper/star/bulb/chart/code/link/info/warning) |
Prose | リッチテキスト | content (太字、斜体、code、リストに対応) |
Abstract | 要旨のテキスト | text, highlights: ["keyword"] |
ContributionList | 番号付きの知見 | items: [{badge, title, description}] |
MethodOverview | 手順ごとの概要 | steps: [{step, title, description}] |
MetricsGrid | 主要な統計情報 | metrics: [{label, value, trend, suffix}], cols |
ResultsTable | データテーブル | columns, rows, highlights: [{row, col}] |
Table | 汎用テーブル | columns: [{key, label}], rows, striped, compact |
Callout | 情報/ヒント/警告 | type (info/tip/warning/important/note), title, content |
Highlight | 引用ブロック | type (quote/important/warning/code), text, source |
KeyPoint | 重要な知見を示すカード | icon, title, description, variant |
CodeBlock | コードスニペット | code, language, title, showLineNumbers |
Formula | LaTeX の数式 | latex, block, label |
Figure | 画像(複数可) | images: [{src, alt, width}], label, caption |
Image | 画像(単一) | src, alt, caption, width |
DefinitionList | 用語/定義 | items: [{term, definition}] |
LinkGroup | ソースへのリンク | links: [{href, label, icon}] |
Grid | グリッドレイアウト | cols, children |
Card | カードコンテナー | padding (sm/md/lg), shadow |
TagList | タグ | tags: [{label, color, href}] |
BrandFooter | フッター | timestamp, attribution, disclaimer |
json-ui でよくある落とし穴
| 落とし穴 | 症状 | 対処法 |
|---|---|---|
MetricsGrid.suffix にオブジェクトを指定 | text.replace is not a function | suffix はプレーンな文字列である必要があります |
MetricsGrid.value に数値を指定 | レンダリングエラー | value は文字列である必要があります(例:58.5 ではなく "58.5") |
BrandHeader/BrandFooter の不足 | レポートの表示が崩れる | 必ず両方を含めてください |
Table の行の値にオブジェクトを指定 | セルに [object Object] が表示される | 行のセルの値はプレーンな文字列である必要があります |
Prose の内容が非常に長い | レンダリング時に途中で切れる | 複数の Prose ブロックに分割するか、サブセクションを使用してください |
テキストフィールド
すべてのテキストフィールドには、プレーンな英語の文字列を使用してください。
{ "title": "Key Findings" }
注: MetricsGrid のプロパティ value と suffix、および Table の行のセルの値には、常にプレーンな文字列を指定する必要があります。
学術論文への対応
arXiv 論文
ar5iv.org HTML(閲覧に推奨されますが、公開から 3 か月未満の論文では内容が不完全なことがよくあります):
| 要素 | セレクター | 信頼性 | フォールバック |
|---|---|---|---|
| タイトル | h1.ltx_title_document | 高 | div.ltx_abstract |
| 著者 | div.ltx_authors | 高 | — |
| 要旨 | div.ltx_abstract | 高 | — |
| 論文全文 | article | 中 | セクションのセレクターが機能しない場合に使用 |
| セクション | section.ltx_section | 新しい論文では低 | article |
| 図 | figure.ltx_figure | 中 | — |
| 表 | table.ltx_tabular | 中 | — |
推奨される方法: wait-idle と wait-fn を使って、ar5iv のコンテンツが読み込まれたことを確認します:
actionbook browser open "https://ar5iv.org/html/<arxiv_id>"
actionbook browser wait-idle --timeout 15000
actionbook browser wait-fn "document.body.innerText.length > 5000" --timeout 10000
# If wait-fn times out → content didn't render, fall back to other sources
推奨されるソースの優先順位
| 優先順位 | ソース | 得られる情報 | 信頼性 |
|---|---|---|---|
| 1 | arxiv.org/abs/<id> | 要旨、メタデータ、投稿履歴 | 非常に高 |
| 2 | huggingface.co/papers/<id> | 要旨、コミュニティ、関連モデル | 非常に高 |
| 3 | GitHub リポジトリ | README、コード、モデル一覧 | 高 |
| 4 | HuggingFace のモデルカード | 学習レシピ、ベンチマーク | 高 |
| 5 | ar5iv.org/html/<id> | 論文全文の HTML | 中 |
| 6 | Google Scholar/Semantic Scholar | 被引用数、関連研究 | 中 |
その他の学術情報源
- Google Scholar(
scholar.google.com)— Actionbook にインデックス登録済み - Semantic Scholar(
semanticscholar.org) - Papers With Code(
paperswithcode.com) - 学会の論文集サイト
品質ガイドライン
- 幅広さ:多様な情報源を少なくとも3~5件調査する
- 深さ:抜粋だけでなく、記事全文を読む
- 正確性:複数の情報源で事実を照合する
- 構成:コンテンツの種類に応じて適切な json-ui コンポーネントを使用する
- 出典の明記:レポートには必ず情報源へのリンクを含める
- 鮮度:関連性が同等の場合は、最近の情報源を優先する