mcpField
D
deepxiv

deepxiv

github.com/wanshuiyin生产力18.2k484 次安装4 天前更新
代码仓库

关于 deepxiv

deepxiv 是面向研究人员的论文搜索与渐进式阅读技能,可在读取全文前逐步查看文献。它通过 DeepXiv SDK 搜索论文,并获取摘要、章节概览或指定章节,也支持趋势结果和元数据查询。

主要功能

  1. 01按主题或 ID 搜索论文
  2. 02获取论文摘要和章节概览
  3. 03阅读指定论文章节
  4. 04查找近期热门论文
  5. 05获取 Semantic Scholar 元数据

适用场景

  1. 01查找研究主题相关论文
  2. 02全文阅读前快速了解论文
  3. 03仅查看相关章节
  4. 04查询热门论文或出版元数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wanshuiyin/auto-claude-code-research-in-sleep --skill deepxiv

安装后在 Claude Code 中输入/deepxiv确认已加载。

详细介绍

DeepXiv 论文搜索与渐进式阅读

搜索主题或论文 ID:$ARGUMENTS

角色与定位

DeepXiv 是用于渐进式阅读的文献来源:

技能来源最适合
/arxivarXiv API批量搜索、PDF 下载、元数据
/deepxivDeepXiv SDK渐进式章节级阅读
/semantic-scholarS2 API已发表论文的出版 venue 元数据、引用次数
/alphaxivwww.alphaxiv.org快速获取一篇论文经 LLM 优化的摘要,并在需要时回退到 LaTeX 源文件

如果想避免过早加载全文,请使用 DeepXiv。

常量

  • DEEPXIV_FETCHER — 规范名称为 deepxiv_fetch.py,按 shared-references/integration-contract.md §2 解析 (策略 D1 — 主路径 + 回退级联)。若无法解析(规范解析链已耗尽), 则回退到原始 deepxiv CLI(各命令下方有说明)。
  • MAX_RESULTS = 10 — 默认返回结果数。

覆盖项(追加到参数中):

  • /deepxiv "agent memory" - max: 5 — 返回排名前 5 的结果
  • /deepxiv "2409.05591" - brief — 快速查看论文摘要
  • /deepxiv "2409.05591" - head — 获取元数据和章节概览
  • /deepxiv "2409.05591" - section: Introduction — 仅阅读一个章节
  • /deepxiv "trending" - days: 14 - max: 10 — 获取热门论文
  • /deepxiv "karpathy" - web — DeepXiv 网络搜索
  • /deepxiv "258001" - sc — 按 ID 获取 Semantic Scholar 元数据

设置

DeepXiv 是可选的。如果未安装 CLI,请告知用户:

pip install deepxiv-sdk

首次使用时,deepxiv 会自动注册一个免费令牌,并将其保存在 ~/.env 中。

工作流

步骤 1:解析参数

解析 $ARGUMENTS,提取:

  • 查询或 ID:论文主题、arXiv ID 或 Semantic Scholar ID
  • - max: N:覆盖 MAX_RESULTS
  • - brief:获取论文摘要
  • - head:获取元数据和章节映射
  • - section: NAME:获取指定章节
  • - trending 或查询 trending:获取热门论文
  • - days: 7|14|30:热门内容的时间范围
  • - web:执行 DeepXiv 网络搜索
  • - sc:按 ID 获取 Semantic Scholar 元数据

如果主参数看起来像 arXiv ID,且未指定模式,则默认使用 - brief。

步骤 2:定位适配器

通过规范的严格安全链解析 $DEEPXIV_FETCHER(参见 shared-references/integration-contract.md §2)。 策略 D1 级联:优先使用解析出的适配器;若无法解析(规范解析链已耗尽), 则回退到步骤 3 中说明的原始 deepxiv CLI 命令。

cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
    ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
    ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
DEEPXIV_FETCHER=".aris/tools/deepxiv_fetch.py"
[ -f "$DEEPXIV_FETCHER" ] || DEEPXIV_FETCHER="tools/deepxiv_fetch.py"
[ -f "$DEEPXIV_FETCHER" ] || { [ -n "${ARIS_REPO:-}" ] && DEEPXIV_FETCHER="$ARIS_REPO/tools/deepxiv_fetch.py"; }
[ -f "$DEEPXIV_FETCHER" ] || DEEPXIV_FETCHER=""

# Smoke test (optional — adapter resolution shown to user). The cascade
# in Step 3 below branches purely on `[ -n "$DEEPXIV_FETCHER" ]`; a
# resolved-but-non-functional adapter is not currently auto-demoted.
if [ -n "$DEEPXIV_FETCHER" ]; then
  echo "DeepXiv adapter resolved at: $DEEPXIV_FETCHER" >&2
