我构建了一个 Maze Runner 模拟,让青少年 Sam Altman 在空地中生存 2025年12月25日

发布: (2025年12月26日 GMT+8 02:17)
6 分钟阅读
原文: Dev.to

Source: Dev.to

《我构建了一个《迷宫跑者》模拟,青少年 Sam Altman 在林间生存》封面图

当你把青少年版的 Sam Altman 丢进 James Dashner 的 《迷宫跑者》 世界会怎样?
你会得到一个出乎意料地让人上瘾、以人格为驱动的模拟,融合了:

  • 大五人格(OCEAN)模型
  • 概率决策
  • 令牌高效的 LLM 叙事生成
  • 健康 + 关系追踪
  • 漂亮的控制台输出 + matplotlib 健康图表

是的——它和听起来一样怪异且有趣。

一句话概念

一位16岁的萨姆·奥特曼醒来在盒子里。
他的生存几率主要取决于你决定他有多好奇、随和以及情绪稳定。

为什么会有这个

I wanted to:

  • 将 OCEAN 人格特质作为实际的游戏机制进行玩耍
  • 使用非常轻量的 LLM 调用来生成氛围文字,同时不花费太多金钱
  • 创建一种感觉像互动同人小说的东西,但代码行数约为 200 行
  • 找个借口思考青少年 Sam Altman 解迷宫的情景(别问)

核心架构(对于这样一个荒唐的想法来说出奇地简洁)

所有内容都在 一个极其自包含的文件 中(MVP 版):

from dataclasses import dataclass
from typing import Dict
import random

@dataclass
class Character:
    name: str
    age: int
    ocean: Dict[str, float]
    health: float = 100.0
    relationships: Dict[str, float] = None

    def make_decision(self, event_type: str) -> str:
        if event_type == "danger":
            return "explore" if random.random() < self.ocean["O"] else "hide"
        # ... etc
def generate_narrative(...):
    try:
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            max_tokens=85,
            temperature=0.7,
            # …
        )
    except Exception:
        return "Fallback: Sam did a thing. It was probably fine."

模拟循环极其简单:

while sim.run_day():
    pass

最后它会打印出一张漂亮的表格和健康曲线图。

人格真的很重要(超出你的预期)

角色变体开放性宜人性6天后的结果最终健康平均关系
好奇的创始人0.920.75探索一切 → 受伤很多~720.58
外交的山姆0.680.94几乎与所有人交朋友~960.82
谨慎的工程师0.450.62隐藏很多,舒适地生存1000.41

LLM 使用 — 极度偏执版

我想要叙事风味,但又不想在一次有趣的运行上花费 $12。

解决方案

  • 每次生成最多 85 个 token
  • 温度 0.7(混乱但不疯狂)
  • 完美的回退文本,仍然有意义
  • 每天仅调用一次

50 次完整运行的总成本约为 $0.04–$0.07(2025 年 12 月定价)。

控制台输出色情(因为我们都爱漂亮的终端)

Day  4  |  Sam is offered a chance to run the Maze with the Runners.
   → Decision: explore
   → Outcome:  positive

   Sam sprinted into the twisting corridors, eyes wide with that terrifying mix of terror and fascination only a true puzzle addict could feel.

   Health: 100   |   Relationships: Newt:0.68  Thomas:0.62  Chuck:0.58

随后是一张简洁的汇总表和一张 matplotlib 折线图,展示健康值像青少年情绪一样起伏。

如何立即运行

git clone https://github.com/ilyarah/Maze_Runner_Sam_Altman_Sim_MVP.git
cd Maze_Runner_Sam_Altman_Sim_MVP

pip install openai matplotlib

export OPENAI_API_KEY="sk-..."

python simulation/main.py

每次运行大约需要 20–40 秒(主要是等待 OpenAI)。

Future Evil Plans (if I don’t get bored)

  • 基于当前健康/关系的分支事件
  • 多种结局(逃脱 / 成为守护者 / 被掠夺者吃掉)
  • 使用 pygame 的 GUI(为什么不呢)
  • 敏感性分析:开放性到底要到什么程度才算太多?
  • 用其他公众人物替换 Sam(你知道你想要的)

最后的思考

这本来是个愚蠢的玩笑,却不知不觉变成了一个真正有趣、值得观赏的项目。

固定的性格特质 + 随机性 + 少量的 LLM 注入的组合,产生了在不到 300 行代码的情况下,出人意料地鲜活的自发故事。

有时最荒唐的想法会教会你最多关于自主性、性格建模,以及让 LLM 变得有趣所需的极少提示。

试试看吧。修改 OCEAN 参数。笑看少年 Sam 因为“太好奇”而被 Griever 撕咬。

如果你用 Elon 或 Vitalik 做出更糟的版本——请标记我。

2025 圣诞快乐,愿你的迷宫永远有出口。 🌀

我接下来应该构建什么奇怪的模拟? 👇

Back to Blog

相关文章

阅读更多 »