Mesa ABM Demo 展示

Delphine AI Factory - 游戏玩家模拟代理建模框架

Python 3.12 Mesa 3.5.1 LangGraph 1.1.3 2026-03-24

项目概述

一个基于Mesa框架的代理建模(ABM)演示模块,专门为游戏玩家模拟设计。实现了Mesa 2.x/3.x双版本兼容,集成了LangGraph工作流编排。

实施状态: 已完成并验证
兼容性: Mesa 2.x/3.x 双版本
架构方案: 方案B - 重构适配
测试结果: 所有功能验证通过
核心目标
  • Mesa版本兼容
  • 游戏玩家模拟
  • LangGraph集成
  • 数据收集分析

技术架构

适配器模式架构

版本检测

运行时自动检测Mesa版本 (2.x 或 3.x)

适配器层

透明转换不同版本的API差异

统一接口

业务代码使用一致的API接口

解决的关键问题
  • Agent初始化bug 已解决
  • time属性缺失 已解决
  • agents属性缺失 已解决
  • Grid API参数变更 已解决
  • RandomActivation缺失 已解决
  • DataCollector兼容性 已解决

演示结果

基础演示

50步模拟,15名玩家,10×10网格

关键指标
初始玩家: 15 最终活跃: 0 总获能: 88 数据点: 51
步骤 1-10

玩家活跃度保持15人,能量逐步下降

步骤 11-30

玩家开始能量耗尽,活跃人数减少

步骤 31-50

所有玩家能量耗尽,模拟结束

LangGraph工作流

30步工作流,20名玩家,15×15网格

工作流结果
初始玩家: 20 最终活跃: 1 平均活跃: 10.37 总获能: 112
工作流状态
初始化 → 运行 → 分析
完整的工作流状态跟踪完成

可视化展示

Mesa Demo 结果可视化
图表说明
  • 活跃玩家趋势

    随时间变化的活跃玩家数量

  • 总能量变化

    玩家总能量的动态变化

  • 非活跃玩家

    能量耗尽的玩家数量增长

  • 能量获取

    玩家获得能量的累计总量

代码示例

基础使用
# 导入模块
from delphine_ai_factory.mesa_demo import GamePlayerModel

# 创建模型
model = GamePlayerModel(width=10, height=10, num_players=15)

# 运行模拟
results = model.run_simulation(steps=50)

# 查看结果
print(f"最终活跃玩家: {results['final_active_agents']}")
print(f"总能量获取: {results['total_energy_gained']}")
工作流集成
# 导入工作流
from delphine_ai_factory.mesa_demo import run_workflow_demo

# 运行工作流演示
workflow_results = run_workflow_demo()

# 工作流配置
config = {
  "num_players": 20,
  "grid_width": 15,
  "grid_height": 15,
  "simulation_steps": 30
}

# 完整的工作流状态跟踪
模块结构
agent.py
GamePlayer代理定义
model.py
GamePlayerModel模型
workflow.py
LangGraph工作流
version.py
版本适配器

相关链接

实施报告

完整的技术实施总结报告

查看报告
项目仓库

Delphine AI Factory 源代码

SVN仓库
Mesa框架

代理建模框架官方网站

Mesa文档