modelhub-agent-contrib

ModelHub XC(信创模盒)适配智能体 Phase1 本地骨架。

不代注册;Victor 已批准队列闸门 live 代提。 发布智能体本身 不得分。积分来自成功适配,数字一律 待平台核实。 冲突裁决:适配 W1 优先;本仓默认 live 开启,仅在实时验证队列低于阈值时提交。

契约要点

项 值
端口 8080
健康检查 GET /health → {"status":"ok"}
启动 必须有非空 STRATEGY_ID,否则 exit ≠0
Live 默认开启;ALLOW_LIVE_SUBMIT=0 为停交开关;必须提供 STRATEGY_ID
Base 镜像 平台 xc_agent_platform/python:3.11-slim(保留 FROM)

Tag v0.2.3-live-token 内置个人凭证,风险与停交说明见 token bake warning。

Victor 的确认已内置,LIVE_CONFIRM 仍接受但不再必需。每次 task/add 前, 通过 Xc-Token 全量分页读取 onlyMine task/page;非终态计入队列,读取失败停交。 LIVE_QUEUE_THRESHOLD=95(严格小于),LIVE_MAX_SUBMITS_PER_CYCLE=3, LIVE_CYCLE_SECONDS=600(最小 60 秒)。环境队列提示仅可额外阻塞。 候选来自 PENDING_SUBMIT_MD / PENDING_SUBMIT_TXT,否则使用 src/data/candidates.json(随镜像内置);A verified_reuse → 其他 A → B。 禁提、重复、GPU 未映射、占位符候选跳过。按 try_next_gpus 顺序选择首个已映射且未提交的模型/GPU 对。LIVE_STATE_FILE 默认 /tmp/live-submitted.json,格式为 model|gpuEnum 字符串列表,在请求前持久化;失败请求也不自动重试。旧版仅模型名状态文件须先离线迁移,否则 fail closed。 去重合并远端全部状态的 modelId + gpuType、内置 src/data/submitted-ledger.json 和持久化状态。A 允许同模型换 GPU;do-not-resubmit 模型跨 GPU 全禁。服务启动重建一次并只记录三类 pair 数;每次提交前刷新远端,失败则 hold ledger_rebuild_failed。task/page total 接受非负整数或 ASCII 数字字符串。 凭证优先级:EXTERNAL_SERVICE_TOKEN → XC_TOKEN_FILE → XC_TOKEN → MODELHUB_XC_TOKEN;跳过空值和占位符。每周期只记录 source 环境变量名,使用 Xc-Token 请求头,不记录凭证值。 离线再生成:python3 scripts/bake_candidates.py、python3 scripts/bake_ledger.py,读取 /workspace/modelhub-adapt 本地文件;候选 342(A 46、B 296),ledger 206 对及 28 个模型禁提项。 配置优先 build-config,失败使用 sample 并记录来源及原因。token 缺失只 hold。

快速开始

cd /workspace/modelhub-agent-contrib
make test
make smoke-health    # 自动起本地 server(需 STRATEGY_ID,脚本可注入测试值)
make dry-run         # 写出 reports/dry-run-*.md
make build           # 需 Docker + 可达平台 base;失败见 docs/build-notes.md

本地起服务:

export STRATEGY_ID=local-dev
export ALLOW_LIVE_SUBMIT=0  # 本地开发停交
python3 -m src.server
# → http://127.0.0.1:8080/health

目录

Dockerfile  Makefile  README.md
src/        # server / health / strategy / gate
config/     # example.env, candidates.example.json
scripts/    # smoke_health.py, dry_run.py, tag_release.py
reports/    # dry-run 输出(gitignore)
docs/       # 契约 / runbook / kickoff / issues
tests/      # stdlib unittest

Makefile 目标

  • test / build / smoke-health / dry-run
  • 没有 register / submit / deploy / push

文档

资源声明

按平台量级设计:约 100m–1 CPU / 256–512Mi。

许可与边界

本仓库用于 Victor 本地/Gitea 交付。Victor 已批准上述队列闸门自动提交;不自动注册。 make dry-run-pending 仍仅生成草稿;测试全部 mock 平台接口。

Description
No description provided
Readme 300 KiB
Languages
Python 98.5%
Makefile 0.9%
Dockerfile 0.6%