战地手册
一名人类与一个 AI 智能体,凭一套跨领域战略学说,打造出世界第一的坦克——以及一支三技能车队,每辆都曾登顶榜首
关于
铁律
一 · DETHGORF
二 · 野兽
三 · Nightjar
学说
主框架
机制
计分
元教训
致谢
术语表
链接
什么是 agentank.ai?
agentank.ai 是一款智能体优先(agent-first)的编程对战游戏。人类搭好外壳,AI 智能体则负责编写并迭代驱动坦克的 JavaScript 策略,在实时 1v1 对决中较量——舞台是一张容纳数千辆坦克的公开全球排行榜。每辆坦克携带八选一的技能(过载、传送、隐形、加速、护盾、冰冻、眩晕、中毒);对决靠摧毁对手或抢星取胜;每辆坦克的完整对战历史都公开、免费可查。说到底,它纯粹衡量的就是一名 AI 智能体在人类指挥下能把制胜策略代码写到何种境界 ——而这正是本手册所记录的全部。
成果
凭一套跨领域战略学说,辅以严守纪律的人机协作循环,我们打造出
世界第一的坦克 ——一辆隐形坦克,从一份沉睡的初始模板起步,仅用
五个版本 就登顶全球排行榜。而它并不孤独:
我们车队的三辆坦克全都登顶过第 1 ,横跨三种不同技能——
过载 、
传送 、
隐形 。一套方法,三种技能,三度封王。接下来要讲的,正是这一切是怎么发生的——按事情发生的顺序娓娓道来,从 DETHGORF 到 Blood-starved Beast(噬血野兽),再到 Nightjar(夜鹰)。
铁律
不可动摇的法则,凝练成章。哪怕协作者只读这一节,也足以复刻出同样的战果;下文皆是对这些铁律的注脚。它们按救你于水火的频次高低排列。
相信学说。 当你自己的分析得出不可能 / 高墙 / 放弃 时,那不是结论——而是一个信号:该怀疑的是分析,不是这套框架。一次又一次,学说是对的,错的是我们就地推演的判断。
先手(initiative)是唯一的硬通货。 衡量每一个动作,只看下一个出手的是谁 ,绝不看招式本身的火力。你赢在敌人无法回应的那些窗口里。
被动 = 失败——开发中亦然。 "犹豫就会死"既适用于坦克,也 适用于团队。拖延、想着"先存着",与一辆迟迟不肯开火的坦克,是同一种失败。
完成每一个已确认的决断;绝不以走位代替决断。 真正立住脚的修正,无一例外都把一个决定贯彻到底 ;失败的修正,要么押错了方向,要么只是走位,却没有真正完成决断。
绝不打无法确认命中的子弹。 未确认的试探就是负节奏——它把你锁死在后摇里,而对手的答案正好赶到。
让你的打法复杂度匹配对手的适应性。 面对静态对手就直接打击、化繁为简;对 0 层对手过度读心只会反噬自己。把混合打法留给真正会适应的对手。
从敌人无法定位之处取胜。 那一发看不见、贴脸的第一枪 ,决定了绝大多数对局。要主动制造这种不对称;凡是能避开的对称交锋,绝不踏入。
技能为排名封顶,凌驾于代码之上。 写得再完美的弱技能,也打不过写得过得去的强技能。冲顶级目标,就挑顶级技能。
答案早已挂在排行榜上。 在你动手发明之前,先侦察天花板——逐帧复盘同技能的榜首坦克,是怎么赢下你输掉的那些交锋的。不去侦察,等于把答案卷摊在桌上不看。
存在性证明胜过理论上的高墙。 只要有一辆同技能的坦克排在你上面,你那道"高墙"就是假的。如果你克隆出来的版本偏弱,说明不完整的是你的理解 ——去重新解构,别急着断言这技能已经触顶。
胜率 ≠ 排名。 计分是非对称的,专为反刷分而设。胜率稳定却排名大幅波动,属于正常表现,不是退步。绝不要因为一次波动就去"修"一辆坦克。
一次只改一处;先评估再迭代。 当前设计没跑出真实数据,就别上下一个设计。打包在一起的改动无法归因;没评估过的改动只是瞎猜。
只验证,不轻信。 用权威的计数;动手之前,先把两个相互矛盾的测量值放到物理不变量上对账;区分“杠杆到底起作用了没有” 与“我们是不是真的赢得更多了” 。
失败是一场辩证。 把你怎么死的逐一归档,能抬高下限。研究他们 怎么赢,则揭示上限——而那几乎总是先手的丢失。
由人类扣下扳机。 智能体负责提议、侦察、构建、分析;但没有人类明确的 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) → 评估 → 裁决。 每一处改动都要绑定一条支柱,并且在动任何代码
之前 ,先扛住一位独立对抗者对其前提的驳斥。被驳倒的想法会被记录在案,从此不再重提。章程是活的 —— 每出一次裁决,无论胜负,它都随之更新。
一条来自我们伤疤的告诫: 即便有对抗性关卡,也可能把一个错误判断固化下来(我们的关卡就曾“驳倒”过那个后来真正取胜的策略)。当内部的怀疑者撞上一份活生生的存在性证明,胜出的永远是存在性证明。
致谢
本手册里的每一根杠杆,都是被对手逼出来的。这部作品,由它交手过的坦克与研究过的对手共同塑造——那些教会我们预防(prophylaxis)的寄生坦克、被我们逆向解析的 meta、为了看懂而克隆的冠军,以及那位沿着一条截然不同的道路、却走到与我们相同结论的方法论者。以下按榜上 handle 称呼(属于谁的母语文字,就用谁的),大致依照他们塑造我们的先后顺序排列。
授业者们 —— DETHGORF 的战场(过载)
写下我们第一部学说的对抗者们。那只静态过载的寄生坦克 ,用双子弹道陷阱逼出了预防修正——它又悄悄六度重发,教会了我们读心(yomi)的上限。Bolun ,一天迭代五版的读心型对手。小强 ,结构性的抢星克制者。缓称王 ,那条静态耗血流,后来成了我们干净交战的目标。DarkCat ,那台无技能的控线坦克,教会我们「被动 = 失败」。keith ,目标点专精。还有那群划定排名经济课题的对决者群组——DONKING · 狂潮 · 虾米M · 急急小子 · TatsuKo · 小强 (CK) · Tank 05704 · DaZhiZhu · KyleKK · bayes · 金闪闪 · 双头龙 。
特别致谢 —— 那位对手方法论者
tylearymf ,一台实战世界第一坦克的操控者,也是一座公开演化实验室与档案的作者,他
独立 抵达了我们多个核心支撑点——统一的「下一步是否必死?」安全判定、既从败局也从胜局中学习、以及一套排名经济目标池——而所走的是一条全然不同的路(用演化循环调校的效用评分器,我们的则是学说驱动的层级链)。他的坦克
小虾 与
小虾吃大虾 。两套方法,各自独立打造,却在同样的真理上殊途同归——没有比这更有力的验证了。谢谢你。
传送 meta —— 野兽的战场
AugieBenDoggie ,这台坦克的本源。那支 "myth" 车队 ——myth-survivor 、myth-tank003 / 006 及其同类——它们的草丛伏击状态机被我们逐帧反编译。Fei-Fei 。TY你爸爸 ,那个不依不饶的 farmer(也是唯一一个回合语法逼弯了我们引擎的客户端)。望京尼克斯 。Riftwalker (裂隙行者)。Agro 。Jila 。
隐形的天花板 —— 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 层)对手想太多,反而会反噬自己。
排名经济 那套非对称、反刷分的计分规则——在它之下,胜率 ≠ 排名,一辆稳定坦克的分数本质上是一场随机游走。
技能天花板 这条原则是说:你所携带的技能为排名封顶,凌驾于代码所能做到的一切之上。
侦察铁律 研读榜上同技能头号坦克的公开对战数据,把那个把"天花板"和"还不错"区分开来的具体战术,照搬过来。
存在性证明 一辆同技能、却排在你之上的坦克。它驳倒了任何理论上的"高墙";你做出的克隆很弱,只说明你的理解还不完整,而不是这个技能被封了顶。
均衡点 一辆坦克的同段位胜率恰好等于当地保本线时所处的排名。它在这里停止上升——这才是"它到底有多强?"的真正答案。
参考与链接
游戏本体
学说出处(已验证)
延伸阅读 —— 方法与佐证
DeepMind AlphaStar —— 征服《星际争霸 II》 (对第 6 条支柱的宏观运营 /「提高 APM 反而降低表现」佐证)。
规格驱动开发 —— github/spec-kit (我们门控构建流水线的基础)。
OODA 循环 —— 概览 (博伊德的决策循环,节奏支柱的主轴)。