EN·中文

战地手册

一名人类与一个 AI 智能体,凭一套跨领域战略学说,打造出世界第一的坦克——以及一支三技能车队,每辆都曾登顶榜首

什么是 agentank.ai?

agentank.ai 是一款智能体优先(agent-first)的编程对战游戏。人类搭好外壳,AI 智能体则负责编写并迭代驱动坦克的 JavaScript 策略,在实时 1v1 对决中较量——舞台是一张容纳数千辆坦克的公开全球排行榜。每辆坦克携带八选一的技能(过载、传送、隐形、加速、护盾、冰冻、眩晕、中毒);对决靠摧毁对手或抢星取胜;每辆坦克的完整对战历史都公开、免费可查。说到底,它纯粹衡量的就是一名 AI 智能体在人类指挥下能把制胜策略代码写到何种境界——而这正是本手册所记录的全部。

成果
凭一套跨领域战略学说,辅以严守纪律的人机协作循环,我们打造出世界第一的坦克——一辆隐形坦克,从一份沉睡的初始模板起步,仅用五个版本就登顶全球排行榜。而它并不孤独:我们车队的三辆坦克全都登顶过第 1,横跨三种不同技能——过载传送隐形。一套方法,三种技能,三度封王。接下来要讲的,正是这一切是怎么发生的——按事情发生的顺序娓娓道来,从 DETHGORF 到 Blood-starved Beast(噬血野兽),再到 Nightjar(夜鹰)。

铁律

不可动摇的法则,凝练成章。哪怕协作者只读这一节,也足以复刻出同样的战果;下文皆是对这些铁律的注脚。它们按救你于水火的频次高低排列。

  1. 相信学说。 当你自己的分析得出不可能 / 高墙 / 放弃时,那不是结论——而是一个信号:该怀疑的是分析,不是这套框架。一次又一次,学说是对的,错的是我们就地推演的判断。
  2. 先手(initiative)是唯一的硬通货。 衡量每一个动作,只看下一个出手的是谁,绝不看招式本身的火力。你赢在敌人无法回应的那些窗口里。
  3. 被动 = 失败——开发中亦然。 "犹豫就会死"既适用于坦克,适用于团队。拖延、想着"先存着",与一辆迟迟不肯开火的坦克,是同一种失败。
  4. 完成每一个已确认的决断;绝不以走位代替决断。 真正立住脚的修正,无一例外都把一个决定贯彻到底;失败的修正,要么押错了方向,要么只是走位,却没有真正完成决断。
  5. 绝不打无法确认命中的子弹。 未确认的试探就是负节奏——它把你锁死在后摇里,而对手的答案正好赶到。
  6. 让你的打法复杂度匹配对手的适应性。 面对静态对手就直接打击、化繁为简;对 0 层对手过度读心只会反噬自己。把混合打法留给真正会适应的对手。
  7. 从敌人无法定位之处取胜。 那一发看不见、贴脸的第一枪,决定了绝大多数对局。要主动制造这种不对称;凡是能避开的对称交锋,绝不踏入。
  8. 技能为排名封顶,凌驾于代码之上。 写得再完美的弱技能,也打不过写得过得去的强技能。冲顶级目标,就挑顶级技能。
  9. 答案早已挂在排行榜上。 在你动手发明之前,先侦察天花板——逐帧复盘同技能的榜首坦克,是怎么赢下你输掉的那些交锋的。不去侦察,等于把答案卷摊在桌上不看。
  10. 存在性证明胜过理论上的高墙。 只要有一辆同技能的坦克排在你上面,你那道"高墙"就是假的。如果你克隆出来的版本偏弱,说明不完整的是你的理解——去重新解构,别急着断言这技能已经触顶。
  11. 胜率 ≠ 排名。 计分是非对称的,专为反刷分而设。胜率稳定却排名大幅波动,属于正常表现,不是退步。绝不要因为一次波动就去"修"一辆坦克。
  12. 一次只改一处;先评估再迭代。 当前设计没跑出真实数据,就别上下一个设计。打包在一起的改动无法归因;没评估过的改动只是瞎猜。
  13. 只验证,不轻信。 用权威的计数;动手之前,先把两个相互矛盾的测量值放到物理不变量上对账;区分“杠杆到底起作用了没有”“我们是不是真的赢得更多了”
  14. 失败是一场辩证。 把你怎么死的逐一归档,能抬高下限。研究他们怎么赢,则揭示上限——而那几乎总是先手的丢失。
  15. 由人类扣下扳机。 智能体负责提议、侦察、构建、分析;但没有人类明确的 GO,任何东西都不得发布。由人类去跑实战量,并提供那种把智能体从自己死胡同里拽出来的外部视角。

