导语

过去一周,关于 Agentic AI for Science 的讨论继续升温。但一旦场景从“找几篇相关论文”进入“做系统综述、追 related works、补 citation chain”,很多科研 Agent 会暴露同一个短板:它们能召回片段,却拿不到完整、可分页、可扩展的论文关系层。科研 RAG 的下一步,不只是 semantic search,而是把论文、引用、参考文献和相关工作真正变成可调用的数据工作流。

正文

热点背景:Agent 能写代码了,但科研工作流的瓶颈转向“验证与扩展”

7 月 28 日,OpenAI 发布《Scientific computing in the age of agentic AI》,讨论科研软件正在进入 agent-assisted 的新阶段。更早一些,Anthropic 在 6 月 30 日推出 Claude Science,把科研工作台直接做成了带技能、连接器和本地算力调度的工作环境。

这类信号说明一件事:科研 Agent 的问题,已经不只是“能不能回答一个问题”,而是“能不能把检索、验证、扩展、追溯做成稳定工作流”。在这个阶段,单纯返回若干高相关 chunk 已经不够,因为系统综述、综述扩写、related works 补全,本质上都依赖一个可扩展的 citation network。

技术问题:semantic chunk 命中了,不等于论文关系拿全了

很多团队第一次做科研 RAG,默认思路是:

  1. 用自然语言问题做语义检索。
  2. 取前 5 到 10 个 chunk。
  3. 让模型总结结论。

这个链路适合“快速找证据”,但不适合“系统性扩展文献池”。

原因很简单。chunk-level 检索回答的是“哪些片段和问题相关”,而系统综述常见的问题是:

  • 这篇 paper 被谁引用了?
  • 它引用了哪些关键前作?
  • 与它相关、但没有被当前 query 命中的 works 是什么?
  • 如果 citations 或 references 很长,Agent 怎么持续翻页,而不是只看截断列表?

这也是为什么 Sciverse 把 meta-paper-relations 单独做成公开接口,而不是把引用关系混在 meta-search 的结果里。根据最新 llms-full.txt,官方明确把它定义为“paginate a paper’s citations, references, and related works”,并强调它存在的原因,是论文关系本身可能是无界数组,meta-search 里最多只会内联截断信息。

行业对比:地图、索引和工作流数据层不是一回事

下面这个对比,不是为了说谁替代谁,而是为了区分定位。

维度 Sciverse OpenAlex Semantic Scholar Crossref
结构化元数据检索 支持 支持
语义证据片段检索 支持 agentic-search 非核心 部分场景可替代 非核心
论文关系分页 支持独立 meta-paper-relations 可做图谱查询,但常需自行封装 强于关系发现,但 Agent 工作流封装程度因接入方式而异 非核心
原文上下文回读 支持 content 非核心 非核心 非核心
Figure / Table 资源 支持 resource 非核心 非核心 非核心
面向 Agent 的调用链 明确按检索、关系、上下文、资源拆层 更像开放学术图谱 更偏 paper discovery / citation use case 更偏 DOI 与出版元数据基础设施

如果用一句话概括:OpenAlex 更像地图,Crossref 更像出版索引,Semantic Scholar 强在 paper discovery 和 citation use case,而 Sciverse 更像面向科研 Agent 的 AI-ready 科学数据层,重点不在“返回一张论文表”,而在“让 Agent 能沿着 evidence、metadata、relation、content 一层层往下走”。

Sciverse 的切入点:把“论文关系扩展”做成 Agent 可调用接口

Sciverse 当前公开定位不是普通搜索框,而是面向科研 Agent 的 scientific evidence data API / research-agent data layer。它的价值在于把科研工作流拆成几层彼此可组合的接口:

  • meta-search:先定位目标论文,取到 unique_id
  • meta-paper-relations:再按 CITATIONSREFERENCESRELATED_WORKS 分页扩展关系
  • content:必要时按 doc_id + offset 回读原文上下文
  • resource:进一步拿 Figure / Table 等资源
  • meta-catalog:让 Agent 先知道哪些元数据字段能筛、能排、能投影

这套拆法很重要。因为在科研 Agent 里,“找论文”只是入口,“扩文献池”和“证据回读”才是后半程。

技术拆解:一个系统综述 Agent 的最小关系扩展链路

如果今天要做一个 Literature Review Agent,更合理的链路通常不是“semantic search 一步到位”,而是下面这样:

步骤 接口 作用 关键返回
1 meta-search 先按标题、DOI、年份或关键词定位目标论文 unique_idtitledoidoc_id
2 meta-paper-relations 拉取完整引用、参考文献或 related works,并分页遍历 itemstotal_countpagepage_size
3 meta-searchagentic-search 对关系结果二次筛选,构建候选论文池 元数据或 evidence chunk
4 content 对关键论文做原文回读和证据核验 textnext_offsetmore
5 resource 在需要图表证据时补 Figure / Table 二进制资源文件

这里最容易被忽略的点有两个。

第一,meta-paper-relations 用的是 unique_id,不是 doc_id
第二,semantic chunk 检索和论文级关系扩展不是一回事。前者解决“相关性入口”,后者解决“系统性完备性”。

