项目文件夹

文件
2026-07-13 21:36:22 +08:00

33 KiB

name, description, exclude_tools, triggers, force_tool_turns
name description exclude_tools triggers force_tool_turns
active-research 深度研究与分析工具。能够针对任何主题、领域、论文或技术生成全面的 HTML 报告。增强的高级浏览器自动化功能包括:SPA 处理、网络空闲等待、批量操作、隐身浏览和智能页面分析。当用户要求研究、分析、调查、深入探索或生成任何主题的报告时使用。 group:web research, deep-dive, investigate, analyze topic, deep research, generate report 10

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——单次调用中执行多个操作
元素调试 info <selector>——检查可见性、位置、属性
变更追踪 snapshot --diff——仅查看变化内容
反检测 --stealth + fingerprint rotate 用于受保护站点
认证管理 storage set——注入 JWT/令牌以访问受限内容
一次性抓取 browser fetch <url>——导航+等待+提取+关闭,一条命令完成
静态页面速度 --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:「Research XXX and generate a report」

参数

参数 是否必需 默认值 描述
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

始终使用 actionbook browser 命令进行网页浏览。绝不使用任何其他方法访问网络:

  • 绝不通过 bash 使用 curlwgethttpie 或任何 HTTP CLI 工具
  • 绝不通过 bash 使用 python -c "import requests" 或任何脚本语言的 HTTP 库
  • 绝不使用 WebFetch 或 WebSearch 工具
  • 只使用 actionbook browseractionbook search/actionbook get 命令

如果需要获取网页内容,推荐路径是:actionbook browser fetch <url> --format text --json(一次性完成)。 对于交互式多步骤工作流,请使用:actionbook browser open <url>actionbook browser wait-idleactionbook browser text

浏览器标志——研究默认值

关键:在研究场景下打开浏览器时,始终使用这些标志。

# 推荐:一次性抓取(I1)——自动处理 open+wait+extract+close
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json

# 对于交互式多步骤工作流,使用显式 open:
actionbook --block-images --auto-dismiss-dialogs --no-animations --rewrite-urls browser open "<url>"
标志 原因
--block-images 跳过图片下载——文本提取速度提升 2-5 倍
--auto-dismiss-dialogs 防止 alert/confirm/prompt 阻塞自动化
--no-animations 冻结 CSS 动画——快照稳定,无时序问题
--rewrite-urls 将 x.com 重写为 xcancel.com,reddit 重写为 old.reddit 以避免反爬虫拦截
--wait-hint <hint> 域名感知等待:instantfastnormalslowheavy 或毫秒值
--session-tag <tag> 为所有操作打标签以便日志关联和调试
--lite(仅 fetch 优先尝试 HTTP,对静态页面跳过浏览器(Wikipedia、文档、博客)

对于有反爬虫保护的站点,添加 --stealth

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

导航模式——始终遵循

选项 A:一次性抓取(只读页面提取推荐方式):

# 单条命令:导航 → 等待(域名感知)→ 提取 → 关闭
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json
# 对于静态页面(Wikipedia、文档、博客),添加 --lite 完全跳过浏览器:
actionbook --rewrite-urls browser fetch "<url>" --format text --lite --json
# 无障碍树:
actionbook --block-images --rewrite-urls browser fetch "<url>" --format snapshot --max-tokens 2000 --json

选项 B:交互式多步骤模式(用于表单、点击、多页面流程):

# 步骤 1:导航
actionbook browser open "<url>"          # 或:goto, click a link

# 步骤 2:等待加载(v2 中为强制步骤)
actionbook browser wait-idle             # 等待 fetch/XHR 稳定

# 步骤 3:提取内容
actionbook browser text [selector]       # 提取文本
# 或
actionbook browser snapshot --filter interactive --max-tokens 500  # 理解页面结构

为什么 wait-idle 至关重要:

  • SPAReact、Vue、Next.js)在初始 HTML 之后通过 fetch/XHR 加载内容
  • 如果不等待,text 返回空或不完整的内容
  • wait-idle 监控所有待处理的网络请求,等待网络静默持续 500ms

对于在网络稳定后动态加载内容的页面:

actionbook browser wait-idle
actionbook browser wait-fn "document.querySelector('.results')"    # 等待特定元素
actionbook browser text ".results"

完整工作流

提醒: 本工作流中的每次网络访问都必须使用 actionbook browser 命令。 使用 curlwgetpython requests 或任何其他 HTTP 工具严格禁止。 bash 工具应用于 actionbook CLI 命令和本地文件操作(json-ui render、open)。