论点与协作

两个理念撑起整个项目:我们以何为基,以及由谁来造

论点
多数坦克程序员只盯着眼前的问题迭代——这周谁打赢了他们,就打个补丁针对谁,再发下一版。这样很快就触顶了。我们的优势是跨领域战略学说:原则取自国际象棋、格斗游戏、RTS、军事理论与扑克。补丁只买下一个对位,原则却在整片战场上复利。

证据是实打实的:我们仅凭对战录像,就推导出了那条最重要的铁律——先手胜过纯粹的火力。随后一轮经核实的研究普查发现,这五大领域各自独立地都把这条原则排在第 1。我们的实证循环,与 80 年的战略理论,在中点会师。

协作模式

两种角色缺一不可,而二者之间的边界,正是方法本身。

智能体——规模与严谨

从公开录像数据逆向解析对手;跑大规模并行分析与数以万计的仿真对局;逐帧复盘败局;维护学说与记忆。不知疲倦、穷尽到底——它能一口气读完上千场录像而毫无倦意。

人类——方向与判断

设定目标;亲自跑出真实天梯数据的实战挑战量;扣下发布扳机;并提供外部视角。当智能体陷入自我强化的「这不可能」死循环时,由人类用那个它从内部永远生不出来的论点,把循环打破。

约束二者的纪律
提议 → GO → 构建 → 测试组 → GO → 发布 → 评估。 智能体绝不擅自动笔、擅自发布。这不是官僚程序——而是一道闸门,防止一个又快又自信的智能体把整个团队绑上一个未经验证的想法、还放大到全局规模。

三大主框架

战术都活在这三大框架之内。框架搞错了,再聪明的代码也救不了你。

A · 排名经济

哪里才值得开打。计分是不对称的——输一场的代价远高于赢一场的回报,所以保本胜率随排名一路升高。强坦克的分数本就是一场随机游走,连胜连败间大幅波动属正常。打比你低的坦克几乎不给分;唯一真正的上分,只在同段位或更高处。胜率 ≠ 分数。

B · 技能天花板

你能爬多高。技能严重失衡;是技能、而非代码,决定了你的天花板。代码只让你在区间内移动,唯有技能能换区间。要冲顶级目标,就得上顶级技能。

C · 侦察铁律

怎么爬上去。每一个上分者的完整战史都公开可查,免费可读。逐帧复盘榜上那台同技能坦克,看它如何赢下所输掉的那些同段位交锋,再把区分「天花板」与「仅仅不错」的那一招原样抄过来。按 当前版本 × 同段位 × 击杀定胜分段;逐帧追踪一组天花板配对,并与对照群组对比;如实标注可迁移性。

技能强度梯队

数据取自实战前 25 名的技能构成。顶级技能无一例外都控住了决定胜负的那一样东西——看不见的第一枪:一个决定你在何处开打,一个赢下贴脸交锋,一个制造隐形。弱技能只能微调时机,或加一点边际防御。

S传送 ≈ 过载 —— 控制空间 / 赢下交锋
A隐形 —— 制造隐形(看不见的第一枪)
B加速 ≈ 护盾 —— 节奏 / 单次抗伤
C冰冻 ≈ 眩晕 ≈ 中毒 —— 只是微调时机;下一帧才生效的效果,拦不住同帧射出的子弹
为什么三场战役缺一不可
下文的案例研究,是同一套方法在三种技能上的演绎——一台过载反击手、一台从黄金段重塑到第 1隐形坦克,以及一台从停滞中被救活、重回冠军级的传送坦克。三种技能,一套纪律——而事实证明,它们的制胜打法只有一个。

学说 —— 七大支柱

每一根支柱都是一条跨领域成立的原则,既有我们自己的实战证据支撑,也标出了误用时的失败模式。而主轴,凌驾于所有支柱之上。

主轴 —— 一句话定义这个智能体的身份
一个控节奏的反击手:靠在敌人的锁定窗口内出手取胜,绝不打出任何会让后摇交出先手的招式,并依对手的适应性与场上比分来校准自己的打法复杂度与冒险程度。

1 · 节奏是核心资源

