ActiveResearch active-research

深度研究和分析工具,能够针对任何主题、领域、论文或技术生成全面的HTML报告。

文献检索 0 次安装 0 次浏览 更新于 2/27/2026

Active Research

分析任何主题、领域或论文,并使用Actionbook浏览器自动化和json-ui渲染生成美观的HTML报告。

使用方法

/active-research <topic>
/active-research <topic> --lang en
/active-research <topic> --lang zh
/active-research <topic> --lang both
/active-research <topic> --output ./reports/my-report.json

或者简单地告诉Claude: “研究XXX并生成报告”

参数

参数 必需 默认 描述
topic - 研究的主题(任何文本)
--lang en 语言模式:en(默认)、zhboth
--output ./output/<topic-slug>.json JSON报告的输出路径

主题检测

模式 类型 策略
arxiv:XXXX.XXXXX 论文 arXiv高级搜索(步骤2b)+ ar5iv深度阅读
doi:10.XXX/... 论文 解析DOI,然后arXiv高级搜索寻找相关工作
学术关键词(论文、研究、模型、算法) 学术主题 arXiv高级搜索(步骤2b)+ Google寻找非学术来源
URL 特定页面 获取并分析页面
一般文本 主题研究 Google搜索+如果相关则arXiv高级搜索

架构

┌──────────┐     ┌──────────────┐     ┌──────────────┐     ┌──────────┐
│  Claude   │────▶│  Actionbook  │────▶│  Web Pages   │────▶│ Extract  │
│  Code     │     │  Browser CLI │     │  (multiple)  │     │ Content  │
└──────────┘     └──────────────┘     └──────────────┘     └─────┬────┘
      │                                                           │
      │          ┌──────────────┐     ┌──────────────┐           │
      ├─────────▶│  Actionbook  │     │ arXiv Adv.   │           │
      │          │  search/get  │────▶│ Search Form  │           │
      │          │  (selectors) │     │ (40+ fields) │           │
      │          └──────────────┘     └──────────────┘           │
      │                                                           │
      │    Actionbook索引arXiv表单选择器,               │
      │   使得特定于字段、过滤的学术              │
      │   搜索成为可能,WebFetch/WebSearch无法做到。             │
      │                                                           │
┌──────────┐     ┌──────────────┐     ┌──────────────┐           │
│  Open in │◀────│   json-ui    │◀────│  Write JSON  │◀──────────┘
│  Browser │     │   render     │     │  Report      │  Synthesize
└──────────┘     └──────────────┘     └──────────────┘

为什么使用Actionbook,而不是WebFetch/WebSearch?

功能 Actionbook WebFetch/WebSearch
操作复杂网络表单(下拉菜单、复选框、日期选择器) 是 — 使用索引选择器
arXiv: 按作者、标题、摘要单独搜索 是 — #terms-0-field选择 否 — 仅关键词
arXiv: 按主题(CS、Physics、Math等)过滤 是 — 类别复选框
arXiv: 按日期范围或特定年份过滤 是 — 日期输入
读取经过验证的选择器的页面(无需猜测) 是 — actionbook get 否 — 原始HTML解析
与任何索引网站的UI交互 是 — 点击、输入、选择 否 — 只读

这是Actionbook对研究的核心价值:它将网络表单变成了AI代理的结构化、可编程接口。

必须使用Actionbook CLI

始终使用actionbook browser命令进行网络浏览。绝不使用WebFetch或WebSearch。

actionbook browser open <url>          # 导航到页面
actionbook browser snapshot            # 获取可访问性树
actionbook browser text [selector]     # 提取文本内容
actionbook browser screenshot [path]   # 捕获视觉
actionbook browser click <selector>    # 点击元素
actionbook browser close               # 关闭浏览器(始终在结束时执行)

完整工作流程

第1步:计划搜索策略

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

  • 核心定义/概述
  • 最新发展/新闻
  • 技术细节/实现
  • 比较/替代方案
  • 专家意见/分析
  • 用例/应用

搜索顺序 — 始终先查询Actionbook API,然后搜索:

步骤 动作 为什么
步骤2(首先) 查询Actionbook API 在浏览之前获取arXiv高级搜索表单、ar5iv论文和其他已知网站的验证选择器。这是所有后续步骤的基础。
步骤3(其次) arXiv高级搜索 使用步骤2中的Actionbook选择器执行多字段、过滤的学术搜索。即使非学术主题通常也有相关论文。
步骤4(第三) Google/Bing搜索 用博客、新闻、代码、讨论、非学术来源补充。

