LieGraph 是一个基于 LangGraph 框架构建的、由 AI 代理驱动的“谁是卧底”社交推理游戏,让智能 AI 玩家能够进行推理、制定策略,以自然语言进行互动,最终找出潜藏的卧底。LieGraph 由自主 AI 代理,具备独特的个性和战略思维能力;拥有动态身份推断系统,持续分析对话历史和投票模式以推断自身及他人的身份;由成熟的概率信念系统,用于跟踪自我信念置信度并构建玩家间的怀疑矩阵;由高级战略推理能力,支持欺骗检测、联盟形成和长期规划,所有关键的发言和投票决策均通过 LLM 驱动的结构化工具实现。LieGraph 集成了度量与评估机制,可自动记录胜负平衡、身份识别准确性和发言多样性等质量指标,生成 JSON 报告,支持提示工程评估和历史分析,整个游戏流程通过 LangGraph 的 StateGraph 进行精心编排,提供从角色分配到最终胜负判定的完整逻辑。
每个AI代理都有独特性格和策略思维,不用人工干预就能参与游戏。它们会根据局势调整发言和投票逻辑,有的谨慎分析,有的主动引导,模拟真实玩家的互动状态。
AI会持续分析对话历史和投票模式,不仅推断他人身份,还会验证自己的角色定位。比如平民会通过发言一致性排查卧底,卧底则会观察他人描述寻找破绽,调整伪装策略。
所有沟通都通过自然语言完成,AI的发言符合角色设定,不会出现机械感十足的表达。卧底会刻意模糊描述,平民则会精准传递信息,整个对话过程贴近真人游戏场景。
AI会建立“怀疑矩阵”,用概率量化对其他玩家的信任度,同时记录自身角色的置信度。每一轮发言和投票后,这些数据都会更新,成为后续决策的依据。
游戏过程中会自动记录关键数据,包括平民与卧底的胜率平衡、身份识别准确率、发言多样性等,结束后生成JSON报告,方便后续优化prompt或调整游戏规则。
• Python 3.12+
• Node.js 16+
• 推荐使用uv管理Python包
1、在项目根目录创建.env文件,配置LLM提供商信息:
• OpenAI示例:
LLM_PROVIDER=openai
OPENAI_API_KEY="你的OpenAI密钥"
OPENAI_MODEL="gpt-4o-mini"
• DeepSeek示例:
LLM_PROVIDER=deepseek
DEEPSEEK_API_KEY="你的DeepSeek密钥"
DEEPSEEK_MODEL="deepseek-chat"
1、克隆仓库并进入目录:
git clone https://github.com/leslieo2/LieGraph.git
cd LieGraph
2、安装依赖:
# 如需安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
# 安装前端依赖
cd ui-web/frontend
npm install
3、启动服务:
# 启动后端(项目根目录)
langgraph dev --config langgraph.json --port 8124 --allow-blocking
# 启动前端(ui-web/frontend目录)
npm start
4、打开 http://localhost:3000 就能开始游戏。
游戏全程由LangGraph的StateGraph管理生命周期:
1、准备阶段:主持人代理分配角色(平民/卧底)和对应词语
2、发言阶段:玩家轮流用LLM生成符合自身角色的描述
3、身份推理:AI分析对话中的矛盾点、模糊表述等线索
4、投票阶段:所有玩家同时投票,选出怀疑的卧底
5、结果判定:得票最多的玩家被淘汰
6、胜负条件:卧底被淘汰则平民获胜;卧底数量超过平民则卧底获胜
编辑config.yaml文件就能调整游戏参数:
game:
player_count: 6 # 玩家数量
vocabulary:
- ["Shakespeare", "Dumas"] # 英文词语对
- ["太阳", "月亮"] # 中文词语对
player_names:
- "Alice"
- "Bob" # 玩家名称,可添加更多
游戏内置指标收集器(src/game/metrics.py),记录的核心数据包括:
• 胜率平衡:平民与卧底的获胜比例,目标保持50/50的公平性
• 识别准确率:追踪玩家对自身及他人角色的判断信心变化
• 发言多样性:统计每轮发言的词汇丰富度,避免重复表述
数据会自动保存: • 单局游戏总结:logs/metrics/{game_id}.json
• 累计统计+质量评分:logs/metrics/overall.json
也能通过代码调用指标:
from src.game.dependencies import build_dependencies
deps = build_dependencies()
collector = deps.metrics
audit = collector.get_overall_metrics()
score = collector.compute_quality_score() # 确定性评分
# 如需LLM辅助评分:collector.compute_quality_score(method="llm", llm=client)
PowerPoint演示文稿智能生成工具 PowerPoint Slides Skill
金融 AI 新工具 FinClaw,免费提供1000+ 金融专属Skills
PPT Agent 演示文稿生成框架
端到端自主AI科研引擎 NanoResearch
CitationClaw 学术论文智能引用画像和分析报告
pi-autoresearch:pi自动化实验优化循环
OpenClaw Control Center:为OpenClaw用户(包括团队和个人)提供统一的监控和管理界面
OpenClaw Dashboard 仪表盘:让OpenClaw管理更简单
PaperBanana-CN 学术配图助手
996.ICU:工作 996, 生病 ICU