LitScoutAPI / 文献雷达

CDK-authenticated literature discovery

把研究问题交给 Agent,
把多源检索交给 LitScout。

主机 Agent 分析研究需求、设计查询矩阵并判断相关性。LitScout 云端校验 CDK、执行受控检索、统一字段、确定性去重并保留来源过程。

认证
CDK Bearer
执行
异步任务
地址
当前站点域名
可以完成

多源与跨学科发现

按主题、学科、年份和数量制定计划;同一来源可提交多条查询,用 track 区分学科轨道,用 tier 设置补充层。

云端返回

统一且可追溯的文献记录

返回标题、作者、摘要、DOI、来源、引用指标、OA/PDF 候选和 EasyScholar 期刊级质量字段。

明确不做

供应商直连与全文下载

Skill 不保存供应商接口,不下载、代理、缓存或探测 PDF,也不会读取其他 CDK 的历史和结果。

Agent / Skill / Cloud

一次检索任务如何执行

前五步发生在用户主机,云端从预检开始接管受控执行。任务结束后,判断与写作仍回到主机 Agent。

  1. 01
    理解需求

    提取主题、学科、年份、总数量、每库数量和用户指定来源。

    Host Agent
  2. 02
    读取身份状态

    查询 CDK 状态、剩余额度、并发和有效期。

    Host Agent
  3. 03
    发现能力

    读取来源权限、内容类型、查询特征、年份支持和数量上限。

    Host Agent
  4. 04
    构建查询矩阵

    生成学科内查询和跨学科桥接查询;同库可放入多条检索式。

    Host Agent
  5. 05
    安排执行层

    主来源使用 tier: 0,不足时执行 tier: 1tier: 2

    Host Agent
  6. 06
    预检计划

    云端裁剪到 CDK 授权范围,返回有效查询、警告和额度预览;不预留额度。

    LitScout Cloud
  7. 07
    幂等提交

    携带至少 16 字符的 Idempotency-Key 接受异步任务并预留一次额度。

    LitScout Cloud
  8. 08
    轮询原任务

    保存 jobId,按 pollAfterSeconds 查询状态,不新建替代任务。

    Host Agent
  9. 09
    统一与增强

    执行来源、确定性去重、补充 DOI/OA 信息和期刊级质量字段。

    LitScout Cloud
  10. 10
    本地判断

    Agent 复核相关性、整理证据、核验引用并完成后续写作。

    Host Agent
跨学科检索

使用 discipline:aidiscipline:biomedicinebridge:ai-biomedicine 标记轨道。桥接查询必须同时包含两侧研究对象或方法,来源选择以当前 CDK 能力响应为准。

Authentication

CDK 是唯一用户身份

Agent 使用 Bearer CDK。CDK 不应进入 URL、请求正文、普通配置、输出结果或日志。

每个用户请求
Authorization: Bearer <LITSCOUT_CDK>
Accept: application/json
01只连接部署方域名

Skill 使用当前 LitScout HTTPS 源。本机开发只允许环回地址。

02结果归原 CDK 所有

任务状态、历史和明细默认只允许创建任务的 CDK 读取。

03数据库不是 URL

database 只能使用能力目录返回的受控标识。

04候选不等于全文

DOI 地址和 PDF 候选均不代表文章已经下载或验证。

Capability discovery

先读取能力,再制定来源计划

来源授权和数量限制属于 CDK,不应写死在 Skill 中。每次任务前读取能力,才能避免越权、超量或把增强来源当成检索来源。

GET/api/v1/me读取当前 CDK 摘要

返回指纹、状态、剩余/预留/已结算额度、并发上限和有效期。冻结的 CDK 仍可读取历史,但不能创建新任务。

响应示例
{
  "cdkId": "cdk_example",
  "fingerprint": "A1B2-C3D4",
  "status": "ACTIVE",
  "remainingUses": 20,
  "reservedUses": 0,
  "chargedUses": 4,
  "maxConcurrentJobs": 2,
  "expiresAt": null
}
GET/api/v1/me/capabilities读取有效能力

