{"openapi":"3.0.3","info":{"title":"Ego Platform Agent API","version":"1.1.0","description":"相对当前实例访问；无应用层认证。条件必填与完整流程见 /guide/agent-api/。"},"servers":[{"url":"/"}],"paths":{"/api/health":{"get":{"summary":"检查 environment、instance_id、build 与 worker 状态","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/hot3d/protocols":{"get":{"summary":"发现可用评测协议；versions[].protocol_id 用于规范查询","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/submission-contract":{"get":{"summary":"读取当前提交规范及接收状态","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"protocol","in":"query","schema":{"type":"string"},"description":"省略时 HOT3D；Test40 必须显式指定"}]}},"/api/models":{"get":{"summary":"读取模型及不可变版本 ID 与说明","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/pipelines":{"get":{"summary":"读取 Pipeline 及不可变版本 ID 与说明","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/hot3d/inspect":{"post":{"summary":"预检查 ZIP 或归档复用；不入队，不保证全部逐帧评分有效","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Inspection"}}}}}},"/api/evaluations":{"post":{"summary":"校验当前格式/题集后入队","responses":{"202":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Submission"},"examples":{"hot3d-3d-1201-1":{"summary":"HOT3D · 左目 3D · 1201-1","value":{"protocol":"local-hot3d-quest3-mano21-pose-v1","split_id":"test200-v3","contract_id":"294efdf809b02422087de511f0900063fb2c7abcab403f3dcd14b846b6b020e6","upload_id":"<上传响应的 upload_id>","expected_count":1,"evaluation_profile":{"prediction_type":"3d","inference_camera_ids":["1201-1"]},"display_name":"My Hand Model","version":"hot3d-3d-1201-1-v1","version_description":"HOT3D · 左目 3D · 1201-1，请替换为实际模型和推理设置说明","leaderboard_type":"temporary"}},"hot3d-3d-1201-2":{"summary":"HOT3D · 右目 3D · 1201-2","value":{"protocol":"local-hot3d-quest3-mano21-pose-v1","split_id":"test200-v3","contract_id":"294efdf809b02422087de511f0900063fb2c7abcab403f3dcd14b846b6b020e6","upload_id":"<上传响应的 upload_id>","expected_count":1,"evaluation_profile":{"prediction_type":"3d","inference_camera_ids":["1201-2"]},"display_name":"My Hand Model","version":"hot3d-3d-1201-2-v1","version_description":"HOT3D · 右目 3D · 1201-2，请替换为实际模型和推理设置说明","leaderboard_type":"temporary"}},"hot3d-3d-1201-1-1201-2":{"summary":"HOT3D · 双目 3D · 1201-1 + 1201-2","value":{"protocol":"local-hot3d-quest3-mano21-pose-v1","split_id":"test200-v3","contract_id":"294efdf809b02422087de511f0900063fb2c7abcab403f3dcd14b846b6b020e6","upload_id":"<上传响应的 upload_id>","expected_count":200,"evaluation_profile":{"prediction_type":"3d","inference_camera_ids":["1201-1","1201-2"]},"display_name":"My Hand Model","version":"hot3d-3d-1201-1-1201-2-v1","version_description":"HOT3D · 双目 3D · 1201-1 + 1201-2，请替换为实际模型和推理设置说明","leaderboard_type":"formal"}},"hot3d-2d-1201-1":{"summary":"HOT3D · 左目 2D · 1201-1","value":{"protocol":"local-hot3d-quest3-mano21-pose-v1","split_id":"test200-v3","contract_id":"294efdf809b02422087de511f0900063fb2c7abcab403f3dcd14b846b6b020e6","upload_id":"<上传响应的 upload_id>","expected_count":1,"evaluation_profile":{"prediction_type":"2d","inference_camera_ids":["1201-1"]},"display_name":"My Hand Model","version":"hot3d-2d-1201-1-v1","version_description":"HOT3D · 左目 2D · 1201-1，请替换为实际模型和推理设置说明","leaderboard_type":"temporary"}},"hot3d-2d-1201-2":{"summary":"HOT3D · 右目 2D · 1201-2","value":{"protocol":"local-hot3d-quest3-mano21-pose-v1","split_id":"test200-v3","contract_id":"294efdf809b02422087de511f0900063fb2c7abcab403f3dcd14b846b6b020e6","upload_id":"<上传响应的 upload_id>","expected_count":1,"evaluation_profile":{"prediction_type":"2d","inference_camera_ids":["1201-2"]},"display_name":"My Hand Model","version":"hot3d-2d-1201-2-v1","version_description":"HOT3D · 右目 2D · 1201-2，请替换为实际模型和推理设置说明","leaderboard_type":"temporary"}},"hot3d-2d-1201-1-1201-2":{"summary":"HOT3D · 双目 2D · 1201-1 + 1201-2","value":{"protocol":"local-hot3d-quest3-mano21-pose-v1","split_id":"test200-v3","contract_id":"294efdf809b02422087de511f0900063fb2c7abcab403f3dcd14b846b6b020e6","upload_id":"<上传响应的 upload_id>","expected_count":1,"evaluation_profile":{"prediction_type":"2d","inference_camera_ids":["1201-1","1201-2"]},"display_name":"My Hand Model","version":"hot3d-2d-1201-1-1201-2-v1","version_description":"HOT3D · 双目 2D · 1201-1 + 1201-2，请替换为实际模型和推理设置说明","leaderboard_type":"temporary"}},"test40-3d-ego":{"summary":"Test40 · Ego 单目 3D · ego","value":{"protocol":"reinterhand-ego-mano21-pose-v1","split_id":"test40-v1","contract_id":"3ecb48a0d8f2c2013efac41fb51550b7d15e9982eb202e8e1573246e4703ffe7","upload_id":"<上传响应的 upload_id>","expected_count":40,"evaluation_profile":{"prediction_type":"3d","inference_camera_ids":["ego"]},"display_name":"My Hand Model","version":"test40-3d-ego-v1","version_description":"Test40 · Ego 单目 3D · ego，请替换为实际模型和推理设置说明","leaderboard_type":"formal"}},"test40-2d-ego":{"summary":"Test40 · Ego 单目 2D · ego","value":{"protocol":"reinterhand-ego-mano21-pose-v1","split_id":"test40-v1","contract_id":"3ecb48a0d8f2c2013efac41fb51550b7d15e9982eb202e8e1573246e4703ffe7","upload_id":"<上传响应的 upload_id>","expected_count":1,"evaluation_profile":{"prediction_type":"2d","inference_camera_ids":["ego"]},"display_name":"My Hand Model","version":"test40-2d-ego-v1","version_description":"Test40 · Ego 单目 2D · ego，请替换为实际模型和推理设置说明","leaderboard_type":"temporary"}}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$"},"description":"推荐提供；相同键及原 JSON 值返回原任务，改变内容返回 409；不是身份认证。"}]}},"/api/tasks/{request_id}/status":{"get":{"summary":"轻量状态，不读取评分证据","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/tasks/{request_id}":{"get":{"summary":"任务及详情；非轮询推荐入口","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/hot3d/results/{result_id}":{"get":{"summary":"读取冻结结果与指标状态","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/tasks/{request_id}/cancel":{"post":{"summary":"取消任务；归档中不可取消","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/tasks/{request_id}/retry":{"post":{"summary":"重试失败/取消/输入无效任务；重新执行当前准入检查","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/uploads":{"post":{"summary":"上传单个预测 ZIP 原始字节（非 multipart）；1 byte–2 GiB","responses":{"201":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"filename","in":"query","schema":{"type":"string"},"description":"以 .zip 结尾，默认 prediction.zip"}],"requestBody":{"required":true,"content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}}}},"/api/hot3d/input-package":{"get":{"summary":"返回输入包索引 JSON；下载使用 downloads.full/starter.url","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"拒绝或暂不可用；旧版本错误包含 required、received、links。普通校验错误至少包含 error。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"protocol","in":"query","schema":{"type":"string"},"required":true},{"name":"split","in":"query","schema":{"type":"string"},"required":true}]}}},"components":{"schemas":{"Inspection":{"type":"object","properties":{"protocol":{"type":"string","enum":["local-hot3d-quest3-mano21-pose-v1","reinterhand-ego-mano21-pose-v1"]},"split_id":{"type":"string","enum":["test200-v3","test40-v1"]},"contract_id":{"type":"string"},"upload_id":{"type":"string"},"reuse_result_id":{"type":"string"},"expected_count":{"type":"integer","minimum":1,"maximum":200,"description":"必须等于 ZIP 实际 Case 数，各协议上限以 submission-contract.case_count 为准。"},"evaluation_profile":{"type":"object","properties":{"prediction_type":{"type":"string","enum":["2d","3d"]},"inference_camera_ids":{"type":"array","items":{"type":"string"}}}}},"description":"来源二选一。无需模型或 Pipeline 字段；预检查不验证这些 catalog 字段。"},"Submission":{"type":"object","properties":{"protocol":{"type":"string","enum":["local-hot3d-quest3-mano21-pose-v1","reinterhand-ego-mano21-pose-v1"]},"split_id":{"type":"string","enum":["test200-v3","test40-v1"]},"contract_id":{"type":"string"},"upload_id":{"type":"string"},"reuse_result_id":{"type":"string"},"model_id":{"type":"string"},"model_version_id":{"type":"string"},"display_name":{"type":"string"},"version":{"type":"string"},"version_description":{"type":"string"},"pipeline_id":{"type":"string"},"pipeline_version_id":{"type":"string"},"pipeline_name":{"type":"string"},"pipeline_version":{"type":"string"},"pipeline_version_description":{"type":"string"},"expected_count":{"type":"integer","minimum":1,"maximum":200,"description":"必须等于 ZIP 实际 Case 数，各协议上限以 submission-contract.case_count 为准。"},"leaderboard_type":{"type":"string","enum":["formal","temporary"],"default":"temporary"},"evaluation_profile":{"type":"object","properties":{"prediction_type":{"type":"string","enum":["2d","3d"]},"inference_camera_ids":{"type":"array","items":{"type":"string"}}}}},"description":"upload_id / reuse_result_id 二选一；模型与版本必填（现有 ID 或新名称/版本/说明）。Pipeline 整组选填；选中后版本必填。详见指南。"},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"required":{"type":"object"},"received":{"type":"object"},"links":{"type":"object","additionalProperties":{"type":"string"}}}}}}}