llm-colosseum
llm-colosseum 是一款极具创意的开源项目,它让大语言模型(LLM)在经典格斗游戏《街头霸王 3》中实时对战,以此作为评估模型能力的全新基准。传统评测往往依赖静态数据集,而 llm-colosseum 通过高动态的游戏环境,直观地检验模型在快速决策、战略预判、灵活应变及抗压能力等方面的综合表现。
该项目解决了现有评测方式难以衡量模型在复杂、实时交互场景下“智能程度”的痛点。在这里,模型不仅需要理解屏幕画面或文本描述,还要像人类玩家一样思考后续几十步的走位,并根据对手动作即时调整策略。其技术亮点在于支持纯文本与多模态(视觉)两种控制模式:文本机器人依靠游戏状态描述进行决策,而视觉机器人则直接分析游戏截图,充分展现了多模态模型的环境感知优势。
llm-colosseum 非常适合 AI 研究人员、开发者以及对大模型性能评估感兴趣的技术爱好者使用。研究人员可借此探索模型在强化学习之外的上下文理解能力;开发者能对比不同模型在实时任务中的延迟与逻辑表现;普通用户也能通过观看"AI 大乱斗”的演示,直观感受当前顶尖模型的智力差异。目前项目已公开部分对战数据与 ELO 排行榜,为社区提供了一种有趣且严谨的模型比拼新范式。
使用场景
某 AI 实验室团队正在为一款实时策略游戏筛选最优的决策模型,需要在众多开源大模型中快速锁定反应快、策略强的候选者。
没有 llm-colosseum 时
- 评估维度单一:传统基准测试仅关注文本生成质量,无法衡量模型在动态环境下的实时决策与应变能力。
- 开发成本高昂:团队需手动搭建复杂的游戏仿真环境并编写强化学习奖励函数,耗时数周才能完成一次有效评测。
- 缺乏直观对比:难以直观判断不同模型在“高压”对抗中的表现差异,往往依赖抽象的分数报表,导致选型决策模糊。
- 忽略多模态能力:纯文本测试无法验证模型通过视觉截图理解战场局势的能力,遗漏了多模态模型的关键优势。
使用 llm-colosseum 后
- 场景化实战测评:直接让大模型在《街头霸王 3》中实时互搏,通过胜负结果直观检验模型的反应速度、战术规划及抗压韧性。
- 零门槛快速部署:无需从头构建仿真器,利用现有 API 即可让文本或多模态模型化身格斗家,几分钟内启动大规模对抗实验。
- 量化排名清晰:基于真实的对战数据自动生成 ELO 积分排行榜和胜率矩阵,精准识别出如 GPT-4o 等兼具速度与智慧的顶尖模型。
- 全面覆盖模态:同时支持纯文本描述与视觉截图输入,充分挖掘并对比了多模态模型在感知环境与执行操作上的独特潜力。
llm-colosseum 将抽象的模型能力评估转化为直观的格斗竞技,用最低成本揭示了大模型在实时复杂任务中的真实战斗力。
运行环境要求
- 未说明 (基于 Diambra Arena,通常支持 Linux/Windows/macOS)
- 非必需
- 若使用本地大模型(如通过 Ollama),需根据具体模型决定
- 若仅调用云端 API 则无 GPU 要求
未说明 (取决于是否运行本地模型及模型大小)

快速开始
使用街霸III实时评估大语言模型
让大语言模型在街霸III中进行实时对决。
究竟哪款大语言模型会成为最出色的格斗家呢?
演示: 立即在浏览器中体验!
我们的评判标准 🔥
它们需要具备以下特质:
- 快速:这是一场实时对战,迅速的决策至关重要。
- 聪明:优秀的格斗家能够提前规划五十步棋。
- 创新思维:用出其不意的招式智胜对手。
- 适应性强:从错误中学习并调整策略。
- 坚韧不拔:在一整场比赛中始终保持高RPS(每秒请求率)。
战斗开始吧 🥷
1对1:Mistral 7B vs Mistral 7B
1对1 × 6:Mistral 7B vs Mistral 7B
一种全新的基准测试?
街霸III能够评估大语言模型理解环境并在特定情境下采取行动的能力。与基于奖励函数盲目行动的强化学习模型不同,大语言模型完全了解当前情境,并据此做出相应决策。
结果
截至目前,我们已进行了546场对决,得出了如下排行榜。每个大语言模型都根据其战绩获得了ELO评分。
排行榜
ELO排名
| 排名 | 模型 | 评分 |
|---|---|---|
| 1 | 🥇openai:gpt-4o:text | 1912.5 |
| 2 | 🥈openai:gpt-4o-mini:vision | 1835.27 |
| 3 | 🥉openai:gpt-4o-mini:text | 1670.89 |
| 4 | openai:gpt-4o:vision | 1656.93 |
| 5 | mistral:pixtral-large-latest:vision | 1654.61 |
| 6 | mistral:pixtral-12b-2409:vision | 1590.77 |
| 7 | mistral:pixtral-12b-2409:text | 1569.03 |
| 8 | together:meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo:text | 1441.45 |
| 9 | anthropic:claude-3-haiku-20240307:vision | 1364.87 |
| 10 | mistral:pixtral-large-latest:text | 1356.32 |
| 11 | anthropic:claude-3-haiku-20240307:text | 1333.6 |
| 12 | anthropic:claude-3-sonnet-20240229:vision | 1314.61 |
| 13 | together:meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo:vision | 1269.84 |
| 14 | anthropic:claude-3-sonnet-20240229:text | 1029.31 |
注:在我们的实验中,Claude 3 Sonnet得分较低,主要是因为多次拒绝战斗以及API延迟较大。
胜率矩阵

