Skip to content

Eldergenix/Plato-Scientific-Research-Autonomous-Agent

Repository files navigation

Plato

Python Version License: GPL v3

Plato is a multi-agent AI system that takes experimental data and produces peer-reviewable scientific papers end-to-end — generating the research idea, designing the methodology, running the analysis, and writing the LaTeX manuscript through a reviewer-panel revision loop.

What's new in 0.2

Phase 5 hardening landed alongside the dashboard's 13-stream feature push:

  • Multi-source retrieval — six adapters (arXiv, OpenAlex, ADS, Crossref, PubMed, Semantic Scholar) behind a domain-aware orchestrator with rate-limit backoff, ETag caching, and per-host circuit breakers.
  • Citation validation — every reference is resolved against Crossref + Retraction Watch + arXiv before the paper finalizes. The run dir gets a validation_report.json with per-reference pass/fail.
  • Claim → Evidence Matrix — the literature pass extracts atomic claims with quote spans and links them to source records. Persisted as evidence_matrix.jsonl per run.
  • Reviewer panel + revision loop — methodology / statistics / novelty / writing axes feed an aggregator that drives a redraft loop bounded by Plato.get_paper(max_revision_iters=...).
  • Autonomous research loopplato loop --hours 8 --max-cost-usd 50 iterates under a wall-clock + cost budget, committing improvements and reverting regressions.
  • Reproducibility manifest — every workflow emits manifest.json with git sha, project sha-256, model versions, source ids, tokens, and cost.
  • Observability — opt in by setting LANGFUSE_* env vars; LangFuse callbacks are wired into every LangGraph invocation.
  • Pluggable domainsDomainProfile registry exposes retrieval, keyword extractor, journal preset, executor, and novelty corpus as swap points. Astro is the default; biology ships out-of-the-box.
  • Multi-tenant dashboard — set PLATO_DASHBOARD_AUTH_REQUIRED=1 and the dashboard reads X-Plato-User from the upstream proxy to scope every project, key store, and run artifact per tenant.

See docs/adr/ for the design decisions behind these changes and dashboard/CHANGELOG.md for the full list.

Resources

Installation

To install plato create a virtual environment and pip install it. We recommend using Python 3.12:

python -m venv Plato_env
source Plato_env/bin/activate
pip install "plato[dashboard]"

Or alternatively install it with uv, initializing a project and installing it:

uv init
uv add plato[dashboard]

Then, run the Plato dashboard with:

plato dashboard

Get started

Initialize a Plato instance and describe the data and tools to be employed.

from plato import Plato

p = Plato(project_dir="project_dir")

prompt = """
Analyze the experimental data stored in data.csv using sklearn and pandas.
This data includes time-series measurements from a particle detector.
"""

p.set_data_description(prompt)

Generate a research idea from that data specification.

p.get_idea()

Generate the methodology required for working on that idea.

p.get_method()

With the methodology setup, perform the required computations and get the plots and results.

p.get_results()

Finally, generate a latex article with the results. You can specify the journal style, in this example we choose the APS (Physical Review Journals) style.

from plato import Journal

p.get_paper(journal=Journal.APS)

You can also manually provide any info as a string or markdown file in an intermediate step, using the set_idea, set_method or set_results methods. For instance, for providing a file with the methodology developed by the user:

p.set_method(path_to_the_method_file.md)

Plato Dashboard (new, recommended)

A Linear-themed real-time web dashboard with full pipeline visualization, cost tracking, and live agent log streaming. See dashboard/README.md for setup.

pip install "plato[dashboard]"
plato dashboard

The dashboard supersedes the legacy plato run Streamlit app for new workflows.

For hosted Railway SaaS/Lab deployments with Clerk auth or Clerk Billing, run the local production gates and redacted strict preflight before deploying:

bash dashboard/scripts/check-local-production-gates.sh
bash dashboard/scripts/check-hosted-saas-preflight.sh --railway --service plato --environment production --hosted-required --strict

