Skip to main content

ResearchTown: Simulator of Human Research Community

News

  • [12/24] We release our ResearchTown paper on arXiv and ResearchBench data on HuggingFace.

Introduction

Research Town is a multi-agent platform designed for studying community-level automatic research. To achieve community-based simulation, it defines:

  1. 🤖 Researcher: LLM research agents capable of skills such as reading papers, writing papers, discussing ideas, rebutting arguments, and writing reviews.
  2. 🎩 Environments: Multi-agent environments, similar to virtual study rooms, where research agents collaborate on tasks like idea discussion, rebuttal writing, or paper writing.
  3. ⚙️ Engines: Finite-state machines that manage agent involvement in environments and determine the next steps after task completion. For instance, engines guide agents coming out of idea discussion environment to paper writing environment and help select suitable agents to work together.

Please consider cite our paper if you find it useful:

@article{yu2024researchtown,
  title={ResearchTown: Simulator of Human Research Community},
  author={Yu, Haofei and Hong, Zhaochen and Cheng, Zirui and Zhu, Kunlun and Xuan, Keyang and Yao, Jinwei and Feng, Tao and You, Jiaxuan},
  journal={arXiv preprint arXiv:2412.17767},
  year={2024}
}

Get started

Install from pip

You can install research-town from pypi to use it as a package:

pip install research-town

Install from scratch

Use a virtual environment, e.g. with anaconda3:

conda create -n research-town python=3.10
conda activate research-town
curl -sSL https://install.python-poetry.org | python3
export PATH="$HOME/.local/bin:$PATH"

Configure environment variables

Environment variables such as OPENAI_API_KEY and database related configs are required to run the code. The recommended way to set all the required variable is

  1. Copy the .env.template file into the project root with the name .env.
cp .env.template .env
  1. Fill the required environment variables in the .env file.

Running the examples

To run examples provided in the examples:

poetry install
cd examples
python research_town_demo.py

All generated research progress like ideas, proposals will be automatically saved in the database folder you set in the .env file.

Developing

Develop Demo

To develop the demo (both frontend and backend): Set DATABASE_FOLDER_PATH=./sample_data in .env file

cd frontend
npm install
npm start
poetry install -E backend
uvicorn backend.app.main:app --reload

Install dev options

Follow the installation instruction above and then, instead of running python -m pip install -e ., run the following commands:

python -m pip install -e ".[dev]"
mypy --install-types --non-interactive research_town
python -m pip install pre-commit
pre-commit clean
pre-commit install

The installation of pre-commit would avoid formatting error and large file injects into github commits.

New branch for each feature

git checkout -b feature/feature-name and PR to main branch.

Before committing

Run poetry run pytest to make sure all tests pass (this will ensure dynamic typing passed with beartype) and poetry run mypy --config-file pyproject.toml . to check static typing. (You can also run pre-commit run --all-files to run all checks)

Check github action result

Check the github action result to make sure all tests pass. If not, fix the errors and push again.

ResearchBench

To execute ResearchBench experiments, please execute 'research_bench/run_review_eval.sh' script. You can adjust the parameters in the script, using the actual INPUT_PATH.

If you encounter openreview not found error, please install the package by running pip install openreview. If any issues come up regarding requests, please change its version to 2.26.

pip install requests==2.26

Metadata

Release files for research-town 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for research-town 0.0.3
File Size Uploaded Provenance Actions
research_town-0.0.3.tar.gz 37.6 kB Without provenance Details for research_town-0.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for research-town 0.0.3
File Interpreter ABI Platform Actions
research_town-0.0.3-py3-none-any.whl Python 3 none any Details for research_town-0.0.3-py3-none-any.whl

Total release size: 88.8 kB

Release files / research_town-0.0.3.tar.gz

Download URL research_town-0.0.3.tar.gz
Size 37.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9b69b582f435584d94a3537fac827789b99b0cbf7e7453a253766995bcd34ad2
BLAKE2b-256 checksum
How to use checksums
f744306bc58c65c65b68802e63222cf9e46a9407569d127be470dde48659b0b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.11.4 Darwin/22.6.0

Release files / research_town-0.0.3-py3-none-any.whl

Download URL research_town-0.0.3-py3-none-any.whl
Size 51.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
322669aa58b757453d67c24332dbe1fa9112ebfeeba5e1d016dc257ca7421f7e
BLAKE2b-256 checksum
How to use checksums
0d920b17781779ab1062b10b9b96c8e2efb431e9e31aa47d80956d602af44510
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.11.4 Darwin/22.6.0

Security for research-town 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page