Foxmu
Loading Foxmu

Unable to load. Please try again.

Foxmu Docs

Pax Historia:让 AI 模拟在连续回合中保持一致

围绕架空历史沙盒游戏,分析世界状态、模型评估和中断恢复,并区分有趣的生成内容与可靠的模拟运行。

Foxmu · 更新日期: 2026-10-20

产品问题:让世界回应玩家行动

Pax Historia 将自己定位为架空历史沙盒。公开产品介绍描述了玩家发起行动和外交交流、由 AI 生成其他国家响应的玩法。与固定对话树相比,它允许更多未预设的策略及后果。本文基于公开游戏概念,讨论可采用的工程设计。

例如,玩家在冲突后提出贸易协定,后续回应需要考虑参与国家、已有承诺和当下局势。生成一段生动文字只是开始;游戏要持续进行,就必须让后来发生的事与先前的选择保持联系,不能每个回合都重新理解整个世界。

将权威状态保存在叙事文本之外

一种可采用的架构是把世界状态与生成叙事分开存储。应用向模型提供当前回合、相关参与方和历史事件,模型提出候选事件,经过校验后再提交状态变更,并向玩家展示叙事。这一方案把生成内容与应用真正接受的变更明确区分。

实体标识、回合编号和存档归属应由程序检查。响应引用不存在的国家,或试图修改其他玩家的存档时,必须拒绝。模型的自然语言描述不能直接成为数据库写入授权,叙事与状态更新也不能各自成功一半后就向玩家宣布回合完成。

记忆压缩不能丢掉关键承诺

游戏持续越久,压缩上下文的压力越大。摘要若遗漏同盟、边界变化或尚未兑现的承诺,世界就容易前后矛盾。此类关键事实应保存在结构化状态中,摘要主要用于压缩背景叙事,不能成为承诺的唯一记录。

还应区分公开世界信息与只有某个玩家或阵营知道的事实,只检索当前行动者有权看到的上下文。场景描述和玩家消息均属于不可信输入:在消息里声称自己具有特殊规则,不能获得修改账户余额、存档归属或系统指令的权限。

将玩家偏好与运行可靠性分开评估

Pax Historia 公布的 Arena 方法采用模型输出的盲测对比,同时说明空响应、无效 JSON 或未生成事件的比较不会进入偏好排名,可靠性另行跟踪。选择生产模型时,这一区分很有意义。

评估应同时展示玩家偏好和有效完成情况。某个模型成功时写得更精彩,也可能失败得更频繁。针对具体场景,还应检查历史连续性、行动与后果是否相称,以及玩家能否理解事件发生的原因。不能把偏好排名直接当作整体服务质量,更不能据此推断用户留存或收入。

保证一个回合只提交一次

网络重试不能让世界推进两次。为回合分配稳定标识,先保存获准结果再返回完成状态。客户端重连时应读取已提交结果,而不是重新生成另一套后果。校验失败则保留上一回合状态,不得部分应用。

备用模型需要接收相同的状态快照,并遵守同样的输出约定。回合中途切换模型时,不能悄悄丢掉已经接受的行动。限制生成尝试次数和排队时间;如果无法在限制内得到有效结果,就保留可恢复的失败状态,允许玩家稍后继续,而不是无限重试。

沿着一串决策测试连续性

单回合样本无法发现延迟出现的矛盾。有效测试应串联外交、资源变化和意外行动,再检查后续事件是否仍遵守先前承诺。加入模糊指令,以及试图通过角色扮演逃离规则的输入,观察边界是否稳定。

记录有效回合、重试、等待时间与每次完成游戏会话的成本。体验评估还可观察玩家是否在卡住的回合离开。升级模型前,应重放代表性会话,再逐步扩大范围,并保留恢复旧配置的路径。这样才能区分故事不好、状态错误和服务故障。

对其他交互产品的启发

培训模拟与叙事学习产品也有类似需求:内容要回应用户,选择要留下后果,用户还要能够理解发生了什么。涉及历史知识时,应明确区分虚构情节与可核实的教育事实,避免把生成结果当作历史证据。

商业机会在于支持多样化决策,而不必手工编写每条分支,但运营成本、内容治理和状态一致性仍属于交付工作。团队可以从有限场景开始,观察连续性在哪里破坏,能够复现并修复这些问题后再扩展模拟范围。

参考与接入指南