robin
Robin: A multi-agent system for automating scientific discovery
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Repository
Robin: A multi-agent system for automating scientific discovery
Basic Info
Statistics
- Stars: 217
- Watchers: 30
- Forks: 29
- Open Issues: 4
- Releases: 0
Metadata Files
README.md
Robin: A multi-agent system for automating scientific discovery
See our blog or arXiv preprint for more info.
Prerequisites
- Python: Version 3.12 or higher.
- API Keys:
FUTUREHOUSE_API_KEY: For accessing FutureHouse platform agents (Crow, Falcon).- An API key for your chosen LLM provider (e.g.,
OPENAI_API_KEYif using OpenAI models). Robin uses LiteLLM, so it can support various providers. - The "Finch" (data analysis) portion of this repo needs access to the FutureHouse platform closed beta. To request access, visit https://platform.futurehouse.org/profile, and use the "Rate Limit Increase" form to request access to Finch. Without access, all the hypothesis and experiment generation code can still be run.
Setup Instructions
Clone the Repository:
bash git clone https://github.com/Future-House/robin.git cd robinCreate and Activate a Virtual Environment (Recommended):
bash uv venv .venv source .venv/bin/activateOR
bash python3 -m venv .robin_env source .robin_env/bin/activateInstall Dependencies: The project uses
pyproject.tomlfor dependency management. Install the base package and development dependencies (which include Jupyter):bash uv pip install -e '.[dev]'OR
bash pip install -e '.[dev]'Set API Keys: It's highly recommended to set your API keys as environment variables. Create a
.envfile in therobindirectory: ``` FUTUREHOUSEAPIKEY="yourfuturehouseapikeyhere" OPENAIAPIKEY="youropenaiapikeyhere"etc. for other LLM providers
``
The notebook andRobinConfigurationwill attempt to load these. Alternatively, you can pass them directly when creating theRobinConfiguration` object in the notebook.
Running Robin via robin_demo.ipynb
Launch Jupyter Notebook or JupyterLab: Navigate to the
robindirectory in your terminal (ensure your virtual environment is activated) and run:```bash jupyter notebook
OR
jupyter lab ```
Open the Notebook: In the Jupyter interface, open
robin_demo.ipynb.Configure Robin: Locate the cell where the
RobinConfigurationobject is created:python config = RobinConfiguration( disease_name="DISEASE_NAME", # <-- Customize the disease name here # You can also explicitly set API keys here if not using environment variables: # futurehouse_api_key="your_futurehouse_api_key_here" )
- **Modify `disease_name`**: Change `"DISEASE_NAME"` to your target disease.
- **API Keys**: If you didn't set environment variables, you can provide the keys directly in the `RobinConfiguration` instantiation.
- **LLM Choice**: The default is `o4-mini`. You can change `llm_name` and `llm_config` in `RobinConfiguration` if you wish to use a different model supported by LiteLLM (ensure you have the corresponding API key set).
- Other parameters like `num_queries`, `num_assays`, `num_candidates` can also be adjusted here if needed.
- Run the Notebook Cells:
Execute the cells in the notebook sequentially. The notebook is structured to guide you through:
- Experimental Assay Generation: Generates and ranks potential experimental assays.
- Therapeutic Candidate Generation: Based on the top assay, generates and ranks therapeutic candidates.
- (Optional) Experimental Data Analysis: If you have experimental data, this section can analyze it and feed insights back into candidate generation. This currently requires access to the Finch closed beta.
Expected Output
Logs: Detailed logs will be printed in the notebook output and/or your console, showing the progress of each step (e.g., query generation, literature search, candidate proposal, ranking).
Files: Results are saved in a new subdirectory within
robin_output/, named after thedisease_nameand a timestamp (e.g.,robin_output/DISEASE_NAME_YYYY-MM-DD_HH-MM/). This directory contains a structured set of outputs, including:- Folders for detailed hypotheses and literature reviews for both experimental assays and therapeutic candidates (e.g.,
experimental_assay_detailed_hypotheses/,therapeutic_candidate_literature_reviews/). - CSV files for ranking results and final ranked lists (e.g.,
experimental_assay_ranking_results.csv,ranked_therapeutic_candidates.csv). - Text summaries for proposed assays and candidates (e.g.,
experimental_assay_summary.txt,therapeutic_candidates_summary.txt). - If the optional data analysis step is run (using the
data_analysisfunction), there will be an additionaldata_analysis/subfolder containing outputs from the Finch agent (e.g.,consensus_results.csv). Correspondingly, some therapeutic candidate-related files generated after this step may have an_experimentalsuffix (e.g.,ranked_therapeutic_candidates_experimental.csv,therapeutic_candidate_detailed_hypotheses_experimental/).
- Folders for detailed hypotheses and literature reviews for both experimental assays and therapeutic candidates (e.g.,
Overview of examples Folder:
The examples folder provides practical usage demonstrations of pre-generated output directories from complete Robin runs for 10 diseases:
- Age-Related Hearing Loss
- Celiac Disease
- Charcot-Marie-Tooth Disease
- Chronic Kidney Disease
- Friedreich's Ataxia
- Glaucoma
- Idiopathic Pulmonary Fibrosis
- Non-alcoholic Steatohepatitis
- Polycystic Ovary Syndrome
- Sarcopenia
Each disease-specific subfolder mirrors the exact file and directory structure a user would obtain in their own robin_output/ directory after a run:
experimental_assay_detailed_hypotheses/: Text files containing detailed reports for each proposed experimental assay.experimental_assay_literature_reviews/: Text files of literature reviews generated from queries related to assay development.experimental_assay_ranking_results.csv: CSV file showing pairwise comparison results for assay ranking.experimental_assay_summary.txt: A textual summary of the proposed experimental assays.ranked_therapeutic_candidates.csv: CSV file listing the final ranked therapeutic candidates and their strength scores.therapeutic_candidate_detailed_hypotheses/: Text files with detailed reports for each proposed therapeutic candidate.therapeutic_candidate_literature_reviews/: Text files of literature reviews for therapeutic candidate queries.therapeutic_candidate_ranking_results.csv: CSV file of pairwise comparison results for candidate ranking.therapeutic_candidates_summary.txt: A textual summary of the proposed therapeutic candidates.
These example outputs are provided to help users to understand the depth, format, and typical errors seen in Robin runs across various diseases.
Advanced Usage
A full example trajectory of both the initial therapeutic candidate generation and experimental data analysis can be found in the robin_full.ipynb notebook. This notebook includes the parameters and agents used in the paper. Note that the parameters used in this notebook exceeds the current free rate limits and data analysis functionality is currently in beta testing.
While this guide focuses on the robin_demo.ipynb notebook, the robin Python module (in the robin/ directory) can be imported and its functions (experimental_assay, therapeutic_candidates, data_analysis) can be used programmatically in your own Python scripts for more customized workflows.
Owner
- Name: FutureHouse
- Login: Future-House
- Kind: organization
- Email: help@futurehouse.org
- Location: United States of America
- Website: futurehouse.org
- Repositories: 1
- Profile: https://github.com/Future-House
Citation (CITATION.cff)
cff-version: 1.2.0
message: >-
If you use this software, please cite it using the
metadata from this file.
title: "Robin: A multi-agent system for automating scientific discovery"
authors:
- given-names: Ali Essam
family-names: Ghareeb
- given-names: Benjamin
family-names: Chang
- given-names: Ludovico
family-names: Mitchener
- given-names: Angela
family-names: Yiu
- given-names: Caralyn J.
family-names: Szostkiewicz
- given-names: Jon M.
family-names: Laurent
- given-names: Muhammed T.
family-names: Razzak
- given-names: Andrew D.
family-names: White
- given-names: Michaela M.
family-names: Hinks
- given-names: Samuel G.
family-names: Rodriques
identifiers:
- type: doi
value: 10.48550/arXiv.2505.13400
description: ArXiv DOI
- type: url
value: https://arxiv.org/abs/2505.13400
description: ArXiv abstract
repository-code: https://github.com/Future-House/robin
keywords:
- Artificial Intelligence
- Multiagent Systems
- Quantitative Methods
- Scientific Discovery
- Drug Discovery
license: Apache-2.0
date-released: 2025-05-19
preferred-citation:
type: article
title: "Robin: A multi-agent system for automating scientific discovery"
authors:
- given-names: Ali Essam
family-names: Ghareeb
- given-names: Benjamin
family-names: Chang
- given-names: Ludovico
family-names: Mitchener
- given-names: Angela
family-names: Yiu
- given-names: Caralyn J.
family-names: Szostkiewicz
- given-names: Jon M.
family-names: Laurent
- given-names: Muhammed T.
family-names: Razzak
- given-names: Andrew D.
family-names: White
- given-names: Michaela M.
family-names: Hinks
- given-names: Samuel G.
family-names: Rodriques
date-published: 2025-05-19
doi: 10.48550/arXiv.2505.13400
journal: arXiv preprint
url: https://arxiv.org/abs/2505.13400
GitHub Events
Total
- Issues event: 2
- Watch event: 137
- Issue comment event: 4
- Push event: 10
- Public event: 1
- Pull request review event: 3
- Pull request review comment event: 2
- Pull request event: 4
- Fork event: 21
- Create event: 4
Last Year
- Issues event: 2
- Watch event: 137
- Issue comment event: 4
- Push event: 10
- Public event: 1
- Pull request review event: 3
- Pull request review comment event: 2
- Pull request event: 4
- Fork event: 21
- Create event: 4
Issues and Pull Requests
Last synced: 9 months ago
All Time
- Total issues: 1
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 2.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 2.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- impredicative (1)
- tunglinwood (1)
Pull Request Authors
- changbenjamin (2)
- mskarlin (1)