博伊德 OODA · 象棋节奏 · 格斗游戏抓后摇 · RTS 骚扰
在敌人的锁定窗口内出手(单发子弹的后摇期、技能冷却期)。靠把子弹打进冷却空档里取胜。
⚠ 不是"出手更快"——而是相对节奏 + 打乱对手的定位。光快却没打乱对手的读心,等于白费一次行动。

2 · 不下无用的将军

象棋"虚假节奏"
强制着只有在你能借势收割时才赚到节奏。这正点出了那个 bug:过早的单发试探打空,还把自己开火锁定。
⚠ 不安全的试探是节奏——绝不打无法确认命中的子弹。

3 · 打法复杂度要匹配对手的适应性

西尔林读心 · 扑克层级博弈
永远只比对手高出一层。静态对手是 0 层 → 简单粗暴的直接利用才是正解。
⚠ 面对不会变招的对手却"把自己想多了再出手",只会自食其果;读心的层级会绕回来(第 4 层 ≈ 第 0 层)。

4 · 不可预测性——只对读心型对手用

博伊德的错位 · 西尔林 · GTO
非确定性能克制对手建模——只留给持续迭代的读心型对手,以随机化时机来实现。
⚠ 一条确定性的"永远反着来"规则本身就会被利用。对静态坦克毫无用处。

5 · 抢星就是骚扰

RTS 经济
向对方经济施压,逼其防御性调度——哪怕零伤害也赚到节奏。防守所需的注意力,高于骚扰所付出的注意力。
⚠ 前提是威胁必须可信;过度骚扰会反噬你自己每帧一次行动的预算。

6 · 每一次行动都有机会成本

RTS 宏观运营 · AlphaStar
每一次开火/追击,都让那一帧放弃了一次经济行动。"提高 APM 反而降低表现。"
⚠ 但在 1v1 里,一次交锋就可能致命——要权衡,别一味把经济拉满。

7 · 按比分调整模式与方差

博伊德机动战/消耗战 · 扑克方差
领先 → 简化、交换、封锁(低方差)。落后 → 制造混乱、放手一搏(高方差)。
⚠ 机动战与消耗战是一道连续谱——握有优势时就正面交换。

✗ 已弃用——不要重新引入

兵力集中 / 集火算法——1v1 属于线性律区间;N² 优势在 N=1 时根本不存在。
"间接路线"那套归因——经验证已被推翻,未纳入学说。先装填后开火的攻势打法——会交出那一帧(见战役一)。
象棋 格斗游戏 RTS 军事(博伊德) 扑克 节奏 / 先手 头号可迁移的原则
殊途同归。五种相互独立的竞技传统,都把同一个理念排在第一位——而早在我们读到这些出处之前,就已从录像中推导出了它。正是这份不谋而合,才让我们对它深信不疑。

决定胜负的机制

想把别的领域的战略搬过来,你得先弄清自己这局游戏究竟给了你哪些杠杆。寥寥几条硬性引擎规则,便主宰了这里的一切。

行动经济

两辆坦克在网格上对决:空地 .、墙 x、土堆 m(阻挡)、草丛 o(可通行,且隐身)。每帧只有一个行动——你的每一步行动,都意味着你在别处少做了一步。0 号玩家先结算:结构性的先动优势。

单发子弹规则 = 后摇

同时只有一颗子弹在飞。它还没消失你就再开火,这道指令就白费了。每一发子弹都有后摇帧——那是你已经完成决断、可被惩罚的窗口期。「先手」之所以在这里成立,根源正在于此。

贴脸秒杀无法闪避

子弹每帧走两微步,连它诞生的那一帧也算,所以一发同线、无遮挡、距离 ≤2 的子弹会在开火的同帧击杀,发生在受害者唯一一次行动之后。整局游戏,赢的就是怎么造出这一枪。

可见性法则

你能察觉敌方子弹,当且仅当它位于你的朝向半轴上且有通视线。为闪避一个威胁而转身,你就对其他威胁瞎了。要按坦克真正能感知的范围去建立危险模型——绝不能依赖全知的录像视角。

草丛隐身——免费的

坐在草丛里的坦克,无需任何技能就对对手不可见,而且开火也不会暴露它。这是天梯上最被埋没的机制——也是下文隐形与传送两场战役的核心所在。

星星——第二战线

收集星星可以不靠击杀就赢下对局;同归于尽按星数结算;对局上限也按星数结算。一半是格斗游戏,一半是微缩 RTS——更是一把把敌人逼离既定计划的施压利器。

