A multi-agent research engine that turns a natural-language goal into tournament-ranked hypotheses.
Created by Quang Bui
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.
- Visit the live site β duckyquang.github.io/Co-Scientist
- Click "Start a research session"
- 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.
Want to run your own instance (private data, custom models, no rate limits)?
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]"Groq β free tier, recommended
echo "GROQ_API_KEY=gsk_..." >> .envAnthropic / OpenAI / OpenRouter
echo "ANTHROPIC_API_KEY=sk-ant-..." >> .env
# or OPENAI_API_KEY / OPENROUTER_API_KEYOllama β fully local, no API key
ollama pull llama3.3:70b
# Then set provider = "ollama" in co-scientist.tomlcd frontend && npm install && npm run build && cd ..
python -m webapp.server --port 8080Open 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 β :8080docker compose up --build
# β http://localhost:8080Host 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:
- Create an Ubuntu ARM instance on Oracle Cloud Always Free (
VM.Standard.A1.Flex) - SSH in and run:
curl -fsSL https://raw.githubusercontent.com/duckyquang/Co-Scientist/main/deploy/oracle/setup.sh | bash - Set
VITE_API_URL=https://api.yourdomain.comin your Vercel/GitHub Actions env vars - Deploy the frontend β done
User goal (browser)
β
βΌ
ββββββββββββββββββββββββββββββββββββββββ
β Python backend (webapp/server.py) β
β SQLite Β· SSE live stream Β· REST API β
ββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββ΄ββββββββββββββββββββ
β Simulator / real engine β
β Generation β Reflection β Ranking β
β β Evolution β Proximity β Meta-reviewβ
ββββββββββββββββββββββββββββββββββββββββββ
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 |
co-scientist run "Identify hypotheses about microbiome-driven inflammation" --n 3
co-scientist serve # web dashboard (recommended)
co-scientist report <id>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
| 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 |
Apache-2.0 β see LICENSE.