Avalon Agent
Avalon Agent 是一个面向桌游玩家和 Agent 开发者的多人在线 Avalon 平台。项目并非单纯脚本模拟,而是围绕“在线房间、隐藏身份规则、Agent 编排、语音交互和对局复盘”构建完整产品,支持全 Agent 自动对局,也支持真人玩家与 Agent 混合组局。
当前仓库同时包含可演示的静态原型,以及 Next.js 前端、FastAPI 后端和共享协议组成的真实应用骨架。
- 创建 5–10 人房间,配置角色包、游戏模式、语音模式与公开性
- 真人、Agent、邀请中和空位四类席位,可一键使用 Agent 补位
- 完整规则状态机:身份分配、组队、投票、任务、刺杀梅林与胜负结算
- 文本聊天与 WebSocket 实时事件,规划接入 ASR 与多角色 TTS
- Agent 人格、模型、温度、推理策略、发言风格和记忆范围配置
- 保存聊天、动作和 append-only 事件,支持对局重放、复盘与评测
| 层级 | 实现 |
|---|---|
| Web 前端 | Next.js 14、React 18、TypeScript、TanStack Query、Zustand |
| API 与实时通信 | FastAPI、Pydantic v2、REST、WebSocket |
| 数据与状态 | PostgreSQL、SQLAlchemy 2、Alembic、Redis Pub/Sub |
| Agent 编排 | LangChain 模型适配、LangGraph 决策状态图、结构化动作输出 |
| 基础设施 | Docker Compose、PostgreSQL 16、Redis 7 |
游戏规则由确定性后端引擎裁决,Agent 只负责基于可见信息生成发言或结构化动作。每个角色只会收到其权限范围内的状态,Agent 输出还需要经过 Schema 校验和规则引擎合法性检查,避免隐藏身份泄露或非法动作改变游戏状态。
模型提供层计划兼容 OpenAI-compatible、Anthropic、Ollama 和本地 vLLM;语音部分采用可替换的 ASR 与 TTS 服务,保证游戏引擎不依赖单一模型供应商。