EvoScientist Logo
PyPI v0.2.2 Website Framework DeepAgents License Apache 2.0
---
Typing SVG
**English | [็ฎ€ไฝ“ไธญๆ–‡](./README.zh-CN.md)**
**EvoScientist aims to harness vibe research by enabling self-evolving AI scientists that autonomously explore, generate insights, and iteratively improve. It is designed to be opinionated and ready to use out of the box, offering a living research system that grows alongside evolving agent skills, toolsets, and memory bases. Moving beyond traditional human-in-the-loop systems, EvoScientist adopts a human-on-the-loop paradigm, where AI acts as a research buddy that co-evolves with human researchers and internalizes scholarly taste and scientific judgment.**

๐Ÿ† Awards & Recognition

ICAIS 2025 Awards
Best Paper & Appraisal Award
Best Paper
AI-Generated Best Paper
DeepResearch Bench II #1
#1 on DeepResearch Bench II

DeepResearch Bench #1
#1 on DeepResearch Bench
AstaBench Code & Execution #1
#1 on AstaBench Code & Execution
AstaBench Data Analysis #1
#1 on AstaBench Data Analysis

โšก Unified Control, Different Surfaces

๐ŸŒ Desktop WebUI

๐Ÿ–ฅ๏ธ CLI / TUI

๐Ÿ“ฑ Mobile

## โœจ Features - **๐Ÿค– Multi-Agent Team** โ€” 6 sub-agents (plan, research, code, debug, analyze, write) working in concert. - **๐Ÿง  Self-Evolving Memory** โ€” Auto-distilled each turn, self-linking into a knowledge graph that grows across sessions. - **๐Ÿ› ๏ธ AutoSkills** โ€” Distills recurring patterns from its own memory into reusable skills on a schedule โ€” proposed for your review via `/autoskills`. - **๐ŸŒ Multi-Provider** โ€” Anthropic, OpenAI, Google, MiniMax, NVIDIA โ€” one config to switch. - **๐Ÿ“ฑ Multi-Channel** โ€” CLI as the hub; Telegram, Slack, Feishu, WeChat, and more โ€” one agent session. - **๐Ÿ–ฅ๏ธ Desktop WebUI** โ€” Workspace-panel web app, one terminal via `--ui webui`. - **๐Ÿ”ฌ Scientific Workflow** โ€” Intake โ†’ plan โ†’ execute โ†’ evaluate โ†’ write โ†’ verify. - **โฐ Scheduled Tasks** โ€” Automate recurring research on a cron-style schedule โ€” it runs on its own and reports back. - **๐Ÿ”„ Code Generation Modes** โ€” More Effort (iterative refinement), continuously improving code quality. - **โšก Adaptive Tools** โ€” Per-turn tool selection keeps only relevant tools visible, reducing noise. - **โœ‚๏ธ Context Editing** โ€” Dynamic system prompt rewriting based on conversation state. - **๐Ÿ”Œ MCP & Skills** โ€” Plug in MCP servers or install skills from GitHub on the fly. > [!TIP] > Looking for ready-to-use research skills? Check out [**EvoSkills**](https://github.com/EvoScientist/EvoSkills) โ€” powered by [**EvoScientist**](https://github.com/EvoScientist/EvoScientist)'s engine and installable skills, the entire end-to-end research lifecycle is covered out of the box. [**EvoSkills**](https://github.com/EvoScientist/EvoSkills) are also compatible with other CLI coding agents. ## ๐Ÿ”ฅ News - **[03 Jun 2026]** ๐Ÿฅˆ Ranked #2 overall โ€” and ๐Ÿฅ‡ #1 among `GPT-5.4`-based agents โ€” on [ResearchClawBench](https://github.com/InternScience/ResearchClawBench) (Agent Mode)! [**Leaderboard**](https://internscience.github.io/ResearchClawBench-Home/) ๐Ÿ‘ˆ - **[18 Apr 2026]** ๐Ÿฅ‡ Ranked #1 on [DeepResearch Bench](https://deepresearch-bench.github.io/) at submission time! [**Leaderboard**](https://huggingface.co/spaces/muset-ai/DeepResearch-Bench-Leaderboard) ๐Ÿ‘ˆ - **[13 Apr 2026]** ๐Ÿฅ‡ Reclaimed #1 on [DeepResearch Bench II](https://agentresearchlab.com/benchmarks/deepresearch-bench-ii/index.html#leaderboard) at submission time! [**Leaderboard**](https://agentresearchlab.com/benchmarks/deepresearch-bench-ii/index.html#leaderboard) ๐Ÿ‘ˆ - **[26 Mar 2026]** ๐Ÿฅ‡ Ranked #1 on [AstaBench Data Analysis](https://allenai-asta-bench-leaderboard.hf.space/home) at submission time! [**Leaderboard**](https://allenai-asta-bench-leaderboard.hf.space/data-analysis) ๐Ÿ‘ˆ - **[25 Mar 2026]** ๐Ÿฅ‡ Ranked #1 on [AstaBench Code & Execution](https://allenai-asta-bench-leaderboard.hf.space/home) at submission time! [**Leaderboard**](https://allenai-asta-bench-leaderboard.hf.space/code-execution) ๐Ÿ‘ˆ - **[13 Mar 2026]** ๐Ÿš€ [**EvoScientist**](https://github.com/EvoScientist/EvoScientist) officially debuts! - **[11 Mar 2026]** โ›ณ Technical Report is live! [**Check it out**](https://arxiv.org/abs/2603.08127) ๐Ÿ‘ˆ - **[06 Mar 2026]** ๐Ÿฅ‡ Ranked #1 on [DeepResearch Bench II](https://agentresearchlab.com/benchmarks/deepresearch-bench-ii/index.html#leaderboard) at submission time! [**Leaderboard**](https://agentresearchlab.com/benchmarks/deepresearch-bench-ii/index.html#leaderboard) ๐Ÿ‘ˆ - **[24 Nov 2025]** ๐Ÿ† 6/6 accepted at [ICAIS 2025](https://icais.ai/) AI Scientist Track โ€” Best Paper & AI Reviewer's Appraisal Award! [**Details**](https://airaxiv.com/papers/?q=zacharyzhang2022%40gmail.com) ๐Ÿ‘ˆ
๐Ÿ“ฆ Release Highlights โ€” version changelog - **[11 Jul 2026]** **[v0.2.2](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.2)** โ€” New models selectable in onboarding and `/model`: GPT-5.6 (sol, terra, luna) for OpenAI and OpenRouter, plus Grok 4.5 and Tencent Hunyuan HY3 on OpenRouter; tighter config-file permissions and a reworked onboarding OAuth flow for auxiliary models. - **[05 Jul 2026]** **[v0.2.1](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.1)** โ€” AutoSkills: EvoMemory drafts reusable skills from its own observation clusters for you to review via `/autoskills`; a new `--output-format stream-json` for headless / SDK clients; richer slash-command completions; Windows UTF-8 config reads; a TUI welcome-banner fix; langchain-openrouter 0.2.5. - **[26 Jun 2026]** **[v0.2.0](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.2.0)** โ€” Scheduled tasks: cron-style recurring runs via `/schedule` or natural language, run unattended with shell-access gating; self-linking memory that connects observations into a knowledge graph (complements / contradicts / supersedes); a read-only `GET /api/models` endpoint for the WebUI model picker. - **[23 Jun 2026]** **[v0.1.9](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.9)** โ€” Hotfix for fresh installs: the first message crashed with `The subagent `task` tool cannot be exposed via `ptc`` after deepagents 0.6.11 / langchain-quickjs 0.3 reserved `task` as the REPL global. Removed `task` from the code-interpreter PTC allowlist (`task()` stays available as the REPL global; async dispatch stays in PTC) and pinned `deepagents[quickjs]~=0.6.11`. - **[22 Jun 2026]** **[v0.1.8](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.8)** โ€” LangGraph gateway layer: UI-agnostic graph & thread access shared across CLI / TUI / serve / channel; OpenRouter Anthropic prompt caching now **on by default** (opt out with `openrouter_anthropic_prompt_cache=false`); slash-command Enter now submits correctly when a command name prefixes another; pre-commit ruff bump. - **[16 Jun 2026]** **[v0.1.7](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.7)** โ€” Memory retrieval: agents run a per-task preflight over stored observations (`search_observations` ranked keyword search + `read_memory`); multi-stage slash-command completions with subcommand awareness; Windows reliability fixes (async MCP tool execution + graph-state recovery after interruptions, `cmd.exe` path quoting); quoted virtual-path handling; deepagents 0.6.10. - **[11 Jun 2026]** **[v0.1.6](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.6)** โ€” Session persistence fix: WebUI / `langgraph dev` threads survive restarts (SQLite checkpointer + scoped thread restore), memory-worker checkpoint cleanup (delete-on-completion + startup purge), short thread IDs in `/threads` and resume hints. - **[11 Jun 2026]** **[v0.1.5](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.5)** โ€” Dangerous mode (real-filesystem access with safety checks), LangGraph streaming v3 pipeline, opt-in Anthropic prompt caching via OpenRouter, claude-fable-5, free-scrolling TUI, Windows CI support, public Cloudflare tunnel for `EvoSci deploy` (`--tunnel`). - **[07 Jun 2026]** **[v0.1.4](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.4)** โ€” Auxiliary model for background tasks & tool selection, observation-memory lifecycle, Qwen3.7-Max/Plus (DashScope), UI-backend selection, plus an OpenRouter multi-turn reasoning fix. - **[03 Jun 2026]** **[v0.1.3](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.3)** โ€” Multimodal handling (image + PDF/doc flatten/hoisting, text-only model fallback), runtime-context middleware, memory middleware โ†’ profile files with stream timeline narration, textual CJK-input fix. - **[02 Jun 2026]** **[v0.1.2](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.2)** โ€” Browser WebUI mode, `EvoSci deploy` standalone LangGraph server, default model โ†’ claude-sonnet-4-6, MiniMax M3, plus sandbox-timeout and async-notifier channel-routing fixes. - **[19 May 2026]** **[v0.1.1](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.1)** โ€” deepagents 0.6.2 DeltaChannel upgrade, tier-aware skill mounts, status & elapsed-time bar, QQ inline buttons. - **[08 May 2026]** **[v0.1.0](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.0)** โ€” Async sub-agents (langgraph dev), official Docker image, personal WeChat, sessions-DB compaction. - **[26 Apr 2026]** **[v0.0.9](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.9)** โ€” Faster startup, in-session model switching, unified slash commands, DeepSeek V4 thinking fix. - **[21 Apr 2026]** **[v0.0.8](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.8)** โ€” Unified data directory, status bar, enhanced ask-user & auto-mode. - **[10 Apr 2026]** **[v0.0.7](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.7)** โ€” Global skills directory, Moonshot/Kimi providers, ccproxy fixes, channel improvements. - **[03 Apr 2026]** **[v0.0.6](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.6)** โ€” Dynamic context management, OpenRouter reasoning, More Effort mode, GLM-5.1. - **[27 Mar 2026]** **[v0.0.5](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.5)** โ€” Context-retry middleware, OpenAI relay config, Feishu event-loop fix, `/compact`. - **[24 Mar 2026]** **[v0.0.4](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.4)** โ€” `@file` mentions, resume history, Feishu WebSocket, LaTeX setup. - **[20 Mar 2026]** **[v0.0.3](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.3)** โ€” Voice input (STT), MiniMax/DeepSeek providers, MCP & skill browsers. - **[17 Mar 2026]** **[v0.0.2](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.2)** โ€” OAuth sign-in, human-in-the-loop & `ask_user`, headless serve mode. - **[13 Mar 2026]** **[v0.0.1](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.1)** โ€” First public release of the self-evolving AI Scientist.
## ๐Ÿ“– Table of Contents - [๐Ÿ“ฆ Installation](#-installation) - [๐Ÿ”‘ Configuration](#-configuration) - [โšก Quick Start](#-quick-start) - [โฐ Scheduled Tasks](#-scheduled-tasks) - [๐Ÿช Examples & Recipes](#-examples--recipes) - [๐Ÿ”Œ MCP Integration](#-mcp-integration) - [๐Ÿ“ฑ Channels](#-channels) - [๐Ÿ“š Acknowledgments](#-acknowledgments) - [๐ŸŽฏ Roadmap](#-แฏ“-roadmap) - [๐ŸŒ Project Roles](#-project-roles) - [๐Ÿค Contributing](#-contributing) - [๐Ÿ“ Citation](#-citation) ## ๐Ÿ“ฆ Installation > [!TIP] > Requires **Python 3.11+** (**< 3.14**). We recommend [**uv**](https://docs.astral.sh/uv/) or **conda** for dependency management and virtual environments. Prefer to skip a local Python install entirely? Jump to [๐Ÿณ Docker](#-docker).
๐Ÿช› Install uv (if you don't have it) ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ```
### Quick Install ```bash uv tool install EvoScientist ``` > [!NOTE] > To update an existing installation to the latest version, use `uv tool upgrade`: > ```bash > uv tool upgrade EvoScientist > ``` Or install into the current environment instead: ```bash uv pip install EvoScientist ``` ### Latest from GitHub To get the latest patches before a [PyPI](https://pypi.org/project/EvoScientist/) release: ```bash uv pip install git+https://github.com/EvoScientist/EvoScientist.git ``` ### Development Install ```bash git clone https://github.com/EvoScientist/EvoScientist.git cd EvoScientist uv sync --dev ``` enable pre-commit hooks: ```bash uv run pre-commit install ```
Using conda ```bash conda create -n EvoSci python=3.11 -y conda activate EvoSci pip install -e ".[dev]" ```
Using PyPi ```bash pip install EvoScientist # quick install pip install -e ".[dev]" # development install ```
Optional: Channel dependencies Messaging channel integrations require extra dependencies. Install only what you need: ```bash uv pip install "EvoScientist[telegram]" # Telegram uv pip install "EvoScientist[discord]" # Discord uv pip install "EvoScientist[slack]" # Slack uv pip install "EvoScientist[wechat]" # WeChat uv pip install "EvoScientist[qq]" # QQ uv pip install "EvoScientist[feishu]" # Feishu uv pip install "EvoScientist[all-channels]" # everything ```
Upgrade to the latest code base ```bash git pull && uv sync --dev ```
### ๐Ÿณ Docker A pre-built image is published to [GitHub Container Registry](https://github.com/EvoScientist/EvoScientist/pkgs/container/evoscientist) with everything `evosci onboard` would otherwise install for you: - Python 3.11, EvoScientist, and the cross-platform messaging channels (i.e., `EvoScientist[all-channels]`) - **`uv`** โ€” used by the MCP registry to install Python MCP servers on demand - **Node.js 24 LTS + `npx`** โ€” required by the majority of MCP servers The **iMessage** channel isn't usable from the container โ€” it requires the `imsg` CLI talking to macOS's Messages.app, which is host-OS-specific. Run EvoScientist directly on macOS if you need iMessage. Running EvoScientist in a container also **sandboxes the agent's shell access** โ€” file edits and shell commands stay confined to volumes you explicitly mount. ```bash docker run -it --rm \ --env-file .env \ -v "$(pwd)/workspace:/workspace" \ -v evosci-data:/home/evosci/.evoscientist \ ghcr.io/evoscientist/evoscientist:latest ``` What the mounts are for: | Mount | Purpose | | --- | --- | | `--env-file .env` | API keys (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, โ€ฆ) | | `./workspace:/workspace` | The agent's working directory | | `evosci-data:/home/evosci/.evoscientist` | Persistent app state: sessions DB, global skills, memories, and `config.yaml`/`mcp.yaml` | > [!IMPORTANT] > The image runs as a non-root user (`evosci`, UID `1000`). For the `./workspace` bind mount, the host directory must be writable by that UID. If your host user ID differs, either `chown -R 1000:1000 ./workspace` once, or pass `--user "$(id -u):$(id -g)"` on every `docker run` so the container takes on your UID. Or use `docker compose` (a starter [`docker-compose.yml`](./docker-compose.yml) is included): ```bash docker compose run --rm evoscientist ``` To build the image locally instead of pulling: ```bash docker build -t evoscientist:dev . ``` > [!NOTE] > Not bundled โ€” install on demand by deriving from the image: > - **`stt`** (speech-to-text via `faster-whisper`) and **`oauth`** (`ccproxy-api`) > - **TinyTeX / LaTeX** (`pdflatex`, `latexmk`) for paper-writing skills > > ```dockerfile > FROM ghcr.io/evoscientist/evoscientist:latest > > # Python extras > USER root > RUN uv pip install --python /opt/venv/bin/python "EvoScientist[stt,oauth]" > USER evosci > > # TinyTeX > # The official install method is `curl | sh`; if you'd rather not > # pipe an unpinned remote script into a shell, fetch a specific TinyTeX > # release tarball from https://github.com/rstudio/tinytex-releases, verify > # its checksum, and extract to /home/evosci/.TinyTeX instead. > RUN curl -sL https://yihui.org/tinytex/install-bin-unix.sh | sh \ > && /home/evosci/.TinyTeX/bin/*/tlmgr install latexmk > ```

๐Ÿ”Back to top

## ๐Ÿ”‘ Configuration The easiest way to configure API keys is the interactive wizard: ```bash EvoSci onboard ``` > [!TIP] > It walks you through provider selection, key validation, model choice, and workspace mode. > Supports OAuth sign-in for CLI coding agent subscribers โ€” no API key needed. ![onboard](https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/EvoScientist_onboard.png)
๐Ÿ“Ÿ Manual configuration via environment variables Set at least one LLM provider key and (optionally) a search key: ```bash # Pick one LLM provider export ANTHROPIC_API_KEY="sk-..." # Claude โ€” console.anthropic.com export OPENAI_API_KEY="sk-..." # GPT โ€” platform.openai.com export GOOGLE_API_KEY="AI..." # Gemini โ€” aistudio.google.com/api-keys export MINIMAX_API_KEY="sk-..." # MiniMax โ€” platform.minimaxi.com (China, default) or platform.minimax.io (Global) export MINIMAX_BASE_URL="https://api.minimax.io/anthropic" # only needed for Global keys (default: https://api.minimaxi.com/anthropic) export NVIDIA_API_KEY="nvapi-..." # NIM โ€” build.nvidia.com # Web search (optional) export TAVILY_API_KEY="tvly-..." # app.tavily.com ``` Or use `EvoSci config set` to persist keys in `~/.config/evoscientist/config.yaml`. Alternatively, copy the example `.env` file for project-level configuration: ```bash cp .env.example .env # then fill in your keys ``` > โš ๏ธ Never commit `.env` files with real keys. It is already in `.gitignore`.

๐Ÿ”Back to top

## โšก Quick Start ```bash EvoSci # or EvoScientist โ€” interactive mode (TUI by default) ``` ![demo](https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/EvoScientist_cli.png) > Run `EvoSci -h` for all CLI options. ![cli help](https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/EvoScientist_cli_help.png) > [!TIP] > Prefer a browser? Run `EvoSci --ui webui` for the web workspace UI. Need to copy long outputs? Use `--ui cli` for classic mode where native terminal copy works freely. On macOS, [iTerm2](https://iterm2.com/) users can also hold `โŒฅ Option` while dragging to select, then `โŒ˜+C`.
Common examples ```bash EvoSci # interactive mode (TUI by default) EvoSci -p "your question" # single-shot mode EvoSci --workdir /path/to/project # open in a specific directory EvoSci -m run # isolated per-session workspace EvoSci --ui cli # classic CLI (lightweight) EvoSci --ui webui # browser workspace UI (needs Node/npx) EvoSci serve # headless mode โ€” channels only, no interactive prompt EvoSci deploy # standalone LangGraph server for external UIs / SDK clients EvoSci -p "query" --output-format stream-json --auto-mode # JSONL event stream on stdout (for programmatic clients) ``` `--output-format stream-json` makes a single-shot (`-p`) run emit its native events as line-delimited JSON on stdout (one object per line), with all human output on stderr โ€” the integration surface for headless clients (e.g. an agent runtime). See [docs/guides/stream-json.md](docs/guides/stream-json.md) for the event schema.
Desktop WebUI Set the UI backend to `webui` and a fresh `EvoSci` session launches a deploy-style LangGraph server **and** the [`@evoscientist/webui`](https://www.npmjs.com/package/@evoscientist/webui) front-end in one terminal โ€” no second process to manage: ```bash EvoSci config set ui_backend webui # persist; or one-off with `EvoSci --ui webui` EvoSci # opens http://localhost:4716 EvoSci config set webui_port 4800 # change the front-end port (must differ from the langgraph dev port) ``` Requires **Node.js 24 LTS** (for `npx`); the first launch downloads `@evoscientist/webui` and needs network. Note: the WebUI does not show your CLI/TUI chat history, and `-p` / `--resume` fall back to the classic CLI.
Action Approval By default, shell commands (`execute` tool) require human approval before running. To skip approval prompts: ```bash # Per-session: auto-approve via CLI flag EvoSci --auto-approve EvoSci -p "query" --auto-approve # Persistent: set in config (applies to all future sessions) EvoSci config set auto_approve true # Or allow only specific command prefixes EvoSci config set shell_allow_list "python,pip,pytest,ruff,git" ``` During a session you can also reply **3** (Approve all) at any approval prompt to auto-approve for the rest of that session. > [!CAUTION] > **Dangerous mode** lifts the workspace sandbox entirely โ€” the agent can read, write, and delete files **anywhere on the real filesystem** (privileged commands like `sudo`/`rm -rf /` are still blocked). It implies `--auto-approve` (no prompts). Use only when you fully trust the task. > > ```bash > EvoSci --dangerous # per-session > EvoSci config set dangerous_mode true # persistent > ```
Agent Questions The agent can proactively ask you questions when it needs clarification (e.g., dataset choice, experiment direction). This is enabled by default. To disable: ```bash # Persistent: set in config EvoSci config set enable_ask_user false # Re-enable EvoSci config set enable_ask_user true ```
In-session commands | Command | Description | | ------- | ----------- | | `/current` | Show current session info | | `/threads` | List recent sessions | | `/resume` | Resume a previous session | | `/delete` | Delete a saved session | | `/new` | Start a new session | | `/clear` | Clear chat history | | `/skills` | List installed skills | | `/install-skill ` | Add a skill from path or GitHub | | `/uninstall-skill ` | Remove an installed skill | | `/mcp` | Manage MCP servers | | `/channel` | Configure messaging channels | | `/help` | Show available commands | | `/exit` | Quit |
Script Inference ```python from EvoScientist import EvoScientist_agent from langchain_core.messages import HumanMessage from EvoScientist.utils import format_messages thread = {"configurable": {"thread_id": "1"}} last_len = 0 for state in EvoScientist_agent.stream( {"messages": [HumanMessage(content="Hi?")]}, config=thread, stream_mode="values", ): msgs = state["messages"] if len(msgs) > last_len: format_messages(msgs[last_len:]) last_len = len(msgs) ```

๐Ÿ”Back to top

## โฐ Scheduled Tasks Automate recurring research tasks with cron-style schedules. ```bash # Add a schedule (cron expression required for /schedule add) /schedule add "0 9 * * 1-5" "Summarise the latest ML papers from arXiv with the paper-navigator skill, and save the summary to /memories/daily-papers.md" /schedule add "*/10 * * * *" "Check my running experiment's status and append the result to experiment_log.json" # Manage schedules /schedule list # list active schedules /schedule remove # delete a schedule /schedule run # fire a schedule immediately /schedule pause # pause without deleting /schedule resume # resume a paused schedule ``` Note: `/schedule add` requires a cron expression (5 fields, e.g. `*/10 * * * *`). To schedule with natural language ("every 10 minutes"), just ask in chat โ€” the agent translates it via the `schedule_task` tool. Output goes wherever the task's prompt tells it to write โ€” there is no enforced output directory, so make the prompt specific about file locations. Run `/schedule list` to review schedules; the agent is also made aware of the active schedules via a `` context block, so you can just ask it what's scheduled. > **Cost note:** each scheduled run consumes LLM tokens. Delete unused schedules with `/schedule remove` to avoid accumulating charges.

๐Ÿ”Back to top

## ๐Ÿช Examples & Recipes A curated collection of official examples, advanced usage patterns, and community-contributed recipes to help you get the most out of EvoScientist. ๐Ÿ‘‰ **[Browse all examples & recipes](https://github.com/EvoScientist/EvoScientist/tree/main/docs#-examples--recipes)**

๐Ÿ”Back to top

## ๐Ÿ”Œ MCP Integration Add external tools via [MCP](https://modelcontextprotocol.io/) servers with a single command: ```bash # Usage EvoSci mcp add [-- args...] # Example EvoSci mcp add sequential-thinking npx -- -y @modelcontextprotocol/server-sequential-thinking ``` > [!TIP] > For command options, config fields, tool routing, wildcard filtering, and troubleshooting, see the **[MCP Integration Guide](https://github.com/EvoScientist/EvoScientist/tree/main/EvoScientist/mcp#model-context-protocol-integration)**.

๐Ÿ”Back to top

## ๐Ÿ“ฑ Channels Connect messaging platforms so they share the same agent session as the CLI: ```bash # Usage EvoSci channel setup # Example EvoSci channel setup telegram ``` Multiple channels can run concurrently โ€” comma-separate names in the config: ```yaml channel_enabled: "telegram,slack,feishu,qq" ``` The channel can also be started interactively with `/channel` in the CLI session. > [!TIP] > For per-channel setup guides, capability matrix, architecture details, and troubleshooting, see the **[Channel Integration Guide](https://github.com/EvoScientist/EvoScientist/tree/main/EvoScientist/channels#channels)**.

๐Ÿ”Back to top

## ๐Ÿ“š Acknowledgments This project builds upon the following outstanding open-source works: - [**LangChain**](https://github.com/langchain-ai/langchain) โ€” A framework for building agents and LLM-powered applications. - [**DeepAgents**](https://github.com/langchain-ai/deepagents) โ€” The batteries-included agent harness. We thank the authors for their valuable contributions to the open-source community.

๐Ÿ”Back to top

## ๐ŸŽฏ แฏ“โžค Roadmap Coming soon: - [x] ๐Ÿ–ฅ๏ธ Full-screen TUI and classic CLI interfaces - [x] ๐Ÿ“ป EvoMemory v1.0 shipped - [x] โš’๏ธ 200+ predefined skills built in - [x] ๐Ÿงฉ Built-in research-lifecycle skills shipped - [x] ๐Ÿ‘‹ Human-in-the-loop action approval - [x] ๐Ÿฆพ Agent-initiated human clarification - [x] ๐Ÿ“‘ Technical report on the way - [x] ๐Ÿ” OAuth sign-in (CLI coding agent subscribers) - [x] ๐Ÿ“บ Web app with workspace UI - [x] โฐ Scheduled tasks (cron-style, via `/schedule`) - [ ] ๐Ÿ“น Demo and tutorial in the works - [ ] ๐Ÿ“Š Benchmark suite to be released Stay tuned โ€” more features are on the way!

๐Ÿ”Back to top

## ๐ŸŒ Project Roles #### Core Contributors
Xi Zhang
Xi Zhang
Yougang Lyu
Yougang Lyu
Dinos Papakostas
Dinos Papakostas
Yuyue Zhao
Yuyue Zhao
Ziheng Zhang
Ziheng Zhang
Xiaohui Yan
Xiaohui Yan
#### Contributors Jan Piotrowski, Wiktor Cupiaล‚, Jakub Kaliski, Jakub Filipiuk, Xinhao Yi, Shuyu Guo, Andreas Sauter, Wenxiang Hu, Jacopo Urbani, Zaiqiao Meng, Jun Luo, Lun Zhou > Xiaoyi DeepResearch [*Xiaoyi DeepResearch*](https://xiaoyi.huawei.com/chat/research) *Team* and the wider open-source community contribute to this project. For any inquiries or collaboration opportunities, please contact: [**EvoScientist.ai@gmail.com**](mailto:evoscientist.ai@gmail.com)

๐Ÿ”Back to top

## ๐Ÿค Contributing EvoScientist Team We welcome contributions from developers, researchers, and AI coding agents at all levels. Our [Contributing Guidelines](./CONTRIBUTING.md) are designed for both humans and AI agents โ€” covering architecture, patterns, extension guides, and code standards to help you contribute safely and effectively. ### ๐Ÿ‘ฅ Community Contributors โš—๏ธ Join the EvoScientist community to discuss AI-driven research, share experiment results, and help shape the future of automated scientific discovery. - [Discord](https://discord.gg/AZ9ZMXkunY) โ€” Ask questions, share findings, and collaborate with researchers and developers in real-time. - [WeChat](https://github.com/EvoScientist/EvoScientist/blob/main/.github/assets/cn_info.md) โ€” Connect with our Chinese-speaking research community. WeChat QR Code Every contribution brings us one step closer to a future where AI accelerates scientific breakthroughs for all of humanity.

๐Ÿ”Back to top

## ๐Ÿ“ Citation If you find our paper and code useful in your research and applications, please cite using this BibTeX: ```bibtex @article{evoscientist2026, title={EvoScientist: Towards Multi-Agent Evolving AI Scientists for End-to-End Scientific Discovery}, author={Yougang Lyu and Xi Zhang and Xinhao Yi and Yuyue Zhao and Shuyu Guo and Wenxiang Hu and Jan Piotrowski and Jakub Kaliski and Jacopo Urbani and Zaiqiao Meng and Lun Zhou and Xiaohui Yan}, journal={arXiv preprint arXiv:2603.08127}, year={2026} } ```

๐Ÿ”Back to top

## ๐Ÿ“œ License This project is licensed under the Apache License 2.0 - see the [LICENSE](./LICENSE) file for details.

๐Ÿ”Back to top