跳转至

TourismPolicy-Sandbox

暂无简介,欢迎浏览仓库了解更多。

项目信息
仓库 https://github.com/Maicarons/TourismPolicy-Sandbox
主要语言 Python
Stars 0
类型 原创项目
许可证 MIT
最近更新 2026-08-21

TourismPolicy-Sandbox · 旅游政策沙盒

基于 AgentSociety²(2.2.0,清华可执行社会科学一体化平台)构建的 旅游管理场景智能体社会模拟实验项目,面向「AI 社会科学家研究挑战赛」 数智公共管理与国家治理 / 数字经济与智能管理 方向。

以异质游客智能体与目的地旅游环境构成的虚拟旅游市场为实验室,对 门票价格政策、文旅消费券、淡季出行补贴及其组合 开展「政策前—政策后」 分阶段反事实实验,量化各政策对游客到访、消费结构与目的地旅游收入的处理效应, 为旅游目的地的政策事前评估提供参数可标定、流程可复现、因果可追溯的沙盒框架。

研究问题

一项旅游政策(门票降价、消费券、淡季补贴)在真正落地前,如何低成本地预判 它对不同游客群体到访行为、消费结构与目的地收入的影响?

传统方法难以回答该问题:事后计量(DID / RDD / 匹配)只能利用已发生的政策变动, 无法构造事前反事实;传统 ABM 依赖人工设定行为规则,难以还原游客在预算约束、 价格敏感度与拥挤耐受度差异下的真实决策。LLM 智能体可以在开放情境中推理与决策, 为旅游政策评估提供新的可能。

架构(充分解耦)

tour_sandbox/
├── tourism_model.py    纯逻辑旅游核算模型(零平台依赖,可独立单测)
├── profiles.py         异质游客画像生成(客源地/预算/价格敏感度/拥挤耐受度/偏好)
├── tourist_agent.py    游客智能体(AgentBase 行为实验模式:观察→LLM决策→提交)
├── tourism_env.py      目的地旅游环境(EnvBase + 工具 + 回放 SQLite)
├── experiment.py       分阶段反事实实验编排(ExperimentSpec / build_world / run_one)
├── run_experiment.py   CLI 入口(薄层)
├── analyze.py          回放分析(处理效应:出游率/人均消费/总收入/满意度/重游)
├── llm_config.py       .env 加载与 LLM 配置校验
└── patches.py          上游兼容补丁(json_repair.dumps / Windows fsync / slice_text_page)

解耦要点:标定参数(景区目录、门票、容量、服务质量)与逐游客核算公式全部位于 tourism_model.py(纯标准库),环境模块只负责工具面、状态维护与回放写入; 实验编排与 CLI 分离;智能体决策与核算逻辑分离。任何一层都可独立审计与替换。

快速开始

1. 环境配置

pip install -r requirements.txt
## 或:pip install --no-deps agentsociety2
##     再按 import 报错逐个补缺(json-repair、litellm、aiosqlite、mem0ai、
##     faiss-cpu、ruamel-yaml、stringcase;Windows + Python 3.14 已实测)

cp .env.example .env    # 填入 AGENTSOCIETY_LLM_API_KEY / API_BASE / MODEL

2. 单元测试(纯逻辑,无需网络)

python -m unittest discover -s tests -v

3. 运行实验

## 连通性自检(3 名游客 × 2+2 季)
python -m tour_sandbox.run_experiment --scenario baseline --agents 3 --baseline-steps 2 --policy-steps 2 --repeats 1

## 完整实验(全部 5 个情景)
python -m tour_sandbox.run_experiment --all

4. 结果分析

python -m tour_sandbox.analyze --results-dir results
## 输出 results/summary.json、results/summary.csv 并打印处理效应 Markdown 表格

政策情景

情景 政策设置 检验内容
基准 Baseline 正常票价、无优惠 反事实对照
门票价格政策 门票统一 8 折 价格杠杆对到访量与收入的影响
文旅消费券 每位游客 100 元消费券 消费激励与体验提升
淡季出行补贴 淡季出游补贴 120 元/人 淡旺季分流与季节性平衡
组合政策 三种政策叠加 政策协同效应

参数位于 configs/policy_scenarios.json,景区/价格/容量等标定参数位于 configs/tourism_calibration.json(示意值,正式实验应基于目的地统计年鉴与 文旅消费调查重新标定)。

实验设计:分阶段反事实

每个 (情景, 重复) 运行中,同一批游客先以空政策运行 $T_b$ 个旅游季(基线期), 随后确定式施加情景政策,再运行 $T_p$ 个旅游季(政策期)。处理效应为:

$$\hat{\tau}_k = \bar{y}_k^{(\text{policy})} - \bar{y}_k^{(\text{baseline})}$$

$k$ 为指标(出游率、人均消费、旅游总收入、平均满意度、重游人数等)。 前后两阶段使用同一批游客,个体异质性被差分控制;不同重复使用不同随机种子, 可估计效应分布。

目录结构

├── configs/              情景与标定参数
├── tour_sandbox/         核心包(见上)
│   └── agent_skills/     tour-decision 决策技能(提示词)
├── tests/                单元测试
├── results/              实验回放与分析结果(.gitignore 忽略)
├── research-plan.md      研究计划
└── requirements.txt      依赖

局限与声明

  • 本实验为小规模验证性运行,统计功效有限,效应数值应视为机制性启示 而非点估计;
  • 经济学参数为示意值,绝对数值不具政策参考意义,相对方向与机制结论 更具参考价值;
  • LLM 智能体行为受模型版本、提示词与温度影响,run_meta.json 记录了 模型名与代码 commit 以保证可复现;
  • 模拟环境抽象了信贷、市场竞争等真实约束,游客仅在有限决策空间内行动。

许可证

MIT License(见 LICENSE)。