基于 HelloAgents 框架的 AI 小镇模拟游戏,展示多智能体系统在游戏中的应用。
本项目源自《Hello-Agents》教材第 15 章配套案例(
code/chapter15/Helloagents-AI-Town), 在原版基础上补充了本机部署所需的启动脚本、依赖修正与部署文档。 原项目采用 CC BY-NC-SA 4.0 许可,本仓库沿用该许可。
- ✅ 3 个 AI NPC(张三、李四、王五),各有独立人设与说话风格
- ✅ 智能对话系统(自然语言,无预设选项)
- ✅ 记忆系统(短期工作记忆 + 长期情景记忆,Qdrant 向量库)
- ✅ 好感度系统(5 个等级,随对话演化)
- ✅ NPC 自主行为(闲逛、工作、喝咖啡)
- ✅ 完整的对话日志与好感度变更记录
| 层 | 技术 |
|---|---|
| 游戏引擎 | Godot 4.5 |
| 后端 | FastAPI + Python 3.10+ |
| 智能体 | HelloAgents 0.2.9(每个 NPC = 一个 SimpleAgent) |
| 向量库 | Qdrant 1.20 |
| LLM | 任意 OpenAI 兼容服务(DeepSeek / ModelScope / Ollama / vLLM) |
cd backend
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
pip install -r requirements.local.txtcopy .env.example .env
notepad .env填入你的服务地址与密钥。支持三种写法,具体见 .env.example:
# DeepSeek
LLM_MODEL_ID=deepseek-chat
LLM_API_KEY=sk-xxx
LLM_BASE_URL=https://api.deepseek.com/v1
# 本地 Ollama(无需外网)
LLM_MODEL_ID=qwen2.5vl:7b
LLM_API_KEY=ollama
LLM_BASE_URL=http://127.0.0.1:11434/v1
OLLAMA_HOST=http://127.0.0.1:11434/v1 # 必须带 http:// 前缀# 终端 1:后端(需先启动 Qdrant 与 Ollama)
cd backend
python -m uvicorn main:app --host 127.0.0.1 --port 8000
# 终端 2:游戏
godot --path helloagents-ai-townWindows 下也可直接双击仓库自带的脚本:
启动后端.bat—— 自动检查并拉起 Qdrant、Ollama,再启动 FastAPI启动小镇.bat—— 打开 Godot 游戏窗口
| 按键 | 功能 |
|---|---|
W A S D |
移动角色 |
E |
与附近 NPC 交互 |
Enter |
发送消息 |
ESC |
关闭对话框 |
后端 API 文档:http://127.0.0.1:8000/docs
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /chat |
与指定 NPC 对话 |
| GET | /npcs |
NPC 列表 |
| GET | /npcs/status |
NPC 当前自主行为对话 |
| GET | /npcs/{name}/memories |
查看记忆 |
| GET | /affinities |
查看所有好感度 |
helloagents-ai-town/project.godot的主场景由失效 UID 改为路径res://scenes/main.tscn- 新增
backend/requirements.local.txt:补齐hello-agents导入时必需的重依赖,并锁定qdrant-client==1.12.1 - 新增
启动后端.bat/启动小镇.bat,统一处理PYTHONUTF8、OLLAMA_HOST等环境变量 - 新增
本地部署说明.md,记录踩坑与验证方法
CC BY-NC-SA 4.0 —— 与原项目一致。转载或修改请保留署名并以相同方式共享,且不得用于商业用途。