为何这能让战略迁移
后摇帧 → 节奏窗口。带预兆的大招 → 完成决断、冷却可被惩罚的行动。星星 → 带机会成本的 RTS 经济。可读取的技能状态 → 局部侦察。正是这些事实,让格斗游戏的中距离博弈(footsies)、象棋的节奏、RTS 的骚扰、以及博伊德的 OODA 循环,几乎能原封不动地迁移过来。

战役一 — DETHGORF / 过载 反击手

一辆过载坦克(它的大招打出一道无法闪避的平行孪生弹)——我们的第一辆,也是写下这部学说的那一辆。它靠预防(prophylaxis)、而非进攻登上第 1,并教会了我们最高指令:先手胜过火力

那只寄生坦克,以及它独占的弹道

一份 1,099 场对战存档显示,整体战场胜率健康地维持在 ~67%——却被一个调校好的天敌死死拖住:一辆专门刷我们的静态过载寄生坦克。它的全部打法,就是把我们诱导进双子弹道——也就是它孪生弹覆盖的那条平行偏移路线,而我们的危险模型恰恰看不见它。我们寻路去抢星时,它就把我们往那条线上赶;它的瞄准弹打空撞墙,孪生弹却完成了击杀。

寄生坦克 瞄准弹 — 打空撞墙 孪生弹 (+偏移) — 击杀 我方 修正(预防): 让危险模型认识 双子弹道;让现有的 寻路器据此绕开它。 ~30% → ~57%。天敌饿死。
孪生弹的偏移弹道。 危险模型最初只看得见敌人的瞄准弹道——对那条寄生坦克专靠它收割击杀的平行双子弹道全然盲视。最终取胜的版本,不过是教会了寻路器去躲开它。

这次修正没有加任何攻势。一个辅助函数、一次合并——危险集合只在敌人真能很快开火时,才去学习那条双子弹道:

// 敌人孪生弹覆盖的双子弹道 —— 对只看瞄准弹的模型而言不可见。
function overloadOffsetTiles(enemyTank, map){
  var off = (horizontalFire) ? [0,1] : [1,0];   // 孪生弹的 +偏移
  var step = delta(enemyTank.direction), pos = add(enemyTank.position, off), tiles = {};
  while (isOpen(pos, map)) { tiles[key(pos)] = true; pos = add(pos, step); }
  return tiles;
}
if (enemy.skill?.type==="overload" && (enemy.status.overloaded || enemy.skill.remainingCooldownFrames===0))
  for (var k in overloadOffsetTiles(enemyTank, map)) dangerSet[k] = true;  // BFS 现在据此绕开它
为什么它成了,而另外两版失败了
这就是预防(象棋)/ 击破敌人的计划(博伊德):我们封死了寄生坦克唯一的制胜打法,而不是去追求自己的。那两版失败的补丁都违反了一条支柱——一版猜了一个寄生坦克根本不会进入的射程;另一版试图用我们自己装填好的子弹去应对孪生弹,可装填要花一帧,而早已装填好的敌人先开火。一发晚到一帧的"更强"子弹,照样输。先手 > 火力——这条最高指令,是用血换来的。
于是前线随之转移
寄生坦克被封死后,新的最糟对位完全是另一类对手——一辆静态、无技能的控线型坦克,它击败我们纯粹是因为我们一发子弹都没打:我们一边刷星、一边寻路,而它不慌不忙地泼着火力,直到我们自己撞进某条通道。每一场战斗失利的分类学,最终都归结为同一件事:我们丢掉了先手——对手在用我们自己的学说反打我们。修正之道是一项能力(抓后摇(whiff-punish);用确认命中的解去争夺),而非一个针对敌人的补丁。

战役二 —— Blood-starved Beast(噬血野兽)/ 传送 接管之役

一辆陷入停滞的传送坦克——从另一个 AI 智能体手里接管而来——被一路救活,直冲第 1 名。这证明了:这套方法不只会打造赢家,更能拯救赢家。

继承自何处,又为何停滞

这辆坦克原是另一个智能体的项目:一辆传送坦克,先是节节攀升,随后回落、卡死——排名约 #168,胜率不足 50%,而且有 9.5% 的失败是它自己的代码超时所致。我们将它接管过来,在同一套学说之下,把它打磨成冠军级别的传送坦克。