else
  echo "DeepXiv adapter unresolved (canonical chain exhausted); raw deepxiv CLI fallback will be used." >&2
fi
步骤 3:执行最精简的命令

搜索论文

python3 "$DEEPXIV_FETCHER" search "QUERY" --max MAX_RESULTS

回退方式:

deepxiv search "QUERY" --limit MAX_RESULTS --format json

摘要

python3 "$DEEPXIV_FETCHER" paper-brief ARXIV_ID

回退方式:

deepxiv paper ARXIV_ID --brief --format json

章节映射

python3 "$DEEPXIV_FETCHER" paper-head ARXIV_ID

回退方式:

deepxiv paper ARXIV_ID --head --format json

指定章节

python3 "$DEEPXIV_FETCHER" paper-section ARXIV_ID "SECTION_NAME"

回退方式:

deepxiv paper ARXIV_ID --section "SECTION_NAME" --format json

热门论文

python3 "$DEEPXIV_FETCHER" trending --days 7 --max MAX_RESULTS

回退方式:

deepxiv trending --days 7 --limit MAX_RESULTS --output json

网络搜索

python3 "$DEEPXIV_FETCHER" wsearch "QUERY"

回退方式:

deepxiv wsearch "QUERY" --output json

Semantic Scholar 元数据

python3 "$DEEPXIV_FETCHER" sc "SEMANTIC_SCHOLAR_ID"

回退方式:

deepxiv sc "SEMANTIC_SCHOLAR_ID" --output json
步骤 4:展示结果

搜索时,展示简洁的表格:

| # | ID | Title | Year | Citations | Notes |
|---|----|-------|------|-----------|-------|

阅读论文时,展示:

  • 标题
  • arXiv ID
  • 作者
  • 可用时注明 venue/日期
  • TLDR 或摘要概述
  • 建议的后续步骤:brief → head → section
步骤 5:仅在需要时深入阅读

按以下顺序逐步深入:

  1. search
  2. paper-brief
  3. paper-head
  4. paper-section
  5. 仅在必要时阅读全文

如果摘要或某个章节已经能回答问题,就不要直接阅读全文。

步骤 6:更新研究 Wiki(如已启用)

当项目中存在 research-wiki/ 时必须执行;否则静默跳过。如果 Wiki 目录存在,请按照 shared-references/wiki-helper-resolution.md 中的规范链(变体 B——警告并跳过)解析 $WIKI_SCRIPT。将本次调用期间已进行实质性阅读(简要 / 标题 / 章节 / 全文)的论文录入 Wiki——仅有 search 命中但未深入阅读的论文无需录入:

if [ -d research-wiki/ ]; then
  cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
  ARIS_REPO="${ARIS_REPO:-$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null)}"
  if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
    ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
  fi
  WIKI_SCRIPT=".aris/tools/research_wiki.py"
  [ -f "$WIKI_SCRIPT" ] || WIKI_SCRIPT="tools/research_wiki.py"
  [ -f "$WIKI_SCRIPT" ] || { [ -n "${ARIS_REPO:-}" ] && WIKI_SCRIPT="$ARIS_REPO/tools/research_wiki.py"; }
  [ -f "$WIKI_SCRIPT" ] || {
    echo "WARN: research_wiki.py not found; depth-read summary delivered, wiki ingest skipped. Fix: bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or cp <ARIS-repo>/tools/research_wiki.py tools/." >&2
    WIKI_SCRIPT=""
  }
  if [ -n "$WIKI_SCRIPT" ]; then
    for each arxiv_id the user asked this skill to read in depth:
        python3 "$WIKI_SCRIPT" ingest_paper research-wiki/ \
            --arxiv-id "<arxiv_id>"
  fi
fi

该辅助脚本会在一次调用中处理元数据 / slug / 去重 / 页面 / 索引 / 日志——不要手动编写 papers/<slug>.md。请参阅 shared-references/integration-contract.md。 按上述方式解析 $WIKI_SCRIPT 后,使用 python3 "$WIKI_SCRIPT" sync research-wiki/ --arxiv-ids <id1>,<id2>,... 补录遗漏的论文。

关键规则

  • 如有适配器脚本,优先使用它,而不是直接运行 deepxiv 命令。
  • DeepXiv 是可选的。如果不可用,请提供安装命令,并建议使用 /arxiv 或 /research-lit "topic" - sources: web。
  • 使用章节级阅读以节省 Token。
  • 将 DeepXiv 视为 /arxiv 和 /semantic-scholar 的补充,而非替代品。
  • 如果结果与 Semantic Scholar 收录的已发表会议论文重叠,请在最终摘要中保留更完整的会议论文元数据。

评论

支持 Markdown