代码示例:先定位论文,再分页拉 citations

以下字段以最新线上文档 / OpenAPI 为准。

import os
import time
import requests

BASE_URL = "https://api.sciverse.space"
API_TOKEN = os.environ["SCIVERSE_API_TOKEN"]

HEADERS = {
    "Authorization": f"Bearer {API_TOKEN}",
    "Content-Type": "application/json",
}

session = requests.Session()
session.headers.update(HEADERS)


def post_with_retry(path: str, payload: dict, retries: int = 3):
    url = f"{BASE_URL}{path}"

    for attempt in range(retries):
        resp = session.post(url, json=payload, timeout=30)

        if resp.status_code == 429:
            # 官方公开资料提到默认分钟级保护通常是 30 req/min,
            # 实际额度以账号配置为准;遇到 429 时做指数退避。
            if attempt == retries - 1:
                raise RuntimeError("Sciverse API rate limited after retries")
            wait_seconds = 2 ** attempt
            time.sleep(wait_seconds)
            continue

        resp.raise_for_status()
        return resp.json()

    raise RuntimeError("Unexpected retry loop exit")


# 1. 先用 meta-search 定位目标论文,拿 unique_id
paper_query = {
    "query": "graph neural network drug discovery review",
    "fields": [
        "title",
        "doi",
        "publication_published_year",
        "publication_venue_name_unified",
        "unique_id",
        "doc_id"
    ],
    "page": 1,
    "page_size": 5
}

search_data = post_with_retry("/meta-search", paper_query)
results = search_data.get("results", [])
if not results:
    raise RuntimeError("No papers found")

target = results[0]
unique_id = target["unique_id"]
title = target.get("title", "")
doc_id = target.get("doc_id")

print("Target paper:", title)
print("unique_id:", unique_id)
print("doc_id:", doc_id)

# 2. 再分页拉取引用关系
relations_payload = {
    "unique_id": unique_id,
    "relation": "CITATIONS",   # 也可以换成 REFERENCES / RELATED_WORKS
    "page": 1,
    "page_size": 25
}

relations_data = post_with_retry("/meta-paper-relations", relations_payload)

items = relations_data.get("items", [])
total_count = relations_data.get("total_count")
page = relations_data.get("page")
page_size = relations_data.get("page_size")

print(f"Fetched {len(items)} citation items")
print(f"page={page}, page_size={page_size}, total_count={total_count}")

for item in items[:5]:
    print({
        "id": item.get("id"),
        "id_type": item.get("id_type"),
        "title": item.get("title")
    })

这段代码的意义,不在于“又多调了一个接口”,而在于它把 Agent 的工作方式从“命中几个相关片段”改成了“先锚定论文,再沿关系层可控扩展”。对于系统综述、综述补全、citation grounding,这一步通常决定了文献池是否完整。

为什么这件事今天更重要

Agentic AI 正在把科研软件的门槛拉低,但也把“验证”和“边界感”推到了前台。对科研场景来说,最危险的不是模型没输出,而是它输出得很像对的,却缺了关键前作、忽略了引用链、或者把局部 chunk 当成全局结论。

所以今天真正有价值的数据层,不只是把论文搜出来,而是把下面几类对象都交给 Agent:

  • 论文级 identity
  • 关系级 pagination
  • 原文级 context
  • 资源级 figure / table
  • 元数据级 filter / facet / count

这也是 Sciverse 和“只返回 paper list 的 API”之间最核心的区别。它面向的不是单次查询,而是可追溯、可扩展、可复核的科研工作流。

评测 / 验证章节

本文未进行实测跑分,仅提供可复现评测方案。

如果要验证“citation pagination 是否真的提升系统综述 Agent”,可以用下面这套方案:

评测项 方案
任务定义 选择 20 个有明确综述边界的问题,如某一技术路线近 5 年关键 papers
Baseline A 仅用 agentic-search 取 Top-K chunk 后总结
Baseline B meta-search 定位论文,再用 meta-paper-relations 扩展 citations / references
观察指标 是否漏掉公认关键前作、是否能覆盖 related works、是否能给出更完整的候选论文池
复核方式 由人工或已有综述目录做对照,不比较模型文风,只比较检索与扩展完整性
注意事项 不把单次命中率误当系统综述质量;关系扩展和原文核验要分开看

如果你的科研 Agent 下一步要接入 Cursor、Claude、Codex 或 MCP,真正值得优先补上的,往往不是更多 prompt,而是更完整的 relation layer。

结尾 CTA

如果你正在做 Literature Review Agent、Scientific RAG、Claim Checker 或 paper screening workflow,可以先从 Sciverse 的 meta-searchmeta-paper-relations 开始,把“找论文”升级成“可分页扩展的文献关系工作流”。再往后,再接 content 做原文回读,接 resource 做图表证据。

文档可以直接从 Sciverse 官方文档和 llms-full.txt 开始;如果你已经在用 Cursor、Claude、Codex 或 MCP,也可以直接接入 Sciverse Agent Tools,把这些接口变成真正的科研 Agent 工具链。

参考来源

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