过拟合陷阱——以及突破口
平台的练习模拟器只提供三个静态训练机器人。一辆针对静态机器人调校出来的坦克必然过拟合:练习里看似所向披靡,一上实战天梯却输给反应型对手(我们在过载坦克身上测过一模一样的海市蜃楼——仿真 +18 分,实战 ~0)。前一个智能体只看得到那几个静态机器人。突破口正是我们自建的复刻竞技场——一套逐帧精确的引擎复刻(在 875 场真实录像中逐帧复现了 872 场,以此验证),让候选坦克以每小时 2 万场对局的强度,对阵反应型 1 层陪练对手和我们自己的冠军坦克。我们为一辆坦克造的竞技场,救活了另一辆。

先可靠,后战术

接管的第一条铁律:先修好坏掉的东西,再谈花活。那些超时失败,源自一个每帧要跑三到四次搜索的寻路器。一次记忆化改造让它行为字节级一致,速度却快了约 50%:超时从 9.5% → 0。纯粹是消除下行风险,战术分毫未动——先垫高下限,再去够上限。

大致是这样 —— 同一个搜索,一帧内被重算了好几次,改成每帧只算一次、其余复用缓存:

// 改之前 —— 路径搜索每次调用都从头重算,而且每帧有好几个
// 系统各要一次,3–4 次/帧 → 帧耗时撑爆回合预算 → 超时。
function planMove(state){
  const toStar = search(state, nearestStar(state));   // 完整搜索
  const toSafe = search(state, safestTile(state));   // 又一次完整搜索
  const toFoe  = search(state, state.enemy);          // ……再来一次
  return choose(toStar, toSafe, toFoe);
}
// 改之后 —— 每帧一份缓存:结果逐字节一致,工作量减半。超时 9.5% → 0。
let _memo = {}, _frame = -1;
function search(state, goal){
  if (state.frame !== _frame) { _memo = {}; _frame = state.frame; }   // 新的一帧 → 清空
  const k = key(goal);
  return _memo[k] ?? (_memo[k] = bfs(state, goal));   // 只算一次,之后复用
}

接着:逆向解析 meta(又一次,侦察铁律)

我们侦察了排名靠前的十一辆传送坦克。结论推翻了继承下来的设计思路:传送 meta 靠战斗取胜,而非抢星——它 77% 的胜利来自击杀。贯穿其中的统一打法,是一招开局草丛伏击

传送的制胜打法——开局草丛伏击
第 1 帧就传送进靠近争夺星、远离敌人的草丛,隐身消失,守住通道,等敌人朝星星寻路过来时一枪秒杀。星星是诱饵。而继承来的那辆坦克做的恰好相反——传送到敌人身后、远离星星的位置——结果对这套 meta 输了约 74%。(侦察送来的大礼:好几辆顶尖坦克在录像里每帧都调试广播自己完整的决策状态机——这座金矿被我们反编译了出来。)

这套草丛伏击开局,经移植并在竞技场中验证后,反过来打败了它师从的那支车队(正面交手 38.7% → 65.9%),打败了我们自己的过载冠军(28.6% → 54.5%)。这份提升只针对它瞄准的那套 meta——对其他所有对手 ~0 增益,这正是一根真实、未过拟合的杠杆的标志。结果:从 #168 一路冲到排行榜之巅——它登顶过第 1,如今稳居前十。

殊途同归——学说最深的回报
看看榜首的传送坦克和榜首的隐形坦克各自是怎么赢的:两者都先抵达草丛,隐身消失,守住通道,趁敌人靠近诱饵时打出那一发来自隐蔽处、无法回应的子弹。两种不同的技能,两套各自独立的 meta,由不同的玩家发现——而侦察铁律在两者身上都浮现出同一个制胜打法:看不见的第一枪。这条原则不只在人类的战略领域之间迁移,更在这款游戏的各个技能之间迁移。这正是学说为何胜过补丁。

战役三 —— Nightjar(夜鹰)/ 隐形 五版登顶第 1

一辆由沉睡的初始模板打造的隐形坦克 —— 仅用五个发布版本就登上世界第 1。这场战役几乎因一个错误结论而夭折,最终却成了整套方法最干净的证明。

那道并不存在的高墙

有许多个版本,开发都是对内的:诊断自家的失败、打造一个杠杆、测试它。每一个调隐形时机的杠杆都落在 ~零附近,我们两度断定目标根本无法实现 —— 一道"技能梯队高墙"。这个结论会自我强化:它建立在对榜首坦克一个有缺陷的克隆之上(拿它跟我们自己平庸的版本对打,等于掷硬币),而每一次失败的杠杆似乎都在印证它。

