战场调度控制台

后端主导轮次调度,前端只需最小输入。用于刷新指标、查看小兵状态并提交分组配置。

策略概览

当前档位{{ metrics.current_level || '-' }}
冷却剩余{{ metrics.cooldown_remaining ?? '-' }}
EWMA R{{ formatNumber(metrics.ewma_r) }}
EWMA D{{ formatNumber(metrics.ewma_d) }}
EWMA T{{ formatNumber(metrics.ewma_t) }}
最近轮次{{ metrics.last_round_id || '-' }}
最近收益率{{ formatNumber(metrics.last_profit_rate) }}
最近异常{{ metrics.last_anomaly ? metrics.last_anomaly_reason : '无' }}
最后更新:{{ lastUpdated || '-' }}

配置编辑

请使用完整兵号(如 G1-001)。
{{ error }}

策略参数调优

调试期可增大,避免超时误判。
越大越看重最近轮次,越小越平滑。
稳定轮数越多,升档越谨慎。
异常触发门槛,越大越不敏感。
轮次耗时低于该比例且损失上升则判异常。
异常后强制 L1 的轮数。
超时 LOSS 计入损失的权重,仅影响算法判定。
按游戏规则填写,影响收益率计算。
按游戏规则填写,损失成本。
全未上报轮次不影响算法(适合调试)。
修改后对新开轮次生效。
{{ paramError }}

小兵状态

分组 小兵 状态 待上报 租期到期
{{ row.group }} {{ row.soldier }} {{ row.state }} {{ row.needs_report }} {{ row.lease_expires_at || '-' }}

API 请求示例

当前域名:{{ apiBase }}

查询小兵状态(GET /api/soldier/state)

GET {{ apiBase }}/api/soldier/state?group=G1&soldier=G1-001 HTTP/1.1

请求参数说明

字段 说明 是否必填 备注
group分组编码必填-
soldier小兵编号必填全码,如 G1-001

响应示例(字段后注释中文说明)

{
  "group": "G1",
  "soldier": "G1-001",
  "state": "DEPLOYED",
  "needs_report": true,
  "lease_expires_at": "2026-01-08T12:30:00Z"
}
// group: 分组编码
// soldier: 小兵编号(全码)
// state: 当前状态(REST / DEPLOYED)
// needs_report: 是否需要上报
// lease_expires_at: 租期到期时间,可能为 null

上报前必须为 DEPLOYED,且 needs_report 为 true。

上报战斗结果(POST /api/soldier/report)

POST {{ apiBase }}/api/soldier/report HTTP/1.1
Content-Type: application/json

{
  "group": "G1",
  "soldier": "G1-001",
  "result": "WIN",
  "kills": 2,
  "duration_sec": 68
}

请求字段说明

字段 说明 是否必填 备注
group分组编码必填-
soldier小兵编号必填全码
result战斗结果必填WIN / LOSS
kills击杀数量可选默认 0
duration_sec战斗耗时(秒)可选不填由服务端估算

响应示例(字段后注释中文说明)

{
  "status": "OK",
  "round_id": 123
}
// status: 请求处理结果
// round_id: 当前轮次 ID

诊断导出

导出包含 config.json、rounds.csv、deployments.csv、logs.ndjson。
{{ exportError }}