Token导航 LogoToken导航

Agent Skill · 研究检索

active-research(积极研究)

active-research 用于处理浏览器自动化、网页检查和页面信息提取,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

active-research 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证信息还不明确,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 4,070。

总安装 36,360周安装 1,508GitHub Stars 1,523下载 11,880核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:active-research(积极研究)
来源仓库:https://github.com/actionbook/actionbook
仓库路径:skills/active-research
安装命令:
npx skills add https://github.com/actionbook/actionbook --skill active-research
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/actionbook/actionbook --skill active-research

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

综合研究和分析工具,可通过高级浏览器自动化生成 HTML 报告。

通过智能源发现和多角度搜索策略支持跨学术论文(arXiv、ar5iv)、网页和一般主题的深入研究 高级浏览器功能,包括 SPA 感知导航、网络空闲检测、受保护站点的隐身模式、批量表单操作以及用于更快提取的图像阻止 一次性页面获取(浏览器获取 )用于只读提取,以及带有强制等待空闲的表单和动态内容的交互式多步骤工作流程 导航后 生成具有丰富组件(PaperHeader、MetricsGrid、ResultsTable、CodeBlock、Formula)的漂亮 json-ui HTML 报告,并包括 BrandHeader/BrandFooter;始终使用 Actionbook 浏览器 独占命令,从不使用curl/wget/requests

来源仓库内路径:skills/active-research

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/actionbook/actionbook --skill active-research;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

active-research 怎么安装?

在终端执行 npx skills add https://github.com/actionbook/actionbook --skill active-research。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

active-research 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

active-research 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

active-research 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

active-research 用的人多吗?

公开数据是累计安装 36,360 次,近一周安装 1,508 次,下载 11,880 次,GitHub 1,523 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

active-research 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 来源仓库有 1,523 星,维护活跃度相对可查。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
active-research

积极研究 · 本页

36,3601,523操作浏览器未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Active Research

Analyze any topic, domain, or paper and generate a beautiful HTML report using Actionbook Browser — featuring SPA-aware navigation, network idle detection, batch operations, and intelligent page analysis.

Enhanced Browser Capabilities

CapabilityDescription
Page load waitwait-idle — monitors fetch/XHR until network settles
SPA contentwait-fn — wait for JS conditions before extracting
Page understandingsnapshot --filter interactive --max-tokens N — focused, budget-friendly
Popups blocking--auto-dismiss-dialogs — auto-handle alert/confirm/prompt
Load speed--block-images — skip images for faster text extraction
Page stability--no-animations — freeze CSS transitions
Error detectionconsole --level error — check for page issues
Multi-step formsbatch — execute multiple actions in one call
Element debugginginfo <selector> — inspect visibility, position, properties
Change trackingsnapshot --diff — only see what changed
Anti-detection--stealth + fingerprint rotate for protected sites
Auth managementstorage set — inject JWT/tokens for gated content
One-shot fetchbrowser fetch <url> — navigate+wait+extract+close in one command
Static page speed--lite — HTTP-first, browser fallback only if needed
Anti-scrape URLs--rewrite-urls — x.com→xcancel.com, reddit→old.reddit
Wait tuning--wait-hint — domain-aware wait (fast/normal/slow/heavy)
Log correlation--session-tag — tag all operations for debugging

Usage

/active-research <topic>
/active-research <topic> --output ./reports/my-report.json

Or simply tell Claude: "Research XXX and generate a report"

Parameters

ParameterRequiredDefaultDescription
topicYes-The subject to research (any text)
--outputNo./output/<topic-slug>.jsonOutput path for JSON report

Topic Detection

PatternTypeStrategy
arxiv:XXXX.XXXXXPaperarXiv Advanced Search + ar5iv deep read
doi:10.XXX/...PaperResolve DOI, then arXiv Advanced Search for related work
Academic keywords (paper, research, model, algorithm)Academic topicarXiv Advanced Search + Google for non-academic sources
URLSpecific pageFetch and analyze the page
General textTopic researchGoogle search + arXiv Advanced Search if relevant

Architecture

┌──────────┐     ┌──────────────┐     ┌──────────────┐     ┌──────────┐
│  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
└──────────┘     └──────────────┘     └──────────────┘

