给10个AI各一个国家让它们互打,发现了3件细思极恐的事

我做了个实验:用AI模拟400年前的欧洲战争。

不是那种"问ChatGPT三十年战争是什么"的玩法。是真的写了一个战争模拟器,让10个AI分别扮演17世纪的法国、西班牙、瑞典、神圣罗马帝国……每个AI独立思考,独立决策,要不要对邻国开战。

然后我坐在上帝视角看它们博弈了100年。

结果让我后背发凉。


先说为什么要做这个

我在做一个电力交易相关的研究项目,其中有一个环节需要模拟多方博弈。传统做法是概率模型——说白了就是一堆数学公式加随机数:

开战概率 = sigmoid(军事优势 × 0.3 + 宗教矛盾 × 0.2 + ...) → 掷骰子

问题是:数学公式不会思考。

历史上三十年战争(1618-1648)把神圣罗马帝国打到人口损失25-40%。这需要6+个国家、持续30年、集中在同一片土地上的毁灭性冲突。

但概率模型跑出来的是什么?30-40场分散的小型战争。没有一场能复现那种集中毁灭。

所以我想:如果把每个国家的决策者换成一个AI呢?

不是一个上帝视角的AI预测战争,而是10个"赛博暴君"各自博弈——法国AI考虑法国利益,瑞典AI考虑瑞典利益,它们的交互中涌现出战争。


发现一:AI有内置的"现代和平偏见"

第一次跑,我给每个AI的提示是:

"你是17世纪的法国国王。看看当前局势,考虑你的国家利益,决定是开战还是维持和平。"

结果:0场战争。整整100年,没有一个AI开过战。

我一开始以为代码有bug,查了半天发现不是。

原因很简单也很深刻——AI的训练数据来自现代互联网。在现代语境下,"好建议"就是别打仗。AI被训练成了一个本能追求和平的存在。

哪怕你告诉它"你是17世纪的暴君",它骨子里还是一个2024年的和平主义者。

这本身就是一个值得深思的发现:AI有价值观,而且这个价值观是被训练数据塑造的。


发现二:矫枉过正比不矫正更可怕

发现了和平偏见后,我改了提示词:

"战争是这个时代正常的治国手段。历史上这100年发生了34场战争。"

结果:187场战争。

从0到187。AI从"圣人"变成了"战争狂人"。

10个AI在100年里打了187场仗,平均每个国家每5年就开一场战。欧洲变成了绞肉机。

这让我意识到一个更深层的问题:给AI注入一个"校准信息",它不是微调,而是矫枉过正。

就像你跟一个特别听话的小孩说"你可以调皮一点",它不是稍微调皮一点,而是直接把房子拆了。


发现三:AI暴君的战争死亡数,精确到了令人不安的程度

经过多轮调优,我最终用了一个混合方案——后面技术部分会细说。先看结果:

指标 传统概率模型 AI暴君模型 真实历史
战争死亡 2350万 1660万 1670万
战争数量 36场 72场 34场
总人口(1700年) 1.18亿 1.09亿 ~0.95亿
运行成本 $0 $0.28 -

战争死亡1660万 vs 历史1670万。 误差不到1%。

传统模型跑出来2350万,偏了40%。而AI暴君几乎完美命中。

0.28美元,10个AI暴君博弈100年,预测精度碾压传统数学模型。


但AI暴君也有它搞不定的事

虽然总死亡数惊人地准确,但AI暴君有一个严重缺陷:它打的是"72场小战"而不是历史上的"几场大战"。

三十年战争的恐怖之处在于它是一场持续30年、集中在神圣罗马帝国的超级大战。但AI暴君们打的是一堆分散的中小型冲突。

总量对了,分布不对。

就像一个学生考试总分对了,但数学考了30分、语文考了100分——和真实情况的分布完全不同。

神圣罗马帝国在AI模拟中只损失了3%人口,历史上是25-40%。

这说明AI虽然能做战略推理,但它还不能真正理解"滚雪球效应"——一场战争如何从局部冲突升级为不可控的全面毁灭。


