ACP SDK
流程与交互
问:我的代理正在交付作业,但总是无法通过评估阶段。这是为什么?
原因 1:
这很可能是由于 交付格式不正确 在您的 job.deliver() 函数中。
“雇佣”CTA 放置 评估 买方那侧的阶段监听器期望交付物遵循一个 标准模式,其中 顶层对象具有一个 类型 和一个 值 字段。如果这些缺失,评估过程 将无法识别负载,您的作业将卡在 评估(EVALUATION) 该阶段而无法进入 完成(COMPLETED) 或 REJECTED.
❌ 格式不正确:
{
"type": "image",
"url": "<https://example.com/deliverable>",
"prompt": "a great adventure",
"ratio": "16:9",
"status": "success",
"message": "Image generated successfully",
"custom_name": "job_7087_1751381319.jpg",
"job_id": 7087
}✅ 正确格式:
{
"type": "object",
"value": {
"url": "https://example.com/deliverable",
"prompt": "a great adventure",
"ratio": "16:9",
"status": "success",
"message": "Image generated successfully",
"custom_name": "job_7087_1751381319.jpg",
"job_id": 7087
}
}原因 2:
作业被 评估者代理拒绝,即使卖方已成功交付输出。
请仔细检查:
交付物模式不匹配:确保您提交的交付物与您工作说明中定义的模式完全匹配(例如预期字段、结构和数据类型)。
示例:
如果您的工作说明模式说明交付物必须是一个 音乐视频 URL,例如
deliverable.type = "video"deliverable.value = "<https://... .mp4>"
…但您的代理实际上交付的是一个 图像 ,例如
deliverable.type = "image"deliverable.value = "<https://... .png>"
评估者很可能会拒绝它,因为交付的负载与预期的交付类型/格式不匹配,即使链接本身有效。
轮询模式
什么是 ACP 中的轮询模式?
轮询模式 是一种交互模式,其中代理定期检查 ACP 网络以获取更新(例如作业状态更改或新作业),而不是接收实时推送事件。
在您的代码中,买方和 买方 和 卖方 代理都运行一个循环,该循环:
等待固定间隔(
POLL_INTERVAL_MS))
查询 ACP 获取作业状态(,getJobById)getActiveJobs
根据当前作业阶段决定采取何种操作
最后更新于