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

当你把青少年版的 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.92 | 0.75 | 探索一切 → 受伤很多 | ~72 | 0.58 |
| 外交的山姆 | 0.68 | 0.94 | 几乎与所有人交朋友 | ~96 | 0.82 |
| 谨慎的工程师 | 0.45 | 0.62 | 隐藏很多,舒适地生存 | 100 | 0.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 圣诞快乐,愿你的迷宫永远有出口。 🌀
我接下来应该构建什么奇怪的模拟? 👇