Token导航 LogoToken导航TokenDH.com
L25 Even Odd AI Agent League System logo
AI代理stdio官方级别未说明来源级核验

L25 Even Odd AI Agent League System

MCP Server

一个分布式多代理系统,实现竞争性的奇偶游戏联盟,包含联盟管理器、裁判和玩家三种代理类型,通过league.v2协议进行通信。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
AI代理Python工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

hadarwayn

提供方

hadarwayn

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python --version

详细介绍

偶数/奇数AI代理联盟系统

一个分布式多代理系统,实现了一个有竞争力的偶数/奇数游戏联盟。该系统包括三种代理类型(联赛经理、裁判、球员),通过 league.v2 通过JSON-RPC 2.0 HTTP传输使用MCP(模型上下文协议)的协议。

系统架构

┌─────────────────────────────────────────────────────────┐
│                  LEAGUE MANAGEMENT LAYER                 │
│  ┌─────────────────────────────────────────────────┐   │
│  │           League Manager (Port 8000)             │   │
│  │  - Player/Referee registration                   │   │
│  │  - Round-robin scheduling                        │   │
│  │  - Standings calculation                         │   │
│  └─────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────┘
                           ↕
┌─────────────────────────────────────────────────────────┐
│                  GAME REFEREEING LAYER                   │
│  ┌──────────────────┐    ┌──────────────────┐          │
│  │  Referee REF01   │    │  Referee REF02   │          │
│  │  (Port 8001)     │    │  (Port 8002)     │          │
│  └──────────────────┘    └──────────────────┘          │
└─────────────────────────────────────────────────────────┘
                           ↕
┌─────────────────────────────────────────────────────────┐
│                    PLAYER LAYER                          │
│  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐          │
│  │  P01   │ │  P02   │ │  P03   │ │  P04   │          │
│  │ :8101  │ │ :8102  │ │ :8103  │ │ :8104  │          │
│  └────────┘ └────────┘ └────────┘ └────────┘          │
└─────────────────────────────────────────────────────────┘

特性

  • 多代理架构:联赛经理、裁判和球员
  • 协议遵从:已满 league.v2 具有18种消息类型的协议
  • 可插拔策略:随机、确定性、交替、自适应
  • 共享SDK:常见组件 SHARED/league_sdk/
  • 安全:身份验证令牌验证、速率限制、输入净化
  • 韧性:断路器,以指数回退重试
  • JSONL日志记录:环形缓冲区结构化日志记录
  • 状态持久性:代理在重启后仍能存活
  • 演出:连接池、基准实用程序
  • 可视化:性能图表

______________________________________________________________________

代码文件摘要

入口点和模拟

文件描述
run_league.py联赛模拟入口点52
simulation/__init__.py模拟包导出24
simulation/player.py模拟玩家代理70
simulation/referee.py模拟裁判代理人48
simulation/league.py联盟编排148
simulation/output.py输出格式65

SDK核心

文件描述
SHARED/league_sdk/mcp_server.pyFastAPI MCP服务器148
SHARED/league_sdk/mcp_client.py带断路器的HTTP客户端148
SHARED/league_sdk/schemas.py18种消息类型型号148
SHARED/league_sdk/schemas_base.py基本模式和枚举95
SHARED/league_sdk/auth.py速率限制和身份验证148
SHARED/league_sdk/circuit_breaker.py断路器型式145
SHARED/league_sdk/helpers.py实用功能109
SHARED/league_sdk/logger.pyJSONL结构化记录器113
SHARED/league_sdk/game_rules/even_odd.py游戏逻辑95

SDK扩展

文件描述
SHARED/league_sdk/ring_buffer_logger.py环形缓冲区日志记录142
SHARED/league_sdk/state_persistence.py玩家状态持久性140
SHARED/league_sdk/benchmarks.py绩效基准138
SHARED/league_sdk/visualization.py结果可视化130
SHARED/league_sdk/error_handlers.py错误恢复处理程序135

代理

文件描述
agents/league_manager/main.py联赛经理经纪人87
agents/league_manager/handlers.pyLM消息处理程序145
agents/referee_template/main.py裁判代理模板75
agents/referee_template/handlers.py裁判处理程序130
agents/player_template/main.py玩家代理模板70
agents/player_template/handlers.py玩家处理程序125

测试(按类别划分)

