{"repo": "blancacacher/llm-driven-multi-agent-social-simulation", "files": {"README.md": {"294e4553d986e2c0c27dccfac38e1283be327ddd": {"t": 1786068120.9115512, "n": 5586, "h": "84ae1a64ca93c470", "c": "# LLM 驱动的多智能体社会仿真(README)\n\n本仓库包含一套基于大语言模型(LLM)的多智能体仿真实验代码,围绕四类机制开展验证:\n- **网络结构**:三元闭包(Triadic Closure)\n- **舆论演化**:沉默的螺旋(Spiral of Silence)\n- **顺序决策**:信息级联(Information Cascade)\n- **经济博弈**:拍卖与机制设计(英式拍卖 / 一价与二价密封拍卖 / 带预算约束的多物品序列拍卖)\n\n> 代码以“自然语言状态 → LLM 输出结构化决策”的方式运行,并配套日志、统计与可视化脚本。\n\n---\n\n## 目录结构\n\n```text\nagent_simulation/\n auction_comparison.csv\n auction_comparison.png\n auction_experiment_results.csv\n batch_analysis.png\n batch_log.txt\n batch_results.csv\n experiment_conclusions.png\n experiment_details.log\n f_s_auction.py\n harbor_auction.py\n large_scale_experiment_data.csv\n multi_item_auction.py\n multi_item_log.txt\n multi_item_trend.png\nInformation_Cascade/\n __pycache__/\n cascade_env.cpython-311.pyc\n cascade_prompts.cpython-311.pyc\n datasets.cpython-311.pyc\n deepseek_client.cpython-311.pyc\n data/\n movies.csv\n personas.txt\n logs/\n cascade.out\n outputs/\n cascade_corr_by_gap_bin.png\n cascade_corr_by_threshold.png\n cascade_corr_vs_step.png\n cascade_correlation_by_gap_bin.csv\n cascade_correlation_summary.csv\n cascade_follow_prob_vs_gap.png\n cascade_history_only.jsonl\n cascade_private_history.jsonl\n cascade_private_only.jsonl\n analyze_cascade_metrics.py\n cascade_env.py\n cascade_prompts.py\n datasets.py\n deepseek_client.py\n plot_cascade_distributions.py\n plot_cascade_follow_prob_and_timecorr.py\n run_cascade_experiments.py\nSpiral_of_Silence/\n __pycache__/\n datasets.cpython-311.pyc\n deepseek_client.cpython-311.pyc\n prompts.cpython-311.pyc\n sos_env.cpython-311.pyc\n logs/\n sosexp.out\n outputs/\n sos_example_trajectories.png\n sos_history_only.jsonl\n sos_history_persona.jsonl\n sos_IQR_boxplot.png\n sos_IQR_hist.png\n sos_kurtosis_boxplot.png\n sos_kurtosis_hist.png\n sos_metrics_summary.csv\n sos_none.jsonl\n sos_persona_only.jsonl\n sos_rho_boxplot.png\n sos_rho_hist.png\n sos_S_boxplot.png\n sos_S_hist.png\n sos_stat_tests.json\n sos_time_evolution_avg_rating.png\n analyze_sos_metrics.py\n analyze_sos_time_curves.py\n datasets.py\n debug_check_one_movie.py\n deepseek_client.py\n plot_sos_distributions.py\n produce_data.py\n prompts.py\n run_sos_experiments.py\n sos_env.py\n stat_tests_sos.py\nTriadic_Closure/\n __pycache__/\n deepseek_client.cpython-311.pyc\n network_formation.cpython-311.pyc\n outputs/\n k_dist_candidates_vs_selected.png\n k_dist_llm_candidates_vs_selected.png\n k_dist_random_candidates_vs_selected.png\n logistic_triadic.png\n p_selected_given_k.png\n triadic_candidates_llm.jsonl\n triadic_candidates_random.jsonl\n triadic_closure_deepseek_llm.jsonl\n triadic_closure_histogram.png\n triadic_closure_random.jsonl\n triadic_network_boxplot_avg_path_len.png\n triadic_network_boxplot_clustering_avg.png\n triadic_network_boxplot_clustering_global.png\n triadic_network_boxplot_triangles.png\n triadic_network_metrics.csv\n triadic_network_snapshots_sim0.png\n triadic_network_snapshots_sim3.png\n triadic_network_tests.json\n analyze_logistic_triadic.py\n analyze_p_selected_given_k.py\n analyze_triadic_network_metrics.py\n analyze_triadic_results.py\n deepseek_client.py\n network_formation.py\n run_triadic_candidates_experiment.py\n run_triadic_experiment.py\nREADME.md\n基于大语言模型的多智能体社会仿真——ppt.pdf\n基于大语言模型的多智能体社会仿真——报告论文.pdf\n```\n\n---\n\n## 环境依赖\n\n建议 Python 3.9+。\n\n常用依赖(如遇缺包按报错补装):\n```bash\npip install numpy pandas matplotlib statsmodels networkx tqdm openai\n```\n\n---\n\n## API 配置(必须)\n\n本仓库包含两类客户端封装:\n\n1) **Triadic_Closure / Spiral_of_Silence / Information_Cascade**\n- 每个目录下都有一个 `deepseek_client.py`\n- 需要在该文件里配置你的 `api_key` / `base_url`(OpenAI 兼容接口,例如 DeepSeek)\n\n2) **agent_simulation(拍卖部分)**\n- 代码中有 `CONFIG = { \"API_KEY\": \"...\", \"BASE_URL\": \"...\", \"MODEL\": \"...\" }` 之类配置\n- 需要把其中的 `API_KEY` / `BASE_URL`(以及模型名)改成你自己的\n\n> 注意:拍卖部分不是单独的 `run_*.py` 调度脚本,而是直接运行 3 个主脚本(见下)。\n\n---\n\n## 如何运行\n\n建议先进入仓库根目录(有 `Triadic_Closure/` 等文件夹的那层)。\n\n### 实验一:三元闭包(Triadic_Closure)\n```bash\npython Triadic_Closure/run_triadic_experiment.py\n```\n- 输出:`Triadic_Closure/outputs/` 下的日志与图(具体以脚本写入为准)\n- 分析:也可单独运行\n```bash\npython Triadic_Closure/analysis.py\n```\n\n---\n\n### 实验二:沉默的螺旋(Spiral_of_Silence)\n```bash\npython Spiral_of_Silence/run_sos_experiments.py\n```\n如需跑更基础脚本:\n```bash\npython Spiral_of_Silence/run_simulation.py\npython Spiral_of_Silence/run_batch_experiment.py\n```\n分析:\n```bash\npython Spiral_of_Silence/analysis.py\n```\n\n---\n\n### 实验三:信息级联(Information_Cascade)\n```bash\npython Information_Cascade/run_cascade_experiments.py\n```\n分析:\n```bash\npython Information_Cascade/analysis.py\n```\n\n---\n\n## 实验四:拍卖与机制设计(agent_simulation)\n\n拍卖部分代码集中在 `agent_simulation/`,包含三个可直接运行的脚本:\n\n### 4.1 英式拍卖(单物品)——赢家诅咒 / 非理性泡沫\n```bash\ncd agent_simulation\npython harbor_auction.py\n```\n运行后会在当前目录生成:\n- `auction_results.png`(可视化)\n- 控制台会打印对照组/实验组的统计表\n\n> `harbor_auction.py` 内置了对照组(全理性)vs 处理组(含 risk-seeking persona)的对比实验逻辑。\n\n---\n\n### 4.2 一价 vs 二价密封拍卖——策略涌现(报价遮蔽/诚实报价)\n```bash\ncd agent_simulation\npython f_s_auction.py\n```\n运行后会生成:\n- `auction_comparison.png`(两种机制下 bid/value ratio 的分布 + 散点结构)\n\n---\n\n### 4.3 多物品序列拍卖(带预算约束)——流动性枯竭 / 高开低走\n```bash\ncd agent_simulation\npython multi_item_auction.py\n```\n运行后会生成:\n- `batch_results.csv`(30 次 batch 结果汇总)\n- `batch_analysis.png`(价格路径、支付/估值比、赢家类型分布等图)\n\n---\n\n## 输出与复现实用提示\n\n- **最好 `cd` 到对应目录再运行脚本**:因为拍卖脚本默认把 PNG/CSV 写到“当前工作目录”。\n- 若想减少调用成本,可在各脚本里把 `num_runs`(例如 30、40)调小。\n\n---\n\n## 常见问题\n\n- **JSON 解析/格式不稳定**:可以在 prompt 中更强约束 JSON,或在 client 层加重试(项目里已有一定处理)。\n- **图像找不到**:检查脚本运行时的工作目录(是否在 `agent_simulation/` 里运行),以及是否真的生成了 PNG。\n- **API 报错**:优先检查 `deepseek_client.py` / `CONFIG` 的 key、base_url、model 是否正确。\n\n---\n\n\n\n\n\n\n"}}}}