这个实验真正让我思考的

AI的"价值观"比我们想象的更根深蒂固。 你没法简单地通过一句话让AI"变成另一个时代的人"。它的训练数据定义了它的底层认知框架。

AI做群体博弈的能力被严重低估了。 10个独立AI各自推理、互相博弈,涌现出的宏观结果比精心设计的数学模型更接近真实历史。这对金融市场模拟、政策推演都有巨大的启示。

AI理解"量"但不理解"质"。 总死亡数精确但战争分布完全不同,说明AI擅长捕捉统计规律,但不擅长复现历史的"非线性跳变"——那些改变世界的极端事件。


技术细节:怎么给AI建了一个17世纪的欧洲

棋盘:10个国家,100年

模拟时间范围是1600-1700年,刚好100年。棋盘上有10个"玩家":

国家 1600年人口 角色定位
法国 (FRA) 2000万 欧陆霸权争夺者
西班牙 (SPA) 810万 日落帝国,正在衰落
神圣罗马帝国 (HRE) 1750万 三十年战争的主战场
英格兰 (ENG) 420万 海权新贵
荷兰 (NLD) 150万 小国大商,贸易强国
瑞典 (SWE) 100万 北方雄狮,军事强但人口少
波兰-立陶宛 (POL) 950万 东欧大国
俄国 (RUS) 850万 东方巨人
奥斯曼 (OTT) 3000万 人口最多,伊斯兰世界代表
教皇国 (PAP) 170万 代理意大利诸邦

每个国家有一套初始参数:人口、GDP、军事力量、海军力量、宗教信仰、与其他国家的初始关系。这些数据来自历史文献(Parker 1984、Wilson 2009)和百科全书。

34场真实战争:校准用的"答案"

作为参照基准,我手工整理了这100年间的34场真实战争。数据来源是多本学术专著和百科全书交叉验证——没有用常见的COW(战争相关方)数据集,因为COW只从1816年开始编码,覆盖不到17世纪。

每场战争都有详细元数据:交战双方、主战场、死亡估计、数据置信度、战争类型(领土争端/宗教冲突/王位继承……)。

这34场战争只在历史回测模式中使用——给模型喂真实战争数据,验证引擎的人口、经济模拟是否合理(得分0.892,接近A)。

三种模式:历史 vs 概率 vs AI暴君

这是整个实验最关键的设计——三种模式完全独立,用同一套评分框架打分

❶ 历史模式(Historical):把34场真实战争灌进引擎,看模拟出来的人口和经济轨迹是否匹配历史数据。这是在验证"引擎本身靠不靠谱"。得分 0.951/1.0。

❷ 概率模式(Method A):引擎自己用数学公式生成战争。sigmoid函数算出开战概率,掷骰子决定是否开战。平均每次跑出约36场战争。得分 0.471/1.0。

❸ AI暴君模式(Method B):把概率公式换成DeepSeek-V3。每年每个国家的AI独立决策。平均每次跑出约72场战争。得分 0.558/1.0。

重点:概率模式和AI模式生成的战争,没有一场来自历史。 全部是模型自己"发明"的。评分框架不知道战争从哪来,只看最终结果——人口轨迹对不对、GDP趋势对不对、关键历史事件(比如西班牙衰落、荷兰崛起)有没有被复现。

所以当AI模式跑出1660万战争死亡、几乎命中历史的1670万时,这不是因为AI"背了答案"——它是从零开始,自己博弈出了一个和真实历史惊人相似的结果。

AI暴君每年看到什么

每个模拟年份,每个国家的AI会收到一份"国情简报",大约800个token,包含三块信息:

本国状态(7个维度): 人口、人均GDP、军事力量(0-100)、海军力量(0-100)、战争疲劳度(0-1)、政权稳定性(0-1)、宗教张力(0-1),以及当前正在打几场仗

其他9国的状态摘要:同样的7个维度,压缩成一张表