文件描述
tests/test_timestamp.pyUTC时间戳验证35
tests/test_enums.py枚举验证测试62
tests/test_helpers.py辅助功能测试35
tests/test_messages.py消息模型测试95
tests/test_game_logic.py游戏逻辑测试85
tests/test_points.py点数计算测试30
tests/test_sender.py发件人解析测试55

______________________________________________________________________

数学基础

偶数/奇数博弈论

偶数/奇数游戏是 对称零和博弈 一旦随机数被提取,结果就具有确定性。

概率分析

给定一个从1-10中随机抽取的数字:

  • P(偶数) =5/10=0.5(数字:2、4、6、8、10)
  • P(奇数) =5/10=0.5(数字:1、3、5、7、9)

结果矩阵

对手:偶数对手:奇数
你:甚至平局(50%),赢/输(50%)偶数赢(50%)
你:奇怪偶数输(50%),奇数赢(50%)平局(50%)、输赢(50%)

期望值

对于选择概率p为偶数的任何混合策略:

E[points] = 3 × P(win) + 1 × P(draw) + 0 × P(loss)

纳什均衡

唯一纳什均衡 是随机策略:

  • 选择概率为0.5的偶数
  • 选择概率为0.5的奇数

这保证了每场比赛对任何对手策略的预期值为1.5分。

战略分析

策略vs随机vs偶数vs奇数vs自适应
随机1.51.51.51.5
检测偶数1.51.51.5可变
检测赔率1.51.51.5可变
自适应1.5>1.5>1.5可变

适应战略 可以利用可预测的对手,但在随机游戏中表现相同。

______________________________________________________________________

虚拟环境设置(必需)

此项目使用 紫外线 用于快速、可靠的包管理。

步骤1:安装UV(如果未安装)

Linux/Mac/WSL:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows PowerShell:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

步骤2:创建和激活虚拟环境

cd L25
uv venv

WSL/Linux/Mac:

source .venv/bin/activate

Windows PowerShell:

.venv\Scripts\activate

步骤3:安装依赖项

uv pip install -r requirements.txt

步骤4:验证安装

python --version
# Should show Python 3.10+

python -c "import fastapi; print(f'FastAPI: {fastapi.__version__}')"

运行全联盟

按以下顺序在单独的终端中启动代理:

1号航站楼:联赛经理

cd agents/league_manager && python main.py

终端2-3:裁判

cd agents/referee_REF01 && python main.py
cd agents/referee_REF02 && python main.py

终端4-7:玩家

cd agents/player_P01 && python main.py
cd agents/player_P02 && python main.py
cd agents/player_P03 && python main.py
cd agents/player_P04 && python main.py

玩家策略

玩家策略描述
P01随机等概率偶数/奇数
P02确定性偶数总是选择偶数
P03交替偶数/奇数之间的切换
P04自适应从对手历史中学习

快速模拟

用一个命令运行一个完整的联赛模拟:

python run_league.py

______________________________________________________________________

性能基准

操作平均时间最小值最大值内存
注册8ms5ms15ms1.2MB
比赛执行时间12ms8ms25ms1.5MB
奇偶校验选择2ms1ms5ms0.5MB
展位计算3ms2ms8ms0.8MB
全联盟(6场比赛)150ms100ms250ms8MB

______________________________________________________________________

结果

联盟活动日志

时间事件详细信息
11:04:29参考_已注册REF01已注册
11:04:29参考_已注册REF02已注册
11:04:29玩家_已注册P01(AlphaBot)已注册
11:04:29玩家_已注册P02(BetaBot)已注册
11:04:29玩家_已注册P03(GammaBot)已注册
11:04:29玩家_已注册P04(DeltaBot)已注册
11:04:29日程生成3轮,6场比赛
11:04:29联赛开始
11:04:29第一轮开始
11:04:29材料已完成R1M1:P01与P02->图纸
11:04:29材料已完成R1M2:P03与P04->图纸
11:04:29第一轮比赛已完成第二轮比赛已结束
11:04:29第二轮开始
11:04:29材料已完成R2M1:P01与P03->图纸
11:04:29材料已完成R2M2:P02与P04->图纸
11:04:29第二轮比赛已完成
11:04:29第三轮开始
11:04:29已完成R3M1:P01与P04->P04
11:04:29材料已完成R3M2:P02与P03->图纸
11:04:29第三轮比赛已完成
11:04:29联赛结束联赛结束

