一、为什么科研检索需要从"搜索页面"走向"API 调用层"?
传统科研检索产品解决的是"人如何找到论文"。
但 Agent 需要解决的是"系统如何稳定调用科学证据"。
这两件事的差异非常大。
| 维度 | 用户侧科研搜索 | Agent / 开发者侧科学数据 API |
|---|---|---|
| 使用者 | 研究者本人 | Agent、RAG 系统、开发者应用 |
| 输入方式 | 关键词 | 自然语言问题、结构化查询、工作流任务 |
| 输出形式 | 论文列表、网页结果 | metadata、chunks、doc_id、全文片段、资源路径 |
| 后续动作 | 人工阅读 | 自动读取、引用、生成 evidence pack |
| 核心要求 | 搜得准、页面好用 | 可调用、可追溯、结构化、稳定、低延迟 |
| 典型产品 | Google Scholar、万方数据 | OpenAlex、Sciverse |
所以,Sciverse 不应该被简单理解成"Google Scholar 替代品"。
更准确的说法是:
Google Scholar 是给人用的学术搜索入口。
Sciverse 是给 Agent 和系统用的科学数据调用层。
这个定位差异非常关键。
二、Sciverse 当前数据规模
截至今日,Sciverse 已经形成较大规模的科学知识数据底座:
| 指标 | 当前规模 | 说明 |
|---|---|---|
| 知识记录总量 | 4.66 亿 | 覆盖文献、图书、专利等多类型资产 |
| 文献记录数 | 3.6 亿 | 跨学科、跨语种、多来源聚合 |
| 图书记录数 | 1.06 亿 | 覆盖现代图书、古籍与手稿类知识资产 |
| 专利记录数 | 7000 万 | 支撑查新、技术情报与产业研究 |
| AI-Ready OA 全文数 | 2,826 万 | 适用于 RAG、训练与 Agent 调用 |
| 期刊 / 会议 / Venue 覆盖 | 194 万 | 支持来源与学科过滤 |
这几个数字里,最值得开发者关注的是两个:
第一,2,826 万 AI-Ready OA 全文。
这意味着 Sciverse 不只是提供论文元数据,还可以支持 Agent 继续读取可消费的全文内容,适合做科学 RAG、证据检索和研究助手。
第二,4.66 亿知识记录总量。
这让 Sciverse 不只适合论文检索,也能支撑图书、专利、技术情报、产业研究等更复杂的知识发现场景。
三、Sciverse 提供的不只是搜索,而是一组可组合接口
Sciverse 的能力可以拆成 5 个核心接口。
| 接口 | 作用 | 适合场景 |
|---|---|---|
agentic-search |
用自然语言问题检索相关文献段落 / 证据片段 | 科研问答、RAG evidence、综述 Agent |
meta-search |
按年份、期刊、DOI、语言等结构化条件筛选论文元数据 | 论文列表、筛选、排序、导出 |
content |
根据 doc_id 分段读取文章全文 |
原文核对、详情页、长文分批加载 |
resource |
根据相对路径 file_name 下载图表等二进制资源 |
图表检索、多模态论文理解 |
meta-catalog |
查看 meta-search 支持哪些字段、哪些可筛选和排序 |
构建筛选器、让 Agent 自动拼查询 |
这 5 个接口真正有价值的地方,不是单独调用,而是组合成科研工作流。
例如:
自然语言问题
→ agentic-search 找证据片段
→ 拿到 doc_id
→ content 继续读取原文
→ 输出带来源的 evidence pack
或者:
用户想筛选论文
→ meta-catalog 获取可用字段
→ meta-search 按年份 / 期刊 / DOI 过滤
→ 导出论文清单
→ 对重点论文调用 content 继续阅读
这就是 Sciverse 和普通论文搜索页面最大的不同。
普通搜索把结果交给人。
Sciverse 把科学证据交给系统和 Agent。
四、与常见科研信息产品的对比
科研信息产品大致可以分为两类。
第一类是用户侧检索入口,代表产品包括 Google Scholar、万方数据、Bohrium。
第二类是数据和 API 基础设施,代表产品包括 OpenAlex、Sciverse Meta Search、Sciverse Agentic Search。
| 产品 | 类型 | 优势 | 局限 |
|---|---|---|---|
| Google Scholar | 用户侧检索入口 | 覆盖广、认知强、适合人工检索 | 非稳定官方 API,不适合 Agent 自动化调用 |
| 万方数据 | 用户侧检索入口 | 中文学术资源强,适合中文论文检索 | 自动化调用和 Agent 集成能力有限 |
| Bohrium | 科研工作流平台 | 科研场景和应用生态较丰富 | 论文检索覆盖和 API 化能力需结合具体场景 |
| OpenAlex | 开放学术元数据 API | 开放、结构化、适合元数据分析 | 主要强在元数据,不强调全文 evidence workflow |
| Sciverse Meta Search | 科学数据 API | 结构化检索、低延迟、适合系统接入 | 更偏论文元数据筛选,不返回段落正文 |
| Sciverse Agentic Search | Agentic 科学检索 API | 自然语言检索 evidence chunks,适合 RAG 和 Agent | 不适合替代所有结构化筛选任务 |
这里要特别强调:
Sciverse 不应该直接和 Google Scholar 抢"用户搜索入口"的定义。
Sciverse 更适合定义为"面向 Agent 的科学数据调用层"。
它的优势不只是搜论文,而是让科研应用能够稳定地检索证据、读取全文、拉取资源、接入 Agent 工作流。
五、一次简化评测:Sciverse Meta Search 的效果与耗时表现
我们可以用一个简化评测来理解 Sciverse 在真实检索场景中的位置。
假设我们准备 80 条科研 query,分别调用 Google Scholar、OpenAlex、万方数据、Bohrium、Sciverse Meta Search、Sciverse Agentic Search,观察几个指标:
覆盖率:是否能返回结果
综合得分:结果相关性、可用性、稳定性综合评估
耗时:每次 query 的响应时间
示例评测结果如下:
| 排名 | 渠道 | 综合得分 | 覆盖率 |
|---|---|---|---|
| 1 | Google Scholar | 2.60 | 100%(80/80) |
| 2 | Sciverse Meta Search | 2.39 | 100%(80/80) |
| 3 | OpenAlex | 2.26 | 95%(76/80) |
| 4 | 万方数据 | 2.25 | 98%(78/80) |
| 5 | Sciverse Agentic Search | 1.99 | 100%(80/80) |
| 6 | Bohrium | 1.57 | 57%(46/80) |
从这个简化评测看,Sciverse Meta Search 的表现非常值得关注。
它的综合得分仅次于 Google Scholar,同时覆盖率达到 100%。更重要的是,它不是网页检索或爬虫路径,而是可以直接被系统调用的 API。
再看耗时表现:
| 渠道 | 获取方式 | N | p50 | p90 | p99 / max | avg | 稳定性 |
|---|---|---|---|---|---|---|---|
| Sciverse Meta Search | API | 80 | 0.84s | 2.74s | 5.85s | 1.19s | 稳 |
| Sciverse Agentic Search | API | 80 | 1.87s | 3.28s | 56.0s | 3.02s | 稳 |
| OpenAlex | API | 76 | 2.15s | 3.40s | 211s | 5.08s | 稳 |
| Google Scholar | 爬虫 | 80 | 4.00s | 4.50s | 7.79s | 3.66s | 稳 |
| 万方数据 | 爬虫 | 78 | 4.31s | 4.34s | 7.88s | 4.36s | 稳 |
| Bohrium | 爬虫 | 46 | 5.37s | 5.64s | 17.9s | 5.70s | 稳 |
说明一下:这类评测不是严格学术 benchmark,而是面向产品接入和开发者体验的工程评估。不同 query、网络环境、字段策略都会影响结果。
但从产品决策角度,它已经能说明一个趋势:
当科研检索进入 Agent 工作流,API 的响应速度、结构化返回和可组合能力会变得越来越重要。
六、代码示例:用 Sciverse 做自然语言证据检索
下面是一个典型的 agentic-search 调用,用于从自然语言科研问题中检索相关证据片段。
bash
curl -X POST "https://api.sciverse.space/agentic-search" \
-H "Authorization: Bearer YOUR_SCIVERSE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "perovskite solar cell stability efficiency encapsulation interface engineering",
"top_k": 7
}'
典型返回结果会包含:
json
{
"results": [
{
"title": "The stability of perovskite solar cells",
"doc_id": "example_doc_id",
"chunk": "Perovskite solar cell stability is affected by moisture, heat, ion migration and interface degradation...",
"page": 3
}
],
"search_time_ms": 1186
}
这个接口适合用在:
科研问答
文献综述 Agent
科学 RAG evidence retrieval
技术调研
Citation grounding
关键是:它返回的不是普通搜索列表,而是可以直接作为 evidence 的文本片段。
七、代码示例:根据 doc_id 继续读取全文
当 agentic-search 或 meta-search 返回 doc_id 后,可以继续调用 content 读取全文片段。
bash
curl -X GET "https://api.sciverse.space/content?doc_id=example_doc_id&offset=0&limit=1600" \
-H "Authorization: Bearer YOUR_SCIVERSE_API_TOKEN"
返回示例:
json
{
"doc_id": "example_doc_id",
"text": "The long-term stability of perovskite solar cells remains one of the main barriers...",
"next_offset": 1600,
"more": true
}
如果 more=true,说明后面还有内容,可以继续读取:
bash
curl -X GET "https://api.sciverse.space/content?doc_id=example_doc_id&offset=1600&limit=1600" \
-H "Authorization: Bearer YOUR_SCIVERSE_API_TOKEN"
这非常适合做:
论文详情页
原文核对
长文分段加载
RAG 上下文补充
Agent 继续阅读
注意,不要假设一次请求能返回完整全文。更稳妥的方式是按 offset 和 limit 分段读取。
八、代码示例:用 meta-search 做结构化论文筛选
如果你的任务是"筛选论文列表",应该优先使用 meta-search。
比如筛选 2023 年以来关于 LLM hallucination detection benchmark 的论文:
bash
curl -X POST "https://api.sciverse.space/meta-search" \
-H "Authorization: Bearer YOUR_SCIVERSE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "LLM hallucination detection benchmark evaluation dataset",
"filters": [
{
"field": "publication_published_year",
"operator": "FILTER_OP_GTE",
"value": 2023
}
],
"sort": [
{
"field": "publication_published_year",
"order": "SORT_ORDER_DESC"
}
],
"page": 1,
"page_size": 10
}'
返回结果通常是论文元数据:
json
{
"results": [
{
"title": "R-Tuning: Teaching Large Language Models to Refuse Unknown Questions",
"publication_published_year": 2024,
"doi": "example-doi",
"doc_id": "example_doc_id"
}
],
"total_count": 128,
"page": 1,
"page_size": 10
}
meta-search 适合:
按年份筛论文
按期刊 / Venue 筛选
按 DOI 查找
构建论文清单
导出 CSV
作为科学发现平台检索源
但要注意:meta-search 返回的是书目信息和元数据,不是正文段落。如果需要正文证据,应继续用 doc_id 调 content。
九、代码示例:先用 meta-catalog 获取可筛选字段
在 Agent 场景里,一个重要原则是:
不要让模型猜字段。
如果模型不知道 meta-search 支持哪些字段,应该先调用 meta-catalog。
bash
curl -X GET "https://api.sciverse.space/meta-catalog" \
-H "Authorization: Bearer YOUR_SCIVERSE_API_TOKEN"
返回结果可以告诉系统:
哪些字段支持筛选
哪些字段支持排序
默认返回哪些字段
字段名称应该怎么写
这对构建筛选器非常重要。
例如前端页面可以根据 meta-catalog 自动生成筛选项:
ts
type CatalogField = {
field: string;
type: "string" | "number" | "date";
filterable: boolean;
sortable: boolean;
default_returned: boolean;
};
async function loadCatalog(token: string): Promise<CatalogField[]> {
const res = await fetch("https://api.sciverse.space/meta-catalog", {
headers: {
Authorization: `Bearer ${token}`,
},
});
if (!res.ok) {
throw new Error(`Failed to load catalog: ${res.status}`);
}
return res.json();
}
对于 Agent 来说,这一步也很关键。
因为它可以避免模型生成不存在的字段,从而提高调用成功率。
十、代码示例:resource 拉取论文图表资源
科学论文里的大量关键信息并不只在正文,还在图表、实验图、结构图、曲线图里。
Sciverse 的 resource 接口可以根据相对路径 file_name 获取论文资源。
bash
curl -X GET "https://api.sciverse.space/resource?file_name=relative/path/to/figure.png" \
-H "Authorization: Bearer YOUR_SCIVERSE_API_TOKEN" \
--output figure.png
注意:
file_name 应该是相对路径。
不要传完整 URL。
不要传本地绝对路径。
不要传包含 .. 的不安全路径。
这个能力适合做:
论文图表检索
实验图下载
多模态 RAG
医学表格识别
化学反应图分析
材料性能曲线提取
如果与 MinerU 这类文档解析工具结合,也可以形成更完整的流程:
MinerU 解析用户上传 PDF
→ 提取标题、摘要、表格、图注
→ Sciverse 检索外部科学证据
→ Sciverse 读取全文和图表资源
→ Agent 生成带来源的分析结果
十一、Python 示例:构建一个简单的 Evidence Pack
下面写一个简单的 Python 示例,将 agentic-search 和 content 串起来,生成一个 evidence pack。
python
import os
import requests
SCIVERSE_API_TOKEN = os.getenv("SCIVERSE_API_TOKEN")
BASE_URL = "https://api.sciverse.space"
headers = {
"Authorization": f"Bearer {SCIVERSE_API_TOKEN}",
"Content-Type": "application/json",
}
def agentic_search(query: str, top_k: int = 5):
url = f"{BASE_URL}/agentic-search"
payload = {
"query": query,
"top_k": top_k,
}
resp = requests.post(url, headers=headers, json=payload, timeout=30)
resp.raise_for_status()
return resp.json()
def read_content(doc_id: str, limit: int = 1200):
url = f"{BASE_URL}/content"
params = {
"doc_id": doc_id,
"offset": 0,
"limit": limit,
}
resp = requests.get(url, headers=headers, params=params, timeout=30)
resp.raise_for_status()
return resp.json()
def build_evidence_pack(query: str):
search_result = agentic_search(query, top_k=5)
evidence_items = []
for item in search_result.get("results", []):
doc_id = item.get("doc_id")
if not doc_id:
continue
content = read_content(doc_id)
evidence_items.append({
"title": item.get("title"),
"doc_id": doc_id,
"snippet": item.get("chunk"),
"source_text": content.get("text", "")[:800],
"page": item.get("page"),
})
return {
"query": query,
"evidence": evidence_items,
}
if __name__ == "__main__":
pack = build_evidence_pack(
"perovskite solar cell stability efficiency encapsulation interface engineering"
)
for idx, item in enumerate(pack["evidence"], start=1):
print(f"\n## Evidence {idx}")
print("Title:", item["title"])
print("Doc ID:", item["doc_id"])
print("Page:", item["page"])
print("Snippet:", item["snippet"])
print("Source Text:", item["source_text"])
这个脚本已经可以作为一个最小版科研 RAG 数据准备流程。
下一步可以把 evidence_items 传给 LLM,并要求模型只基于 evidence 回答。
十二、Agent Prompt 示例:避免模型编造引用
在科研场景中,最怕的是模型"看起来很合理,但引用是编的"。
所以使用 Sciverse 时,建议 Agent Prompt 明确约束:
text
你是一个科研证据整理 Agent。
你只能基于 Sciverse 返回的 evidence chunks 和 content 原文片段回答问题。
每个关键结论必须附上对应的 doc_id、title 和 page / position。
如果证据不足,请明确说明"当前证据不足",不要编造论文、DOI、作者或实验结论。
不要把模型常识当作文献证据。
输出结构:
1. 结论摘要
2. 证据列表
3. 仍需核对的问题
4. 推荐继续读取的 doc_id
这类 Prompt 和 Sciverse 的接口组合起来,可以做出比普通"联网搜索 + 总结"更可靠的科研 Agent。
十三、一个完整的科学 RAG 调用链路
如果要用 Sciverse 构建科学 RAG,可以采用如下架构:
text
User Query
↓
Query Rewrite
↓
Sciverse agentic-search
↓
Evidence Chunks
↓
doc_id 去重
↓
Sciverse content
↓
Source Context
↓
LLM Grounded Answer
↓
Answer + Citations + Evidence Pack
如果是结构化论文清单,则是另一条链路:
text
User Filter Intent
↓
meta-catalog 获取字段
↓
meta-search 结构化筛选
↓
Paper List
↓
doc_id
↓
content 读取重点论文
↓
CSV / Markdown / Agent Digest
如果是图表检索:
text
User Figure Query
↓
agentic-search 找相关论文
↓
content 读取图表上下文
↓
提取 file_name
↓
resource 下载图表
↓
图表预览 + 来源说明
这也是 Sciverse 最值得强调的地方:
它不是一个孤立搜索接口,而是可以组合成多种科研工作流。
十四、Sciverse 适合哪些开发者场景?
| 场景 | 推荐接口组合 | 价值 |
|---|---|---|
| 文献综述 Agent | agentic-search + content |
找证据、读原文、生成综述结构 |
| 科学 RAG | agentic-search + content |
为 LLM 提供可追溯上下文 |
| 论文筛选系统 | meta-catalog + meta-search |
支持结构化筛选、排序、分页 |
| 专利与文献分析 | meta-search + content |
支撑查新、技术情报、产业研究 |
| 科研问答 | agentic-search + Prompt 约束 |
降低幻觉,输出来源 |
| 图表资源检索 | content + resource |
获取论文图表、实验图 |
| Agent 工具接入 | Skills / MCP / CLI / SDK | 接入 Claude、Cursor、Codex 等工作流 |
这些场景比单纯"论文搜索"更重要。
因为它们会带来持续调用,而不是一次性访问。
十五、接入 Sciverse 时需要注意的工程问题
第一,Token 不要放在前端。
ts
// 不推荐
const token = "sk_xxx"; // 不要硬编码在前端
推荐使用服务端代理或环境变量:
ts
const token = process.env.SCIVERSE_API_TOKEN;
第二,不要让 Agent 猜字段。
结构化筛选前,优先调用 meta-catalog。
第三,meta-search 和 agentic-search 不要混用。
meta-search 适合论文列表和元数据筛选。
agentic-search 适合自然语言问题和 evidence chunks。
第四,content 要按段读取。
不要假设一次拿完整全文。
第五,resource 只传相对路径。
不要传完整 URL、本地路径或不安全路径。
第六,科研回答必须保留来源。
至少保留 title、doc_id、page / position,如果有 DOI 也应保留。
十六、总结:Sciverse 的机会在于成为 Agent 的科学数据层
科研检索正在从"人找论文"走向"Agent 调证据"。
在这个变化里,传统搜索入口仍然重要,但它们不能完全满足开发者和 Agent 的需求。
Agent 需要的是:
可调用的科学数据
可追溯的证据片段
可继续读取的全文
可结构化筛选的元数据
可拉取的图表资源
可接入工作流的 API / Skills / MCP / SDK
Sciverse 的优势就在这里。
它不是要替代所有科研搜索产品,而是提供一层面向 Agent 的 AI-Ready 科学数据 API。
从当前数据规模看,Sciverse 已经覆盖:
4.66 亿知识记录
3.6 亿文献记录
1.06 亿图书记录
7000 万专利记录
2,826 万 AI-Ready OA 全文
194 万期刊 / 会议 / Venue
从接口设计看,它覆盖了从检索、筛选、全文读取到资源拉取的完整链路。
从开发者场景看,它可以支持科研 Agent、科学 RAG、文献综述、论文筛选、图表检索、技术情报和专利分析。
所以,对开发者来说,Sciverse 最值得关注的不是"它是不是另一个论文搜索框"。
而是:
它能不能成为你的科研 Agent 数据层。
如果你正在做科学 RAG、科研问答、文献综述 Agent、论文筛选系统或 AI4S 应用,Sciverse 这类 AI-Ready 科学数据 API,可能会成为非常关键的基础设施。