mewamew/my_ai_town · 上手攻略
- 仓库:mewamew/my_ai_town
- 链接:https://github.com/mewamew/my_ai_town
- 分类:AI Simulation / Game / LLM Application
- 作者:Tom
- 更新:2026-08-12
是什么
AI Town(我的 AI 小镇)是一款用 Godot 4.7 开发的单机像素风生活模拟游戏,核心创新在于:小镇居民由 LLM 驱动,居民有独立人格、职业、记忆、关系网络和当前处境,会自主决定去哪里、做什么、和谁交谈。玩家可以从俯瞰视角观察整个小镇,也可以「附身」进任意居民与他们对话、发布公告或改变天气——玩家的每次介入都会成为居民真实经历的一部分,并持续影响后续行为。
不同于传统 NPC 对话树,居民的对话内容完全由 LLM 实时生成,承接人物性格、记忆库和当前场景事实。
解决什么问题
- 想跑一个「多个 AI Agent 在共享世界中自主交互」演示,但没有现成框架
- 需要一个可以本地运行、不依赖云服务的 LLM 应用示例
- 想观察/干预 AI 社交网络的涌现行为
- 对 AI Town / AI Genie 类项目感兴趣,想了解实现原理
快速安装
环境要求
- Godot 4.7 稳定版(官网下载)
- 一个兼容 OpenAI API 的 LLM Provider 及 API Key(如 OpenAI / DeepSeek / Ollama / LM Studio 等,详见仓库模型接入页)
- 支持 Godot 4.7 的桌面系统(Windows / macOS / Linux)
安装步骤
# 1. 克隆仓库
git clone https://github.com/mewamew/my_ai_town.git
cd my_ai_town
# 2. 用 Godot 打开工程
# 启动 Godot 4.7 → 点击 "Import" → 选择 game/project.godot → 点击 "Import & Edit"
# 3. 在游戏内配置 LLM Provider
# 运行项目后,进入 "模型设置" 页面,填入你的 API Key 和模型地址
# ⚠️ 注意:API Key 只通过游戏内设置保存,不要写入仓库
远程模型服务(8 月 12 日新增)
最新版本支持连接局域网/远程 HTTP 服务:
保存非本机 HTTP 地址时,系统会先提示「未加密传输风险」,确认后才保存。
Windows 版本默认使用兼容渲染(D3D11 / ANGLE),macOS 为默认渲染,无需特殊配置。
核心用法
键盘操作
| 按键 | 功能 |
|---|---|
| WASD / 方向键 | 移动玩家化身 |
| E | 与附近目标互动(居民、物品等) |
居民 Agent 架构(game/agent/)
game/
agent/
decision/ # 居民决策逻辑
prompt/ # 提示词模板
memory/ # 记忆存储(经历、关系、承诺)
model/ # 模型接入层
- 决策系统:居民每帧根据自身状态(位置、职业、关系、记忆)决定下一步行动,不沿固定日程表
- 记忆系统:每次重要经历会持久化,遇到相关人物/地点时重新影响决策
- 世界日志:记录小镇确认发生的所有事件、活动和对话,玩家可按居民/类型/日期检索
模型接入(支持列表,截至 2026-08-11)
| 服务商 | 支持情况 | 备注 |
|---|---|---|
| OpenAI 官方 | ✅ | 标准 API |
| DeepSeek | ✅ | 火山引擎入口 |
| 火山方舟 | ✅ | 自动读取可用模型 |
| Ollama(本地/云端) | ✅ | 新增 Ollama Cloud 直连 |
| LM Studio | ✅ | 直接显示可编辑地址 |
| MiniMax | ✅ | 独立入口,M2.7/M2.5/M2 系列 |
| 302.AI | ✅ | 自动过滤适合对话的模型 |
| 其他 OpenAI 兼容接口 | ✅ | 自定义 Base URL + Key |
本地模型(Ollama / LM Studio)限制同时后台请求数,避免小显存被占满。
典型适用场景
- LLM Multi-Agent 演示:在一个共享世界空间中观察多个 AI 角色自主交互,适合向非技术受众展示 Agent 能力
- 本地 AI 游戏开发参考:Godot + LLM 的工程结合,可作为同类项目的架构参考
- AI 社会行为研究:居民有性格、记忆、关系网络,适合观察/实验 AI 生成的社会涌现行为
- AI Education:配合交互式教程,让学生理解 LLM 如何驱动自主决策
坑与注意
⚠️ API Key 安全
模型密钥只通过游戏内设置保存,不要手动写入仓库文件。
⚠️ 未加密远程连接(8 月 12 日新增)
使用 HTTP(非 HTTPS)远程地址时,系统会明确提示数据(API Key、提示词、记忆)可能以明文传输,确认后才生效。换地址后需重新确认。
⚠️ 许可证状态
项目代码与自有素材的统一许可证仍在整理中,根目录尚未发布正式许可证文件。第三方资源(字体、音效)沿用各自目录记录的许可证。使用前请确认你的场景是否符合各部分许可证要求。
⚠️ 本地模型性能
Ollama / LM Studio 等本地模型响应较慢时,系统已优化(延长等待时间、关闭额外思考输出),但多居民同时对话仍可能造成卡顿,建议根据硬件配置限制同时对话人数。
⚠️ 存档兼容性
不同版本间存档结构有迁移规则,大版本更新后建议重新开档(项目在持续开发中)。
与同类对比
| 项目 | 引擎 | 多 Agent | 本地运行 | 交互方式 | 许可证 |
|---|---|---|---|---|---|
| AI Town(我的 AI 小镇) | Godot 4.7 | ✅ 自主社交网络 | ✅ 完全本地 | 俯视 + 化身 | 整理中 |
| AI Town(a16z) | Next.js + Convex | ✅ | ❌ 需云端 | 仅俯视 | Apache 2.0 |
| AI Sim Life | HTML5 | ✅ | ✅ | 仅俯视 | 闭源 |
| Rec Room AI | 自研引擎 | ✅ | ❌ | 3D VR | 闭源 |
本项目的核心优势是完全本地运行 + 化身交互 + 记忆系统,缺点是许可证尚未确定(相比 a16z 原版 Apache 2.0 的确定性)。
一句话推荐结论
如果你想在本地跑一个「多个 AI 角色在共享世界中自主生活」的演示,my_ai_town 是目前上手最简单、实现最完整的开源方案——只需 Godot 4.7 + 任意 OpenAI 兼容 API key,克隆即跑。
写作指引来源
- 仓库 README(GitHub,2026-08-12 读取)
- 更新日志(2026-08-10 / 08-11 / 08-12,GitHub raw)
- W32 Lessons:机制+工程双轨、数字可溯源、⚠️诚实标注