步骤 1:规划搜索策略

根据主题,从不同角度生成 5-8 条搜索查询:

  • 核心定义 / 概述
  • 最新进展 / 新闻
  • 技术细节 / 实现
  • 比较 / 替代方案
  • 专家观点 / 分析
  • 使用场景 / 应用

搜索顺序——始终先查询 Actionbook API,再进行搜索:

步骤 操作 原因
步骤 2(第一步) 查询 Actionbook API 在浏览之前获取 arXiv、ar5iv 和其他已知站点的已验证选择器。
步骤 3(第二步) arXiv Advanced Search 使用 Actionbook 选择器进行多字段、过滤后的学术搜索。
步骤 4(第三步) Google / Bing 搜索 用博客、新闻、代码、讨论、非学术来源进行补充。

步骤 2:查询 Actionbook API 获取选择器(始终优先执行此步骤)

在浏览任何 URL 之前,先查询 Actionbook 的索引选择器。

# 按域名搜索已索引的操作
actionbook search "<keywords>" -d "<domain>"

# 获取特定页面的详细选择器
actionbook get "<domain>:/<path>:<area>"

对研究有用的预索引站点:

站点 area_id 关键选择器
arXiv Advanced Search arxiv.org:/search/advanced:default 40+ 个选择器:字段选择、词条输入、分类复选框、日期范围筛选
ar5iv 论文 ar5iv.labs.arxiv.org:/html/{paper_id}:default h1.ltx_title_documentdiv.ltx_authorsdiv.ltx_abstractsection.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 的搜索(主要方式——最可靠):

# 简单关键词搜索
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"

# 带筛选条件的高级 URL 搜索
# searchtype: all, title, author, abstract
# start: 结果偏移量(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"

搜索策略:从宽泛开始,再逐步收窄:

  1. 首次搜索:宽泛词条(例如 "Rust" "machine learning")——目标是 50+ 条结果
  2. 如果结果太少(< 10 条):进一步放宽范围,移除日期/分类筛选
  3. 如果结果太多(> 200 条):添加更具体的词条,使用 searchtype=title
  4. 尝试 2-3 种不同的查询角度(例如框架名称、使用场景、基准测试)

选项 B:通过 batch 进行表单交互(后备方案——当 URL 搜索不足时使用):

# 使用研究标志打开 arXiv
actionbook --block-images --auto-dismiss-dialogs --no-animations browser open "https://arxiv.org/search/advanced"
actionbook browser wait-idle

# 使用 batch 处理表单——往返次数更少,更可靠
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"

# 如果批量表单提交失败(页面重新显示表单而非结果):
# → 立即回退到选项 A 的 URL 搜索
# → 不要重试表单——这是在浪费时间

arXiv 搜索能力(来自索引选择器——用于选项 B):

能力 选择器
搜索字段(标题/作者/摘要) #terms-0-field 选择
搜索词条 #terms-0-term 输入
添加布尔词条 button "Add another term +"
筛选:计算机科学 #classification-computer_science
筛选:物理、数学等 #classification-physics#classification-mathematics
日期:过去 12 个月 #date-filter_by-1 单选
日期:特定年份 #date-filter_by-2 单选 + #date-year
日期:自定义范围 #date-filter_by-3 单选 + #date-from_date / #date-to_date
显示摘要 #abstracts-0 单选

步骤 4:用 Google / Bing 搜索补充

# 通过 Google 搜索(使用 wait-idle 等待 SPA 结果)
actionbook browser open "https://www.google.com/search?q=<encoded_query>"
actionbook browser wait-idle
actionbook browser text "#search"

# 或通过 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 处理规则(来自生产环境经验)

  1. 绝不手动从搜索摘要中构造 URL。 许多 Google 摘要 URL 被截断或重新格式化。应改为:

    • 使用 actionbook browser snapshot --filter interactive 查找实际链接元素
    • 直接点击链接:actionbook browser click "a[href*='domain.com']"
    • 或从 snapshot 引用中提取 href
  2. 预计 20-30% 的 URL 会失效。 实际中,约 20 个 URL 中有 5 个返回 404。按如下方式处理:

    actionbook browser open "<url>"
    actionbook browser wait-idle
    # 检查页面是否为 404 或错误页面
    actionbook browser wait-fn "!document.title.includes('404') && !document.title.includes('Not Found')" --timeout 3000
    # 如果超时 → 页面失效,立即跳过。不要重试。
    
  3. 从 Google 摘要中抢救信息。 如果 URL 已失效但 Google 摘要包含有用信息:

    • 你已经提取的摘要文本本身就是有效数据
    • 在报告中加以使用,并注明来源已不可用
    • 在替代站点(archive.org、缓存版本)上搜索相同内容
  4. 使用 4 条以上多样化的搜索查询。 不要依赖单一搜索角度:

    • 查询 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:深度阅读来源