任务级限制包括总结果数、查询数、查询长度、年份边界、PDF 候选模式和结果保留天数。每个来源还会返回以下安全画像:

database / label / role受控来源标识、显示名和检索或增强角色 disciplines / contentTypes适合的学科和文献类型 queryFeatures / supportsYearFilter查询能力和年份过滤支持 searchEnabled / doiLookupEnabled当前 CDK 可以使用的能力 maxResultsPerRequest / maxResultsPerJob来源级数量上限
GET/api/v1/sources读取安全来源目录

返回能力响应中的来源列表。它不会返回供应商地址、凭据或云端调度优先级。只有 role: searchsearchEnabled: true 的来源可以放入查询计划。

Plan preview

预检不会预留额度

预检使用和正式任务相同的请求体。云端重新校验权限、年份、查询数量和结果上限,并返回最终生效计划。

effectiveQueries

经过来源权限和总量分配后真正执行的查询行。

effectiveTotal

所有层可能产生的来源请求总量,不是最终文献数。

finalResultLimit

确定性去重后最多返回的文献数量。

clamped / denied

被裁剪的输入和无法接受的原因。

warnings

计划仍可执行,但客户端应向用户说明的事项。

quota

当前剩余额度、已预留额度及正式接受时的预留量。

Asynchronous jobs

接受任务、轮询状态、读取历史

202 Accepted 只表示任务已通过校验并预留额度。保存返回的 jobId,后续请求始终使用这个任务。

queuedrunning
succeededpartialfailedcancelledexpired
POST/api/v1/jobs接受异步任务

请求体与预检一致。必须携带至少 16 字符的 Idempotency-Key。相同 CDK、相同 Key 和相同请求返回原任务;Key 相同但请求不同会返回冲突。

额外请求头
Idempotency-Key: 7e8f3d5b-6e9d-4b8a-9b5f-4ad31e42d901
Content-Type: application/json
GET/api/v1/jobs/{job_id}读取任务状态

响应包含任务状态、计费状态、时间、永久匿名摘要、结果到期时间和每个来源的请求量、返回量、层级、轨道及稳定错误码。

billing.status / units / reason预留、结算或释放及其原因 sourceRuns[].statuspending、running、succeeded、failed、timed_out、cancelled 或 skipped resultSummary不含标题、作者、摘要、DOI 或候选 URL 的永久聚合 resultsExpiresAt文献结果明细的清理时间
POST/api/v1/jobs/{job_id}/cancel请求取消

服务端取消尚未开始的来源运行。已经开始的来源不能假装未执行,结算以任务返回的 billing 为准。

GET/api/v1/history?limit=50读取当前 CDK 历史

limit 范围为 1 到 100。列表按创建时间倒序返回任务状态、来源过程、计费结果、匿名摘要和结果保留时间。

Unified records

同一套字段,保留每个来源

结果先确定性去重,再把所有来源命中写入 provenance。来源没有提供的字段保持为空,不由云端补造。

分组字段说明
基础id / title / publishedDate / year / type / language / abstract统一文献基础信息
作者authors[].name / given / family / orcid作者名称与可用标识
载体venue.name / publisher / issn / issnL / subjects期刊、会议、出版社和主题
标识符doi / pmid / pmcId / arxivId / halId / coreId / sciverseId / sourceIds跨来源标识与全部原始来源 ID
指标metrics.citationCount / metricsSource来源提供的引用次数及提供方
链接links.landingPage / doiUrl书目落地页和规范 DOI 解析地址
开放获取openAccess.isOpenAccess / status / license / pdfCandidates[]来源声明的 OA 状态与全文候选线索
溯源provenance[].database / sourceId / query / rank / track / tier每次来源命中与客户端查询轨道
期刊质量quality.status / provider / match / metrics / rankings / snapshot / reasonEasyScholar 期刊级可解释字段
DOI 地址

