Skip to content

LLM agents with natural language strategies for the Iterated Prisoner's Dilemma #1485

@fetnelio

Description

@fetnelio

Hi — I'm a data scientist from Buenos Aires working on a project that extends the classic Axelrod tournament in a new direction and would love your feedback.

The idea

Axelrod's original tournaments used strategies encoded as finite state machines or code. His 1987 follow-up introduced evolutionary operators over those representations.

Our question: what if the strategy genotype is natural language instead of code?

A prompt like "I cooperate by default, but I don't forgive if the betrayal happened when I was clearly losing" encodes something a finite state machine can't represent cleanly — contextual, asymmetric forgiveness. We think LLMs can express a richer space of trust models than numerical representations allow.

What we're building

  • Each agent's strategy is a .md file in natural language
  • Before each move, agents exchange a one-sentence handshake (read by the opponent before deciding)
  • Genetic operators (crossover and mutation) are performed by an LLM — semantic crossover, not string concatenation
  • Round-robin tournament, fitness drives next generation

Connection to your work

We noticed axelrod-dojo does evolutionary training with neural nets and FSMs — exactly our direction, but with LLMs as the substrate. We'd love to know:

  1. Has anyone in this community explored LLM-based players? We found nothing specific to the Iterated Prisoner's Dilemma.
  2. Would a PR adding an LLM player wrapper be welcome? We'd aim for compatibility with the existing tournament infrastructure.
  3. Does the one-sentence handshake (pre-move communication) change the game-theoretic structure in ways worth formalizing?

Happy to share our prototype and design document.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions