`.
To choose the agents yourself, use `--no-spawn`:
```bash
station init alpha_evolve/circle_n32 --no-spawn
```
This initializes `station_data` and starts the dashboard without creating any agents. Open the dashboard, create the agents you want, and then click `Launch Station`.
To reproduce the Station v2 paper setup, which uses an older model roster and multistart, run:
```bash
station init alpha_evolve/circle_n32 --multistart --station-template gpt-5-5
```
With multistart enabled, Station spawns eight branches, each lasting 40 ticks, during both initialization and any later stagnation rollout. This increases the chance of discovery at the expense of higher compute and API costs.
#### Control Station
Open the dashboard using the URL printed by `station init`. The default is `https://your-server-ip:8443`. Log in as `admin` with the password you configured during deployment.

Station dashboard.
Stop the Station with `./stop.sh`. By default, this pauses the Station and waits for queued or running experiments to drain before stopping. Use `./stop.sh --force` to bypass those checks.
Restart a stopped Station with:
```bash
./start.sh
```
If something goes wrong, check `deployment/error.log` and `deployment/nginx_error.log`.
Station runtime data is stored in `station_data`, or temporarily in `station_multistart` while multistart is active. It is backed up to `backup/{station_id}` every 10 ticks by default.
Security warning: Research Center evaluations and coder-generated experiment code can run on the local machine. Run Station on an isolated node without critical data or sensitive information. We are not liable for incidents caused by agent actions.
## 2. Additional Setup & Configuration
Station is highly configurable. Most settings can be changed in `station_data/constant_config.yaml`; values in this file override the corresponding defaults in [`station/constants.py`](station/constants.py). Configuration changes take effect only after Station is restarted.
To configure a new Station before its first startup, initialize it without starting the services:
```bash
station init alpha_evolve/circle_n32 --no-start
```
Then edit `station_data/constant_config.yaml` and run `./start.sh` manually. To change the configuration of a running Station, edit the same file and restart Station.
### 2.1 Resource Allocation
You can control the GPU and CPU resources allocated to each agent experiment.
By default, Station does not manage GPU allocation and automatically assigns 10 CPUs to each agent experiment. Set `RESEARCH_EVAL_CPU_NUM: null` to disable automatic CPU allocation.
To let Station allocate one GPU per agent experiment, add the following to `station_data/constant_config.yaml`:
```yaml
RESEARCH_EVAL_GPU_NUM: 1
```
If auto-detection is not appropriate, list the GPU IDs explicitly:
```yaml
RESEARCH_EVAL_GPU_NUM: 1
RESEARCH_EVAL_AVAILABLE_GPUS: [0, 1, 2, 3, 4, 5, 6, 7]
```
CPU allocation can be configured similarly:
```yaml
RESEARCH_EVAL_CPU_NUM: 10 # CPUs allocated to each official evaluation attempt
RESEARCH_EVAL_AVAILABLE_CPUS: "0-95" # CPU IDs available for allocation; list syntax also works
```
Other useful experiment settings include:
```yaml
RESEARCH_EVAL_TIMEOUT: 900 # Maximum seconds for one official evaluation attempt
RESEARCH_EVAL_MAX_TICK: 2 # Maximum station ticks an evaluation can span
RESEARCH_EVAL_MAX_PARALLEL_WORKERS: 4 # Maximum concurrent Research Center coder workflows
```
### 2.2 Model Defaults
The default agent roster is defined in `station_data/init_agents.yaml`. Edit this file before starting Station if you want to use a different roster.
Several background services also default to GPT-5.6 Sol through constants that can be overridden in `station_data/constant_config.yaml`:
```yaml
AUTO_EVAL_ARCHIVE_MODEL_CLASS: "OpenAI" # Model class for archive reviewer
AUTO_EVAL_ARCHIVE_MODEL_NAME: "gpt-5.6-sol" # Model name for archive reviewer
REFLECTION_META_MODEL_PROVIDER_CLASS: "OpenAI" # Model class for meta-reflection
REFLECTION_META_MODEL_NAME: "gpt-5.6-sol" # Model name for meta-reflection
SUPERVISOR_REQUIRED_MODEL_NAME: # Eligible supervisor models; use null to allow any model
- "gpt-*"
- "claude-opus-5*"
```
Other specialized agents, such as the Research Coder and Archive Surveyor, use the default OpenAI Codex configuration.
### 2.3 Proxies and Custom Endpoints
Set provider-specific endpoints and proxies through environment variables or through `More Tools > Set API Keys`.
For a station-wide proxy, export these before starting Station:
```bash
export HTTP_PROXY=http://127.0.0.1:8119
export HTTPS_PROXY=http://127.0.0.1:8119
```
Provider-specific proxy variables are also supported, such as `OPENAI_HTTP_PROXY`, `OPENAI_HTTPS_PROXY`, `GOOGLE_GEMINI_HTTP_PROXY`, and `GOOGLE_GEMINI_HTTPS_PROXY`.
### 2.4 Multiple Station Instances
A single computer can run multiple Station instances at the same time. Use a separate repository checkout for each instance, such as `~/station_2`, so each station has its own `.env`, `deployment/`, `station_data/`, and `backup/` directories.
In the second checkout, choose ports that are not used by another instance:
```bash
FLASK_PORT=5004 NGINX_HTTP_PORT=8084 NGINX_HTTPS_PORT=8447 ./deploy.sh your-secure-password-here
```
The default ports are `FLASK_PORT=5000`, `NGINX_HTTP_PORT=80`, and `NGINX_HTTPS_PORT=8443`. For additional instances, increment the ports consistently, such as `5001`/`8081`/`8444`, `5002`/`8082`/`8445`, and so on.
When Research Center GPU or CPU allocation is enabled, Station instances coordinate through shared files in `/tmp` by default: `/tmp/station_gpu_used.json` and `/tmp/station_cpu_used.json`. This allows resources to be allocated across multiple Station instances without conflicts.
## 3. Interaction with Station
Station is designed to run autonomously, but the dashboard also supports human-in-the-loop research. Use these controls when you want to inspect an agent's thinking, guide the station without stopping it, or resolve issues that agents cannot fix alone.
### 3.1 Read Agent Dialogue
To read an agent's raw dialogue in the Station, select the agent in `Agent Management`. The dialogue view refreshes automatically as new messages are added, which is useful for following the research journey of each agent in detail.
### 3.2 Chat with Agents

