API 参考

发起复现

POST /api/runs 针对 Claim 发起受控验证,202 异步入队。

POST /api/runs(也可使用 POST /api/v1/runs)针对某个 Claim 发起一次受控验证运行。运行固定到仓库当前版本,请求成功只代表已入队,实际执行在响应之后异步进行。

鉴权

需要浏览器会话或 x-api-key,且账号具备 run 权限。

请求

参数类型必填说明
repositoryIdstring仓库 ID
claimIdstring要复现的 Claim ID
experimentVersionIdstring指定实验版本,必须带 sha256: 前缀;缺省时自动匹配该 Claim 关联的实验

示例

curl -X POST https://citeark.com/api/runs \
  -H "x-api-key: $CITEARK_API_KEY" \
  -H "content-type: application/json" \
  -d '{"repositoryId": "…", "claimId": "CLM-001"}'

响应

成功返回 202,body 为 { "run": { ... } }:

{
  "run": {
    "id": "…",
    "repositoryId": "…",
    "claimIds": ["CLM-001"],
    "state": "queued",
    "queuedAt": "…"
  }
}

202 异步语义

返回 202run.statequeued,执行在响应之后异步进行。请轮询 GET /api/v1/runs/{runId}?repository_id={repositoryId},直到 state 变为 verifiedfailed 等终态。把响应中的 ETag 作为 If-None-Match 传回;状态未变化时会返回无正文的 304。仅在完成后按需请求 include=evidence,attestation

RunRecord 关键字段

字段说明
id运行 ID
repositoryId所属仓库 ID
commitId运行固定的仓库版本(sha256: 前缀)
experimentVersionId实验版本摘要
claimIds本次验证的 Claim 列表
state运行状态(queued / running / verified / failed 等)
queuedAt入队时间
startedAt开始执行时间
finishedAt结束时间
agent执行 Agent 信息(provider / model 等)
environment执行环境(容器镜像、硬件、区域等)
inputDigests输入对象摘要列表
outputDigests输出对象摘要列表
measurementResults以稳定 measurement ID 标识的规范计量,分开论文报告值、实测值与证据 ID
metrics旧版兼容摘要;多个计量同名时不得把指标名当作唯一标识
log运行日志条目
attestation本次运行的签名证明

服务端拒绝条件

以下情况均返回 400,运行不会入队:

  • Claim 不存在;
  • 该 Claim 没有可执行实验;
  • 实验的 executor 不是 builtin(通用 Agent 复现仍在私测);
  • 平台执行器未配置。

错误

状态码含义
400运行请求无效,或命中上述拒绝条件
401未登录或 Key 无效
403权限不足
429超出限流或月度额度(额度耗尽时携带 X-Quota-* 响应头)

限流与备注

  • 限流为每账号 10 次/小时。
  • 另受每账号每月 10 次复现额度约束,只有成功入队才扣减额度。