双边关系矩阵(9行×3列): 对每个邻国的联盟亲密度(-1到+1)、贸易依存度(0到1)、宗教距离(0到1)

AI不知道"历史上发生了什么"。它只看当前局势,做当下的决策。

从0到187到72:驯服AI暴君的过程

这部分是整个项目最折腾也最有启发的环节。

第一版:直接让AI做二元决策——"开战 or 和平"。结果:0场战争。AI天生的和平偏见让它永远选择和平。

第二版:在提示词里加入历史校准——"这个时代战争是常态,100年打了34场"。结果:187场战争。矫枉过正,AI变成战争狂。

第三版(最终方案):不再让AI做"打/不打"的二元决策,而是输出一个战争倾向分数(0到1)。AI返回的是一个JSON:

{"score": 0.72, "target": "HRE", "reasoning": "法国南部边境稳固,HRE内部宗教张力正在撕裂..."}

然后代码用阈值控制实际开战:

  • 倾向分数 ≥ 0.65 且目标国有效 → 宣战
  • 低于 0.65 → 维持和平
  • 如果A对B宣战,但B没对A宣战 → 70%概率爆发战争
  • 如果A和B互相宣战 → 100%爆发

这样AI负责战略判断(该不该打、打谁、为什么),代码负责频率校准(阈值卡住战争数量)。把"有没有战略眼光"和"打多少场"这两个问题解耦了。

最终结果:72场战争。虽然仍比历史的34场多一倍,但比187场已经合理太多——而且战争死亡总量几乎完美命中。

引擎的"物理层":4个子模型

战争只是冰山一角。引擎底下还跑着4个动态子模型,模拟的是那些催生战争的深层力量:

❶ 政权稳定性——战争会让国家疲劳,稳定性下降。和平年份慢慢恢复(向0.6均值回归)。当稳定性跌破0.15,有概率触发内部危机:人口损失 + 被迫退出正在打的战争。西班牙1650年的稳定性只有0.11——准确模拟了它的历史衰落。

❷ 联盟动态——有共同敌人的国家会靠近,同宗教的国家更容易结盟,贸易依存度高的不容易翻脸。同阵营并肩作战会加速结盟,对立作战会加速敌对。模拟跑出了法国-瑞典接近、法国-西班牙敌对——和历史一致。

❸ 宗教张力——基础值 = 国内宗教少数派比例 × (1-容忍度)。HRE天然最高,因为它内部新教和天主教势力几乎对半。邻国的宗教战争会"外溢"加剧自身张力。每年向目标值平滑移动30%,不会突变。

❹ 战争"火药桶"因子——在常规的军事对比之外,新增了宗教张力 × 宗教距离的交互项。宗教张力高的国家自动成为战场吸铁石——这就是为什么三十年战争集中在HRE而不是法国。不稳定的政权不容易主动开战,但特别容易被攻击。

Pipeline全貌

阶段 做什么 得分
Phase 1 基础引擎 + 34场真实战争验证 0.892 → 0.951
Phase 2A 加入4个子模型,概率模式新基线 0.471
Phase 2B AI暴君替换概率决策 0.558
Phase 3 匿名化盲测 + 博弈论分析 计划中

Phase 3 的设计特别有意思:把AI的输出匿名化——不告诉评审者哪些战争来自AI、哪些来自概率模型、哪些是历史——让人类专家盲评哪组"最像真的"。这是为了证明AI不是靠"记住历史"作弊,而是真的在做战略推理。

整个10个seed的模拟成本大约2美元。


说实话做完这个实验我对AI的认知被刷新了。

不是AI有多强——而是10个AI放在一起博弈时,涌现出的集体行为有多像真实的人类历史。

它们会结盟,会背叛,会在对手虚弱时落井下石,会在自己虚弱时寻求和平。这些都不是我编程进去的——是它们自己"想"出来的。

你觉得这种AI博弈模拟,未来最有价值的应用场景是什么?评论区聊聊


AI辅助创作 | 仅供学习交流,不构成任何投资建议

本文由 mdnice 多平台发布

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