MUST USE Actionbook CLI

Always use actionbook browser commands for web browsing. NEVER use any other method to access the web:

  • NEVER use curl, wget, httpie, or any HTTP CLI tool via bash
  • NEVER use python -c "import requests" or any scripting-language HTTP library via bash
  • NEVER use WebFetch or WebSearch tools
  • ONLY use actionbook browser and actionbook search/actionbook get commands

If you need web content, the PREFERRED path is: actionbook browser fetch <url> --format text --json (one-shot). For interactive multi-step workflows, use: actionbook browser open <url> → actionbook browser wait-idle → actionbook browser text.

Browser Flags — Research Defaults

CRITICAL: Always use these flags when opening the browser for research.

# 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>"
FlagWhy
--block-imagesSkip image downloads — 2-5x faster page load for text extraction
--auto-dismiss-dialogsPrevent alert/confirm/prompt from blocking automation
--no-animationsFreeze CSS animations — stable snapshots, no timing issues
--rewrite-urlsRewrite x.com→xcancel.com, reddit→old.reddit to avoid anti-bot blocking
--wait-hint <hint>Domain-aware wait: instant, fast, normal, slow, heavy, or ms
--session-tag <tag>Tag all operations for log correlation and debugging
--lite (fetch only)Try HTTP first, skip browser for static pages (Wikipedia, docs, blogs)

For sites with anti-bot protection, add --stealth:

actionbook --block-images --auto-dismiss-dialogs --no-animations --stealth --rewrite-urls browser open "<url>"

Navigation Pattern — ALWAYS Follow

Option A: One-shot fetch (PREFERRED for read-only page extraction):

# 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

Option B: Interactive multi-step pattern (for forms, clicks, multi-page flows):

# 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

Why wait-idle is critical:

  • SPAs (React, Vue, Next.js) load content via fetch/XHR after initial HTML
  • Without waiting, text returns empty or incomplete content
  • wait-idle monitors all pending network requests, waits until quiet for 500ms

For pages that load content dynamically after network settles:

actionbook browser wait-idle
actionbook browser wait-fn "document.querySelector('.results')"    # Wait for specific element
actionbook browser text ".results"

Complete Workflow

REMINDER: Every web access in this workflow MUST use actionbook browser commands. Using curl, wget, python requests, or any other HTTP tool is strictly forbidden. The bash tool should ONLY be used for actionbook CLI commands and local file operations (json-ui render, open).

Step 1: Plan Search Strategy

Based on the topic, generate 5-8 search queries from different angles:

  • Core definition / overview
  • Latest developments / news
  • Technical details / implementation
  • Comparisons / alternatives
  • Expert opinions / analysis
  • Use cases / applications

Search order — ALWAYS query Actionbook API first, then search:

StepActionWhy
Step 2 (FIRST)Query Actionbook APIGet verified selectors for arXiv, ar5iv, and other known sites BEFORE browsing.
Step 3 (SECOND)arXiv Advanced SearchUse Actionbook selectors for multi-field, filtered academic search.
Step 4 (THIRD)Google / Bing searchSupplement with blogs, news, code, discussions, non-academic sources.

Step 2: Query Actionbook API for Selectors (ALWAYS DO THIS FIRST)

BEFORE browsing any URL, query Actionbook's indexed selectors.

# Search for indexed actions by domain
actionbook search "<keywords>" -d "<domain>"

# Get detailed selectors for a specific page
actionbook get "<domain>:/<path>:<area>"

Pre-indexed sites useful for research:

Sitearea_idKey Selectors
arXiv Advanced Searcharxiv.org:/search/advanced:default40+ selectors: field select, term input, category checkboxes, date range filters
ar5iv paperar5iv.labs.arxiv.org:/html/{paper_id}:defaulth1.ltx_title_document, div.ltx_authors, div.ltx_abstract, section.ltx_section
Google Scholarscholar.google.com:/:default#gs_hdr_tsi (search), #gs_hdr_tsb (submit)
arXiv homepagearxiv.org:/:defaultGlobal search across 2.4M+ articles

For any URL you plan to visit, run actionbook search "<keywords>" -d "<domain>" to check if it's indexed.

Step 3: arXiv Search (URL-First, Form as Backup)