links.doiUrl 是格式有效 DOI 对应的解析地址,不代表文章开放获取。

PDF 候选

候选包含 URL、来源、会话要求、内容类型、许可和证据。LitScout 不下载、代理、缓存或探测。

期刊质量

影响因子、五年影响因子、JCI、分区、Top 和预警只描述期刊,不能替代单篇论文质量判断。

Quota settlement

一次任务,最多结算一次

以任务历史中的 billing.statusbilling.reason 为最终依据。预检不预留额度,任务接受后才预留。

情况额度结果
预检或请求未通过校验不预留
任务被接受预留 1 次
至少一个来源成功,包括成功但返回 0 条结算 1 次
任务状态为 partial结算 1 次
全部来源因云端或上游故障失败释放预留
任一来源开始前取消释放预留
来源开始后由用户取消结算 1 次
保留策略

文献明细默认保存 365 天,实际值以 CDK 的 resultRetentionDays 为准。明细清理后返回 410 RESULTS_EXPIRED;任务请求、有效计划、检索式、来源过程、计费账本、审计事件和匿名摘要永久保留。

Stable errors

根据错误类别决定重试

错误响应始终提供稳定 code 和可追踪的 requestId。不要把新建任务当成通用重试手段。

统一错误对象
{
  "code": "CDK_FROZEN",
  "message": "当前 CDK 暂停新检索",
  "requestId": "req_example",
  "details": null
}
错误码含义客户端处理
CDK_INVALIDCDK 无效或不可用停止请求并要求用户检查凭据
CDK_FROZEN暂停新任务停止创建任务,历史仍可读取
CDK_EXHAUSTED
QUOTA_EXHAUSTED
没有可用或可预留额度停止创建任务
CONCURRENCY_LIMIT并发任务数已满等待现有任务结束,不创建替代任务
CDK_RATE_LIMITED接受任务频率超限遵守返回的等待时间
IDEMPOTENCY_CONFLICT同一 Key 对应不同请求检查调用方状态,不能盲目换 Key 重试
PLAN_REJECTED计划违反当前能力限制读取 details.denied 并重新预检
NOT_FOUND任务不存在或不属于当前 CDK检查 jobId 和身份
RESULTS_EXPIRED文献明细已经清理读取任务历史和匿名摘要,不自动补交任务

只有状态查询的瞬时网络错误适合有限退避重试,并且始终使用原 jobId

End-to-end examples

从预检到读取结果

示例使用当前站点域名,CDK 保持为占位符。生产环境应从主机 Agent 的秘密存储注入。

curl / PowerShell 可使用同等请求头
export LITSCOUT_BASE_URL="__LITSCOUT_ORIGIN__"
export LITSCOUT_CDK="<LITSCOUT_CDK>"

curl -sS "$LITSCOUT_BASE_URL/api/v1/me/capabilities" \
  -H "Authorization: Bearer $LITSCOUT_CDK" \
  -H "Accept: application/json"

curl -sS "$LITSCOUT_BASE_URL/api/v1/jobs/preview" \
  -H "Authorization: Bearer $LITSCOUT_CDK" \
  -H "Content-Type: application/json" \
  --data @plan.json

curl -sS "$LITSCOUT_BASE_URL/api/v1/jobs" \
  -H "Authorization: Bearer $LITSCOUT_CDK" \
  -H "Idempotency-Key: 7e8f3d5b-6e9d-4b8a-9b5f-4ad31e42d901" \
  -H "Content-Type: application/json" \
  --data @plan.json

curl -sS "$LITSCOUT_BASE_URL/api/v1/jobs/<job_id>" \
  -H "Authorization: Bearer $LITSCOUT_CDK"

curl -sS "$LITSCOUT_BASE_URL/api/v1/jobs/<job_id>/results" \
  -H "Authorization: Bearer $LITSCOUT_CDK"

Ready to search

文档负责把契约说清楚,检索仍在工作台和 Agent 中完成。

进入工作台