Phase2 dry-run: pending A, probe, build-config client, gated task/add

Still default dry-run; ALLOW_LIVE_SUBMIT=0. Live gates closed.
This commit is contained in:
Victor Cao
2026-10-16 19:00:15 +08:00
parent 0d0f3b611a
commit bed3bc11ca
25 changed files with 952 additions and 110 deletions

View File

@@ -1,7 +1,7 @@
# API 探针设计(只读意图 · 禁止代调写接口)
- 日期:2026-10-16 Asia/Shanghai
- Phase1:**仅设计文档**;本仓不实现真实 HTTP 写客户端
- Phase2:客户端已实现但默认不调用;本轮禁止真实 task/add
## 管理 API `/agent_platform/strategies*`
@@ -22,15 +22,20 @@
|------|------|----------|
| GET | `/api/adapt/task/page` | 未来只读鉴权探针(对齐 huni-probe,`ALLOW_SUBMIT=0`) |
| POST | `/api/adapt/task/build-config` | 设计可引用;Phase1 不实现 |
| POST | `/api/adapt/task/add` | **禁止代调**;live 仅闸门 + 单测假客户端 |
| POST | `/api/adapt/task/add` | 显式注入客户端 + 双闸门;本轮只做 mock 测试 |
| GET | `/api/adapt/task/calculate-credit` | 只读索引;勿写死 KPI |
容器内社区鉴权(C):`Xc-Token` + body `strategyId` — **待 Victor 账号核实**后再实现探针。
容器内社区鉴权(C):`Xc-Token` + body `strategyId` — **待 Victor 账号核实**;60014 仍为 **D(unverified)**。
## Phase1 落地边界
## Phase2 落地边界
- `src/gate.py`:闸门逻辑 + `attempt_live_submit(..., client=Fake)` 仅供单测
- **无**默认 `urllib`/`requests` 客户端指向 `task/add` 或 `strategies` POST
- `src/gate.py`:闸门逻辑 + `attempt_live_submit(..., client=Fake)` ;真实客户端只能显式注入,测试必须 mock HTTP
- `src/task_add_client.py` 使用 urllib;import 和 dry-run 无网络调用,无自动重试
- token 优先级:XC_TOKEN_FILE → XC_TOKEN → MODELHUB_XC_TOKEN → EXTERNAL_SERVICE_TOKEN;禁止输出 token
- build_payload 中 GPU/framework/strategyId/configParams 占位须人工替换;真实调用要求 STRATEGY_ID 与 payload 一致
- 队列 ≥95 阻断;无效队列提示也阻断;每进程一次调用预算在调用前保留,异常也不重试(防止响应丢失造成重复创建)
- 名称/族硬门不能证明元数据 PASS;未跳过的 pending 行均标 needs_human
- 仍禁止所有 agent_platform 写接口
- Makefile **无** register / submit / deploy / push
## 冲突裁决提醒