It verifies the Clerk user/Lab auth contract, PLATO_BACKEND_PROXY_SECRET, public origin, Clerk proxy, and hosted billing flags without printing secret values. Strict mode treats preflight warnings as release blockers. After deploying, use the read-only production readiness check to probe the live app and scan Railway logs:

bash dashboard/scripts/check-production-readiness.sh --service plato --environment production --origin https://discovering.app

If railway variables --json/--kv is unavailable but you have a local Railway variables snapshot, pass it with --variables-file; the checker still prints only redacted key status and lengths:

bash dashboard/scripts/check-production-readiness.sh --service plato --environment production --origin https://discovering.app --variables-file /path/to/railway-variables.json

See dashboard/RAILWAY.md for the full production variable matrix.

Build from source

pip

You will need python 3.12 or higher installed. Clone Plato:

git clone https://github.com/Eldergenix/Plato-Scientific-Research-Autonomous-Agent.git
cd Plato-Scientific-Research-Autonomous-Agent

Create and activate a virtual environment

python3 -m venv Plato_env
source Plato_env/bin/activate

And install the project

pip install -e .

uv

You can also install the project using uv, just running:

uv sync

which will create the virtual environment and install the dependencies and project. Activate the virtual environment if needed with

source .venv/bin/activate

Docker

You can run Plato with Docker using the dashboard compose file:

docker compose -f dashboard/compose.yaml up --build

The local dashboard runs on http://localhost:7878 by default.

You can also build an image locally with

docker build -f docker/Dockerfile.dev -t plato_src .

Contributing

Pull requests are welcome! Feel free to open an issue for bugs, comments, questions and suggestions.

Citation

If you make use of Plato, please cite the following references:

@article{villaescusanavarro2025platoprojectdeepknowledge,
         title={The Plato project: Deep knowledge AI agents for scientific discovery}, 
         author={Francisco Villaescusa-Navarro and Boris Bolliet and Pablo Villanueva-Domingo and Adrian E. Bayer and Aidan Acquah and Chetana Amancharla and Almog Barzilay-Siegal and Pablo Bermejo and Camille Bilodeau and Pablo Cárdenas Ramírez and Miles Cranmer and Urbano L. França and ChangHoon Hahn and Yan-Fei Jiang and Raul Jimenez and Jun-Young Lee and Antonio Lerario and Osman Mamun and Thomas Meier and Anupam A. Ojha and Pavlos Protopapas and Shimanto Roy and David N. Spergel and Pedro Tarancón-Álvarez and Ujjwal Tiwari and Matteo Viel and Digvijay Wadekar and Chi Wang and Bonny Y. Wang and Licong Xu and Yossi Yovel and Shuwen Yue and Wen-Han Zhou and Qiyao Zhu and Jiajun Zou and Íñigo Zubeldia},
         year={2025},
         eprint={2510.26887},
         archivePrefix={arXiv},
         primaryClass={cs.AI},
         url={https://arxiv.org/abs/2510.26887},
}

@software{Plato_2025,
          author = {Pablo Villanueva-Domingo, Francisco Villaescusa-Navarro, Boris Bolliet},
          title = {Plato: Modular Multi-Agent System for Scientific Research Assistance},
          year = {2025},
          url = {https://github.com/Eldergenix/Plato-Scientific-Research-Autonomous-Agent},
          note = {Available at https://github.com/Eldergenix/Plato-Scientific-Research-Autonomous-Agent},
          version = {latest}
          }

@software{CMBAGENT_2025,
          author = {Boris Bolliet},
          title = {CMBAGENT: Open-Source Multi-Agent System for Science},
          year = {2025},
          url = {https://github.com/CMBAgents/cmbagent},
          note = {Available at https://github.com/CMBAgents/cmbagent},
          version = {latest}
          }

License

GNU GENERAL PUBLIC LICENSE (GPLv3)

Plato - Copyright (C) 2026 Pablo Villanueva-Domingo, Francisco Villaescusa-Navarro, Boris Bolliet

About

Multi-agent AI scientist that turns experimental data into > publication-ready research papers.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors