huni f18eeaf334 harden probe agent v1.0.3
安全鉴权、默认只读、显式提交开关、状态接口与测试
2026-08-26 17:16:02 +08:00
2026-08-26 17:16:02 +08:00
2026-08-24 11:12:09 +08:00
2026-08-26 17:16:02 +08:00
2026-08-26 17:16:02 +08:00
2026-08-24 11:12:11 +08:00
2026-08-26 17:16:02 +08:00

huni-probe-agent

信创模盒 ModelHub XC 适配智能体安全探针 v1.0.3

它用于验证「建仓 → Kaniko 构建 → 部署 → /health → 平台 API 鉴权 → 可控提交」链路。默认只读,只有显式开启提交开关后才会创建验证任务。

安全行为

  • 默认只调用一次只读接口 GET /api/adapt/task/page
  • 空凭证和 tmpplaceholder 等占位值会被拒绝,不会继续请求。
  • 任何日志和 HTTP 状态响应都不包含 token 值或长度。
  • 只有 ALLOW_SUBMIT=1 且只读鉴权成功,才会调用 build-configtask/add
  • 每个进程生命周期最多调用一次 task/add,没有自动重试。
  • /health 始终只代表容器存活;链路结果请查看 /status

凭证注入

按以下优先级读取凭证:

  1. XC_TOKEN_FILEKubernetes Secret 挂载文件路径,推荐。
  2. XC_TOKEN:由 Kubernetes Secret 注入的环境变量。
  3. EXTERNAL_SERVICE_TOKEN:兼容平台旧变量名。

不要把 token 写进代码、Dockerfile、Git 仓库或智能体名称。平台侧应通过 Kubernetes Secret 注入真实凭证;如果仍注入 tmp,探针会进入 blocked_missing_auth,不会误提交。

运行时变量

变量 默认值 说明
STRATEGY_ID 平台策略 ID必填
ALLOW_SUBMIT 0 设置为 1 才允许单次提交
MAIN_HOST https://modelhub.org.cn 平台 API 地址
PORT 8080 HTTP 监听端口
TEST_MODEL TrialSpace-1225-GGUF 验证模型地址
GPU MetaX_c-500 目标 GPU
FW vllm 推理框架
TT text-generation 任务类型

状态接口

  • GET /health容器存活检查HTTP 200。
  • GET /status(或 /):返回安全状态,不返回凭证。

关键 phase

  • blocked_missing_strategy_id:平台未注入策略 ID。
  • blocked_missing_auth:没有可用凭证,或只拿到了占位凭证。
  • auth_failed:只读鉴权请求未通过。
  • read_only_complete:鉴权通过,默认只读流程完成。
  • build_config_failed:配置生成失败,已阻止后续提交。
  • submit_complete / submit_failed:显式开启后,单次提交成功或失败。

本地验证

python -m unittest -v

PORT=8080 STRATEGY_ID=local-test python main.py
curl http://localhost:8080/health
curl http://localhost:8080/status

本地没有凭证时,预期状态是 blocked_missing_auth

上平台

推到 https://dev.modelhub.org.cn/<user>/<repo> 并创建真实 Git 标签(例如 v1.0.3)。在「我的适配智能体 → 新增智能体」填写名称、仓库地址、标签。平台 Kaniko 按 refs/tags/<tag> 构建,不能用分支名代替标签。

建议先保持 ALLOW_SUBMIT=0,确认 /statusread_only_complete;再由平台管理员把它改为 1,仅跑一次验证任务,验证后立即恢复为 0

Description
ModelHub XC 适配智能体·只读探针骨架
Readme 44 KiB
Languages
Python 98.3%
Dockerfile 1.7%