ST-EVO is a novel framework for learning generative spatio-temporal evolution of communication topologies in multi-agent systems. Unlike traditional approaches that rely on fixed or rule-based topologies, ST-EVO dynamically adapts communication structures based on spatial configurations and task requirements.
- π Dynamic Topology Evolution: Learns to generate communication graphs that evolve over both space and time
- π― Adaptive Communication: Integrates spatial relationships with temporal dynamics for optimal coordination
- π End-to-End Learning: Learns optimal structures directly from task objectives without manual design
- π Multiple Topology Support: FullConnected, Ring, Star, and custom spatial topologies
- π§ͺ Comprehensive Evaluation: Benchmarked on MMLU, GSM8K, HumanEval, and more
ST-EVO addresses the challenge of static communication topologies in multi-agent systems through:
- Spatio-Temporal Reasoning: Captures agent positions and relationships to create adaptive communication patterns
- Generative Topology Evolution: Uses generative models to predict and evolve graph structures dynamically
- Strategic Multi-Agent Coordination: Enables agents to reason strategically about when and how to communicate
- Graph Module (
STEVO/graph/): Implements dynamic graph structures and RAG-based knowledge retrieval - Evolver (
STEVO/evolver/): Handles topology evolution and optimization - LLM Backend (
STEVO/llm/): Integrates with large language models for agent reasoning - Datasets (
datasets/): Supports MMLU, GSM8K, HumanEval, DS1000, AQUA, SVAMP, and MultiArith
- Python 3.10+
- CUDA 12.1+ (for GPU support)
- 16GB+ RAM recommended
- Clone the repository
git clone https://github.com/DecisionIntelligence/STEVO.git
cd STEVO- Create conda environment
conda create -n stevo python=3.10
conda activate stevo- Install dependencies
pip install -r requirements.txt- Set up API keys
Copy template.env to .env and configure your API credentials:
cp template.env .envEdit .env with your settings:
BASE_URL=your_openai_compatible_base_url_here
API_KEY=your_api_key_here- Download datasets
Download the required datasets:
Place them in appropriate folders under the datasets/ directory.
Run ST-EVO on MMLU dataset with FullConnected topology:
python experiments/run_mmlu.py \
--mode FullConnected \
--batch_size 4 \
--agent_nums 6 \
--num_iterations 10 \
--num_rounds 1 \
--optimized_spatialEvaluate mathematical reasoning:
python experiments/run_gsm8k.py \
--mode FullConnected \
--batch_size 4 \
--agent_nums 4 \
--num_iterations 10 \
--num_rounds 1 \
--optimized_spatialTest code generation capabilities:
python experiments/run_humaneval.py \
--mode FullConnected \
--batch_size 4 \
--agent_nums 4 \
--num_iterations 10 \
--num_rounds 1 \
--optimized_spatialFullConnected: All agents communicate with each otherRing: Agents form a ring communication structureStar: Hub-and-spoke topology with central coordinatorSpatial: Custom spatial-aware topology (use with--optimized_spatial)
| Dataset | Task Type | Metrics | Script |
|---|---|---|---|
| MMLU | Multi-task Q&A | Accuracy | run_mmlu.py |
| GSM8K | Math Reasoning | Accuracy | run_gsm8k.py |
| HumanEval | Code Generation | Pass@k | run_humaneval.py |
| DS1000 | Data Science | Execution | run_ds1000.py |
| AQUA | Algebraic QA | Accuracy | run_aqua.py |
| SVAMP | Math Word Problems | Accuracy | run_svamp.py |
| MultiArith | Arithmetic | Accuracy | run_multiarith.py |
STEVO/
βββ STEVO/ # Core framework
β βββ llm/ # LLM integration
β βββ graph/ # Graph and topology management
β βββ evolver/ # Topology evolution logic
β βββ tools/ # Utility tools
βββ experiments/ # Experimental scripts
β βββ run_mmlu.py
β βββ run_gsm8k.py
β βββ run_humaneval.py
β βββ ...
βββ datasets/ # Dataset loaders
βββ docs/ # Documentation and figures
βββ requirements.txt # Python dependencies
βββ template.env # Environment configuration template
ST-EVO demonstrates superior performance across multiple benchmarks:
- MMLU: Improved accuracy through adaptive topology evolution
- GSM8K: Enhanced mathematical reasoning via strategic agent communication
- HumanEval: Better code generation through dynamic collaboration patterns
For detailed results, please refer to our paper.
You can define custom communication topologies by extending the graph module:
from STEVO.graph import Graph
# Define your custom topology
custom_graph = Graph(mode="Custom", agent_nums=6)
# Add your topology logic- Create a dataset loader in
datasets/your_dataset.py - Implement the dataset interface
- Add a run script in
experiments/run_your_dataset.py
If you find ST-EVO useful in your research, please cite our paper:
@inproceedings{wu2026stevo,
title={ST-EVO: Towards Generative Spatio-Temporal Evolution of Multi-Agent Communication Topologies},
author={Wu, Xingjian and Liu, Xvyuan and Lu, Junkai and Wang, Siyuan and Qiu, Xiangfei and Shu, Yang and Hu, Jilin and Guo, Chenjuan and Yang, Bin},
booktitle={Proceedings of the 2026 Conference on Empirical Methods in Natural Language Processing (EMNLP)},
year={2026},
url={https://arxiv.org/pdf/2602.14681}
}This project is licensed under the MIT License - see the LICENSE file for details.
We welcome contributions! Please feel free to submit issues and pull requests.
For questions or collaboration opportunities, please contact:
This work was accepted at EMNLP 2026 Main Conference. We thank the reviewers for their valuable feedback and the community for their support.

