Behavioral-Coherence Interventions
The examples/exp_behavioral_coherence experiment provides six intervention
conditions derived from one common baseline. The *_llm.json variants keep
the baseline population and environment settings and use
openai/gpt-oss-120b for the single LLM household.
Conditions
Condition |
Configuration |
Intervention |
|---|---|---|
E1 |
|
|
E2 |
|
Daily Mart is removed from |
M1 |
|
|
M2 |
|
A same-price |
S1 |
|
Rule-based households may replace an ordinary tweet with positive
restaurant information from |
S2 |
|
Rule-based households may replace an ordinary tweet with false Daily
Mart stockout information from |
DiscountRetailer is experiment-specific and lives in
intervention_agents.py. DynamicSupply and KeepOut are reusable
built-in events documented in Configuration Reference.
Running a condition
Run commands from the repository root. For example, run E1 once with seed 42:
.venv/bin/python examples/exp_behavioral_coherence/main.py \
--config examples/exp_behavioral_coherence/config_e1_price_increase_llm.json \
--condition e1_price_increase \
--model-label gpt-oss-120b \
--seed-start 42 \
--num-seeds 1
--config determines simulation behavior. --condition and
--model-label only determine the output directory; omitting
--condition uses baseline and can overwrite a baseline log with the
same seed. Results are written to:
examples/exp_behavioral_coherence/logs/<condition>/<model-label>/<seed>.txt
The no-argument default deliberately runs the non-LLM config_baseline.json
so a routine local check cannot start a vLLM server accidentally. Add
--summarize to print the simulation configuration summary. The LLM files
configure GPU IDs 0 and 1 and allow VLLMClient to start its server as
usual.
Candidate paths
Candidate-file paths in JSON are relative to the configuration file. The experiment runner resolves them to absolute paths before creating the simulator, so invocation from another working directory does not change which file is loaded.