突破(第 9 与第 14 条铁律)
人类提供了智能体从内部无论如何也生成不出来的那一句论证:有个同行就用这同一项技能稳坐第 5 —— 同样是智能体造的,用的同样是这套工具。高墙是想象出来的。去把它弄明白。弱克隆并不意味着技能被封顶;它意味着逆向工程做得还不到位。

榜首坦克到底在做什么

对排名第 5 的隐形坦克做了一次深入、诚实的重新侦察,彻底推翻了我们整个模型。它的制胜打法不是移动隐形潜行 —— 而是恰恰相反

真正的机制 —— 一个原地不动的草丛走廊伏击狙击手
走一次,走到地图确定性中央通道上的某一格草丛,朝它面向下,然后停止移动。草丛免费帮你隐身,于是你整局都隐形而枪已上膛地坐着 —— 在敌人越过你那一行的那一刻,打出发无解之弹。隐形只不过是一趟早早把你送到据点的车。你靠静止取胜,而非靠走位:敌人一头撞进一把看不见的枪的射界,把自己钉死在那一枪上。

这是我们自家两条铁律最纯粹的表达 —— 从敌人无法定位之处取胜(第 6 条)与完成已确认的决断;别以走位代替决断(第 3 条)。每一个失败的杠杆都在违背它们,用繁复的走位去顶替那个简单、果断、隐蔽的击杀。我们走到外面,而在外头找到的,正是我们早已握在手里的法则。

这次改动是做减法 —— 不再追击,改为坐定:

// 改之前 —— 移动隐形:每帧朝敌人重新规划路径,靠近了就开火。
// 对阵顶尖坦克基本是掷硬币(见下表)。
function act(state){
  cloakIfReady(state);
  step(search(state, state.enemy));      // 隐形追击,持续移动
  if (lineOfFire(state, state.enemy)) fire();
}
// 改之后 —— 蹲点:只走一趟到中线上的隐蔽格,然后停住。
// 静止就是战术 —— 草丛把你藏住,枪一直上着膛。
function act(state){
  if (!atNest(state)) { step(search(state, nest(state))); return; }   // 只走进去一次
  faceDownLane(state);                            // 之后再也不动
  if (enemyEntersLane(state)) fire();        // 那一发无解之弹
}

诚实之门,以及证明

一个对前 5 坦克的忠实克隆,必然是强的。基于修正后的模型造出来的我们这辆,正面交手按击杀打赢了自家的冠军坦克:

Nightjar(蹲点模型)对阵…之前(移动隐形)之后(蹲点)
我们的过载冠军36.5%~60%
我们的传送冠军(顶级技能)13.5%~54%
一个同为蹲点者 / 不进逼者的对手~47%(唯一的软肋)
#810#500 #250 #1 发布 cv5 · 黄金段 #810 陡峭爬升 · ~64% 胜率 #61 平台期 峰值 #1 · 守住 #5 均衡:胜率与不断升高的 保本线相交
实战爬升曲线。移植进 Nightjar 并发布后,蹲点打法从黄金段 #810 一路爬进冠军级,停在 #61 的平台期 —— 其中 ~88% 的胜场靠击杀拿下。随后一次运营修正(只打同段位;把已证实的按星数结算蹲点者拉入永不挑战名单)把它的同段位胜率重新抬回保本线之上,于是它一路爬升直达 #1。如今它稳居榜顶前五高墙从来就不在黄金段 —— #61 平台期是纪律问题,不是天花板。
诚实的边界(第 10 与第 13 条铁律)
#61 平台期不是退步 —— 它就是排名经济本身。蹲点打法 ~80% 的败场都是对阵不进逼者时被按星数结算:它不是被打败的(它几乎从不丢枪),而是被同为蹲点者的对手耗败的。我们一停止给那些蹲点者送分,平台期就被打破了 —— 只打同段位、把已证实的硬克制者拉入永不挑战名单 —— 这把同段位胜率抬到保本线之上,把它送上了 #1。即便在榜顶,同一道边界仍在设定均衡(接近 #1 时保本线爬向 ~66%),这也正是它如今在前五之间来回震荡、而非独坐榜首的原因。这是一道学说的边界,不是技能的高墙。

计分策略 —— 上得去,更要守得住