推荐:使用 browser fetch 进行一次性页面提取(处理等待 + 提取 + 清理):

# 快速文本提取(最常见)
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json

# 静态页面(Wikipedia、文档、博客)——完全跳过浏览器
actionbook --rewrite-urls browser fetch "<url>" --format text --lite --json

# 页面结构分析
actionbook --block-images --rewrite-urls browser fetch "<url>" --format snapshot --max-tokens 2000 --json

# 带 token 预算的 LLM 上下文管理
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --max-tokens 4000 --json

对于交互式工作流(表单、点击),回退到多步骤:

actionbook browser open "<url>"
actionbook browser wait-idle                    # 强制:等待网络
actionbook browser text                         # 整页文本(后备方案)
actionbook browser text "<selector>"            # 如已索引,使用 Actionbook 选择器

如果页面内容似乎不完整,进行调试:

# 检查可能阻止渲染的 JS 错误
actionbook browser console --level error

# 检查特定元素是否存在
actionbook browser wait-fn "document.querySelector('.content')" --timeout 5000

# 检查元素属性
actionbook browser info ".content"

对于 arXiv 论文,按以下顺序尝试来源:

# 1. arXiv 摘要(最可靠)——使用 fetch
actionbook --block-images browser fetch "https://arxiv.org/abs/<arxiv_id>" --format text --json

# 2. HuggingFace 论文页面
actionbook --block-images browser fetch "https://huggingface.co/papers/<arxiv_id>" --format text --json

# 3. ar5iv HTML(结构化,但新论文上可能失败)——使用 --lite 获取静态 HTML
actionbook browser fetch "https://ar5iv.org/html/<arxiv_id>" --format text --lite --json
# 注意:如果内容太短,ar5iv 未渲染。回退。

# 4. GitHub 仓库(来自搜索结果)——使用 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"

对于未索引的站点,使用 snapshot 发现结构:

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

步骤 6:综合研究结果

将收集的信息组织成一份条理清晰的报告:

  1. 概述 / 执行摘要
  2. 主要发现
  3. 详细分析
  4. 支撑数据 / 证据
  5. 影响 / 意义
  6. 来源

步骤 7:生成 json-ui JSON 报告

按照 @actionbookdev/json-ui 模式编写 JSON 文件。使用 Write 工具。

输出路径: ./output/<topic-slug>.json(或用户指定的 --output 路径)

步骤 8:渲染 HTML

关键:在放弃之前,你必须尝试所有后备方法。不要在第一次失败时就停止。

重要:始终对 JSON_FILE 和 HTML_FILE 使用绝对路径。

逐一尝试每种方法,直到有一种成功:

# 方法 1:Monorepo 绝对路径(如果在 actionbook 项目内,最可靠)
node "$(git rev-parse --show-toplevel)/packages/json-ui/dist/cli.js" render /absolute/path/to/report.json -o /absolute/path/to/report.html

# 方法 2:全局安装(如果用户执行了:cd packages/json-ui && npm link
json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html

# 方法 3:npx(如果已发布到 npm)
npx @actionbookdev/json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html

绝不默默放弃。 如果所有方法都失败,请告知用户:

  1. JSON 报告保存在 <path>
  2. 要启用 HTML 渲染,请运行:cd <actionbook-repo>/packages/json-ui && npm link

步骤 9:在浏览器中打开

# macOS
open <report.html>

# Linux
xdg-open <report.html>

步骤 10:关闭浏览器

完成后始终关闭浏览器:

actionbook browser close

错误恢复模式

使用高级浏览器能力进行智能错误恢复:

模式:页面加载失败

# 1. 打开页面
actionbook browser open "<url>"
actionbook browser wait-idle --timeout 15000

# 2. 检查 JS 错误
actionbook browser console --level error
# 如果发现错误 → 页面已损坏,跳到下一个来源

# 3. 检查内容是否已渲染
actionbook browser wait-fn "document.body.innerText.length > 100" --timeout 5000
# 如果超时 → 内容未渲染,尝试后备方案

模式:未找到选择器