LESSON LEARNED: arXiv form submission via browser automation is unreliable. Use URL-based search as the PRIMARY method.

Option A: URL-based search (PRIMARY — most reliable):

# 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"

Search strategy: Start broad, then narrow:

  1. First search: broad terms (e.g., "Rust" "machine learning") — aim for 50+ results
  2. If too few results (< 10): broaden further, remove date/category filters
  3. If too many results (> 200): add more specific terms, use searchtype=title
  4. Try 2-3 different query angles (e.g., framework names, use cases, benchmarks)

Option B: Form interaction via batch (BACKUP — use if URL search is insufficient):

# 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 search capabilities (from indexed selectors — for Option B):

CapabilitySelector
Search field (Title/Author/Abstract)#terms-0-field select
Search term#terms-0-term input
Add boolean termsbutton "Add another term +"
Filter: Computer Science#classification-computer_science
Filter: Physics, Math, etc.#classification-physics, #classification-mathematics
Date: past 12 months#date-filter_by-1 radio
Date: specific year#date-filter_by-2 radio + #date-year
Date: custom range#date-filter_by-3 radio + #date-from_date / #date-to_date
Show abstracts#abstracts-0 radio

Step 4: Supplement with Google / Bing Search

# 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"

Parse search results to extract URLs. For each discovered URL, query Actionbook API to check if indexed.

CRITICAL: URL Handling Rules (Learned from Production Use)

  1. NEVER manually construct URLs from search snippets. Many Google snippet URLs are truncated or reformatted. Instead:

- Use actionbook browser snapshot --filter interactive to find actual link elements - Click the link directly: actionbook browser click "a[href*='domain.com']" - Or extract href from snapshot refs

  1. Expect 20-30% of URLs to be dead. In practice, ~5 out of 20 URLs return 404. Handle this: 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.
  2. Salvage info from Google snippets. If a URL is dead but the Google snippet had useful info:

- The snippet text you already extracted IS valid data - Use it in the report with a note that the source is no longer available - Search for the same content on alternative sites (archive.org, cached versions)

  1. Use 4+ diverse search queries. Don't rely on one search angle:

- Query 1: Core topic overview (e.g., "Rust AI ecosystem 2026") - Query 2: Specific frameworks/tools (e.g., "Candle vs Burn Rust ML framework") - Query 3: Use cases/benchmarks (e.g., "Rust LLM inference performance benchmark") - Query 4: Recent news/developments (e.g., "Rust machine learning latest 2026") - Query 5: Community/ecosystem (e.g., "Rust AI agent framework comparison")

Step 5: Deep Read Sources

PREFERRED: Use browser fetch for one-shot page extraction (handles wait + extract + cleanup):

# 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

For interactive workflows (forms, clicks), fall back to multi-step:

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

If page content seems incomplete, debug:

# 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"

For arXiv papers, try sources in this order:

# 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

For protected sites (Cloudflare, bot detection) — use interactive mode with stealth:

actionbook --stealth --block-images --auto-dismiss-dialogs --rewrite-urls browser open "<protected_url>"
actionbook browser wait-idle
actionbook browser text

For mobile-only content:

actionbook browser emulate iphone-14
actionbook browser open "<url>"
actionbook browser wait-idle
actionbook browser text