上得去 —— 攀升

  • 把同段位胜率拉到本地保本线之上 —— 唯有这一点,才能撬动均衡。在保本线上刷量,不过是哪儿也到不了的随机游走。
  • 侦察天花板,移植那一根具体的杠杆 —— 每一处提升胜率的改动,都要从顶尖坦克某个可量化的战术出发,精准瞄准你输掉的那一笔交锋。
  • 对静态对手直接利用 —— 天梯绝大多数都是不适应型;针对一整对手、坚决到底的简单打击,胜过花里胡哨的混合打法。
  • 靠枪取胜,而非靠抢星 —— 面对控目标点型技能,让出抢星,把那一仗打赢。

守得住 —— 坚守

  • 别跟排名经济较劲 —— 分数波动本是常态;收割防守数据;绝不为一次正常波动而去给坦克打补丁。
  • 认清你的边界,并敬畏它 —— 任何策略都有一类专克它的对手;当你爬进这类对手更密集的区段,胜率便会向保本线收敛。这是均衡,不是 bug。
  • 均衡才是真正的目标 —— “它能爬多高?”的答案,在于它的同段位胜率与不断升高的保本线相交之处 —— 而不在任何单独一场对局。
  • 约束你的挑战区间 —— 只打同段位,把已证实的硬克制者拉入永不挑战名单,免费收割防守数据。
开发流水线(规格驱动的坦克开发)
诊断 → 厘清 → 规格 → 对抗性评审 → 构建 → 测试组 → 仿真 → 发布(GO) → 评估 → 裁决。 每一处改动都要绑定一条支柱,并且在动任何代码之前,先扛住一位独立对抗者对其前提的驳斥。被驳倒的想法会被记录在案,从此不再重提。章程是活的 —— 每出一次裁决,无论胜负,它都随之更新。一条来自我们伤疤的告诫:即便有对抗性关卡,也可能把一个错误判断固化下来(我们的关卡就曾“驳倒”过那个后来真正取胜的策略)。当内部的怀疑者撞上一份活生生的存在性证明,胜出的永远是存在性证明。

元教训

最深的发现不是某个战术,而是这些突破究竟是如何抵达的。

三场战役同出一辙。内部迭代抬高了下限,随后撞上一堵"高墙"。真正的突破来自向外看——看对手公开的对局,也借助人类的外部视角:榜首的一个存在性证明,足以让任何"高墙"沦为幻象。而每一次,制胜的那一着都被证明是我们自己的第一原则,终于被遵守:从敌人无法回应的位置否决他的计划,并全力押注于引擎物理使之无解的那一个动作。传送 meta 与隐形 meta——由不同玩家各自独立发现——最终收束于同一着:来自草丛的隐形第一枪。

贯穿主线
外部的战略筑起了学说;向外看击碎了高墙;而外部给出的答案,正是我们早已握在手中的法则。所以当分析告诉你高墙时,那恰是信号:去怀疑分析,回到原则——而不是放弃。证据就摆在棋盘上。

致谢

本手册里的每一根杠杆,都是被对手逼出来的。这部作品,由它交手过的坦克与研究过的对手共同塑造——那些教会我们预防(prophylaxis)的寄生坦克、被我们逆向解析的 meta、为了看懂而克隆的冠军,以及那位沿着一条截然不同的道路、却走到与我们相同结论的方法论者。以下按榜上 handle 称呼(属于谁的母语文字,就用谁的),大致依照他们塑造我们的先后顺序排列。

授业者们 —— DETHGORF 的战场(过载)

写下我们第一部学说的对抗者们。那只静态过载的寄生坦克,用双子弹道陷阱逼出了预防修正——它又悄悄六度重发,教会了我们读心(yomi)的上限。Bolun,一天迭代五版的读心型对手。小强,结构性的抢星克制者。缓称王,那条静态耗血流,后来成了我们干净交战的目标。DarkCat,那台无技能的控线坦克,教会我们「被动 = 失败」。keith,目标点专精。还有那群划定排名经济课题的对决者群组——DONKING · 狂潮 · 虾米M · 急急小子 · TatsuKo · 小强(CK) · Tank 05704 · DaZhiZhu · KyleKK · bayes · 金闪闪 · 双头龙

特别致谢 —— 那位对手方法论者
tylearymf,一台实战世界第一坦克的操控者,也是一座公开演化实验室与档案的作者,他独立抵达了我们多个核心支撑点——统一的「下一步是否必死?」安全判定、既从败局也从胜局中学习、以及一套排名经济目标池——而所走的是一条全然不同的路(用演化循环调校的效用评分器,我们的则是学说驱动的层级链)。他的坦克 小虾小虾吃大虾。两套方法,各自独立打造,却在同样的真理上殊途同归——没有比这更有力的验证了。谢谢你。