# 1. 使用 snapshot 发现实际页面结构
actionbook browser snapshot --filter interactive --max-tokens 800

# 2. 或检查特定区域
actionbook browser info "<parent_selector>"
# 返回:建议的选择器、可见性、标签信息

# 3. 调整选择器后重试

模式:反爬虫检测

# 1. 如果初始加载返回 CAPTCHA 或访问被拒:
actionbook browser close

# 2. 使用隐身模式重新打开
actionbook --stealth --no-animations --auto-dismiss-dialogs browser open "<url>"
actionbook browser wait-idle

# 3. 如果仍然被拦截,轮换指纹
actionbook browser fingerprint rotate --os windows
actionbook browser open "<url>"
actionbook browser wait-idle

模式:SPA 内容未加载

# 1. 等待网络
actionbook browser wait-idle --idle-time 1000 --timeout 15000

# 2. 等待特定元素
actionbook browser wait-fn "document.querySelector('.results')" --timeout 10000

# 3. 如果仍然为空,检查控制台
actionbook browser console --level error

# 4. 尝试点击加载触发器
actionbook browser snapshot --filter interactive --max-tokens 300
# 查找「Load More」、「Show Results」等

完整错误处理参考

错误 恢复策略
浏览器打开失败 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 render 崩溃 检查 MetricsGrid——suffix/value 必须是纯字符串
npx json-ui 404 尝试全部 3 种方法(monorepo、全局、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> 当 click/type 未按预期工作时 调试元素可见性
--stealth 当站点返回 CAPTCHA 或访问被拒时 在重试时添加

要避免的常见错误:

  • browser fetch 一条命令就能完成时,仍手动使用 open → wait-idle → text → close
  • 对静态页面(Wikipedia、文档、博客)不使用 --lite——浪费 5-10 秒在浏览器启动上
  • 不使用 --rewrite-urls——x.com 和 reddit.com 有激进的反爬虫机制会拦截抓取
  • 在交互模式下导航后忘记使用 wait-idle(内容显示为空)
  • 表单交互不使用 batch(慢、不可靠)
  • 重试失效 URL 而不是跳过它
  • 从搜索摘要中手动构造 URL 而不是点击链接
  • 只使用一个搜索查询角度(始终使用 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 报告头部 badgepoweredBy
PaperHeader 论文元数据 titlearxivIddatecategories
AuthorList 作者 authors: [{name, affiliation}]maxVisible
Section 主要章节 titleiconpaper/star/bulb/chart/code/link/info/warning
Prose 富文本 content(支持 粗体斜体代码、列表)
Abstract 摘要文本 texthighlights: ["keyword"]
ContributionList 编号发现 items: [{badge, title, description}]
MethodOverview 逐步说明 steps: [{step, title, description}]
MetricsGrid 关键统计 metrics: [{label, value, trend, suffix}]cols
ResultsTable 数据表格 columnsrowshighlights: [{row, col}]
Table 通用表格 columns: [{key, label}]rowsstripedcompact
Callout 信息/提示/警告 typeinfo/tip/warning/important/note)、titlecontent
Highlight 引用块 typequote/important/warning/code)、textsource
KeyPoint 关键发现卡片 icontitledescriptionvariant
CodeBlock 代码片段 codelanguagetitleshowLineNumbers
Formula LaTeX 公式 latexblocklabel
Figure 图片 images: [{src, alt, width}]labelcaption
Image 单张图片 srcaltcaptionwidth
DefinitionList 术语/定义 items: [{term, definition}]
LinkGroup 来源链接 links: [{href, label, icon}]
Grid 网格布局 cols、children
Card 卡片容器 paddingsm/md/lg)、shadow
TagList 标签 tags: [{label, color, href}]
BrandFooter 页脚 timestampattributiondisclaimer

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 属性 valuesuffix,以及 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
# 如果 wait-fn 超时 → 内容未渲染,回退到其他来源

推荐来源优先级

优先级 来源 获取内容 可靠性
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 Scholarscholar.google.com)——已被 Actionbook 索引
  • Semantic Scholarsemanticscholar.org
  • Papers With Codepaperswithcode.com
  • 会议论文集网站

质量指南

  1. 广度:从至少 3-5 个不同的来源进行研究
  2. 深度:阅读全文,而不仅仅是摘要
  3. 准确性:跨来源交叉验证事实
  4. 结构:为每种内容类型使用适当的 json-ui 组件
  5. 归属:始终在报告中包含来源链接
  6. 时效性:在相关性相同的情况下,优先使用较新的来源