For Google Scholar (indexed by 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"

For unindexed sites, use snapshot to discover structure:

actionbook --block-images browser fetch "<url>" --format snapshot --max-tokens 800 --json

Step 6: Synthesize Findings

Organize collected information into a coherent report:

  1. Overview / Executive Summary
  2. Key Findings
  3. Detailed Analysis
  4. Supporting Data / Evidence
  5. Implications / Significance
  6. Sources

Step 7: Generate json-ui JSON Report

Write a JSON file following the @actionbookdev/json-ui schema. Use the Write tool.

Output path: ./output/<topic-slug>.json (or user-specified --output path)

Step 8: Render HTML

CRITICAL: You MUST try ALL fallback methods before giving up. Do NOT stop at the first failure.

IMPORTANT: Always use ABSOLUTE paths for JSON_FILE and HTML_FILE.

Try each method one by one until one succeeds:

# 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

NEVER give up silently. If all methods fail, tell the user:

  1. The JSON report is saved at <path>
  2. To enable HTML rendering, run: cd <actionbook-repo>/packages/json-ui && npm link

Step 9: Open in Browser

# macOS
open <report.html>

# Linux
xdg-open <report.html>

Step 10: Close Browser

Always close the browser when done:

actionbook browser close

Error Recovery Patterns

Intelligent error recovery using advanced browser capabilities:

Pattern: Page Load Failure

# 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

Pattern: Selector Not Found

# 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

Pattern: Anti-Bot Detection

# 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

Pattern: SPA Content Not Loading

# 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.

Full Error Handling Reference

ErrorRecovery Strategy
Browser fails to openactionbook browser status, retry + check console --level error
Page load timeoutwait-idle --timeout 15000, then console --level error to diagnose
URL returns 404wait-fn "!document.title.includes('404')" to detect fast. Skip immediately, do NOT retry. Use Google snippet text as backup data.
arXiv form submission failsFall back to URL-based search: arxiv.org/search/?query=...&searchtype=all
ar5iv content truncatedFall back to arxiv abstract + wait-fn "document.body.innerText.length > 5000" to verify
Selector not foundsnapshot --filter interactive to discover actual structure
Dynamic content missingwait-idle + wait-fn for specific conditions
Alert popup blocking--auto-dismiss-dialogs prevents this entirely
Anti-bot detection--stealth + fingerprint rotate
Slow media-heavy page--block-images or --block-media for 2-5x speedup
CSS animation interference--no-animations freezes all transitions
json-ui render crashCheck MetricsGrid — suffix/value must be plain strings
npx json-ui 404Try all 3 methods (monorepo, global, npx)
No search resultsStart broad (50+ results), then narrow. Use 4+ query angles.

IMPORTANT: Always run actionbook browser close before finishing, even on errors.

Feature Usage Checklist

Before finalizing research, verify you used these capabilities:

FeatureWhen to UseCheck
browser fetchRead-only page extraction (preferred over open+wait+text)Use for most page reads
--liteStatic pages (Wikipedia, docs, blogs) — skip browser entirelyAdd to fetch for static sites
--rewrite-urlsAlways (avoids anti-bot on x.com, reddit)Set in initial browser launch
--wait-hintDomain-aware wait tuning (fast/slow/heavy)Use with fetch or manual flow
--session-tagMulti-step operations needing log correlationSet for debugging sessions
wait-idleAfter EVERY open/goto/click that triggers navigationMust be used on every page
--block-imagesAlways (research doesn't need images)Set in initial browser launch
--auto-dismiss-dialogsAlways (prevents blocking)Set in initial browser launch
--no-animationsAlways (stable snapshots)Set in initial browser launch
wait-fnWhen content loads asynchronously after network settlesUse on SPAs, dynamic pages
console --level errorWhen page content seems incomplete or brokenUse for debugging
batchWhen filling multi-step forms (arXiv, Google Scholar)Replaces 5+ sequential commands
snapshot --filter interactiveWhen discovering unknown page structureUse on unindexed sites
info <selector>When a click/type doesn't work as expectedDebug element visibility
--stealthWhen site returns CAPTCHA or access deniedAdd on retry

Common mistakes to avoid:

  • Using manual open → wait-idle → text → close when browser fetch does it in one command
  • Not using --lite for static pages (Wikipedia, docs, blogs) — wastes 5-10s on browser startup
  • Not using --rewrite-urls — x.com and reddit.com have aggressive anti-bot that blocks scraping
  • Forgetting wait-idle after navigation in interactive mode (content appears empty)
  • Not using batch for form interactions (slow, unreliable)
  • Retrying a dead URL instead of skipping it
  • Constructing URLs manually from search snippets instead of clicking links
  • Using only one search query angle (always use 4+ diverse queries)
  • Not checking for 404 pages before extracting content

json-ui Report Template

IMPORTANT: Always include BrandHeader and 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."
      }
    }
  ]
}

Paper Report Template (for arXiv papers)

When analyzing academic papers, use a richer template with:

  • PaperHeader (title, arxivId, date, categories)
  • AuthorList (authors with affiliations)
  • Abstract (with keyword highlights)
  • ContributionList (key contributions)
  • MethodOverview (step-by-step method)
  • ResultsTable (experimental results)
  • Formula (key equations, LaTeX)
  • Figure (paper figures from ar5iv)

