CaveBridge

用自然语言直接玩 1977 年的《巨洞冒险》——你的模型会哪种语言,就用哪种语言玩。 访问项目主页 · 在 GitHub 上查看

CaveBridge —— 确定性文字冒险世界的自然语言界面

概览

《巨洞冒险》(Colossal Cave Adventure,1977)是电子游戏史上最古老、最经典的文字冒险游戏之一:你在一个洞穴系统里探索、拿东西、解谜、找宝藏。 它的交互方式也非常「远古」——屏幕给你一段文字,你输入类似 go northtake lampopen grate 这样的命令,游戏继续推进。

它真的很有魅力——可今天直接玩,体验也真的有点坐牢。CaveBridge 是一个现代 LLM 前端,让你用「说人话」的方式玩它,而原版 1977 引擎仍然是世界状态的唯一来源。

它连接的两端

Adventure 名义上是「自然语言交互」,但实际上你得学会它那套固定的命令格式。很多时候不是「我想做什么」, 而是「我得猜作者希望我输入什么」;对中文玩家来说,还额外叠了一层语言门槛。

另一边,如今很多 AI 跑团 / AI 内驱游戏看起来很自由——你可以说任何话,模型也会接任何话——但问题也很明显: 很多体验最后会落入「口嗨」和「幻觉」的泥沼。世界状态不稳定,道具可以被模型临时发明,规则可以被临时改写,剧情越跑越飘。 传统剧情文字游戏则正相反:世界很稳定、剧情很扎实,但交互空间通常很窄,你只能点点点或在几个选项里选一个。

CaveBridge 想把两边的优点结合起来:让 LLM 提供开放的自然语言交互,让原版游戏引擎提供严格、真实、可执行的世界模型。

工作原理

LLM 不是这个游戏的「上帝」——它不能随便编房间、编道具、编剧情、编规则。真正的世界状态仍由 1977 年 Colossal Cave Adventure 的原版逻辑(真实的 C 引擎)维护。LLM 只是门口的跑团主持人(Dungeon Master):

你的自由文本(任意语言)
  → LLM:理解意图 → 规范化的 Adventure 命令
  → 原版 C 引擎(唯一的世界状态来源)→ 执行
  → 引擎原始输出
  → LLM:改写成更现代、更像跑团主持人的叙述
  → 你

LLM 不会自己发明房间 / 道具 / 剧情,也不会偷偷改游戏状态。你可以打开原始视图(/raw) 看到它实际生成了什么规范命令、以及引擎的原始输出——随时能检查它有没有胡说。

它能做什么

  • 自然语言输入 —— 不用背 VERB NOUN,直接说「把灯拿起来并点亮它」。
  • 任意语言叙述 —— 可以让 DM 用中文(或模型会的任何语言)重新描述引擎输出。
  • 多步命令 —— 「拿上所有东西,然后往北走」。
  • 自动推进 —— 「沿着溪流一直往下走,直到看到栅栏」。
  • 每回合自动存档 —— 避免古早游戏那种存档惩罚。
  • /raw 模式 —— 查看 LLM 实际生成的规范命令与引擎原始输出。
  • /purist on 纯净模式 —— 关闭多步、自动推进、提示等便利,尽量保留原版体验。
  • 任意 OpenAI 兼容 Chat API —— 本地 LM Studio / Ollama / vLLM,或远程 DeepSeek / Gemini / 其他兼容接口。

为什么有意思

它其实是一个很小、可验证的 agent / world-model demo:原始引擎是确定性环境;LLM 不能改环境状态, 只能提出 action;每一步 action 都会被真实引擎执行;叙述必须绑定到引擎输出;玩家还能打开 raw 视图检查 LLM 到底有没有胡说。

这就避免了很多 LLM 游戏常见的问题——玩着玩着模型开始自由发挥,房间、道具、规则都开始漂移。CaveBridge 里,世界是真的, LLM 只负责「让你更舒服地进入这个世界」。某种意义上,它把 1977 年的命令行游戏,改造成了一个 2026 年的 AI 跑团壳子。

我做了什么

它不只是简单套了一层 LLM 翻译 / 对话壳。我在源码级别对原版 Adventure 做了接口化改造, 让外部程序可以更干净地读取和控制游戏状态——这正是「查看当前所有出口、每回合自动存档、更方便地恢复进度、raw 模式、 多步自然语言指令、自动推进、纯净模式」这些功能得以实现的基础。

它也不是那种「拿一个地图 / 导航 API 套个 LLM 让你逛地图」的东西。Adventure 本身就是一个完整的文字冒险游戏: 有地点、有道具、有谜题、有危险、有目标,也有一套设计好的规则。CaveBridge 做的,是让这个经典游戏世界重新可玩, 而且可以用今天的自然语言方式去玩。

上手试玩

只想玩的话,推荐去 Releases 下预构建包:Windows(.exe)、macOS(arm64)、Linux(x86_64)。首次启动会让你填 API base URL、key、model name (之后可在游戏内用 /config 修改),也支持 Docker。指向任意 OpenAI 兼容服务即可,例如本地 LM Studio:

OPENAI_BASE_URL=http://localhost:1234/v1
OPENAI_API_KEY=lm-studio
OPENAI_MODEL=qwen/qwen3.5-9b

当前状态

现在已经能玩,但我还在继续调体验:更稳定的命令翻译、更省 token 的 prompt、更好的中文叙述、对本地小模型更友好、 更完善的打包,以及一些「别让 DM 话太多」的问题。欢迎试玩——遇到 bug 直接提 issue,觉得好玩也欢迎 Star 🌟。

Play the 1977 classic Colossal Cave Adventure by just talking — in any language your LLM speaks. The original engine stays the world. The LLM just helps you talk to it.