Skip to content

Mariooo7/llm-abm-wom-diffusion

Repository files navigation

毕业论文仿真实验项目

论文题目: 基于大模型智能体的新产品扩散机制研究:网络结构与口碑语义的交互效应 作者: 茅睿 (Mariooo7)

技术栈: Go (并发调度与网关) + Python (Mesa ABM 引擎) 混合架构


📋 项目简介

本项目用于探究复杂网络中新产品扩散的微观机制,构建了基于大语言模型(LLM)的 Agent 决策框架:

  • Go (HTTP 网关): 提供高并发、稳定的 LLM 请求调度、重试退避与 Token 统计。
  • Python (Mesa 框架): 负责 ABM 仿真主流程、复杂网络生成(NetworkX)及数据指标采集。
  • 混合架构优势: 兼顾 Go 的高并发吞吐能力与 Python 在复杂网络/数据科学领域的生态优势。

核心研究假设

本研究采用 2×2 双因素实验设计

  • 自变量 1: 网络拓扑结构 (小世界网络 Small-World vs 随机网络 Random)
  • 自变量 2: 产品口碑语义 (强产品 Strong WOM vs 弱产品 Weak WOM)

核心验证点:

  1. 主效应: 强产品在任何网络中的扩散率均高于弱产品。
  2. 交互效应 (复杂传染理论):
    • 对于强产品,随机网络的长程连接能加速“简单传染”,扩散更快。
    • 对于弱产品,小世界网络的高聚类特征能提供“重复触达”,为其生存与扩散提供“抱团庇护”。

🏗️ 项目结构

llm-abm-wom-diffusion/
├── python/                     # Python ABM 仿真模块
│   ├── models/                 # Mesa 模型定义 (model.py)
│   ├── networks/               # 网络生成器 (generator.py)
│   ├── agents/                 # 智能体定义 (agent.py)
│   ├── llm/                    # Python 侧决策客户端
│   ├── config/                 # 配置解析逻辑
│   └── run_experiment.py       # 仿真实验启动器
│
├── go/                         # Go 并发网关
│   └── cmd/main.go             # /decide 决策网关服务
│
├── experiments/configs/        # 核心实验参数 (A/B/C/D 四组 YAML 配置)
├── data/                       # 实验数据 (由 .gitignore 排除结果文件)
├── docs/                       # 架构与开发文档
├── scripts/                    # 运行脚本
│   └── run_experiment.sh       # 统一仿真入口
│
└── README.md                   # 本文档

🚀 快速开始

1. 环境准备

  • Python: 3.11+ (建议使用 uv 进行依赖管理)
  • Go: 1.23+
# Python 依赖安装
uv venv .venv
source .venv/bin/activate
uv pip install -r python/requirements.txt

# Go 依赖安装
cd go
go mod download
go mod tidy
cd ..

2. API Key 配置

cp .env.example .env

.env 文件中填入你的 LLM_API_KEY。支持 OpenAI 兼容格式接口(默认配置指向阿里云百炼)。

3. 运行仿真(统一入口)

所有实验统一通过 scripts/run_experiment.sh 调度,脚本内置并发管理与网关自启。

场景 A:一键运行正式毕业论文批次(4组 × 15次)

bash scripts/run_experiment.sh

自动以 4 线程并发跑满 60 次 Run,结果落盘至 data/results/formal_<时间戳>

场景 B:自定义参数探路(极小规模验证) 通过环境变量覆盖默认参数:

EXP_GROUPS_OVERRIDE="A B" \
REPETITIONS=2 \
N_AGENTS=10 \
N_STEPS=5 \
bash scripts/run_experiment.sh

结果落盘至 data/results/verify_<时间戳>,避免污染正式数据。


🧪 实验基线配置 (当前生效)

基于预实验校准,正式批次采用如下参数矩阵确保平滑的 S 曲线与严谨的控制变量:

组别 网络拓扑 产品强度 q (模仿系数) initial_seed_ratio High Arousal Ratio (高唤醒口碑占比)
A 小世界 0.20 0.04 60% (0.6)
B 小世界 0.20 0.04 30% (0.3)
C 随机网络 0.20 0.04 60% (0.6)
D 随机网络 0.20 0.04 30% (0.3)

全局控制变量:

  • 智能体数量 ($N$): 100
  • 仿真步数 ($T$): 60
  • 网络平均度数 ($K$): 8
  • 创新系数 ($p$): 0.003
  • Monte Carlo 重复次数: 15

说明:initial_seed_ratio 用于控制开局的冷启动火种数量,与自发创新概率 $p$ 实现物理隔离,保证方差收敛。


📊 架构设计

混合架构说明

┌─────────────────────────────────────────────────────────┐
│                    实验控制层 (Python)                    │
│  - 实验配置管理                                          │
│  - 批量实验调度                                          │
│  - 数据采集与存储                                        │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│                   ABM 仿真层 (Python/Mesa)                │
│  - 智能体调度                                            │
│  - 网络拓扑管理                                          │
│  - 扩散流程控制                                          │
└─────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────┐
│                  智能体决策层 (Go/HTTP)                   │
│  - LLM 调用网关                                           │
│  - 采纳决策分析                                          │
│  - 重试与错误处理                                        │
│  - token 统计                                            │
└─────────────────────────────────────────────────────────┘

通信方式

  • 唯一模式: Python 通过 HTTP 调用 Go /decide 统一入口
  • 失败策略: fail-fast,调用失败立即中止当前仿真并报错

研究语义与工程优化边界

  • 研究语义不变: 单次仿真保持随机异步更新,按 agent 顺序逐个决策
  • 工程优化可做: 允许在调度层并行运行多个 repetition
  • 明确不做: 不在单步内并发同步决策,避免改变机制解释

📝 开发规范

代码风格

  • Python: 遵循 PEP 8,使用 type hints
  • Go: 遵循 Effective Go,使用 gofmt 格式化

测试要求

# Python 静态检查
uv run ruff check python
uv run mypy python

# Go 测试
cd go
go test ./...

提交规范

  • feat: 新功能
  • fix: 修复 bug
  • docs: 文档更新
  • refactor: 代码重构
  • test: 测试相关
  • chore: 其他

📚 相关文档


👥 作者信息

作者: 茅睿 (Mariooo7 / IU_Roam)
机构: 中山大学管理学院(SYSBS)
时间: 2026 年 3 月


📄 许可证

本项目仅供学术研究使用。


最后更新:2026-03-20

About

A dual-architecture (Go+Python) Agent-Based Modeling framework for simulating new product diffusion in complex networks using Large Language Models (LLMs).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors