HERMES
A toolkit for the multi-agent simulation of emergent communication and languages.
HERMES provides the building blocks for running language games: populations of agents, worlds that supply the entities agents talk about, interaction scripts that define who says what to whom, alignment strategies that update agents after each interaction, and monitors that record how the emerging language develops over time.
Installation
pip install hermes-toolkit
The core framework is pure Python. Experiments with neurally grounded agents additionally need PyTorch, and the experiment logger needs pandas:
pip install "hermes-toolkit[all]" # torch + pandas
pip install "hermes-toolkit[torch]" # torch only
The distribution is named hermes-toolkit, but the package is imported as
hermes:
import hermes
from hermes.experiment import Experiment
Getting started
Worked examples live in docs/source/tutorials:
hermes_naming_game.ipynb— a basic naming gamehermes_grounded_naming_game.ipynb— a naming game grounded in imageshermes-MARL-concept-learning.ipynb— concept learning with neural agentshermes_naming_game_pyfcg.ipynb— integration with FCG
Core concepts
| Component | Role |
|---|---|
Agent |
Holds a vocabulary and whatever machinery it needs to produce and interpret utterances |
Population |
Determines which agents interact with one another |
World |
Supplies the scenes and entities agents communicate about |
Interaction |
The script of a single communicative exchange |
Process |
One participant's contribution to an interaction (describing, pointing, drawing, ...) |
AlignmentStrategy |
How agents update after success or failure |
Monitor |
Records a measure over the course of an experiment |
Experiment |
Ties the above together and runs series of interactions |
Experiments are configured with a dictionary; each component is given as a
(class_name, module_name) pair, so your own subclasses drop in without
changing the framework.
Citation
If you use HERMES in academic work, please cite it. A CITATION.cff file will
be added with the first tagged release.
Contributing
The main branch is protected — please create a feature branch for your
contribution and open a merge request against main.
License
Apache License 2.0 — see LICENSE.
Metadata
Release files for hermes-toolkit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hermes_toolkit-0.1.0.tar.gz | 15.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hermes_toolkit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.2 kB
Release files / hermes_toolkit-0.1.0.tar.gz
| Download URL | hermes_toolkit-0.1.0.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
29e6a0e29a1ce517c26f3d52a0a0e456997ad7283a095458d194355100314b5b
|
|
BLAKE2b-256 checksum How to use checksums |
a01b862b196d48a41a4bd9e1abaf76d3a2bbfae3430b91c431556585cc5c1fb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|
Release files / hermes_toolkit-0.1.0-py3-none-any.whl
| Download URL | hermes_toolkit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c645aa900c90e65a0bc1345a5769e934a81649220e931c202d9d37ab13c6474e
|
|
BLAKE2b-256 checksum How to use checksums |
fc9830413d2a2765168afbc53601902b78d3b2d36952969e286a368409bd36a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|