Skip to content

duckyquang/Co-Scientist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧬 Co-Scientist

A multi-agent research engine that turns a natural-language goal into tournament-ranked hypotheses.

License Python Live Demo

Created by Quang Bui


✨ What it does

An open-source re-implementation of Google's AI co-scientist (Gottweis et al., Nature, 2026) β€” six specialised agents collaborate through an Elo tournament to produce a ranked research overview.

Agent Role
Generation Proposes hypotheses via literature review and debate
Reflection Reviews novelty, correctness, testability
Ranking Elo tournament with pairwise debates
Evolution Combines and refines top hypotheses
Proximity Clusters hypotheses for dedup and matchmaking
Meta-review Synthesises the final research overview

Independent project β€” not affiliated with Google or the paper's authors.


πŸš€ Quick start β€” no setup required

  1. Visit the live site β†’ duckyquang.github.io/Co-Scientist
  2. Click "Start a research session"
  3. Type your research question and hit Launch

No account. No API key. No configuration. The live site runs the full multi-agent tournament as an interactive simulation entirely in your browser β€” every visitor gets the complete experience (generation β†’ debate β†’ Elo ranking β†’ final report) with nothing to install and nothing leaving your device.

Want real LLM-generated hypotheses? Self-host with a free Groq key (below), or point the site at your own backend via VITE_API_URL β€” it then calls the real Groq-backed engine automatically, still with no per-user key.


πŸ—οΈ Self-host in 5 minutes

Want to run your own instance (private data, custom models, no rate limits)?

1. Clone & install

git clone https://github.com/duckyquang/Co-Scientist.git
cd Co-Scientist

python3.12 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

2. Configure your LLM (pick one)

Groq β€” free tier, recommended

echo "GROQ_API_KEY=gsk_..." >> .env

Anthropic / OpenAI / OpenRouter

echo "ANTHROPIC_API_KEY=sk-ant-..." >> .env
# or OPENAI_API_KEY / OPENROUTER_API_KEY

Ollama β€” fully local, no API key

ollama pull llama3.3:70b
# Then set provider = "ollama" in co-scientist.toml

3. Build the UI & run

cd frontend && npm install && npm run build && cd ..
python -m webapp.server --port 8080

Open http://localhost:8080 β€” full dashboard, live agent updates.

Dev mode (hot-reload):

# Terminal 1
python -m webapp.server --port 8080

# Terminal 2
cd frontend && npm run dev   # proxies API β†’ :8080

Docker

docker compose up --build
# β†’ http://localhost:8080

☁️ Free cloud hosting

Host your own public instance at $0/month:

Service What it hosts Cost
Groq AI inference (Llama 3.3 70B) Free tier
Oracle Cloud Always Free Python backend (ARM VM) Free forever
Vercel / GitHub Pages React frontend Free

Full guide: deploy/oracle/README.md

Quick steps:

  1. Create an Ubuntu ARM instance on Oracle Cloud Always Free (VM.Standard.A1.Flex)
  2. SSH in and run:
    curl -fsSL https://raw.githubusercontent.com/duckyquang/Co-Scientist/main/deploy/oracle/setup.sh | bash
  3. Set VITE_API_URL=https://api.yourdomain.com in your Vercel/GitHub Actions env vars
  4. Deploy the frontend β€” done

πŸ–₯️ Architecture

                     User goal (browser)
                              β”‚
                              β–Ό
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚  Python backend (webapp/server.py)   β”‚
          β”‚  SQLite Β· SSE live stream Β· REST API β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚          Simulator / real engine       β”‚
          β”‚  Generation β†’ Reflection β†’ Ranking    β”‚
          β”‚  β†’ Evolution β†’ Proximity β†’ Meta-reviewβ”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

βš™οΈ Configuration

Layered config: config/default.toml β†’ ~/.co-scientist/config.toml β†’ ./co-scientist.toml

Provider Env var Free tier
groq GROQ_API_KEY βœ… Yes β€” Llama 3.3 70B
gemini GEMINI_API_KEY βœ… Yes β€” Flash 1M tokens/day
anthropic ANTHROPIC_API_KEY ❌ Paid
openai OPENAI_API_KEY ❌ Paid
openrouter OPENROUTER_API_KEY Varies
ollama (none) βœ… Local

πŸ–±οΈ CLI (optional)

co-scientist run "Identify hypotheses about microbiome-driven inflammation" --n 3
co-scientist serve          # web dashboard (recommended)
co-scientist report <id>

πŸ“¦ Repository layout

co_scientist/     # Python engine β€” agents, LLM, storage
frontend/         # React 18 + Vite + Tailwind dashboard
webapp/           # Stdlib HTTP server, simulator, seeder
config/           # default.toml + agent prompts
deploy/           # Oracle Cloud & Docker setup scripts

🚒 Deploy targets

Target Command / workflow
GitHub Pages (static) .github/workflows/deploy-pages.yml
Oracle Cloud (full backend) deploy/oracle/README.md
Docker (local / VPS) docker compose up

πŸ“„ License

Apache-2.0 β€” see LICENSE.