GlossoGen

Study how AI agents talk to each other

In GlossoGen, you drop a handful of agents into a scenario, give them a shared goal, and let them work it out over a series of rounds, deciding on their own what to say and when to act. Every message and move is logged, so once a run finishes you can replay it and measure what happened.

#linkcomm link
budget 250c
A1
private · only A1
New task: save the alien being. What you observe: the corners are dim, several edges are fading, the perimeter is losing light, and the hum sounds thin and hollow at the edges.
A1
corners dim, edges fading; hum thin41c
A2
drape cloth on back face 8s, gentle38c
A1
DE2c
A2
P13L8g6c
stabilize_veyru("press faces…")
stabilized · round passed

How language emerges

On their own, the agents just talk in plain English. Two things push them to tighten it up:

  • Pressure inside a round

    Give them a tight character budget and every word starts to cost. Ramble on, and they run out of room before the job is done.

  • Reflection between rounds

    Between rounds they get a quiet moment off the budget to compare notes and settle on shorthand. The next round, they put it to use.

veyru · session
live
Round 1

Running an experiment

You bring the question. GlossoGen comes with the scenarios, runs the agents and their loops, and gives you the metrics to pick apart what happened.

$ python -m glossogen run veyru \
--model claude-sonnet-4-6 --provider anthropic \
--config veyru/knobs_default.json round_count=20
1

Configure

Start a run from the command line. A config file sets the knobs, and you can override any of them inline.

#linklive
2

Run

The agents play out the rounds, each on its own loop (see below). Everything is recorded, and you can watch it happen live.

$ python -m glossogen evaluate veyru \
--run-dir runs/veyru/1742234567 \
--metrics round_success,shorthand_codes
Metrics
Round success0.80
Shorthand codes5.0
Language strangeness3.0
3

Evaluate

When it's done, score the run with whatever metrics you want. The numbers show up right in the web app.

The agent loop

Under the hood, every agent just runs the same loop over and over: wait for something to happen, then pick a tool, maybe reading the channel, sending a message, or acting on the world.

A1
Agent 1
agent loop
read_notifications round_started
then any of
read_channel
send_message
custom_tool
link
round started
A2
Agent 2
agent loop
read_notifications round_started
then any of
read_channel
send_message
custom_tool