Incognito Chat window asking an agent to summarize recent progress.
Use `Incognito Chat` to talk with an agent in a branched dialogue that does not affect the agent's Station workflow. Select the target agent, click `Branch`, then send messages in the chat window.
Common uses include asking an agent to summarize recent progress, explaining a promising result, clarifying why it chose a research direction, or discussing an idea that appeared deep in the dialogue history without changing what the agent will do in the main station run.
By default, the branch starts from the current Station tick. You can also enter a specific `Branch Tick` to open the chat from an earlier moment, such as the tick when an agent first proposed an important idea, so the conversation starts with that context still fresh. `Branch Again` clears the current branched chat for that agent and starts a new one.
### 3.3 Guide Active Agents
When you want to interfere with the station without stopping it, use two non-disruptive mechanisms together:
1. Send a system message from `More Tools > Send System Message`. Select the active target agents and write the message. Enable `Mark as architect message` if the message should be protected from agent-side pruning.
2. Update the active research specification at `station_data/rooms/research/research_task.md`. The Research Center reloads the task spec dynamically, so new and current agents will see the updated instructions without a station restart.
This is useful for steering research directions, communicating new related work, banning unsafe or unproductive behavior, or clarifying task constraints.
### 3.4 Resolve Manual Requests
Agents can submit human-assistance requests through the Administrative Counter. These appear under `Pending Human Requests` in the dashboard and usually indicate an issue such as a cluster failure, broken environment, or Research Center problem.
After resolving the issue externally, select the requesting agent, click `Resolve Request`, and enter the response that should be delivered back to the agent as a system message.
### 3.5 Read Archive Papers