**重要提示:**始终先查询Actionbook API(步骤2),然后使用它们在arXiv高级搜索(步骤3)中。这就是Actionbook驱动的研究与WebFetch/WebSearch的根本不同 —— 代理在打开浏览器之前就知道每个表单字段的确切选择器。

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

**在浏览任何URL之前,查询Actionbook的索引选择器。**这为您提供了验证的CSS/XPath选择器,而不是猜测。

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

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

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

网站 area_id 关键选择器
arXiv高级搜索 arxiv.org:/search/advanced:default 40+选择器:字段选择、术语输入、类别复选框(CS/Physics/Math/…)、日期范围过滤器、交叉列表控制 —— 用于步骤3
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 全局搜索超过2.4M+文章

对于您计划访问的任何URL,运行actionbook search "<keywords>" -d "<domain>"以检查是否已索引。如果站点已索引,请使用索引选择器;对于未索引的站点,回退到actionbook browser snapshot

示例:在搜索之前获取arXiv高级搜索选择器:

# 查询Actionbook以获取arXiv表单选择器
actionbook get "arxiv.org:/search/advanced:default"
# 返回40+选择器:#terms-0-field、#terms-0-term、#classification-computer_science等。

第3步:使用Actionbook选择器进行arXiv高级搜索

关键区别:WebFetch/WebSearch只能进行简单的关键词搜索。Actionbook已经索引了整个arXiv高级搜索表单,有40+验证的选择器(在步骤2中查询),使得多字段、多标准学术搜索成为可能 —— 就像人类研究者会使用该表单一样。

使用步骤2中获得的选择器,代理可以:

功能 Actionbook选择器 WebFetch/WebSearch
按特定字段搜索(标题、作者、摘要) #terms-0-field选择 → 选择字段 不可能
添加多个搜索词,使用布尔逻辑 button "Add another term +" 不可能
按主题(CS、Physics、Math等)过滤 #classification-computer_science复选框 不可能
按日期范围过滤 #date-filter_by-3单选 + #date-from_date / #date-to_date 不可能
按特定年份过滤 #date-filter_by-2单选 + #date-year输入 不可能
包括/排除交叉列出的论文 #classification-include_cross_list-0/1单选 不可能
控制结果显示 #size选择、#abstracts-0/1单选 不可能

示例:搜索特定作者的最新CS论文:

# 打开arXiv高级搜索
actionbook browser open "https://arxiv.org/search/advanced"

# 1.将搜索字段设置为"作者"并输入作者姓名
actionbook browser click "#terms-0-field"
actionbook browser click "option[value='author']"
actionbook browser type "#terms-0-term" "Yann LeCun"

# 2.仅过滤计算机科学
actionbook browser click "#classification-computer_science"

# 3.限制过去12个月
actionbook browser click "#date-filter_by-1"

# 4.在结果中显示摘要
actionbook browser click "#abstracts-0"

# 5.提交搜索
actionbook browser click "button:has-text('Search'):nth(2)"

# 6.提取结果
actionbook browser text "#main-container"

示例:在日期范围内按标题关键词搜索:

actionbook browser open "https://arxiv.org/search/advanced"

# 在"标题"字段中搜索
actionbook browser click "#terms-0-field"
actionbook browser click "option[value='title']"
actionbook browser type "#terms-0-term" "large language model agent"

# 日期范围:2025-01至2026-02
actionbook browser click "#date-filter_by-3"
actionbook browser type "#date-from_date" "2025-01-01"
actionbook browser type "#date-to_date" "2026-02-09"

# 提交并提取
actionbook browser click "button:has-text('Search'):nth(2)"
actionbook browser text "#main-container"

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

在arXiv之后,使用Google/Bing找到非学术来源(博客、新闻、文档、代码、讨论):

# 通过Google搜索
actionbook browser open "https://www.google.com/search?q=<encoded_query>"
actionbook browser text "#search"

# 或者通过Bing搜索
actionbook browser open "https://www.bing.com/search?q=<encoded_query>"
actionbook browser text "#b_results"

解析搜索结果以提取URL和片段。收集最相关的5-10个URL。对于每个发现的URL,查询Actionbook API(步骤2模式)以检查站点是否已索引,然后访问。

