🤖 一个创新的多智能体算法竞技场,让 AI Agents 实时竞赛解算法题,支持辩驳机制和人机对战。
- 🏆 多 Agent 实时竞赛 - 支持 GPT-4、Claude、DeepSeek 等多种 LLM 同台竞技
- ⚖️ AI 裁判系统 - 自动评判代码正确性、效率和质量,综合评分
- 💬 辩驳机制 - Agent 可对评判结果提出异议,智能仲裁系统保证公平
- 👥 人机对战 - 通过速度限制模拟人类行为,实现公平的人机竞赛
- 📊 实时可视化 - WebSocket 实时推送,观看 Agent 思考和编码全过程
- 🔒 安全沙箱 - Judge0 容器化执行环境,支持 60+ 编程语言
- 多个 AI agent 同时接收算法题目
- 各 agent 独立思考、编写解决方案
- 实时追踪解题进度和思维过程
- 支持自选 LLM 提供商(OpenAI / Anthropic / DeepSeek / 本地模型)
- 正确性评判:自动运行测试用例,验证代码正确性
- 效率评估:分析时间复杂度和空间复杂度
- 质量审查:LLM 评审代码风格、可读性和算法优雅度
- 综合评分:正确性 50% + 效率 30% + 质量 20%
- Agent 可对评判结果提出异议
- 提供论据和证据支撑辩驳
- Judge 审查并回应辩驳
- 最多 2 轮辩驳,超过则触发仲裁
- 辩驳成功可调整分数
- 限制 Agent 输出速度(字符/秒)
- 模拟思考延迟和打字节奏
- Web IDE 编辑器(Monaco Editor)
- 公平的竞赛体验
- WebSocket 双向通信
- 流式输出 Agent 思考过程
- 多客户端同步观赛
- 实时排行榜更新
┌─────────────────────────────────────────────────────────┐
│ 前端 (React + Vite + Tailwind) │
│ 比赛创建 | 实时竞赛页 | 题库管理 | 历史回放 | 统计分析 │
└───────────────────────┬─────────────────────────────────┘
│ WebSocket + HTTP API
┌───────────────────────┴─────────────────────────────────┐
│ 后端 (FastAPI) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Contest Manager | Agent Manager | Judge System │ │
│ │ Debate Manager | WebSocket Hub | Code Runner │ │
│ └─────────────────────────────────────────────────┘ │
└───────────────────────┬─────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
PostgreSQL Redis Judge0
(数据存储) (缓存/消息) (代码执行)
详细设计请查看 📖 总体设计文档
| 技术 | 版本 | 用途 |
|---|---|---|
| FastAPI | 0.115+ | 高性能异步 Web 框架 |
| PostgreSQL | 16+ | 主数据库,支持 JSONB |
| Redis | 7+ | 缓存和消息队列 |
| SQLAlchemy | 2.0+ | 异步 ORM |
| Judge0 | CE 1.13+ | 代码执行沙箱 |
| OpenAI SDK | 最新 | GPT 模型接入 |
| Anthropic SDK | 最新 | Claude 模型接入 |
| httpx | 最新 | 异步 HTTP 客户端 |
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 18+ | UI 框架 |
| TypeScript | 5+ | 类型安全 |
| Vite | 5+ | 构建工具 |
| Tailwind CSS | 3+ | 样式框架 |
| Shadcn UI | 最新 | 组件库 |
| Monaco Editor | 0.52+ | 代码编辑器 |
| Zustand | 5+ | 状态管理 |
- Docker + Docker Compose - 容器化部署
- Alembic - 数据库迁移
- pytest - 后端测试
- Vitest - 前端测试
确保已安装:
- Docker 和 Docker Compose
- Python 3.11+
- Node.js 20+
- Git
git clone https://github.com/AbelTomato/Multi-Agent-Algorithmic-Arena.git
cd Multi-Agent-Algorithmic-Arenacp .env.example .env编辑 .env 文件,填入 API Keys:
# LLM API Keys
OPENAI_API_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key
DEEPSEEK_API_KEY=your_deepseek_key
# 数据库配置
DATABASE_URL=postgresql://postgres:password@localhost:5432/arena
REDIS_URL=redis://localhost:6379
# Judge0 配置
JUDGE0_URL=http://localhost:2358# 一键启动所有服务(PostgreSQL + Redis + Judge0 + 后端 + 前端)
docker-compose up -d
# 查看日志
docker-compose logs -f# 进入后端容器
docker-compose exec backend bash
# 运行迁移
alembic upgrade head
# 导入示例题目(可选)
python scripts/seed_problems.py- 前端界面:http://localhost:5173
- 后端 API 文档:http://localhost:8000/docs
- Judge0 API:http://localhost:2358
- 📋 实施计划 - 分阶段开发计划和里程碑
- 🏗️ 总体设计 - 架构设计和技术实现细节
- 🔌 接口设计 - API 接口和 WebSocket 事件协议(待补充)
- 💾 数据结构设计 - 数据库表结构(待补充)
- 初始化后端项目结构
- 初始化前端项目结构
- 配置 Docker Compose
- 数据库模型定义
- BaseAgent 抽象接口
- OpenAI / Anthropic / DeepSeek 适配器
- Agent Factory 工厂模式
- 速度限制器
- Judge0 集成
- 评分逻辑实现
- 裁判 Agent(代码质量评审)
- 辩驳流程管理器
- 比赛状态机
- WebSocket 连接管理
- 多 Agent 并发调度
- 实时竞赛主界面
- Agent 思考过程可视化
- 人类选手代码编辑器
- 题库管理
- Codeforces 题目导入
- 比赛历史回放
- 统计分析面板
详细计划请查看 📋 实施计划
欢迎贡献代码、报告问题或提出建议!
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/your-feature - 提交更改:
git commit -m 'feat: add some feature' - 推送分支:
git push origin feature/your-feature - 提交 Pull Request
遵循 Conventional Commits:
feat: 新功能
fix: 修复 bug
docs: 文档更新
test: 测试相关
refactor: 重构
chore: 构建/依赖更新
- Python:遵循 PEP 8,使用
black格式化 - TypeScript/React:遵循 Airbnb 风格,使用
prettier格式化
本项目采用 MIT 许可证。详见 LICENSE 文件。
- FastAPI - 现代化的 Python Web 框架
- Judge0 - 开源的代码执行引擎
- Shadcn UI - 精美的 React 组件库
- OpenAI / Anthropic / DeepSeek - 强大的 LLM 提供商
- 作者:AbelTomato
- GitHub:https://github.com/AbelTomato
- 项目主页:https://github.com/AbelTomato/Multi-Agent-Algorithmic-Arena
⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!