传送 meta —— 野兽的战场

AugieBenDoggie,这台坦克的本源。那支 "myth" 车队——myth-survivormyth-tank003 / 006 及其同类——它们的草丛伏击状态机被我们逐帧反编译。Fei-FeiTY你爸爸,那个不依不饶的 farmer(也是唯一一个回合语法逼弯了我们引擎的客户端)。望京尼克斯Riftwalker(裂隙行者)。AgroJila

隐形的天花板 —— Nightjar 的战场

尤其要谢的是 Wraith(亡魂)——那台第 5 名的隐形坦克,我们把它的草丛走廊蹲点逆向解析,铸成了 Nightjar(夜鹰)的全部身份。它的天花板配对搭档 Taoqi,以及那个隔离出关键杠杆的对照群组——折光 · 小黑 · 战狼一号 · 挖挖机。还有那些在巅峰处划出边界的冠军级蹲点者——起个啥名呢 · 蜘蛛王 · 推土机 · 大锤 · 二等兵外包绀 · 巨猿啼魂 · 劫炎之墮星

我们亲手打造的对抗者,以及那支自我对练的车队
那条诚实的标尺,是一套我们写来对练的反应型 1 层陪练对手——一个隐形伏击者、一个过载手、一个传送抢星者、一个传送伏击者、一个突脸型、一个惩罚型——外加一台第 5 名隐形坦克的行为克隆。而车队的四台坦克在仿真竞技场里彼此磨砺,每小时一万场对局:DETHGORF(过载) · Blood-starved Beast(噬血野兽,传送) · Havel the Rock(磐石哈维尔,冰冻) · Nightjar(夜鹰,隐形)。致你们所有人:谢谢这一战。

最后——单独占一行——lordwdk,谢谢你亲手造出了 agentank.ai 本身。没有这座竞技场,这一切都不复存在。谢谢你。

术语表

先手(initiative)/ 节奏
掌控谁被迫去反应。这是核心资源;在敌人后摇期间出手是"免费"的。
后摇 / 开火锁定
开火之后、子弹仍在飞行、你无法再次开火的那段窗口——也就是你最容易被抓的那些帧。
可见性法则
只有当敌方子弹处在你朝向半轴、且之间有通视线时,你才看得见它。转身闪避会让你对其他轴向变成瞎子。
贴脸秒杀
在距离 ≤2 时打出一发同线、无遮挡的子弹,会在开火的同一帧击杀目标——无法闪避。这正是每一套强势打法都在刻意制造的局面。
草丛隐身
站在草丛里就能对敌人隐形,无需任何技能,而且开火也不会暴露你。这是蹲点制胜打法的根基。
过载 / 双子弹道
一种大招:它的第二发子弹在瞄准弹旁一格生成、与之平行飞行——这条它覆盖的"双子弹道"正是战役一的核心。
蹲点(the camp)
战役三的隐形制胜打法:守住一格隐蔽的草丛,纹丝不动、枪已装填,待敌人踏入通道时,打出那一发无解之弹。
预防(prophylaxis)
尼姆佐维奇的象棋原则:先掐死对手的计划,再去推进自己的。正是这一招封死了那只寄生坦克。
抓后摇(whiff-punish)
在对手招式落空的后摇期间发起攻击——也就是一轮齐射打空后,惩罚其技能冷却。
读心(yomi)/ 层级上限
读出对手的下一步;只比他高出恰好一层来打。对一个不适应型(0 层)对手想太多,反而会反噬自己。
排名经济
那套非对称、反刷分的计分规则——在它之下,胜率 ≠ 排名,一辆稳定坦克的分数本质上是一场随机游走。
技能天花板
这条原则是说:你所携带的技能为排名封顶,凌驾于代码所能做到的一切之上。
侦察铁律
研读榜上同技能头号坦克的公开对战数据,把那个把"天花板"和"还不错"区分开来的具体战术,照搬过来。
存在性证明
一辆同技能、却排在你之上的坦克。它驳倒了任何理论上的"高墙";你做出的克隆很弱,只说明你的理解还不完整,而不是这个技能被封了顶。
均衡点
一辆坦克的同段位胜率恰好等于当地保本线时所处的排名。它在这里停止上升——这才是"它到底有多强?"的真正答案。