第5步:深度阅读来源

对于每个相关URL,首先查询Actionbook API(与步骤2相同)以检查站点是否已索引,然后使用验证的选择器:

actionbook browser open "<url>"
actionbook browser text                # 完整页面文本(回退)
actionbook browser text "<selector>"   # 如果已索引,使用Actionbook选择器

对于arXiv论文,尝试按此顺序使用源(新论文经常在ar5iv上失败):

# 1.首先尝试ar5iv(最佳的结构化选择器来自Actionbook)
actionbook browser open "https://ar5iv.org/html/<arxiv_id>"
actionbook browser text "h1.ltx_title_document"  # 标题
actionbook browser text "div.ltx_authors"         # 作者
actionbook browser text "div.ltx_abstract"        # 摘要
# 注意:section.ltx_section经常在新论文上失败 — 使用"article"作为回退

# 2.如果ar5iv内容被截断(<5KB),回退到arxiv摘要+其他来源
actionbook browser open "https://arxiv.org/abs/<arxiv_id>"
actionbook browser text "main"

# 3.用HuggingFace模型卡和GitHub README补充完整细节
actionbook browser open "https://huggingface.co/papers/<arxiv_id>"
actionbook browser text "main"

**关键教训:**不要仅依赖ar5iv。始终交叉引用3-4个来源以获得完整性。

对于Google Scholar(由Actionbook索引):

actionbook browser open "https://scholar.google.com"
# 输入搜索:使用选择器#gs_hdr_tsi
actionbook browser click "#gs_hdr_tsi"
# ...输入查询,点击#gs_hdr_tsb进行搜索

对于未索引的站点,使用快照发现页面结构:

actionbook browser open "<url>"
actionbook browser snapshot            # 获取可访问性树以找到选择器
actionbook browser text "<discovered_selector>"

第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的绝对路径。**相对路径在git rev-parse返回绝对仓库根目录时会中断。

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

# 方法1:npx(推荐 — 如果npm可用,任何地方都有效)
npx @actionbookdev/json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html

# 方法2:全局安装(如果用户运行:npm install -g @actionbookdev/json-ui)
json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html

# 方法3: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

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

  1. JSON报告已保存在<path>
  2. 要安装渲染器,请运行:npm install -g @actionbookdev/json-ui

第9步:在浏览器中打开

# macOS
open <report.html>

# Linux
xdg-open <report.html>

第10步:关闭浏览器

始终在完成后关闭浏览器:

actionbook browser close

json-ui报告模板

重要提示:始终包括BrandHeader和BrandFooter。

{
  "type": "Report",
  "props": { "theme": "auto" },
  "children": [
    {
      "type": "BrandHeader",
      "props": {
        "badge": "Deep Research Report",
        "poweredBy": "Actionbook"
      }
    },
    {
      "type": "Section",
      "props": { "title": "概览", "icon": "paper" },
      "children": [
        {
          "type": "Prose",
          "props": {
            "content": "英文概览..."
          }
        }
      ]
    },
    {
      "type": "Section",
      "props": { "title": "关键发现", "icon": "star" },
      "children": [
        {
          "type": "ContributionList",
          "props": {
            "items": [
              {
                "badge": "Finding",
                "title": "...",
                "description": "..."
              }
            ]
          }
        }
      ]
    },
    {
      "type": "Section",
      "props": { "title": "详细分析", "icon": "bulb" },
      "children": [
        {
          "type": "Prose",
          "props": { "content": "..." }
        }
      ]
    },
    {
      "type": "Section",
      "props": { "title": "关键指标", "icon": "chart" },
      "children": [
        {
          "type": "MetricsGrid",
          "props": { "metrics": [], "cols": 3 }
        }
      ]
    },
    {
      "type": "Section",
      "props": { "title": "来源", "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."
      }
    }
  ]
}

如果用户明确要求双语输出,可以使用i18n对象(见i18n部分)。