最终排名

排名玩家策略PWDL得分
1P04(DeltaBot)自适应31205
2P02(BetaBot)确定性_偶数30303
3P03(GammaBot)交替3030_3
4P01(AlphaBot)随机30212

冠军

P04(德尔塔机器人) -适应性策略

  • 记录:1W-2D-0L(5分)
  • 通过学习对手模式获得的自适应策略!

______________________________________________________________________

示例游戏2:确定性策略获胜

第二轮联赛展示了结果如何根据随机抽签而变化:

比赛历史

比赛回合球员A选择对战球员B选择平局#获胜者
R1M11P01偶数vsP02偶数6DRAW
R1M21P03偶数vsP04偶数9DRAW
R2M12P01奇数vsP03奇数7DRAW
R2M22P02偶数vsP04奇数2P02
R3M13P01奇数vsP04奇数1DRAW
R3M23P02偶数vsP03偶数2DRAW

最终排名

排名玩家策略PWDL得分
1P02(BetaBot)确定性_偶数31205
2P01(AlphaBot)随机30303
3P03(GammaBot)交替3030_3
4P04(DeltaBot)自适应30212

冠军

P02(BetaBot) -确定性均衡策略

  • 记录:1W-2D-0L(5分)
  • 性能:总计0.27ms,0.04ms/批
  • 当适应性对手在偶数平局中选择奇数时,确定性偶数策略获胜!

分析

这个游戏展示了如何 同样的策略会产生不同的结果 基于随机抽取:

  • 游戏1:通过利用模式赢得的适应性策略(P04)
  • 游戏2:当P04的自适应选择错误时,确定性偶数(P02)获胜

这说明了 混合策略纳什均衡 -没有一种纯粹的策略在所有游戏中都占主导地位。

______________________________________________________________________

故障排除

“找不到模块”错误

# Ensure virtual environment is activated
source .venv/bin/activate  # Linux/Mac/WSL
.venv\Scripts\activate     # Windows

# Verify Python path
which python  # Should point to .venv/bin/python

连接被拒绝

# Start agents in order: Manager → Referees → Players
# Check if agent is running
curl http://localhost:8000/health

端口已在使用中

# Find process using port (Linux/Mac)
lsof -i :8000

# Find process using port (Windows)
netstat -ano | findstr :8000

# Kill process (Windows)
taskkill /PID 
 /F

注册超时

# Verify League Manager is responding
curl http://localhost:8000/health

# Check firewall settings
# Ensure no VPN interfering with localhost

WSL路径问题

# Use Linux paths in WSL, not Windows paths
# Wrong: /mnt/c/Users/...
# Right: ~/projects/L25

安装后未找到紫外线

# Add to PATH (add to ~/.bashrc or ~/.zshrc)
export PATH="$HOME/.cargo/bin:$PATH"
source ~/.bashrc  # or source ~/.zshrc

测试中的导入错误

# Ensure SHARED is in PYTHONPATH
export PYTHONPATH="${PYTHONPATH}:$(pwd)/SHARED"
pytest tests/ -v

代理在启动时崩溃

# Check log files in SHARED/logs/{agent_type}/
cat SHARED/logs/players/P01.log.jsonl | tail -20

# Verify JSON config files are valid
python -c "import json; json.load(open('SHARED/config/agents.json'))"

未显示匹配结果

# Verify all agents registered successfully
# Check League Manager logs for registration events
# Ensure referees received match assignments

______________________________________________________________________

API 文档

docs/API.md文件 以获取完整的API参考。

运行测试

# Run all tests
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=SHARED/league_sdk

# Run specific test
pytest tests/test_protocol.py -v

学习目标

该项目展示了:

  1. 多智能体系统 -自主代理之间的协调
  2. MCP协议 -基于HTTP的JSON-RPC 2.0实现
  3. 分布式体系结构 -三层体系设计
  4. 协议遵从 -严格遵守规范
  5. 策略模式 -可插拔决策算法
  6. 存储库模式 -干净的数据访问抽象
  7. 断路器 -容错模式
  8. 速率限制 -请求调节稳定性

许可证

教育用途的开源。

目录标签

目录标签

AI代理Python工作流自动化多代理系统本地部署游戏联盟分布式架构协议合规策略模式

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP