EvoScientist: Towards Self-Evolving AI Scientists for End-to-End Scientific Discovery
Project description
EvoScientist
๐ฅ News
TODO
- [27 Sep 2025] โณ Our preprint is now live on [arXiv] โ check it out for details.
Overview
TODO
๐ Contents
- โ๏ธ Installation
- ๐ API Key Configuration
- โก Quick Start
- ๐ Evaluation
- ๐ Citation
- ๐ Acknowledgments
- ๐ฆ Codebase Contributors
- ๐ License
โ๏ธ Installation
[!TIP]
Useuvfor installation โ it's faster and more reliable thanpip.
For Development
# Create and activate a conda environment
conda create -n EvoSci python=3.11 -y
conda activate EvoSci
# Install in development (editable) mode
pip install EvoScientist
# or
pip install -e .
Option 1:
Install the latest version directly from GitHub for quick setup:
TODO
Option 2:
If you plan to modify the code or contribute to the project, you can clone the repository and install it in editable mode:
TODO
๐ Upgrade to the latest code base
git pull
uv pip install -e .
๐ API Key Configuration
EvoScientist requires API keys for LLM inference and web search. You can configure them in two ways:
Option A: Environment Variables (Global)
Set keys directly in your terminal session. Add these to your shell profile (~/.bashrc, ~/.zshrc, etc.) to persist across sessions:
export ANTHROPIC_API_KEY="your_anthropic_api_key_here"
export TAVILY_API_KEY="your_tavily_api_key_here"
Option B: .env File (Project-level)
Create a .env file in the project root. This keeps keys scoped to the project and out of your shell history:
cp .env.example .env
Then edit .env and fill in your keys:
ANTHROPIC_API_KEY=your_anthropic_api_key_here
TAVILY_API_KEY=your_tavily_api_key_here
[!WARNING] Never commit
.envfiles containing real API keys to version control. The.envfile is already included in.gitignore.
| Key | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY |
Yes | Anthropic API key for Claude (console.anthropic.com) |
TAVILY_API_KEY |
Yes | Tavily API key for web search (app.tavily.com) |
โก Quick Start
CLI Inference
You can perform inference directly from the command line using our CLI tool:
python -m EvoScientist
or
EvoSci # or EvoScientist
Optional arguments:
--workdir <path> Override workspace directory for this session
--use-cwd Use current working directory as workspace
--thread-id <id> Resume a conversation thread
--no-thinking Disable thinking display
Interactive Commands:
| Command | Description |
|---|---|
/exit |
Quit the session |
/new |
Start a new session (new workspace + thread) |
/thread |
Show current thread ID and workspace path |
/skills |
List installed user skills |
/install-skill <source> |
Install a skill from local path or GitHub |
/uninstall-skill <name> |
Uninstall a user-installed skill |
Skill Installation Examples:
# Install from local path
/install-skill ./my-skill
# Install from GitHub URL
/install-skill https://github.com/owner/repo/tree/main/skill-name
# Install from GitHub shorthand
/install-skill owner/repo@skill-name
Runtime Directories
By default, the workspace is created under a hidden directory in the current project directory:
./.evoscientist/workspace/
memory/ # shared MEMORY.md
skills/ # user-installed skills
runs/ # per-thread workspaces
You can force workspace to be the current directory via --use-cwd.
If you set EVOSCIENTIST_HOME, EvoScientist will place workspace/ under that
directory instead of the project root:
Example with EVOSCIENTIST_HOME=~/.evoscientist:
~/.evoscientist/
workspace/
memory/
skills/
runs/
Script Inference
from EvoScientist import EvoScientist_agent
from langchain_core.messages import HumanMessage
from EvoScientist.utils import format_messages
thread = {"configurable": {"thread_id": "1"}}
question = "Hi?"
last_len = 0
for state in EvoScientist_agent.stream(
{"messages": [HumanMessage(content=question)]},
config=thread,
stream_mode="values",
):
msgs = state["messages"]
if len(msgs) > last_len:
format_messages(msgs[last_len:])
last_len = len(msgs)
Output
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ง Human โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Hi? โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ AI โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Hi! I'm here to help you with experimental research tasks. I can assist with: โ
โ โ
โ - **Planning experiments** - designing stages, success criteria, and workflows โ
โ - **Running experiments** - implementing baselines, training models, analyzing results โ
โ - **Research** - finding papers, methods, datasets, and baselines โ
โ - **Analysis** - computing metrics, creating visualizations, interpreting results โ
โ - **Writing** - drafting experimental reports and documentation โ
โ โ
โ What would you like to work on today? โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Web Interface
TODO
๐ Evaluation
TODO
๐ Citation
If you find our paper and code useful in your research and applications, please cite using this BibTeX:
TODO
๐ Acknowledgments
This project builds upon the following outstanding open-source works:
- Deep Agents โ A framework for building AI agents that can interact with various tools and environments.
- Deep Agents UI โ A user interface for visualising and managing Deep Agents.
We thank the authors for their valuable contributions to the open-source community.
๐ฆ Codebase Contributors
|
Yougang Lyu |
Xi Zhang |
For any enquiries or collaboration opportunities, please contact: youganglyu@gmail.com
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evoscientist-0.0.1.dev3.tar.gz.
File metadata
- Download URL: evoscientist-0.0.1.dev3.tar.gz
- Upload date:
- Size: 884.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddfc2c3f05d3697378c0da924b3cd398ecf1600ac352f416ec27833c5f32c694
|
|
| MD5 |
102625152c52b54014fb08eb6f3dc7bf
|
|
| BLAKE2b-256 |
f26ca23d2be6f3c530546d0c49786b78cd37cc3181efe67091fcb59030fae821
|
File details
Details for the file evoscientist-0.0.1.dev3-py3-none-any.whl.
File metadata
- Download URL: evoscientist-0.0.1.dev3-py3-none-any.whl
- Upload date:
- Size: 916.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f226f0d6820dfa9e779b79061b0f5283d0977475638bdf4e0aa210ca0bf5067
|
|
| MD5 |
e7d46524c4824b5231424106067ede0e
|
|
| BLAKE2b-256 |
2d0036abb0e2a6655b733c676f827b94499aa57db71940dac665b4cf4db19a8c
|