平台契约 — 适配智能体(Phase1)
- 日期:2026-10-16 Asia/Shanghai
- 依据:产品规划
agent-product-plan-2026-10-16.md §1 + PRD 02-agent-contribution-prd.md
- 冲突裁决:适配 W1 优先(队列 ≥95 禁 live;默认 live 开启,实时队列闸门控制)
核实等级
| 等级 |
含义 |
| A |
官方演示仓 / 主站前端明文 |
| B |
PRD 已核实(docs/6 + 控制台,基线 2026-10-12) |
| C |
社区样例,非平台承诺 |
| D |
待核实 |
运行契约
| 项 |
内容 |
等级 |
| 代码托管 |
dev.modelhub.org.cn 用户仓 |
B |
| 注册 UI |
名称、仓库地址、Git Tag(不可用分支名) |
B |
| 构建 |
平台 Kaniko,refs/tags/<tag> |
B |
| Dockerfile |
仓库根目录;base modelhubxc-4pd.tencentcloudcr.com/xc_agent_platform/python:3.11-slim |
A |
| 端口 |
8080,EXPOSE 8080 |
A |
| 健康检查 |
GET /health → 200 {"status":"ok"} |
A |
| 可选状态 |
GET /status → 布尔 strategy_id_present / external_service_token_present(不回传值);另含 success_metric: "verify_pass" 与 stats(最近统计及 epoch 秒 updated_at,未读取时 null) |
本仓 Phase1 |
| 优雅退出 |
SIGTERM,约 ≤30s 平台窗口;本实现目标 ~1s 退出主循环 |
B |
| 平台注入 |
STRATEGY_ID;EXTERNAL_SERVICE_TOKEN(及社区别名) |
A/B |
| STRATEGY_ID 缺失 |
Phase1:进程启动失败(exit ≠0) |
产品规划 Phase1 + PRD |
| 资源 |
约 100m–1 CPU / 256–512Mi |
B |
| 发布智能体得分 |
0 分(发布 ≠ 得分) |
B |
| Live 默认 |
开(Victor 已批准);ALLOW_LIVE_SUBMIT=0 停交,LIVE_CONFIRM 可选 |
本仓 |
| 积分 |
来自验证通过(verify_pass,verifyResult==1)的适配;status=success 且 verifyResult=-1 为验证失败、0 分;公式/周报 待平台核实 |
B / D |
鉴权双轨(文档索引,Phase1 不代调)
| 场景 |
头 |
等级 |
浏览器 / agent_platform |
Authorization: Bearer <login token> |
A |
| 容器内社区实践 |
Xc-Token: <token>;body 带 strategyId |
C |
禁止
- 代注册、绕过实时队列闸门、Makefile 含 register/submit/deploy/push
- 日志/响应/镜像层写入 token 或 STRATEGY_ID 值
- 把「智能体已发布」写入千分进度
冲突裁决(强制)
| 资源 |
裁决 |
| 异步验证队列 |
适配 W1 优先;≥95 全体停交(含智能体 live) |
| Codex |
hold 期扩池/归因 > 智能体脚手架 |
| 本骨架 |
默认 live;每次 task/add 前实时读取 onlyMine 队列 |
闸门配置以实现为准
ALLOW_LIVE_SUBMIT 默认 1,0 为 kill switch;STRATEGY_ID 必需。
Victor 确认已内置,LIVE_CONFIRM 仍接受但不必需。
LIVE_QUEUE_THRESHOLD 默认 95,只有完整分页的 onlyMine task/page 非终态数严格小于阈值才提交。
缺凭证、HTTP/平台错误、JSON 错误、分页不完整或无效配置均停交。
ASYNC_QUEUE_DEPTH / QUEUE_SNAPSHOT_JSON 仅为额外阻塞提示。
每周期最多 LIVE_MAX_SUBMITS_PER_CYCLE(默认 3)次;周期
LIVE_CYCLE_SECONDS 默认 3600、最小 60 秒,通过 shutdown Event 等待。
候选 A verified_reuse 优先,禁提过滤、GPU enum、占位符检查及远端、内置 ledger 和进程内去重。
永久拒绝对保存在 src/data/reject-marks.json,随镜像重建保留;不写容器状态文件。
LIVE_PRECHECK 默认 1,只读预检已验证/验证中 GPU;LIVE_MAX_PRECHECKS_PER_CYCLE 默认 30。
build-config 失败回退 sample 并记录原因;日志不记录响应正文或凭证。
统计成功口径:成功指标统一为 verify_pass(verifyResult==1,验证通过);任务 status 为 success 但 verifyResult==-1 属于验证失败,积分为 0。 每轮日志格式为 [live] stats total=N queue=N verify_pass=N verify_fail=N failed=N unknown=N points=X;失败日志为 [live] stats unavailable reason=<安全原因>。