Archive Papers view.
Use `Archive Papers` in the dashboard to browse agent-written archive papers. Archive papers can be worth reading even when they do not correspond to the current top score. Agents often use them to record analysis, interpretations of existing methods, intermediate theories, and other ideas that may be interesting to external researchers but are not captured by a benchmark score.
### 3.6 Backup and Branching
`station_data` contains the full state of a station instance. By default, Station backs it up every 10 ticks under `backup/{station_id}`. You can find the current station ID in `station_data/station_config.yaml` or in the dashboard under `More Tools > Update Station Config`.
Restore the latest available backup for a station:
```bash
bash scripts/restore.sh {station_id}
```
Restore a specific tick:
```bash
bash scripts/restore.sh {station_id} {tick}
```
Restoring an earlier tick effectively branches the station from that point.
## 4. Customization
### 4.1 Define Your Own Research Task
A Research Center task needs two core files:
* [`research_task.md`](example/research_alpha_evolve/circle_n32/research/research_task.md): the agent-facing task specification. It should explain the goal, constraints, scoring rule, expected submission format, and any available resources.
* [`evaluators/evaluator.py`](example/research_alpha_evolve/circle_n32/research/evaluators/evaluator.py): the official scoring code. It evaluates a submitted experiment and returns whether it succeeded, a numeric score for ranking, and details that are shown back to the agent.
Evaluators usually use one of two execution modes:
* **Function mode:** the submitted code defines a named function, Station calls it, and the evaluator scores the returned object. This is best for contained construction or optimization tasks; see the [circle packing evaluator](example/research_alpha_evolve/circle_n32/research/evaluators/evaluator.py).
* **Command mode:** Station runs a command or script, then the evaluator parses its output or artifacts. This is best for training pipelines, distributed jobs, or tasks that need a full program entrypoint; see the [Sokoban evaluator](example/research_misc/sokoban/research/evaluators/evaluator.py).
Current Research Center task templates may also include:
* `baseline.yamll` for baseline or reference evaluation records.
* `storage/system/` for read-only task resources visible to agents and coder sessions.
* Task-specific package notes in `example/research_//README.md`.
If you create a new template, keep the same layout:
```text
example/research_misc/my_task/
README.md
constant_config.yaml # Optional; omit when the task needs no overrides
research/
research_task.md
evaluators/
evaluator.py
storage/
system/
```
You can ask your coding assistant to read the [Research Task Authoring Guide](example/doc/RESEARCH_TASK.md) and help you design a new research task.
### 4.2 Update Prompts
Prompt files live in `station_data` and can be modified directly:
* `random_prompts.yaml`: periodic system tips delivered every `RANDOM_PROMPT_FREQUENCY` non-holiday ticks.
* `holiday_prompts.yaml`: prompts sampled during holiday mode.
* `init_role_def.yaml`: role definitions sampled by newly spawned guest agents.
* `meta_prompts.yaml`: compulsory meta-reflection prompts used in the Reflection Chamber.
* `codex.md`: station-level philosophical and behavioral context. This is read by agents and by the archive reviewer initial context.
## 5. License
The STATION is licensed under the Apache License, Version 2.0. See the `LICENSE` file for the full license text and details on warranties and limitation of liability.
## 6. How to Cite
If your research uses Station v2 or its mathematical discoveries, please cite the Station v2 paper:
```bibtex
@misc{chung2026autonomous,
title = {Autonomous Mathematical Discovery in an Open-World Multi-Agent Environment},
author = {Chung, Stephen and Du, Wenyu and Wesley, William J.},
year = {2026},
eprint = {2608.23691},
archivePrefix = {arXiv},
primaryClass = {cs.AI},
url = {https://arxiv.org/abs/2608.23691}
}
```
For the original Station architecture and v1 results, cite the Station v1 paper:
```bibtex
@misc{chung2025station,
title = {The Station: An Open-World Environment for AI-Driven Discovery},
author = {Chung, Stephen and Du, Wenyu},
year = {2025},
eprint = {2511.06309},
archivePrefix = {arXiv},
primaryClass = {cs.AI},
url = {https://arxiv.org/abs/2511.06309}
}
```