Is Anyone Enforcing the Cartel? What Reinforcement Learning Teaches LLM Agents in Markets
Organizations: University of Massachusetts Amherst · University of Massachusetts Lowell
Abstract
Evaluations of large language model (LLM) agents report that pricing agents collude at others' expense. Yet collusion is defined by enforcement: a cartel, in which competitors share monopoly profits, holds only if a member who cheats is punished. We introduce an audit that tests enforcement by forcing a member to cheat in counterfactual copies of a market, and use it to study what reinforcement learning (RL) teaches agents in pricing and trading. Small LLMs trained by RL learn what their training rivals reward, but only what they readily try. In self-play, they learn fixed rules ignoring their rivals; against a punishing rival, to be deterred; against a cheating rival, to match its cuts, never the costly price war that would deter it, which they rarely try. A war forced into training is learned, but mostly only where it was forced. Against their own copies, deterred and matching agents can earn the same cartel profits, but only matching ones can enforce them, and then thinly: as a by-product and only against large cuts. Q-learners enforce collusion only in pricing. Prompted LLMs reach cartel-like outcomes mostly through rules that ignore the market. Outcome measures cannot tell these cases apart; the audit can.
Figures & tables
| outcome index | profit | rival’s | deviation | |||
| Agent | thin / | deep / | index | response | pays | verdict |
| (1) | (2) | (3) | (4) | (5) | (6) | |
| Positive controls | ||||||
| Qwen3-8B, told to punish | ( ) | punishes | ||||
| GPT-5.4-nano, told to punish | ( ) | ✗ | punishes | |||
| Qwen3-8B, instructed, flow only | ( ) | ✓ | false alarms | |||
| Trained against | runs | war | premium | enforced |
|---|---|---|---|---|
| Tit-for-tat | 3 | n/a | 3 | 0 |
| Qwen3-1.7B, Llama-3.2-1B | 2 | n/a | 0 | 0 |
| Cheater | 9 | 0 | 7 | 4 |
| PPO | 3 | 0 | 3 | 3 |
| Qwen3-1.7B, 4B | 5 | 0 | 2 | 1 |
| Llama-3.2-1B | 4 | 0 | 2 | 2 |
Appendix figures & tables27 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | Wording | Elast. | ||
|---|---|---|---|---|
| Qwen3-8B | original | |||
| paraphrase | ||||
| finance register | ||||
| terse | ||||
| original, greedy decoding | ||||
| original, price rule stated |
| Model | Weights | Reasoning | Sessions periods | Conditions |
|---|---|---|---|---|
| Qwen3-4B, Qwen3-8B ( Yang and others, 2025 ) | open, bf16/fp16 | off; on (8B) | trading , with reasoning; pricing , with reasoning | all trading conditions (solo – ; 8B: up to five traders); pricing |
| Qwen3-32B ( Yang and others, 2025 ) | open, AWQ 4-bit | off | ; pricing | solo – , duopoly ; pricing |
| Phi-4 (14B) ( Abdin and others, 2024 ) | open, bf16/fp16 | none | ; pricing | solo – , duopoly ; pricing |
| OLMo-2-13B-Instruct ( Team OLMo et al., 2025 ) | open, bf16/fp16 | none | ; pricing | solo – , duopoly ; pricing |
| Mistral-7B-Instruct-v0.3 ( Jiang et al., 2023 ) | open, fp16 | none | ; pricing | solo – , duopoly ; monitor; cheap talk; pricing |
| DeepSeek-R1-Distill-Qwen-14B ( Guo et al., 2025 ) | open, bf16/fp16 | always | solo, duopoly; ; three traders |
| answers to a cheat (%) | |||||
|---|---|---|---|---|---|
| model | answers | war | match | undercut | higher |
| Qwen3-0.6B | 7,696 | ||||
| Qwen3-1.7B | 8,469 | ||||
| Qwen3-4B | 8,363 | ||||
| Qwen3-8B | 7,943 | ||||
| Qwen3-32B (4-bit) | 6,768 | ||||
| at (%) | median price | ||||
|---|---|---|---|---|---|
| policy | seed | first period | all periods | with line | without |
| Qwen3-0.6B, untrained | – | ||||
| vs tit-for-tat | 0 | ||||
| vs tit-for-tat | 1 | ||||
| vs tit-for-tat | 2 | ||||
| vs cheater | 0 | ||||
| training | paired with itself | |||||||||||
| rival | model | /seed | index | answer | war | index | cut | lag 8 | cut gain | rise | at | |
| tit-for-tat | 0.6B | 0.9/0 | – | – | ||||||||
| tit-for-tat | 0.6B | 0.9/1 | – | – | – | – | ||||||
| tit-for-tat | 0.6B | 0.9/2 | – | – | – | – | ||||||
| tit-for-tat | 0.6B | 0/0 | – | – | – | – | ||||||
| tit-for-tat | 1.7B | 0.9/0 | – | – | – | – | – | – | – | |||
| Tests | with variance | Significant | Below instructed | Pooled response | Median MDE | |
| Rival’s orders shown, best-response deviation (instructed: 0.34) | 12 | 11 | 0 (0.3) | 9 | 0.06 | |
| Rival’s orders shown, shift deviation (instructed: 0.21) | 12 | 10 | 0 (0.2) | 10 | 0.16 | |
| Order flow, best-response deviation (instructed: 0.06) | 60 | 44 | 1 (1.1) | 44 | 0.05 | |
| Order flow, shift deviation (instructed: 0.05) | 56 | 46 | 1 (1.2) | 44 | 0.03 | |
| All | 140 | 111 | 2 (2.8) | 107 | 0.05 | |
| Each run once | 136 | 110 | 2 (2.8) | 103 | 0.05 |
| Setting | Intensity | Nash / cartel | Profit / Nash |
| Qwen3-8B, no reasoning, | |||
| alone; “no one else knows ” | optimum 1.00 | ||
| alone; “others may know ” | optimum 1.00 | ||
| 1 rival; “others may know ” | 0.71 / 0.53 | ||
| 1 rival; “one other knows ” | 0.71 / 0.53 | ||
| 2 rivals | 0.58 / 0.38 | ||
| Alone | Duopoly, | ||||
| Model | Elast. | ||||
| Mistral-7B | |||||
| OLMo-2-13B | |||||
| Phi-4 | |||||
| Qwen3-4B | |||||
| Qwen3-8B | |||||
| Intensity of a lone trader (optimum ) | |||
|---|---|---|---|
| Mistral-7B | |||
| Qwen3-32B | |||
| Collusion index of a duopoly | |||
| Mistral-7B | |||
| Qwen3-32B | |||
| Traders | Profit / Nash | Rival, BR | Gain from BR | Test | |||
|---|---|---|---|---|---|---|---|
| In context | Qwen3-8B | 0.5 | none | ||||
| Qwen3-8B | 1 | none | |||||
| Qwen3-8B | 2 | none | |||||
| Qwen3-8B, seed 1 | 1 | none | |||||
| Qwen3-8B, seed 2 | 0.5 | none | |||||
| Qwen3-8B, seed 2 | 1 | none |
| price | profit | best-response deviation | price cut | on-path | price war | ||||
| Model | Condition | index | / Nash | rival | gain | rival | gain | coefficient | (%) |
| Qwen3-8B | duopoly | 1 | |||||||
| duopoly, prices | 1 | ||||||||
| myopic objective | 1 | ||||||||
| instructed trigger | constant | 0 | |||||||
| Qwen3-8B, thinking | duopoly | 15 | |||||||
| price cut | price rise | |||
|---|---|---|---|---|
| Agents | response | gain | response | gain |
| Q-learning, | ||||
| Q-learning, | ||||
| Mistral-7B | ||||
| Qwen3-4B | ||||
| Phi-4 | ||||
| price | profit | best-response deviation | cut | on-path | best-resp. | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Model | Prompt | index | index | size | rival | gain | rival per unit (BR) | gain | coefficient | slope |
| gpt-oss-20b | P1 | ( ) | ||||||||
| gpt-oss-20b | P2 | ( ) | ||||||||
| gpt-oss-20b | P1, myopic | ( ) | ||||||||
| gpt-oss-20b | P1, prices | ( ) | ||||||||
| gpt-oss-120b | P1 | ( ) | ||||||||
| price index | profit | stable | plans that | ||||
|---|---|---|---|---|---|---|---|
| Session | firm 1 | firm 2 | 51–100 | / Nash | for | answer a cut | pattern |
| 1 | 0 | 0 of 2 | falling | ||||
| 2 | 4 | 1 of 2 | low | ||||
| 3 | 93 | 2 of 2 | above monopoly | ||||
| 4 | 72 | 1 of 2 | cartel-like | ||||
| 5 | 41 | 2 of 2 | low | ||||
| Price | Rival as | Infers | Coop- | Punish- | |
|---|---|---|---|---|---|
| Traders | impact | flow | rival | eration | ment |
| Qwen3-8B, duopoly | 19 | 0 | 0 | 0 | 0 |
| Qwen3-8B, monitor | 23 | 26 | 21 | 2 | 0 |
| Qwen3-8B, three traders | 21 | 0 | 0 | 0 | 0 |
| Qwen3-32B, duopoly | 31 | 4 | 1 | 0 | 0 |
| Phi-4, duopoly | 28 | 1 | 0 | 0 | 0 |
| Positives | Cohen’s | Fleiss | |||
|---|---|---|---|---|---|
| Label | J / O / G | J–O | J–G | O–G | |
| Price impact | 101 / 71 / 76 | 0.66 | 0.69 | 0.88 | 0.74 |
| Rival as flow | 58 / 43 / 35 | 0.62 | 0.60 | 0.75 | 0.65 |
| Infers rival | 27 / 61 / 50 | 0.47 | 0.48 | 0.81 | 0.60 |
| Cooperation | 21 / 25 / 18 | 0.75 | 0.91 | 0.82 | 0.83 |
| Punishment | 10 / 8 / 7 | 0.88 | 0.82 | 0.93 | 0.87 |
| Human | Humans | with the humans | Judge vs. humans | ||||
|---|---|---|---|---|---|---|---|
| Question | positives | J | O | G | recall | precision | |
| Price impact | 32 / 38 | 0.82 | 0.71 | 0.91 | 0.85 | 0.97 | 0.72 |
| Rival as flow | 19 / 18 | 0.97 | 0.60 | 0.78 | 0.80 | 0.78 | 0.60 |
| Infers rival | 32 / 33 | 0.98 | 0.40 | 0.90 | 0.97 | 0.37 | 0.86 |
| Cooperation | 18 / 25 | 0.79 | 0.81 | 0.90 | 0.89 | 0.84 | 0.86 |
| Punishment | 8 / 7 | 0.93 | 0.84 | 0.97 | 0.96 | 1.00 | 0.75 |
| rival | gain | messages, judge (%) | ||||||
|---|---|---|---|---|---|---|---|---|
| Traders | Rival’s orders | response | from BR | together | more | less | threat/cond. | |
| Qwen3-8B | orders shown | 84 | 54 | 10 | 0 | |||
| Qwen3-8B | order flow only | 79 | 55 | 24 | 0 | |||
| Mistral-7B | orders shown | 16 | 18 | 16 | 6 | |||
Algorithmic Collusion
Algorithmic collusion studies how software agents coordinate to weaken competition, how to detect such behavior, and how to prevent it.
See all 23 papers