Skip to main content

Open Coscientist

AI-powered research hypothesis generation using LangGraph

Open Coscientist is an open adaptation based on Google Research's AI Co-Scientist research paper. This project provides an implementation that generates, reviews, ranks, and evolves research hypotheses using the multi-agent architecture described. It orchestrates 8-10 specialized AI agents through a LangGraph workflow and aims to produce novel hypotheses grounded in scientific literature.

Demo

Open Coscientist Demo

In this demo we use Open Coscientist to generate hypotheses for novel approaches to early detection of Alzheimer's disease. Click to watch the full demo on YouTube.

Standalone operation

The engine works with any LLM and can run without external data sources.

For high-quality hypothesis generation, the system provides an MCP server integration to perform literature-aware reasoning over published research. See MCP Integration for setup and configuration details, and to run the basic reference MCP server.

Quick Start

Installation

pip install open-coscientist

Set your API key (any LiteLLM-supported provider):

export GEMINI_API_KEY="your-key-here"
# or: export ANTHROPIC_API_KEY="your-key-here"
# or: export OPENAI_API_KEY="your-key-here"

For development, see CONTRIBUTING.md.

Note: for the any literature review to run, you must provide an MCP server with literature review tools/capabilities. You can use the provided reference implementation MCP Server. Otherwise, no published research will be used.

Model Support: Uses LiteLLM for 100+ LLM providers (OpenAI, Anthropic, Google, Azure, AWS Bedrock, Cohere, etc.). May need to tweak some constants.py token usage and other params, such as initial hypotheses count, in order to work with less powerful models.

Basic Usage

import asyncio
from open_coscientist import HypothesisGenerator

async def main():
    generator = HypothesisGenerator(
        model_name="gemini/gemini-2.5-flash",  # default model if not provided
        max_iterations=1,
        initial_hypotheses_count=5,
        evolution_max_count=3
    )

    async for node_name, state in generator.generate_hypotheses(
        research_goal="Your research question",
        stream=True
    ):
        print(f"Completed: {node_name}")
        if node_name == "generate":
            print(f"Generated {len(state['hypotheses'])} hypotheses")

if __name__ == "__main__":
    asyncio.run(main())

See examples/run.py for a full example cli script with a built-in Console Reporter. Remember, you must run the literature review MCP server for any literature review to be included in the hypothesis generation.

Features

  • Multi-agent workflow: Supervisor, Generator, Reviewer, Ranker, Tournament Judge, Meta-Reviewer, Evolution, Proximity Deduplication
  • Rich hypothesis output: Each hypothesis includes text, explanation (layman summary), literature_grounding with structured [C*] citations, and experiment (suggested validation design)
  • Literature review integration: Optional MCP server provides access to real published research; structured citations resolve to full source metadata
  • Domain-agnostic customization: YAML-based configuration to bring your own MCP servers, literature sources, and domain-specific prompt guidance — no code changes needed (see Domain Customization)
  • Real-time streaming: Stream results as they're generated
  • Intelligent caching: Faster development iteration with LLM response caching
  • Elo-based tournament: Pairwise hypothesis comparison with Elo ratings
  • Iterative refinement: Evolves top hypotheses while preserving diversity
  • Post-generation enrichments: Attach domain-specific data (e.g., related CVEs, knowledge graph statements) to each hypothesis via configurable tool calls

The workflow automatically detects MCP availability and adjusts accordingly. Functional reference MCP server included in mcp_server/ directory.

Documentation

Node Descriptions

Node Purpose Key Operations
Supervisor Research planning Analyzes research goal, identifies key areas, creates workflow strategy
Literature Review (Recommended) Academic literature search Queries databases (PubMed, Google Scholar), retrieves and analyzes real published papers (requires MCP server; without it, uses only LLM's latent knowledge)
Generate Hypothesis creation Generates N initial hypotheses using LLM with high temperature for diversity
Reflection (Recommended) Literature comparison Analyzes hypotheses against literature review findings, identifies novel contributions and validates against real research (requires literature review)
Review Adaptive evaluation Reviews hypotheses across 6 criteria using adaptive strategy (comparative batch for ≤5, parallel for >5)
Rank Holistic ranking LLM ranks all hypotheses considering composite scores and review feedback
Tournament Pairwise comparison Runs Elo tournament with random pairwise matchups, updates ratings
Meta-Review Insight synthesis Analyzes all reviews to identify common strengths, weaknesses, and strategic directions
Evolve Hypothesis refinement Refines top-k hypotheses with context awareness to preserve diversity
Proximity Deduplication Clusters similar hypotheses and removes high-similarity duplicates

Literature Review and Domain Customization

The bundled MCP server provides a PubMed reference implementation. The system is domain-agnostic: a YAML configuration file controls which MCP servers, literature sources, and prompt guidance are used — no code changes needed. Example configurations are included for biomedical (INDRA + PubMed), cybersecurity (arXiv + Google Scholar + NVD), and multi-source academic research.

See MCP Integration to set up literature review, and Domain Customization to adapt to your research area.

Attribution

Open Coscientist is a source-available implementation inspired by Google Research's AI Co-Scientist. While Google's original system is closed-source, this project adapts their multi-agent hypothesis generation architecture from their published research paper.

Reference:

This version provides a LangGraph-based implementation. It includes some optimizations for parallel execution, streaming support, and caching.

Citation

If you use this work, please cite both this implementation and the original Google Research paper:

@article{coscientist2025,
  title={Towards an AI co-scientist},
  author={Google Research Team},
  journal={arXiv preprint arXiv:2502.18864},
  year={2025},
  url={https://arxiv.org/abs/2502.18864}
}

Metadata

Release files for open-coscientist 0.2.0

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

Source distribution (sdist)

Source distribution for open-coscientist 0.2.0
File Size Uploaded
open_coscientist-0.2.0.tar.gz 140.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for open-coscientist 0.2.0
File Interpreter ABI Platform
open_coscientist-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 316.2 kB

Release files / open_coscientist-0.2.0.tar.gz

Download URL open_coscientist-0.2.0.tar.gz
Size 140.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2b981c263bfc5900193b115965d427b138d8123cb0f61e15874df36e5f1b7adb
BLAKE2b-256 checksum
How to use checksums
c99d951f41a6516e166508f2ea6bf0d2ff8e96e85560dadf1c07042c844da3af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 25, 2026.

Transparency log

Release files / open_coscientist-0.2.0-py3-none-any.whl

Download URL open_coscientist-0.2.0-py3-none-any.whl
Size 175.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f9b4a41f528b52d67a249401e003de4d9e3c21dab004b86acbb1ec8b7238337d
BLAKE2b-256 checksum
How to use checksums
bd6d8ecc03e21117b1ad78ca635ca07758082c66b184ca55ff64f421fffbb637
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

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