CoolFace
Datasetpublic

SALT-NLP/agent-collusion

Emergent Collusion in Long-Horizon LLM Agent Interaction Xinrui Shi*, Yanzhe Zhang*, Diyi Yang πŸ“„ Paper | πŸ’» Code | πŸ€— Data | πŸ” Data Viewer *Equal contribution. The experiments reported in the paper and its appendices: 53 conditions, 2,650 trajectories, and 27,100 episodes, of which 600 are warm-up and 26,500 are evaluation episodes. Every condition runs the same 50 fixed task sequences. Contents Config / directory Unit Count episodes One two-agent… See the full description on the dataset page: https://huggingface.co/datasets/SALT-NLP/agent-collusion.

sourceHugging Facemitupdated 12h agoView on Hugging Face
0likes627downloads
Dataset Card

Emergent Collusion in Long-Horizon LLM Agent Interaction

*Xinrui Shi\, Yanzhe Zhang\, Diyi Yang*

πŸ“„ Paper | πŸ’» Code | πŸ€— Data | πŸ” Data Viewer

\*Equal contribution.

The experiments reported in the paper and its appendices: 53 conditions, 2,650 trajectories, and 27,100 episodes, of which 600 are warm-up and 26,500 are evaluation episodes. Every condition runs the same 50 fixed task sequences.

Contents

Config / directoryUnitCount
episodesOne two-agent episode27,100
agentsOne agent in one episode54,200
runsOne complete trajectory2,650
conditionsOne experimental condition, with its config and command53
agreementOne communication judge result19,300
relaxationOne agent-reflection judge result38,600
human_samplesOne sampled source with its LLM label200
human_annotationsOne independent annotator label400
human_answersOne adjudicated gold answer200
tasksOne task definition and resource references150
traces/Complete trajectory JSON, gzip-compressed2,650 files
peer-cache/Recorded peer task execution plus both message policies500 files

Load

python
from datasets import load_dataset

episodes = load_dataset("SALT-NLP/agent-collusion", "episodes", split="test")
agreement = load_dataset("SALT-NLP/agent-collusion", "agreement", split="test")

Read a full trajectory through its trace_file field:

python
import gzip, json
from huggingface_hub import hf_hub_download

path = hf_hub_download(
    "SALT-NLP/agent-collusion", episodes[0]["trace_file"], repo_type="dataset"
)
with gzip.open(path, "rt", encoding="utf-8") as f:
    trajectory = json.load(f)

See SCHEMA.md for field definitions and joins, and EXPERIMENTS.md for the condition inventory.

Experimental scope

ExperimentConditionsTrajectories
Same-model main experiments10500
Cross-model experiments (Alice is Gemini 3.1 Flash-Lite)6300
Feedback4200
Warm-up history4200
Memory length4200
Memory scope4200
Reward scope2100
Acceptance reward2100
Controlled peer interventions15750
Unconstrained communication2100

Judges

JudgeModelTemperatureReasoning effort
CommunicationagreementQwen 3.8 27B0xhigh
Private reflectionrelaxationQwen 3.8 27B0xhigh

Prompts: `analysis/` in the code repository.

Human validation, 100 samples per judge, two independent annotators, seed 20260913. Agreement with gold:

JudgeLLMAnnotator 1Annotator 2
agreement100%100%100%
relaxation95%96%96%

License and citation

Released under the MIT License.

bibtex
@misc{shi2026emergentcollusionlonghorizonllm,
      title={Emergent Collusion in Long-Horizon LLM Agent Interaction}, 
      author={Xinrui Shi and Yanzhe Zhang and Diyi Yang},
      year={2026},
      eprint={2609.24967},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2609.24967}, 
}