Available json-ui Components

ComponentUse ForKey Props
BrandHeaderReport headerbadge, poweredBy
PaperHeaderPaper metadatatitle, arxivId, date, categories
AuthorListAuthorsauthors: [{name, affiliation}], maxVisible
SectionMajor sectiontitle, icon (paper/star/bulb/chart/code/link/info/warning)
ProseRich textcontent (supports bold, *italic*, code, lists)
AbstractAbstract texttext, highlights: ["keyword"]
ContributionListNumbered findingsitems: [{badge, title, description}]
MethodOverviewStep-by-stepsteps: [{step, title, description}]
MetricsGridKey statsmetrics: [{label, value, trend, suffix}], cols
ResultsTableData tablecolumns, rows, highlights: [{row, col}]
TableGeneric tablecolumns: [{key, label}], rows, striped, compact
CalloutInfo/tip/warningtype (info/tip/warning/important/note), title, content
HighlightBlockquotetype (quote/important/warning/code), text, source
KeyPointKey finding cardicon, title, description, variant
CodeBlockCode snippetcode, language, title, showLineNumbers
FormulaLaTeX equationlatex, block, label
FigureImage(s)images: [{src, alt, width}], label, caption
ImageSingle imagesrc, alt, caption, width
DefinitionListTerm/definitionitems: [{term, definition}]
LinkGroupSource linkslinks: [{href, label, icon}]
GridGrid layoutcols, children
CardCard containerpadding (sm/md/lg), shadow
TagListTagstags: [{label, color, href}]
BrandFooterFootertimestamp, attribution, disclaimer

json-ui Known Pitfalls

PitfallSymptomFix
MetricsGrid.suffix as objecttext.replace is not a functionsuffix must be a plain string
MetricsGrid.value as numberRender errorvalue must be a string (e.g., "58.5" not 58.5)
Missing BrandHeader/BrandFooterReport looks brokenAlways include both
Table row values as object[object Object] in cellsRow cell values must be plain strings
Very long Prose contentTruncated renderSplit into multiple Prose blocks or use subsections

Text Fields

All text fields should use plain English strings.

{ "title": "Key Findings" }

Note: MetricsGrid props value and suffix, and Table row cell values must always be plain strings.

Academic Paper Support

arXiv Papers

ar5iv.org HTML (preferred for reading, but often incomplete for papers < 3 months old):

ElementSelectorReliabilityFallback
Titleh1.ltx_title_documentHighdiv.ltx_abstract
Authorsdiv.ltx_authorsHigh—
Abstractdiv.ltx_abstractHigh—
Full articlearticleMediumUse when section selectors fail
Sectionssection.ltx_sectionLow on new papersarticle
Figuresfigure.ltx_figureMedium—
Tablestable.ltx_tabularMedium—

Recommended approach: Use wait-idle + wait-fn to verify ar5iv content loaded:

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

Recommended Source Priority

PrioritySourceWhat you getReliability
1arxiv.org/abs/<id>Abstract, metadata, submission historyVery high
2huggingface.co/papers/<id>Abstract, community, related modelsVery high
3GitHub repoREADME, code, model zooHigh
4HuggingFace model cardTraining recipe, benchmarksHigh
5ar5iv.org/html/<id>Full paper HTMLMedium
6Google Scholar / Semantic ScholarCitations, related workMedium

Other Academic Sources

  • Google Scholar (scholar.google.com) — Actionbook indexed
  • Semantic Scholar (semanticscholar.org)
  • Papers With Code (paperswithcode.com)
  • Conference proceedings sites

Quality Guidelines

  1. Breadth: Research from at least 3-5 diverse sources
  2. Depth: Read full articles, not just snippets
  3. Accuracy: Cross-reference facts across sources
  4. Structure: Use appropriate json-ui components for each content type
  5. Attribution: Always include source links in the report
  6. Freshness: Prefer recent sources when relevance is equal

平台分布

Codex

33.92%
按下载量换算4,030

Claude

32.08%
按下载量换算3,811

Cursor

21.27%
按下载量换算2,527

Gemini CLI

10.47%
按下载量换算1,244

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills