论文题目: 基于大模型智能体的新产品扩散机制研究:网络结构与口碑语义的交互效应 作者: 茅睿 (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)
核心验证点:
- 主效应: 强产品在任何网络中的扩散率均高于弱产品。
- 交互效应 (复杂传染理论):
- 对于强产品,随机网络的长程连接能加速“简单传染”,扩散更快。
- 对于弱产品,小世界网络的高聚类特征能提供“重复触达”,为其生存与扩散提供“抱团庇护”。
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 # 本文档
- 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 ..cp .env.example .env在 .env 文件中填入你的 LLM_API_KEY。支持 OpenAI 兼容格式接口(默认配置指向阿里云百炼)。
所有实验统一通过 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:修复 bugdocs:文档更新refactor:代码重构test:测试相关chore:其他
作者: 茅睿 (Mariooo7 / IU_Roam)
机构: 中山大学管理学院(SYSBS)
时间: 2026 年 3 月
本项目仅供学术研究使用。
最后更新:2026-03-20