# STELLA
### Self-Evolving Multimodal Agents for Biomedical Research
[](https://github.com/zaixizhang/STELLA)
[](LICENSE)
[](https://www.biorxiv.org/content/10.1101/2025.07.01.662467v2)
[](https://arxiv.org/abs/2507.02004)
[](https://stella-agent.com/)
[**Paper**](https://www.biorxiv.org/content/10.1101/2025.07.01.662467v2) | [**Online Demo**](https://stella-agent.com/) | [**arXiv**](https://arxiv.org/abs/2507.02004) | [**Twitter**](https://x.com/BiologyAIDaily/status/1941122955850993966)
### :rocket: [Try STELLA Online — No Installation, No API Keys, One Click to Start!](https://stella-agent.com/)
**[:globe_with_meridians: stella-agent.com](https://stella-agent.com/)**
**Authors:**
Ruofan Jin1, Mingyang Xu2, Fei Meng3,4, Guancheng Wan5, Qingran Cai6, Yize Jiang7, Jin Han8, Yuanyuan Chen9, Wanqing Lu9, Mengyang Wang10, Zhiqian Lan11, Yuxuan Jiang11, Junhong Liu7,✉, Dongyao Wang3,4,✉, Le Cong12,✉, and Zaixi Zhang1,✉
1Princeton University, 2University of Michigan, 3The First Affiliated Hospital, USTC, 4National Key Laboratory of Immune Response and Immunotherapy
5UCLA, 6Shanghai Jiao Tong University, 7Microcyto, 8Nanjing University, 9Tianjin University of Science and Technology
10Peking University, 11The University of Hong Kong, 12Stanford University
✉ liujunhong@microcyto.cn, dywsn@ustc.edu.cn, congle@stanford.edu, zz8680@princeton.edu
*Overview of the STELLA framework. The framework consists of four main components: a manager agent, a dev agent, a critic agent, and a tool ocean. The template system provides structured workflows learned from successful runs.*
| Component | Description |
|-----------|-------------|
| **Manager Agent** | Decomposes scientific objectives, retrieves relevant templates, orchestrates sub-agents |
| **Dev Agent** | Executes bioinformatics analyses, runs code, queries databases and literature |
| **Critic Agent** | Evaluates result quality, identifies gaps, recommends improvements |
| **Tool Creation Agent** | Dynamically creates new tools when existing ones are insufficient |
| **Tool Ocean** | 60+ predefined and self-evolving tools for literature search, databases, virtual screening |
| **Template System** | Retrieves, applies, and auto-creates structured workflow skills from successful runs |
Models are configurable via [OpenRouter](https://openrouter.ai/). Edit model variables in `stella_core.py` to switch between GPT, Claude, Gemini, and other providers.
**Try STELLA online at [stella-agent.com](https://stella-agent.com/) — no installation required.**
## Demo Video
[](https://drive.google.com/file/d/1a6PoJWZMMix8zyccWVOZxU47NKhABO_W/view?usp=sharing)
*Click the thumbnail above to watch the STELLA demonstration video on Google Drive.*
## Key Results
Key achievements:
- Best performance on built tool creation benchmark and public benchmark (LabBench, HLE)
- Identified **BTN3A1** as a novel regulator in acute myeloid leukemia, verified through CRISPR studies across 4 cell lines
- Developed enzyme variants showing **>2x improvement** in catalytic activity
- Robotic laboratory automation with success rates improving from **17% to 82%**
## Quick Start
**Option 1: Use the online version (recommended)**
Visit [stella-agent.com](https://stella-agent.com/) to use STELLA directly in your browser.
**Option 2: Docker image**
A pre-built Docker image package (including ablation variants) is available on [Google Drive](https://drive.google.com/file/d/1iN9AOJpi0FBDz7i_gjmW8EbcjTY0z8bF/view). See [`docker/README.md`](docker/README.md) for download and usage instructions.
**Option 3: Run locally (from source)**
```bash
# Clone and install
git clone https://github.com/zaixizhang/STELLA.git
cd STELLA
pip install -r requirements.txt
# Configure API key
echo "OPENROUTER_API_KEY=your_key_here" > .env
# Launch web UI
python stella_core.py
```
Open http://localhost:7860 in your browser. A public Gradio link is also generated automatically.
### Usage Options
| Mode | Command | Description |
|------|---------|-------------|
| **Web UI** | `python stella_core.py` | Full Gradio interface with skill retrieval (recommended) |
| **No Skills** | `python stella_core.py --no_template` | Disable skill/template retrieval |
| **Tool Creation** | `python stella_core.py --enable_tool_creation` | Enable dynamic tool creation agent |
| **Custom Port** | `python stella_core.py --port 8080` | Run on a different port |
| **Web Launcher** | `python start_stella_web.py` | Alternative launcher with preset config |
### Programmatic Usage
```python
from stella_core import initialize_stella
manager_agent = initialize_stella(
use_template=True,
enable_tool_creation=True,
)
result = manager_agent.run("What genes are associated with breast cancer resistance?")
```
## Installation
### Option 1: Using Conda (Recommended)
```bash
# Clone the repository
git clone https://github.com/zaixizhang/STELLA.git
cd STELLA
# Create conda environment
conda create -n stella python=3.12 -y
conda activate stella
# Install scientific packages via conda
conda install -c conda-forge numpy pandas scikit-learn matplotlib seaborn -y
# Install remaining dependencies via pip
pip install -r requirements.txt
```
### Option 2: Using pip only
```bash
pip install -r requirements.txt
```
### Option 3: Using Docker
A pre-built Docker image package is available. See [`docker/README.md`](docker/README.md) for download and usage instructions.
### Optional Dependencies
```bash
# For biomedical analysis
pip install biopython rdkit-pypi
# For MCP tools integration
pip install mcp uvx
```
## Resource Download & Setup
**Large Resource Files**: Due to the size of biomedical datasets, additional resources are available for download:
```bash
# Download the resource package (optional for basic usage)
# Manual download from: https://drive.google.com/file/d/1n8I-gkM58wL1OZysdpYhr-Q9ZApd9yU4/view?usp=sharing
# File: resource_backup_20250719_055729.zip (2.0GB compressed)
# Create resource directory and extract
mkdir -p resource/
unzip resource_backup_20250719_055729.zip -d resource/
```
> **Note**: Resources are optional for basic STELLA functionality but enhance performance for complex biomedical tasks.
## API Keys
> **Don't have API keys?** No worries — you can directly try our online version at **[stella-agent.com](https://stella-agent.com/)**. No installation, no API keys needed — just one click and start using STELLA right away!
For local deployment, configure the following API keys:
| Key | Required | Purpose |
|-----|:--------:|---------|
| `OPENROUTER_API_KEY` | **Yes** | Powers all LLM agents via OpenRouter |
| `SERPAPI_API_KEY` | No | Enhanced web search results |
| `PAPERQA_API_KEY` | No | Academic literature analysis |
```bash
# Create .env file with your API keys
echo "OPENROUTER_API_KEY=your_openrouter_api_key_here" > .env
echo "SERPAPI_API_KEY=your_serpapi_key_here" >> .env
```
**Get API Keys:**
- OpenRouter: https://openrouter.ai/
- SERPAPI: https://serpapi.com/
## Tool Creation Benchmark
The **Tool Creation Benchmark** evaluates biomedical AI agents across 117 tasks organized into two difficulty tiers. All benchmark files are in the [`Tool_Creation_Benchmark/`](Tool_Creation_Benchmark/) directory.
| Set | Categories | Tasks | Evaluation |
|-----|-----------|-------|------------|
| **Simple Set** | Protocol/Design/Computation/Database/Web Retrieval | 99 tasks, 308 MCQs | Objective multiple-choice questions |
| **Hard Set** | Biology-Oriented ML | 18 tasks (8 ProteinGym + 10 TDC/Polaris) | Metric-based predictions graded against task-specific leaderboards |
### Quick Start
```bash
cd Tool_Creation_Benchmark/simple_set
# Install dependencies
pip install requests
# Set your API key
export OPENROUTER_API_KEY=