EvoScientist 0.0.1.dev2__py3-none-any.whl → 0.0.1.dev4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- EvoScientist/EvoScientist.py +58 -22
- EvoScientist/__init__.py +19 -0
- EvoScientist/cli.py +480 -1365
- EvoScientist/config.py +274 -0
- EvoScientist/llm/__init__.py +21 -0
- EvoScientist/llm/models.py +99 -0
- EvoScientist/memory.py +715 -0
- EvoScientist/middleware.py +49 -4
- EvoScientist/onboard.py +725 -0
- EvoScientist/paths.py +44 -0
- EvoScientist/skills_manager.py +391 -0
- EvoScientist/stream/__init__.py +25 -0
- EvoScientist/stream/display.py +604 -0
- EvoScientist/stream/events.py +415 -0
- EvoScientist/stream/state.py +343 -0
- EvoScientist/stream/utils.py +23 -16
- EvoScientist/tools.py +75 -2
- {evoscientist-0.0.1.dev2.dist-info → evoscientist-0.0.1.dev4.dist-info}/METADATA +144 -4
- {evoscientist-0.0.1.dev2.dist-info → evoscientist-0.0.1.dev4.dist-info}/RECORD +23 -13
- {evoscientist-0.0.1.dev2.dist-info → evoscientist-0.0.1.dev4.dist-info}/WHEEL +0 -0
- {evoscientist-0.0.1.dev2.dist-info → evoscientist-0.0.1.dev4.dist-info}/entry_points.txt +0 -0
- {evoscientist-0.0.1.dev2.dist-info → evoscientist-0.0.1.dev4.dist-info}/licenses/LICENSE +0 -0
- {evoscientist-0.0.1.dev2.dist-info → evoscientist-0.0.1.dev4.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: EvoScientist
|
|
3
|
-
Version: 0.0.1.
|
|
3
|
+
Version: 0.0.1.dev4
|
|
4
4
|
Summary: EvoScientist: Towards Self-Evolving AI Scientists for End-to-End Scientific Discovery
|
|
5
5
|
Author: Xi Zhang
|
|
6
6
|
Maintainer: Xi Zhang
|
|
@@ -16,11 +16,14 @@ License-File: LICENSE
|
|
|
16
16
|
Requires-Dist: deepagents>=0.3.6
|
|
17
17
|
Requires-Dist: langchain>=1.2
|
|
18
18
|
Requires-Dist: langchain-anthropic>=1.3
|
|
19
|
-
Requires-Dist:
|
|
19
|
+
Requires-Dist: langchain-openai>=0.3
|
|
20
|
+
Requires-Dist: langchain-nvidia-ai-endpoints>=0.3
|
|
20
21
|
Requires-Dist: tavily-python>=0.7
|
|
21
22
|
Requires-Dist: pyyaml>=6.0
|
|
22
23
|
Requires-Dist: rich>=14.0
|
|
23
24
|
Requires-Dist: prompt-toolkit>=3.0
|
|
25
|
+
Requires-Dist: questionary>=2.0.1
|
|
26
|
+
Requires-Dist: typer>=0.12
|
|
24
27
|
Requires-Dist: python-dotenv>=1.0
|
|
25
28
|
Requires-Dist: langgraph-cli[inmem]>=0.4
|
|
26
29
|
Requires-Dist: httpx>=0.27
|
|
@@ -28,6 +31,8 @@ Requires-Dist: markdownify>=0.14
|
|
|
28
31
|
Provides-Extra: dev
|
|
29
32
|
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
30
33
|
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
34
|
+
Requires-Dist: ruff>=0.5; extra == "dev"
|
|
35
|
+
Requires-Dist: build>=1.0; extra == "dev"
|
|
31
36
|
Dynamic: license-file
|
|
32
37
|
|
|
33
38
|
<!-- Add logo here -->
|
|
@@ -60,7 +65,9 @@ Dynamic: license-file
|
|
|
60
65
|
|
|
61
66
|
|
|
62
67
|
## 📖 Contents
|
|
68
|
+
- [🤖 Supported Models](#-supported-models)
|
|
63
69
|
- [⛏️ Installation](#️-installation)
|
|
70
|
+
- [🔑 API Key Configuration](#-api-key-configuration)
|
|
64
71
|
- [⚡ Quick Start](#-quick-start)
|
|
65
72
|
- [CLI Inference](#cli-inference)
|
|
66
73
|
- [Script Inference](#script-inference)
|
|
@@ -71,6 +78,24 @@ Dynamic: license-file
|
|
|
71
78
|
- [📦 Codebase Contributors](#-codebase-contributors)
|
|
72
79
|
- [📜 License](#-license)
|
|
73
80
|
|
|
81
|
+
## 🤖 Supported Models
|
|
82
|
+
|
|
83
|
+
| Provider | Short Name | Model ID |
|
|
84
|
+
|----------|-----------|----------|
|
|
85
|
+
| Anthropic | `claude-sonnet-4-5` | `claude-sonnet-4-5-20250929` |
|
|
86
|
+
| Anthropic | `claude-opus-4-5` | `claude-opus-4-5-20251101` |
|
|
87
|
+
| Anthropic | `claude-3-5-sonnet` | `claude-3-5-sonnet-20241022` |
|
|
88
|
+
| Anthropic | `claude-3-5-haiku` | `claude-3-5-haiku-20241022` |
|
|
89
|
+
| OpenAI | `gpt-4o` | `gpt-4o` |
|
|
90
|
+
| OpenAI | `gpt-4o-mini` | `gpt-4o-mini` |
|
|
91
|
+
| OpenAI | `o1` | `o1` |
|
|
92
|
+
| OpenAI | `o1-mini` | `o1-mini` |
|
|
93
|
+
| NVIDIA | `glm4.7` | `z-ai/glm4.7` |
|
|
94
|
+
| NVIDIA | `deepseek-v3.1` | `deepseek-ai/deepseek-v3.1-terminus` |
|
|
95
|
+
| NVIDIA | `nemotron-nano` | `nvidia/nemotron-3-nano-30b-a3b` |
|
|
96
|
+
|
|
97
|
+
You can also use any full model ID directly — the provider will be inferred automatically.
|
|
98
|
+
|
|
74
99
|
## ⛏️ Installation
|
|
75
100
|
|
|
76
101
|
> [!TIP]
|
|
@@ -106,6 +131,56 @@ uv pip install -e .
|
|
|
106
131
|
|
|
107
132
|
</details>
|
|
108
133
|
|
|
134
|
+
## 🔑 API Key Configuration
|
|
135
|
+
|
|
136
|
+
EvoScientist requires API keys for LLM inference and web search. You can configure them in three ways:
|
|
137
|
+
|
|
138
|
+
### Option A: Interactive Setup Wizard (Recommended)
|
|
139
|
+
|
|
140
|
+
```Shell
|
|
141
|
+
EvoSci onboard
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The wizard guides you through selecting a provider, entering API keys, choosing a model, and configuring workspace settings. Keys are validated automatically.
|
|
145
|
+
|
|
146
|
+
### Option B: Environment Variables (Global)
|
|
147
|
+
|
|
148
|
+
Set keys directly in your terminal session. Add these to your shell profile (`~/.bashrc`, `~/.zshrc`, etc.) to persist across sessions:
|
|
149
|
+
|
|
150
|
+
```Shell
|
|
151
|
+
export ANTHROPIC_API_KEY="your_anthropic_api_key_here"
|
|
152
|
+
export TAVILY_API_KEY="your_tavily_api_key_here"
|
|
153
|
+
|
|
154
|
+
# Optional: OpenAI or NVIDIA provider
|
|
155
|
+
export OPENAI_API_KEY="your_openai_api_key_here"
|
|
156
|
+
export NVIDIA_API_KEY="your_nvidia_api_key_here"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Option C: `.env` File (Project-level)
|
|
160
|
+
|
|
161
|
+
Create a `.env` file in the project root. This keeps keys scoped to the project and out of your shell history:
|
|
162
|
+
|
|
163
|
+
```Shell
|
|
164
|
+
cp .env.example .env
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Then edit `.env` and fill in your keys:
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
ANTHROPIC_API_KEY=your_anthropic_api_key_here
|
|
171
|
+
TAVILY_API_KEY=your_tavily_api_key_here
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
> [!WARNING]
|
|
175
|
+
> Never commit `.env` files containing real API keys to version control. The `.env` file is already included in `.gitignore`.
|
|
176
|
+
|
|
177
|
+
| Key | Required | Description |
|
|
178
|
+
|-----|----------|-------------|
|
|
179
|
+
| `ANTHROPIC_API_KEY` | For Anthropic | Anthropic API key for Claude ([console.anthropic.com](https://console.anthropic.com/)) |
|
|
180
|
+
| `OPENAI_API_KEY` | For OpenAI | OpenAI API key for GPT models ([platform.openai.com](https://platform.openai.com/)) |
|
|
181
|
+
| `NVIDIA_API_KEY` | For NVIDIA | NVIDIA API key for NIM models ([build.nvidia.com](https://build.nvidia.com/)) |
|
|
182
|
+
| `TAVILY_API_KEY` | Yes | Tavily API key for web search ([app.tavily.com](https://app.tavily.com/)) |
|
|
183
|
+
|
|
109
184
|
## ⚡ Quick Start
|
|
110
185
|
|
|
111
186
|
### CLI Inference
|
|
@@ -120,9 +195,74 @@ or
|
|
|
120
195
|
```Shell
|
|
121
196
|
EvoSci # or EvoScientist
|
|
122
197
|
```
|
|
123
|
-
**Optional arguments:**
|
|
198
|
+
**Optional arguments:**
|
|
124
199
|
|
|
125
|
-
|
|
200
|
+
```
|
|
201
|
+
--mode <mode> Workspace mode: 'daemon' (persistent) or 'run' (isolated per-session)
|
|
202
|
+
--workdir <path> Override workspace directory for this session
|
|
203
|
+
--use-cwd Use current working directory as workspace
|
|
204
|
+
--thread-id <id> Resume a conversation thread
|
|
205
|
+
--no-thinking Disable thinking display
|
|
206
|
+
-p, --prompt <q> Single-shot mode: execute query and exit
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Configuration commands:**
|
|
210
|
+
|
|
211
|
+
```Shell
|
|
212
|
+
EvoSci onboard # Interactive setup wizard
|
|
213
|
+
EvoSci onboard --skip-validation # Skip API key validation
|
|
214
|
+
EvoSci config # List all configuration values
|
|
215
|
+
EvoSci config get <key> # Get a single value
|
|
216
|
+
EvoSci config set <key> <val> # Set a single value
|
|
217
|
+
EvoSci config reset --yes # Reset to defaults
|
|
218
|
+
EvoSci config path # Show config file path
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Interactive Commands:**
|
|
222
|
+
|
|
223
|
+
| Command | Description |
|
|
224
|
+
|---------|-------------|
|
|
225
|
+
| `/exit` | Quit the session |
|
|
226
|
+
| `/new` | Start a new session (new workspace + thread) |
|
|
227
|
+
| `/thread` | Show current thread ID and workspace path |
|
|
228
|
+
| `/skills` | List installed user skills |
|
|
229
|
+
| `/install-skill <source>` | Install a skill from local path or GitHub |
|
|
230
|
+
| `/uninstall-skill <name>` | Uninstall a user-installed skill |
|
|
231
|
+
|
|
232
|
+
**Skill Installation Examples:**
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Install from local path
|
|
236
|
+
/install-skill ./my-skill
|
|
237
|
+
|
|
238
|
+
# Install from GitHub URL
|
|
239
|
+
/install-skill https://github.com/owner/repo/tree/main/skill-name
|
|
240
|
+
|
|
241
|
+
# Install from GitHub shorthand
|
|
242
|
+
/install-skill owner/repo@skill-name
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Runtime Directories
|
|
246
|
+
|
|
247
|
+
By default, the **workspace** is created under the current directory:
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
./workspace/
|
|
251
|
+
memory/ # shared MEMORY.md (persistent across sessions)
|
|
252
|
+
skills/ # user-installed skills
|
|
253
|
+
runs/ # per-session workspaces
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
You can force workspace to be the current directory via `--use-cwd`.
|
|
257
|
+
|
|
258
|
+
Override individual paths via environment variables:
|
|
259
|
+
|
|
260
|
+
| Variable | Default | Description |
|
|
261
|
+
|----------|---------|-------------|
|
|
262
|
+
| `EVOSCIENTIST_WORKSPACE_DIR` | `./workspace` | Root workspace directory |
|
|
263
|
+
| `EVOSCIENTIST_RUNS_DIR` | `./workspace/runs` | Per-session run directories |
|
|
264
|
+
| `EVOSCIENTIST_MEMORY_DIR` | `./workspace/memory` | Shared memory storage |
|
|
265
|
+
| `EVOSCIENTIST_SKILLS_DIR` | `./workspace/skills` | User-installed skills |
|
|
126
266
|
|
|
127
267
|
### Script Inference
|
|
128
268
|
```python
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
EvoScientist/EvoScientist.py,sha256=
|
|
2
|
-
EvoScientist/__init__.py,sha256=
|
|
1
|
+
EvoScientist/EvoScientist.py,sha256=qhiCOOZvH6cmjLiKRMvfr74xJM7x-dZrrRoX9xrfLtQ,6053
|
|
2
|
+
EvoScientist/__init__.py,sha256=BN8yi3iCIaq2gNfKORrI9OvMq49a2LrYWgEqW86vYLw,1120
|
|
3
3
|
EvoScientist/__main__.py,sha256=P5USQ_BiiY0TBhtajGMuX5AMXlQ5joz1kvljHeacqmA,91
|
|
4
4
|
EvoScientist/backends.py,sha256=3fIYRdOecL-KZx2hSNolsLO-2_rMzey-NpVMDMN701U,13355
|
|
5
|
-
EvoScientist/cli.py,sha256
|
|
6
|
-
EvoScientist/
|
|
5
|
+
EvoScientist/cli.py,sha256=5y_yTBhLnXxI5JVFawcYbsbDEWMED_t2-X4LVbT24kY,25978
|
|
6
|
+
EvoScientist/config.py,sha256=rXD_qlrTxP3HLH7H6DxvqKP4WwymyrzRyS8665igd6k,8649
|
|
7
|
+
EvoScientist/memory.py,sha256=ZgITkiLezjAeo9z12UWRZurE1hZU7ehF-SAKrchPIEs,26475
|
|
8
|
+
EvoScientist/middleware.py,sha256=hBHov8wFhe-AS-C84BFRDgikl5q8Xb9AMU4FfNxs9Jg,2620
|
|
9
|
+
EvoScientist/onboard.py,sha256=x6THI4ryTMTBQBb90JRFhcZmPsc970yh77_VCuNqwm8,22200
|
|
10
|
+
EvoScientist/paths.py,sha256=r3u632RJXfl8KPVhWBwVKPx9zFbvj1CZCIf7NeFBja4,1346
|
|
7
11
|
EvoScientist/prompts.py,sha256=ni-qHoEoM703xtfD4J3IlvwAWPcW8gcNiCBVjRJoy3g,10692
|
|
12
|
+
EvoScientist/skills_manager.py,sha256=r1ZCnZkFij-uRwj09FmT67VFR5eRgd3ynzKWmykQJeI,12205
|
|
8
13
|
EvoScientist/subagent.yaml,sha256=yoFlMJWitLlYuOe4_44EPG6vjpNP_txHBlqr-kNX2GM,6130
|
|
9
|
-
EvoScientist/tools.py,sha256=
|
|
14
|
+
EvoScientist/tools.py,sha256=7rCq3Sy74qAKEKnttvy9H7-LB8moXeYK0h7xRJnZJGk,6772
|
|
10
15
|
EvoScientist/utils.py,sha256=GuWMRMkPHYgUOtoPZA0ErIt4FUBE4NMkz_OZluxYyRo,6801
|
|
16
|
+
EvoScientist/llm/__init__.py,sha256=A3nQPKGP6qqh2K72_NZlUozNNwfD4jcEMyBerne9IGc,363
|
|
17
|
+
EvoScientist/llm/models.py,sha256=3AhHG__OLbnQlgB3kIM3Ejf9kU2Cv6rDzc7uT5eKzYk,3335
|
|
11
18
|
EvoScientist/skills/accelerate/SKILL.md,sha256=Ju_xLlGW3bZBWQO_8FWThkP155jE2atq9Ww0Zn8XwEs,8328
|
|
12
19
|
EvoScientist/skills/accelerate/references/custom-plugins.md,sha256=Gy8c9dcKFV93ksrRKkZr5DFbeH_iHgGzbTK_N0aTwCA,11781
|
|
13
20
|
EvoScientist/skills/accelerate/references/megatron-integration.md,sha256=ad7cw8eMGX3vqGUxQSVBuWpiQJDAr9eHqWfPhlEXJz0,11252
|
|
@@ -94,14 +101,17 @@ EvoScientist/skills/skill-creator/references/workflows.md,sha256=70hGh31dq0dRGgG
|
|
|
94
101
|
EvoScientist/skills/skill-creator/scripts/init_skill.py,sha256=C7olC5TKpMsrKLFdrSb9zzca7aTJeXuBIOVcLjPgxzw,10863
|
|
95
102
|
EvoScientist/skills/skill-creator/scripts/package_skill.py,sha256=sx-8s-Ni1cUwjpklX_joPN46UT4GNpU5ZKZISUyhCTE,3288
|
|
96
103
|
EvoScientist/skills/skill-creator/scripts/quick_validate.py,sha256=OBqy09H9XsMjcQFkEwY-_5nQ1IxBV0cIXGFRfpZ9u4c,3523
|
|
97
|
-
EvoScientist/stream/__init__.py,sha256=
|
|
104
|
+
EvoScientist/stream/__init__.py,sha256=_mdc88i75D3qlfuIBWpNm4-W5xMYIvM39vERgb53Bkk,1933
|
|
105
|
+
EvoScientist/stream/display.py,sha256=jCyohjfulwgyV-gOa5g5HXsepNLNLjdMdfQE9bt1-ZA,22565
|
|
98
106
|
EvoScientist/stream/emitter.py,sha256=zmdn8vIXNgkgoWRtanrMtPN2GlsHmZtdFmoqCry3o_o,2978
|
|
107
|
+
EvoScientist/stream/events.py,sha256=dSnHsDGl_HEBbfmQYv40YZVR-RDZPLZFsjlwmO46ch4,17251
|
|
99
108
|
EvoScientist/stream/formatter.py,sha256=vyv89NGoTzxjsWt0teBXX38MZzFLhzMDBUcIH6-slDo,5532
|
|
109
|
+
EvoScientist/stream/state.py,sha256=RX7JOBJLYXu7tdtDx71QR2U8JDHHTsB4GM877z9UKLM,12961
|
|
100
110
|
EvoScientist/stream/tracker.py,sha256=cVWmiTCiwzOh84I7sAXXfgr_HXxOCCCzTvli-XJhthQ,3670
|
|
101
|
-
EvoScientist/stream/utils.py,sha256=
|
|
102
|
-
evoscientist-0.0.1.
|
|
103
|
-
evoscientist-0.0.1.
|
|
104
|
-
evoscientist-0.0.1.
|
|
105
|
-
evoscientist-0.0.1.
|
|
106
|
-
evoscientist-0.0.1.
|
|
107
|
-
evoscientist-0.0.1.
|
|
111
|
+
EvoScientist/stream/utils.py,sha256=yQXhPIzOYzpNUUyDvkQDv1K-Yo0ePkXMtU7fHhRoG64,7718
|
|
112
|
+
evoscientist-0.0.1.dev4.dist-info/licenses/LICENSE,sha256=NsYFy5JSm90lmXcPNQuthVTCVaVcbT4XZ9h5HpAoGIo,1069
|
|
113
|
+
evoscientist-0.0.1.dev4.dist-info/METADATA,sha256=Hi6nET3VH8m2uv_JIcCNrQZJz4jL1OfbMd6jM5tGEY0,13901
|
|
114
|
+
evoscientist-0.0.1.dev4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
115
|
+
evoscientist-0.0.1.dev4.dist-info/entry_points.txt,sha256=mGxz9_-jfGhwkdiiVGTQ9IQEhzLixWJoPNU39_boWMM,154
|
|
116
|
+
evoscientist-0.0.1.dev4.dist-info/top_level.txt,sha256=XBZouSd9lQfNn0Fus6jQb9nqdXzAbKyzh987Jt3A2-A,13
|
|
117
|
+
evoscientist-0.0.1.dev4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|