论文报告模板(针对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(支持粗体斜体代码、列表)
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作为i18n对象 text.replace不是函数 suffix必须是纯字符串,而不是{ "en": ..., "zh": ... }
MetricsGrid.value作为数字 渲染错误 value必须是字符串(例如,"58.5"而不是58.5)
缺少BrandHeader/BrandFooter 报告看起来破损 始终包括两者
Table行值作为i18n对象 单元格中的[object Object] 行单元格值必须是纯字符串。列label支持i18n,但行数据不支持。使用"Runtimes / 中文标签"而不是{ "en": "Runtimes", "zh": "中文标签" }
非常长的Prose内容 截断渲染 分割成多个Prose块或使用子节

i18n支持

默认情况下(--lang en),写纯字符串:

"英文文本"

如果用户或代理明确选择双语输出(--lang both),请使用i18n对象:

{ "en": "英文文本", "zh": "中文文本" }

对于--lang zh,使用纯中文字符串。

例外:

  • MetricsGrid属性valuesuffix必须始终是纯字符串。
  • Table行单元格值必须是纯字符串(列label支持i18n,但行数据不支持)。对于双语行,使用组合字符串如"Runtimes / 中文标签"。

学术论文支持

arXiv论文

ar5iv.org HTML(阅读首选,但对3个月以内的论文经常不完整):

元素 选择器(Actionbook验证) 可靠性 回退
标题 h1.ltx_title_document div.ltx_abstract包括标题上下文
作者 div.ltx_authors
摘要 div.ltx_abstract
全文 article 使用当章节选择器失败
章节 section.ltx_section 新论文上低 article获取所有内容
章节标题 h2.ltx_title_section 新论文上低 article文本解析
图表 figure.ltx_figure
表格 table.ltx_tabular
参考文献 .ltx_bibliography

**注意:**对于最近提交的大约3个月以内的论文,ar5iv经常呈现不完整的内容。始终检查actionbook browser text 2>&1 | wc -c — 如果<5KB,页面没有完全呈现。回退到其他来源。

arXiv API(通过actionbook browser获取元数据):

actionbook browser open "http://export.arxiv.org/api/query?id_list={arxiv_id}"
actionbook browser text

推荐论文来源优先级

根据测试,使用此优先级顺序以获得最大覆盖范围:

优先级 来源 您将获得什么 可靠性
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 引用、相关工作

**关键见解:**不要依赖单一来源。arxiv摘要+HuggingFace+GitHub的组合通常可以提供90%+所需的内容,即使ar5iv失败。

其他学术来源

使用actionbook browser访问并提取内容:

  • Google Scholar(scholar.google.com)— Actionbook索引,使用#gs_hdr_tsi进行搜索
  • Semantic Scholar(semanticscholar.org
  • Papers With Code(paperswithcode.com
  • 会议论文集网站

错误处理

错误 动作
浏览器无法打开 运行actionbook browser status,重试
页面加载超时(30秒) 跳过来源,尝试下一个。常见于papers.cool、慢速学术站点
ar5iv内容被截断(<5KB) 论文对ar5iv来说太新了。回退到arxiv摘要+HuggingFace+GitHub
section.ltx_section未找到 ar5iv呈现不完整。使用actionbook browser text "article""main"代替
Actionbook选择器未找到 使用actionbook browser snapshot发现实际页面结构
actionbook search返回无结果 网站未索引。使用actionbook browser snapshot手动查找选择器
json-ui渲染崩溃(text.replace 检查MetricsGridsuffix/value — 必须是纯字符串,而不是i18n对象
npx @actionbookdev/json-ui失败 运行npm install -g @actionbookdev/json-ui,然后使用json-ui render重试。如果仍然失败,尝试monorepo本地路径
无搜索结果 扩大搜索词,尝试不同角度
渲染失败 保存JSON,告诉用户路径,并建议:npm install -g @actionbookdev/json-ui

**重要提示:**始终在结束之前运行actionbook browser close,即使出现错误。

质量指南

  1. 广度:从至少3-5个不同的来源进行研究
  2. 深度:阅读全文,不仅仅是片段
  3. 准确性:在不同来源之间交叉引用事实
  4. 结构:使用适当的json-ui组件为每种内容类型
  5. 归属:始终在报告中包含源链接
  6. 新鲜度:在相关性相等时优先选择最近的来源

双语内容注意事项(可选)

当使用--lang both时,zh字段应该自然书写(不是逐字翻译)。

实用规则:

  1. 保持不同语言中的事实相同(数字、日期、源链接)。
  2. 保持表格文本简短易读。
  3. 在没有稳定的中文术语时,保留英文中的技术术语。
  4. 优先考虑清晰度而不是逐字翻译。