An experiment in emergent communication

A shared goal.
A language they learned.

One agent knows what to collect. The other can reach it. Can they learn what to say to each other?

Independent reinforcement learningReal trained modelsNo LLM or API calls

01 / The live sandbox

Let them talk. Then interrupt.

Run the learned policies right here.
Change the channel and see what happens.

LIVE MODEL INFERENCELoading trained agents…
S ScoutR Runner Depot Runner's view

The message trail

Numbers label symbols; their meanings were learned. “–” is silence.

Scout sent
Runner heard

Browser sandbox: v2 final checkpoints, training seed 9. Choose from 200 fixed scenarios per split. Actions are sampled live; JavaScript arithmetic and random sampling differ from PyTorch. These episodes illustrate behavior; the published benchmark statistics below come from the canonical Python evaluation across all training seeds.

02 / How it works

Split information.
One shared reward.

A small world makes a precise question testable.

01

The scout knows.

The scout receives a private target cue, but a wall keeps it away from the items. The runner sees a local patch of the warehouse and can collect and deliver an item.

02

They learn to signal.

Separate recurrent PPO policies choose movements and symbols. A disclosed auxiliary signalling objective encourages the scout to encode its cue. No symbol-to-target dictionary is programmed.

03

We test the dependence.

Compare independently trained conditions, then scramble or silence the channel of a trained communicating pair. These controls ask whether stable messages affect coordination.

What is the contribution? A task-specific adaptation of prior positive-signalling work, a controlled test against the original objective, and an honest examination of where the learned protocol stops generalizing. This is a study of learned coordination, not a claim to have created human language.

03 / The evidence

Useful messages.
Limited generalization.

Read the research report

Loading saved results…

What was measured?

Success means delivering the correct item before the time limit. Intervals are 95% bootstrap confidence intervals across training seeds. A training seed is the independent experimental unit.

How large is the benchmark?

Each condition has 20 independently trained pairs. Each pair is evaluated on 200 fixed episodes per split or intervention. The shared task set enables paired comparisons; it does not make every evaluation a distinct scenario.

What do the controls mean?

“No messages” is a separately trained model. “Silenced” and “scrambled” intervene on an already trained communicating model. The oracle gets the private target cue and serves as a learned reference.

Did the signalling objective itself help? Explore the direct ablation

The direct comparison removes only the cue-directed auxiliary objective. It uses 20 seeds and the full original training budget. It was declared after the main results were seen and is explicitly exploratory. The channel interventions answer a separate question.

04 / The replay lab

Look closer at the behavior.

Inspect recorded episodes, compare the same scenario under different channels, and explore the compositional world in 3D. Replays are saved trajectories, separate from the live sandbox above.

05 / Make it yours

Run it. Read it. Reproduce it.

Open source, with representative trained models included.

Launch the browser simulator

Requires Python 3.10+. No package installation, GPU, account, or API key.

git clone https://github.com/ctadros1/talking-agents.git
cd talking-agents
python3 scripts/serve.py --open

Open localhost:8000. The site, results, model files, and replays are served locally.

Run fresh Python inference

Install uv , then use the locked Python 3.12 environment.

uv sync --frozen
uv run python scripts/demo_inference.py --phase both
uv run python scripts/verify_results.py

The included four final checkpoints support v1 and v2 inference. Full benchmark retraining is optional and computationally expensive; instructions are in the README.