解释
每位玩家可以由文本生成模型或多模态模型控制。我们通过API端点调用这些模型。了解更多关于模型的信息:
文本机器人
我们会向LLM发送屏幕的文本描述,LLM则决定其角色接下来将执行哪些动作。这些动作取决于它之前的行动、对手的动作、自身的能量条和生命值。
基于智能体
多线程
实时

视觉机器人
我们会向LLM发送当前游戏状态的截图,并明确指出它所控制的角色。它的决策完全基于这些视觉信息。
安装
- 按照 https://docs.diambra.ai/#installation 中的说明操作。
- 下载ROM文件并将其放入
~/.diambra/roms目录中(无需解压内容)。 - (可选)创建并激活一个新的Python虚拟环境 venv。
- 使用
make install或pip install -r requirements.txt安装依赖项。 - 创建一个
.env文件,并按照.env.example文件中的内容填写。 - 运行
make run。
使用Docker运行
您也可以使用Docker来运行该应用。
构建Docker镜像
要构建Docker镜像,请使用以下命令:
docker build -t diambra-app .
运行Docker容器
要运行Docker容器,请使用以下命令:
docker run --name diambra-container -v ~/.diambra/roms:/app/roms diambra-app
- 如果遇到容器名称冲突,可以先移除现有容器:
docker rm diambra-container
在本地使用Ollama运行Docker Compose
要启动服务,请使用以下命令:
docker-compose up
停止服务
要停止服务,请使用:
docker-compose down
测试模式
若要禁用LLM调用,可在.env文件中将DISABLE_LLM设置为True。此时系统将随机选择动作。
日志记录
可在script.py文件中更改日志级别。
本地模型
您还可以使用Ollama在本地模型上运行竞技场。
确保已安装并运行Ollama,且已下载所需模型(例如,在终端中运行
ollama serve mistral)。运行
make local即可开始对战。
默认情况下,系统会使用Mistral模型进行对战。如需使用其他模型,需在 local.py 文件中修改 model 参数。
from eval.game import Game, Player1, Player2
def main():
# 环境设置
game = Game(
render=True,
save_game=True,
player_1=Player1(
nickname="Baby",
model="ollama:mistral",
robot_type="text", # vision或text
temperature=0.7,
),
player_2=Player2(
nickname="Daddy",
model="ollama:mistral",
robot_type="text",
temperature=0.7,
),
)
game.run()
return 0
if __name__ == "__main__":
main()
我们使用的命名规范是 model_provider:model_name。如果您想使用除Mistral之外的其他本地模型,可以写成 ollama:some_other_model。
如何让我的LLM模型参与游戏?我能否改进提示词?
LLM是在agent/robot.py文件中的<Text||Vision>Robot.call_llm()方法中调用的。
TextRobot方法:
def call_llm(
self,
max_tokens: int = 50,
top_p: float = 1.0,
) -> Generator[ChatResponse, None, None]:
"""
向语言模型发起API调用。
编辑此方法以改变机器人的行为!
"""
# 生成提示词
move_list = "- " + "\n - ".join([move for move in META_INSTRUCTIONS])
system_prompt = f"""你是世界上最好、最激进的街头霸王III第三击玩家。
你的角色是{self.character}。你的目标是击败对手。请以项目符号列表的形式回复可执行的动作。
{self.context_prompt()}
你可以使用的招式有:
{move_list}
----
请以项目符号列表的形式回复动作,格式为:`- <动作名称>`,每行一个动作。
例如,如果对手很近:
- 靠近
- 中拳
例如,如果对手较远:
- 火焰拳
- 靠近"""
start_time = time.time()
client = get_client(self.model, temperature=self.temperature)
messages = [
ChatMessage(role="system", content=system_prompt),
ChatMessage(role="user", content="你接下来的动作是:"),
]
resp = client.stream_chat(messages)
logger.debug(f"向{self.model}发出的LLM调用:{system_prompt}")
logger.debug(f"向{self.model}发出的LLM调用:耗时{time.time() - start_time}秒")
return resp
VisionRobot方法:
def call_llm(
self,
max_tokens: int = 50,
top_p: float = 1.0,
) -> Generator[CompletionResponse, None, None]:
"""
向语言模型发起API调用。
编辑此方法以改变机器人的行为!
"""
# 生成提示词
move_list = "- " + "\n - ".join([move for move in META_INSTRUCTIONS])
system_prompt = f"""你是世界上最好、最激进的街头霸王III第三击玩家。
你的角色是{self.character}。你的目标是击败对手。请以项目符号列表的形式回复可执行的动作。
当前的游戏状态如下面的图片所示。
你可以使用的招式有:
{move_list}
----
请以3个动作的项目符号列表形式回复。格式为:`- <动作名称>`,每行一个动作。
例如,如果对手很近:
- 靠近
- 中拳
例如,如果对手较远:
- 火焰拳
- 靠近"""
start_time = time.time()
client = get_client_multimodal(
self.model, temperature=self.temperature
) # 多模态LLM
resp = client.stream_complete(
prompt=system_prompt, image_documents=[self.last_image_to_image_node()]
)
logger.debug(f"向{self.model}发出的LLM调用:{system_prompt}")
logger.debug(f"向{self.model}发出的LLM调用:耗时{time.time() - start_time}秒")
return resp
您可以在这些函数中自定义您的提示词。
提交您的模型
创建一个继承自Robot的新类,并在其中加入您希望做的修改,然后提交一个PR。
我们会尽力将其加入排名!
致谢
由OpenGenerativeAI团队在Mistral黑客马拉松2024期间于旧金山使用❤️制作,成员来自phospho(@oulianov @Pierre-LouisBJT @Platinn)和Quivr(@StanGirard)。
版本历史
v0.0.32024/11/20v0.0.22024/10/09v0.0.12024/03/24常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备