找到论文还不够,Citation Graph 才是科研 Agent 的工作流层

📅 2026/8/12 19:18:41
找到论文还不够,Citation Graph 才是科研 Agent 的工作流层
导语这两周Agent 讨论的重点已经不只是“能不能搜到资料”而是“能不能把一条证据继续扩成一条研究路径”。对科研 Agent 来说找到一篇论文、命中一段 chunk 都只是入口真正决定它能不能做综述、补 related works、扩 citation trail 的是能否把引用关系变成可调用的工作流层。Sciverse 的价值恰好就在这里。正文最近一轮 Agent 热点有一个很明显的变化大家开始把注意力从“更长上下文”转向“更完整的工具链”。不管是 MCP 生态继续扩张还是围绕 RAG 评测、Scientific Agent、research workflow 的讨论升温问题都越来越具体了。一个 Agent 能把论文找出来当然重要但如果它拿到一篇核心论文之后没法顺着 references、citations、related works 继续扩展那它做出来的结果很容易停留在“像读过几篇”而不是“真的走过一条研究路径”。这也是为什么科研场景里的检索问题不能只理解成 search problem。很多通用 RAG 系统的默认链路是用户提问系统召回若干 chunk模型据此生成回答。这个链路在 FAQ、企业知识库、产品文档里通常够用因为目标是“回答一个问题”。但科研工作流经常不是这样。你要的不只是一个回答而是一个可扩展的候选论文池、一组可回读的上下文、一条能向前追 references、向后追 citations、横向补 related works 的证据网络。换句话说科研 Agent 的最小闭环不是“搜到片段”而是“找到论文然后继续扩展”。如果只看行业里常见的几类工具这个差异会更清楚。OpenAlex 很适合做开放学术图谱和元数据层分析Crossref 仍然是 DOI 和出版元数据基础设施的重要来源Semantic Scholar 在论文发现和引用网络上也很强PubMed 则是生物医学文献工作流的重要入口。但这些产品的长项并不完全等于 Agent 工作流的长项。对 Agent 而言关键不是单点能力强不强而是“是否能在同一条调用链里把 metadata、source context 和 citation expansion 连起来”。下面这张表更适合从工作流角度看这个问题维度SciverseOpenAlexSemantic ScholarCrossref结构化元数据检索支持强支持强原文上下文读取核心链路之一非核心非核心非核心引用 / 相关工作分页扩展支持适合接 Agent 工作流强但通常需自行封装强但常需自行接入工作流部分支持Figure / Table 资源获取支持非核心非核心非核心面向 Agent 的组合式接口强需自行封装需自行封装需自行封装这里不是说谁替代谁而是定位不同。OpenAlex 更像地图Crossref 更像出版标识基础设施Semantic Scholar 更偏论文发现与图谱能力Sciverse 更像面向科研 Agent 的 AI-ready 科学数据层重点不在单独拥有某个字段而在于把“元数据筛选、原文上下文、引用关系、资源读取”放进同一条可调用链路里。如果把这个问题拆成系统设计科研 Agent 至少有三层第一层是 metadata layer。这里解决的是“候选集合怎么来”。Sciverse 的meta-search负责这件事适合按年份、作者、期刊、语言、DOI、主题等字段收缩论文池。它公开支持filters、fields、page/page_size、cursor并且文档已经明确给出facets和freshness_boost。这意味着 Agent 不只是“找论文”而是在构建一组有边界的候选集。第二层是 evidence layer。这里解决的是“找到的内容能不能回到原文”。agentic-search可以返回 evidence chunk但 chunk 不是论文片段也不是上下文。Sciverse 的content接口支持基于doc_id或source回读原文并通过 Unicode 码点意义上的offset/limit分页。也就是说Agent 命中片段后可以继续把片段放回原文语境而不是直接把 chunk 当答案。第三层才是 workflow expansion layer。这里解决的是“这篇论文后面还能不能继续走”。Sciverse 公共 OpenAPI 里meta-paper-relations明确是单独的公开端点需要传unique_id和relation其中relation目前公开为CITATIONS、REFERENCES、RELATED_WORKS。这不是一个装饰性接口而是让 Agent 从单篇论文进入引用网络的关键桥梁。真正有价值的工作流通常是这样一条链步骤接口作用1meta-search先按年份、领域、期刊等条件构造候选论文池2agentic-search在候选范围或开放问题上做语义证据召回3content用doc_idoffset回读原文上下文4meta-paper-relations用unique_id扩展 references / citations / related works5resource必要时继续抓取图表和附件资源这条链路的重点在于引用关系不是“补充信息”而是 Agent 继续工作的下一步输入。一个科研 Agent 如果停在meta-search它只能给你候选论文如果停在agentic-search它只能给你命中的证据片段但如果它能继续调用meta-paper-relations它才真正具备“围绕一篇核心论文滚雪球扩展”的能力。这也是为什么很多开发者会误判科研 RAG 的难点。大家经常把注意力放在召回质量、embedding、rerank 或长上下文长度上但对科研工作流来说难点往往是“如何让一篇论文继续长成一个 related works 网络”。系统综述、claim checking、领域入门阅读、研究趋势追踪背后都需要这个能力。下面给一个最小可运行的 Python 示例演示如何从meta-search找到论文再用meta-paper-relations扩展引用关系。以下字段以最新线上文档 / OpenAPI 为准。importosimporttimeimportrequests BASEhttps://api.sciverse.spaceTOKENos.environ[SCIVERSE_API_TOKEN]headers{Authorization:fBearer{TOKEN},Content-Type:application/json,}defpost_with_retry(path,payload,retries3):foriinrange(retries):resprequests.post(f{BASE}{path},headersheaders,jsonpayload,timeout30)ifresp.status_code429:wait_smin(2**i,8)print(frate limited, sleep{wait_s}s and retry)time.sleep(wait_s)continueresp.raise_for_status()returnresp.json()raiseRuntimeError(frequest failed after retries:{path})# 1) 先用 meta-search 找一篇目标论文search_body{query:scientific claim checking,fields:[title,doi,unique_id,doc_id,publication_published_year,publication_venue_name_unified],page:1,page_size:5,freshness_boost:MILD}search_datapost_with_retry(/meta-search,search_body)resultssearch_data.get(results,[])ifnotresults:raiseRuntimeError(no paper found)paperresults[0]unique_idpaper.get(unique_id)print(target paper:,paper.get(title),unique_id)# 2) 再用 meta-paper-relations 扩展 related worksrelations_body{unique_id:unique_id,relation:RELATED_WORKS,page:1,page_size:10}relations_datapost_with_retry(/meta-paper-relations,relations_body)foriteminrelations_data.get(items,[]):print(-,item.get(title),item.get(id),item.get(id_type))如果你更关心“命中片段后怎么回到原文”那通常会把它和content接起来consttokenprocess.env.SCIVERSE_API_TOKEN;constheaders{Authorization:Bearer${token},Content-Type:application/json};asyncfunctionfetchJson(url,options,retries3){for(leti0;iretries;i){constresawaitfetch(url,options);if(res.status429){constwaitMsMath.min(1000*2**i,8000);console.warn(rate limited, retry in${waitMs}ms);awaitnewPromise(rsetTimeout(r,waitMs));continue;}if(!res.ok){thrownewError(HTTP${res.status}:${awaitres.text()});}returnres.json();}thrownewError(request failed after retries);}asyncfunctionreadSourceContext(docId,offset0,limit1200){consturlnewURL(https://api.sciverse.space/content);url.searchParams.set(doc_id,docId);url.searchParams.set(offset,String(offset));url.searchParams.set(limit,String(limit));constdataawaitfetchJson(url,{method:GET,headers});console.log(data.text);console.log(next_offset:,data.next_offset,more:,data.more);}readSourceContext(YOUR_DOC_ID_HERE).catch(console.error);这两段代码合起来其实就说明了一个很现实的问题科研 Agent 不是“搜一下论文”就结束而是要在 metadata、evidence 和 relation 之间反复跳转。meta-search解决候选池content解决上下文核验meta-paper-relations解决工作流扩展。少了最后这一层Agent 看起来会检索实际上却不会“继续研究”。还有一个很容易被忽略的点是Sciverse 这条链路并不是把科研工作流压扁成一个搜索框。公共文档里meta-catalog提供字段目录发现meta-search提供结构化筛选和分页content提供原文回读resource提供图表资源meta-paper-relations提供引用网络扩展。对 Cursor、Claude、Codex、MCP 这类工具调用环境来说这种拆分非常重要因为 Agent 需要的是一组边界清晰、输入输出稳定、可组合的科研数据接口而不是一个“大而全但不可控”的回答系统。从产品定位上看这也正是 Sciverse 和普通文献搜索 API 的差异。它不是普通搜索框也不是通用聊天助手更不是替用户直接生成科学结论的系统。它更适合作为科研 Agent 的 AI-ready 科学数据层让 Agent 能检索能筛选能回读能扩展能继续组织成自己的研究路径。如果把今天这个判断压缩成一句话那就是科研 Agent 找到论文只是第一步真正让它进入工作状态的是 citation graph 能不能被调用。评测 / 验证本文未进行实测跑分仅提供可复现评测方案。一个可复现的评测方式是这样的选定 20 个研究问题每个问题先用meta-search找到核心论文再要求 Agent 必须完成三件事一是回读至少 1 段content原文上下文二是基于meta-paper-relations扩展出 references 或 related works三是在最终输出里给出doc_id、unique_id、DOI 或标题级来源线索。评测重点不是回答是否流畅而是看它是否真的完成了“候选构建 - 原文核验 - 引用扩展”的工作流闭环。结尾 CTA如果你在做 Literature Review Agent、Scientific Claim Checker、research dashboard或者想把科研检索能力接进 Cursor、Claude、Codex、MCP 工作流现在更值得关注的已经不是“再多召回几个 chunk”而是“能不能把论文继续扩成一张研究网络”。可以从这几个入口开始查看 Sciverse 文档确认最新公开接口与字段能力接入 Sciverse Agent Tools把meta-search、content、meta-paper-relations放进你的 Agent 链路在 Cursor / Claude / Codex / MCP 里把 citation expansion 做成默认工作流步骤直接试用 Sciverse API验证你的科研 Agent 是否真的具备“继续研究”的能力参考来源Sciverse 文档总览Sciverse API 文档Sciverse FAQSciversellms.txtSciversellms-full.txtSciverse OpenAPISciverse-Agent-Tools GitHub 仓库TREC RAGAnthropic News