Free Agent

Episodes in which actors talk to each other by statement, request, and reply.

What it is

An episode brings a set of actors into being together, decides which of them can reach which, and runs them on the Tokio runtime until every one of them has stopped. An actor keeps its own state, takes messages from a mailbox one at a time, and reaches other actors only by sending them messages. A typical episode has one environment actor and several agent actors, some of them language models.

Free Agent is the platform. The applications built on it are separate crates, and yours can be one of them.

Build on it

Add the library to a Rust project:

cargo add free-agent

The API documentation walks through an episode from the actors up.

Play with it

Social deduction plays Werewolf: a few of the players are secretly werewolves, the rest are villagers, among them a doctor and a seer. Install the binary with one line, no Rust toolchain needed.

macOS and Linux

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/wpm/FreeAgent/releases/latest/download/social-deduction-installer.sh | sh

Windows

powershell -ExecutionPolicy Bypass -c "irm https://github.com/wpm/FreeAgent/releases/latest/download/social-deduction-installer.ps1 | iex"

Then deal a table and watch a game:

social-deduction --werewolves 2 --villagers 3 --doctors 1 --seers 1

Every build is also on the releases page as a plain archive.