@researai/deepscientist 1.5.1 → 1.5.2
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.
- package/README.md +47 -1
- package/bin/ds.js +1823 -121
- package/docs/en/00_QUICK_START.md +38 -20
- package/docs/en/01_SETTINGS_REFERENCE.md +20 -20
- package/docs/en/02_START_RESEARCH_GUIDE.md +11 -11
- package/docs/en/03_QQ_CONNECTOR_GUIDE.md +10 -10
- package/docs/en/05_TUI_GUIDE.md +1 -1
- package/docs/en/09_DOCTOR.md +48 -4
- package/docs/en/90_ARCHITECTURE.md +4 -2
- package/docs/zh/00_QUICK_START.md +38 -20
- package/docs/zh/01_SETTINGS_REFERENCE.md +21 -21
- package/docs/zh/02_START_RESEARCH_GUIDE.md +19 -19
- package/docs/zh/03_QQ_CONNECTOR_GUIDE.md +10 -10
- package/docs/zh/05_TUI_GUIDE.md +1 -1
- package/docs/zh/09_DOCTOR.md +46 -4
- package/install.sh +9 -8
- package/package.json +2 -1
- package/pyproject.toml +1 -1
- package/src/deepscientist/__init__.py +6 -1
- package/src/deepscientist/artifact/service.py +552 -25
- package/src/deepscientist/config/service.py +1 -1
- package/src/deepscientist/daemon/api/handlers.py +18 -1
- package/src/deepscientist/daemon/api/router.py +2 -0
- package/src/deepscientist/daemon/app.py +90 -1
- package/src/deepscientist/doctor.py +69 -2
- package/src/deepscientist/gitops/diff.py +3 -0
- package/src/deepscientist/home.py +25 -2
- package/src/deepscientist/mcp/context.py +3 -1
- package/src/deepscientist/mcp/server.py +6 -0
- package/src/deepscientist/prompts/builder.py +41 -0
- package/src/deepscientist/quest/layout.py +1 -0
- package/src/deepscientist/quest/service.py +70 -12
- package/src/deepscientist/quest/stage_views.py +46 -0
- package/src/deepscientist/runners/codex.py +2 -0
- package/src/deepscientist/shared.py +44 -17
- package/src/prompts/connectors/lingzhu.md +3 -0
- package/src/prompts/system.md +38 -5
- package/src/skills/analysis-campaign/SKILL.md +24 -1
- package/src/skills/baseline/SKILL.md +7 -1
- package/src/skills/decision/SKILL.md +3 -2
- package/src/skills/experiment/SKILL.md +17 -1
- package/src/skills/finalize/SKILL.md +4 -1
- package/src/skills/idea/SKILL.md +1 -1
- package/src/skills/intake-audit/SKILL.md +1 -1
- package/src/skills/rebuttal/SKILL.md +3 -1
- package/src/skills/review/SKILL.md +3 -1
- package/src/skills/scout/SKILL.md +1 -1
- package/src/skills/write/SKILL.md +1 -1
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/{AiManusChatView-w5lF2Ttt.js → AiManusChatView-CZpg376x.js} +64 -68
- package/src/ui/dist/assets/{AnalysisPlugin-DJOED79I.js → AnalysisPlugin-CtHA22g3.js} +1 -1
- package/src/ui/dist/assets/{AutoFigurePlugin-DaG61Y0M.js → AutoFigurePlugin-BSWmLMmF.js} +5 -5
- package/src/ui/dist/assets/{CliPlugin-CV4LqUB_.js → CliPlugin-CJ7jdm_s.js} +9 -9
- package/src/ui/dist/assets/{CodeEditorPlugin-DylfAea4.js → CodeEditorPlugin-DhInVGFf.js} +8 -8
- package/src/ui/dist/assets/{CodeViewerPlugin-F7saY0LM.js → CodeViewerPlugin-D1n8S9r5.js} +5 -5
- package/src/ui/dist/assets/{DocViewerPlugin-COP0c7jf.js → DocViewerPlugin-C4XM_kqk.js} +3 -3
- package/src/ui/dist/assets/{GitDiffViewerPlugin-CAS05pT9.js → GitDiffViewerPlugin-W6kS9r6v.js} +1 -1
- package/src/ui/dist/assets/{ImageViewerPlugin-Bco1CN_w.js → ImageViewerPlugin-DPeUx_Oz.js} +5 -5
- package/src/ui/dist/assets/{LabCopilotPanel-CvMlCD99.js → LabCopilotPanel-eAelUaub.js} +10 -10
- package/src/ui/dist/assets/{LabPlugin-BYankkE4.js → LabPlugin-BbOrBxKY.js} +1 -1
- package/src/ui/dist/assets/{LatexPlugin-LDSMR-t-.js → LatexPlugin-C-HhkVXY.js} +7 -7
- package/src/ui/dist/assets/{MarkdownViewerPlugin-B7o80jgm.js → MarkdownViewerPlugin-BDIzIBfh.js} +4 -4
- package/src/ui/dist/assets/{MarketplacePlugin-CM6ZOcpC.js → MarketplacePlugin-DAOJphwr.js} +3 -3
- package/src/ui/dist/assets/{NotebookEditor-Dc61cXmK.js → NotebookEditor-BsoMvDoU.js} +1 -1
- package/src/ui/dist/assets/{PdfLoader-DWowuQwx.js → PdfLoader-fiC7RtHf.js} +1 -1
- package/src/ui/dist/assets/{PdfMarkdownPlugin-BsJM1q_a.js → PdfMarkdownPlugin-C5OxZBFK.js} +3 -3
- package/src/ui/dist/assets/{PdfViewerPlugin-DB2eEEFQ.js → PdfViewerPlugin-CAbxQebk.js} +10 -10
- package/src/ui/dist/assets/{SearchPlugin-CraThSvt.js → SearchPlugin-SE33Lb9B.js} +1 -1
- package/src/ui/dist/assets/{Stepper-CgocRTPq.js → Stepper-0Av7GfV7.js} +1 -1
- package/src/ui/dist/assets/{TextViewerPlugin-B1JGhKtd.js → TextViewerPlugin-Daf2gJDI.js} +4 -4
- package/src/ui/dist/assets/{VNCViewer-CclFC7FM.js → VNCViewer-BKrMUIOX.js} +9 -9
- package/src/ui/dist/assets/{bibtex-D3IKsMl7.js → bibtex-JBdOEe45.js} +1 -1
- package/src/ui/dist/assets/{code-BP37Xx0p.js → code-B0TDFCZz.js} +1 -1
- package/src/ui/dist/assets/{file-content-BAJSu-9r.js → file-content-3YtrSacz.js} +1 -1
- package/src/ui/dist/assets/{file-diff-panel-DUGeCTuy.js → file-diff-panel-CJEg5OG1.js} +1 -1
- package/src/ui/dist/assets/{file-socket-CXc1Ojf7.js → file-socket-CYQYdmB1.js} +1 -1
- package/src/ui/dist/assets/{file-utils-2J21jt7M.js → file-utils-Cd1C9Ppl.js} +1 -1
- package/src/ui/dist/assets/{image-CMMmgvcn.js → image-B33ctrvC.js} +1 -1
- package/src/ui/dist/assets/{index-s7aHnNQ4.js → index-9CLPVeZh.js} +1 -1
- package/src/ui/dist/assets/{index-CWgMgpow.js → index-BNQWqmJ2.js} +11 -11
- package/src/ui/dist/assets/{index-DmwmJmbW.js → index-BVXsmS7V.js} +15808 -14025
- package/src/ui/dist/assets/{index-BaVumsQT.js → index-Buw_N1VQ.js} +2 -2
- package/src/ui/dist/assets/{index-KGt-z-dD.css → index-SwmFAld3.css} +2700 -2
- package/src/ui/dist/assets/{message-square-CQRfX0Am.js → message-square-D0cUJ9yU.js} +1 -1
- package/src/ui/dist/assets/{monaco-B4TbdsrF.js → monaco-UZLYkp2n.js} +1 -1
- package/src/ui/dist/assets/{popover-B8Rokodk.js → popover-CTeiY-dK.js} +1 -1
- package/src/ui/dist/assets/{project-sync-D_i96KH4.js → project-sync-Dbs01Xky.js} +1 -1
- package/src/ui/dist/assets/{sigma-D12PnzCN.js → sigma-CM08S-xT.js} +1 -1
- package/src/ui/dist/assets/{tooltip-B6YrI4aJ.js → tooltip-pDtzvU9p.js} +1 -1
- package/src/ui/dist/assets/{trash-Bc8jGp0V.js → trash-YvPCP-da.js} +1 -1
- package/src/ui/dist/assets/{useCliAccess-mXVCYSZ-.js → useCliAccess-Bavi74Ac.js} +1 -1
- package/src/ui/dist/assets/{useFileDiffOverlay-Bg6b9H9K.js → useFileDiffOverlay-CVXY6oeg.js} +1 -1
- package/src/ui/dist/assets/{wrap-text-Drh5GEnL.js → wrap-text-Cf4flRW7.js} +1 -1
- package/src/ui/dist/assets/{zoom-out-CJj9DZLn.js → zoom-out-Hb0Z1YpT.js} +1 -1
- package/src/ui/dist/index.html +2 -2
- package/uv.lock +1155 -0
- package/src/ui/dist/assets/LabPlugin-D9jVIo0A.css +0 -2698
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# 00 Quick Start: Launch DeepScientist and Run Your First
|
|
1
|
+
# 00 Quick Start: Launch DeepScientist and Run Your First Project
|
|
2
2
|
|
|
3
|
-
This is the fastest way to go from installation to a running
|
|
3
|
+
This is the fastest way to go from installation to a running project.
|
|
4
4
|
|
|
5
5
|
You will do four things:
|
|
6
6
|
|
|
7
7
|
1. install DeepScientist
|
|
8
8
|
2. start the local runtime
|
|
9
|
-
3. create a new
|
|
10
|
-
4. reopen old
|
|
9
|
+
3. create a new project from the home page
|
|
10
|
+
4. reopen old projects from the project list
|
|
11
11
|
|
|
12
12
|
The screenshots in this guide use the current live web UI at `deepscientist.cc:20999` as an example. Your local UI at `127.0.0.1:20999` should look the same or very close.
|
|
13
13
|
|
|
14
14
|
## 1. Install
|
|
15
15
|
|
|
16
|
-
Install
|
|
16
|
+
Install DeepScientist globally:
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
npm install -g @
|
|
19
|
+
npm install -g @researai/deepscientist
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
If you plan to compile LaTeX locally later, you can also install the lightweight PDF runtime:
|
|
@@ -33,6 +33,12 @@ Start the local daemon and web workspace:
|
|
|
33
33
|
ds
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
DeepScientist now uses `uv` to manage a locked local Python runtime. If a conda environment is active and already provides Python `>=3.11`, `ds` will prefer that environment automatically. Otherwise `uv` will provision a managed Python under the DeepScientist home.
|
|
37
|
+
|
|
38
|
+
If `uv` is missing on your machine, `ds` will bootstrap a local copy automatically during the first start. The npm package also ships with the Codex CLI dependency, so you do not need a separate `npm install -g @openai/codex`. You may still need to run `codex` once later to finish login.
|
|
39
|
+
|
|
40
|
+
By default, the DeepScientist home is `~/DeepScientist` on macOS and Linux, and `%USERPROFILE%\\DeepScientist` on Windows. You can override it with `ds --home <path>`.
|
|
41
|
+
|
|
36
42
|
By default, the web UI is served at:
|
|
37
43
|
|
|
38
44
|
```text
|
|
@@ -41,6 +47,18 @@ http://127.0.0.1:20999
|
|
|
41
47
|
|
|
42
48
|
If the browser does not open automatically, paste that address into your browser manually.
|
|
43
49
|
|
|
50
|
+
If you want another port:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
ds --port 21000
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If you want the web UI to bind on all interfaces:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ds --host 0.0.0.0 --port 21000
|
|
60
|
+
```
|
|
61
|
+
|
|
44
62
|
## 3. Understand the Home Page
|
|
45
63
|
|
|
46
64
|
When DeepScientist starts, open the home page at `/`.
|
|
@@ -49,22 +67,22 @@ When DeepScientist starts, open the home page at `/`.
|
|
|
49
67
|
|
|
50
68
|
The home page is intentionally simple. The two main entry buttons are:
|
|
51
69
|
|
|
52
|
-
- `Start Research`: create a new
|
|
53
|
-
- `
|
|
70
|
+
- `Start Research`: create a new project and launch a new research run
|
|
71
|
+
- `Open Project`: reopen an existing project
|
|
54
72
|
|
|
55
73
|
If you are using DeepScientist for the first time, start with `Start Research`.
|
|
56
74
|
|
|
57
|
-
## 4. Create a New
|
|
75
|
+
## 4. Create a New Project With Start Research
|
|
58
76
|
|
|
59
77
|
Click `Start Research` to open the launch dialog.
|
|
60
78
|
|
|
61
79
|

|
|
62
80
|
|
|
63
|
-
This dialog creates a new
|
|
81
|
+
This dialog creates a new project repository and writes the startup contract for the agent.
|
|
64
82
|
|
|
65
83
|
The most important fields are:
|
|
66
84
|
|
|
67
|
-
- `
|
|
85
|
+
- `Project ID`: usually auto-generated in sequence such as `00`, `01`, `02`
|
|
68
86
|
- `Primary request` / research goal: the actual scientific task you want the agent to work on
|
|
69
87
|
- `Reuse Baseline`: optional; choose an existing baseline if you want to continue from an earlier result
|
|
70
88
|
- `Research intensity`: how aggressive the run should be
|
|
@@ -81,29 +99,29 @@ For a first test, keep it simple:
|
|
|
81
99
|
|
|
82
100
|
Then click the final `Start Research` action in the dialog.
|
|
83
101
|
|
|
84
|
-
## 5. Reopen an Existing
|
|
102
|
+
## 5. Reopen an Existing Project With Open Project
|
|
85
103
|
|
|
86
|
-
Click `
|
|
104
|
+
Click `Open Project` on the home page to open the existing project list.
|
|
87
105
|
|
|
88
|
-

|
|
89
107
|
|
|
90
108
|
Use this dialog when you want to:
|
|
91
109
|
|
|
92
|
-
- reopen a
|
|
93
|
-
- search by
|
|
110
|
+
- reopen a project that is already running or already finished
|
|
111
|
+
- search by project title or project id
|
|
94
112
|
- jump back into a previous workspace quickly
|
|
95
113
|
|
|
96
|
-
Each row corresponds to one
|
|
114
|
+
Each row corresponds to one project repository. Click a project card to open it.
|
|
97
115
|
|
|
98
|
-
## 6. What Happens After Opening a
|
|
116
|
+
## 6. What Happens After Opening a Project
|
|
99
117
|
|
|
100
|
-
After you create or open a
|
|
118
|
+
After you create or open a project, DeepScientist takes you to the workspace page for that project.
|
|
101
119
|
|
|
102
120
|
Inside the workspace, the usual flow is:
|
|
103
121
|
|
|
104
122
|
1. watch agent progress in Copilot / Studio
|
|
105
123
|
2. inspect files, notes, and generated artifacts
|
|
106
|
-
3. use Canvas to understand the current
|
|
124
|
+
3. use Canvas to understand the current project graph and stage progress
|
|
107
125
|
4. stop the run only when you intentionally want to interrupt it
|
|
108
126
|
|
|
109
127
|
## 7. Useful Runtime Commands
|
|
@@ -92,9 +92,9 @@ acp:
|
|
|
92
92
|
- Type: `string`
|
|
93
93
|
- Default: the installed DeepScientist home, usually `~/DeepScientist`
|
|
94
94
|
- UI label: `Home path`
|
|
95
|
-
- Meaning: root directory for config,
|
|
95
|
+
- Meaning: root directory for config, projects, memory, plugins, logs, and cache.
|
|
96
96
|
- When to change: only when you intentionally installed DeepScientist somewhere else.
|
|
97
|
-
- Notes: this is not a single
|
|
97
|
+
- Notes: this is not a single project path; it is the runtime root.
|
|
98
98
|
|
|
99
99
|
**`default_runner`**
|
|
100
100
|
|
|
@@ -102,7 +102,7 @@ acp:
|
|
|
102
102
|
- Default: `codex`
|
|
103
103
|
- Allowed values: currently `codex`, `claude`
|
|
104
104
|
- UI label: `Default runner`
|
|
105
|
-
- Meaning: runner used when a
|
|
105
|
+
- Meaning: runner used when a project does not override it.
|
|
106
106
|
- Notes: in the current branch, `codex` is the primary path and `claude` remains a reserved slot.
|
|
107
107
|
|
|
108
108
|
**`default_locale`**
|
|
@@ -120,15 +120,15 @@ acp:
|
|
|
120
120
|
- Type: `boolean`
|
|
121
121
|
- Default: `true`
|
|
122
122
|
- UI label: `Restore sessions on start`
|
|
123
|
-
- Meaning: restore previous
|
|
123
|
+
- Meaning: restore previous project sessions when the daemon starts.
|
|
124
124
|
|
|
125
125
|
**`daemon.max_concurrent_quests`**
|
|
126
126
|
|
|
127
127
|
- Type: `number`
|
|
128
128
|
- Default: `1`
|
|
129
|
-
- UI label: `Max concurrent
|
|
130
|
-
- Meaning: upper bound on how many
|
|
131
|
-
- Recommendation: keep `1` unless you intentionally want parallel
|
|
129
|
+
- UI label: `Max concurrent projects`
|
|
130
|
+
- Meaning: upper bound on how many projects may run at the same time.
|
|
131
|
+
- Recommendation: keep `1` unless you intentionally want parallel project execution.
|
|
132
132
|
|
|
133
133
|
**`daemon.ack_timeout_ms`**
|
|
134
134
|
|
|
@@ -202,7 +202,7 @@ acp:
|
|
|
202
202
|
- Type: `boolean`
|
|
203
203
|
- Default: `true`
|
|
204
204
|
- UI label: `Auto-checkpoint`
|
|
205
|
-
- Meaning: create Git checkpoints automatically during
|
|
205
|
+
- Meaning: create Git checkpoints automatically during project progress.
|
|
206
206
|
|
|
207
207
|
**`git.auto_push`**
|
|
208
208
|
|
|
@@ -252,15 +252,15 @@ Palette selection is no longer exposed in `Settings` or `config.yaml`.
|
|
|
252
252
|
|
|
253
253
|
- Type: `boolean`
|
|
254
254
|
- Default: `true`
|
|
255
|
-
- UI label: `Sync
|
|
256
|
-
- Meaning: mirror skills into
|
|
255
|
+
- UI label: `Sync project skills on create`
|
|
256
|
+
- Meaning: mirror skills into project-local runner homes when a project is created.
|
|
257
257
|
|
|
258
258
|
**`skills.sync_quest_on_open`**
|
|
259
259
|
|
|
260
260
|
- Type: `boolean`
|
|
261
261
|
- Default: `true`
|
|
262
|
-
- UI label: `Sync
|
|
263
|
-
- Meaning: refresh
|
|
262
|
+
- UI label: `Sync project skills on open`
|
|
263
|
+
- Meaning: refresh project-local skill mirrors when an existing project is opened.
|
|
264
264
|
|
|
265
265
|
### Connector policy
|
|
266
266
|
|
|
@@ -271,7 +271,7 @@ These fields are global connector behaviors, not per-platform credentials.
|
|
|
271
271
|
- Type: `boolean`
|
|
272
272
|
- Default: `true`
|
|
273
273
|
- UI label: `Auto-ack incoming messages`
|
|
274
|
-
- Meaning: send a short acknowledgment before the full
|
|
274
|
+
- Meaning: send a short acknowledgment before the full project response completes.
|
|
275
275
|
|
|
276
276
|
**`connectors.milestone_push`**
|
|
277
277
|
|
|
@@ -285,7 +285,7 @@ These fields are global connector behaviors, not per-platform credentials.
|
|
|
285
285
|
- Type: `boolean`
|
|
286
286
|
- Default: `true`
|
|
287
287
|
- UI label: `Enable direct chat`
|
|
288
|
-
- Meaning: allow connectors to continue
|
|
288
|
+
- Meaning: allow connectors to continue projects from direct messages.
|
|
289
289
|
|
|
290
290
|
### Cloud link
|
|
291
291
|
|
|
@@ -371,7 +371,7 @@ These settings are compatibility knobs for ACP-style external consumers.
|
|
|
371
371
|
|
|
372
372
|
### Summary
|
|
373
373
|
|
|
374
|
-
`runners.yaml` defines which runner executes
|
|
374
|
+
`runners.yaml` defines which runner executes projects and what its default model, approval policy, sandbox, and retry behavior should be. In the current open-source release:
|
|
375
375
|
|
|
376
376
|
- `codex`: primary path, enabled by default
|
|
377
377
|
- `claude`: TODO / reserved slot, disabled by default, not runnable yet
|
|
@@ -433,7 +433,7 @@ claude:
|
|
|
433
433
|
- Type: `string`
|
|
434
434
|
- Default: `codex=gpt-5.4`, `claude=inherit`
|
|
435
435
|
- UI label: `Default model`
|
|
436
|
-
- Meaning: default model used when a
|
|
436
|
+
- Meaning: default model used when a project does not override it.
|
|
437
437
|
|
|
438
438
|
**`model_reasoning_effort`**
|
|
439
439
|
|
|
@@ -534,7 +534,7 @@ Current design rules:
|
|
|
534
534
|
|
|
535
535
|
- prefer no-public-callback transports
|
|
536
536
|
- keep webhook / relay fields only as legacy or fallback paths
|
|
537
|
-
- treat connectors as alternate
|
|
537
|
+
- treat connectors as alternate project control surfaces, not disconnected notification bots
|
|
538
538
|
|
|
539
539
|
### Top-level routing
|
|
540
540
|
|
|
@@ -586,7 +586,7 @@ These fields appear across multiple connectors:
|
|
|
586
586
|
|
|
587
587
|
- Type: `boolean`
|
|
588
588
|
- Default: usually `true`
|
|
589
|
-
- Meaning: direct messages automatically follow the current active
|
|
589
|
+
- Meaning: direct messages automatically follow the current active project.
|
|
590
590
|
|
|
591
591
|
### `telegram`
|
|
592
592
|
|
|
@@ -969,7 +969,7 @@ allow_unsigned: false
|
|
|
969
969
|
|
|
970
970
|
### Summary
|
|
971
971
|
|
|
972
|
-
This file configures external MCP servers. It does not configure built-in `memory`, `artifact`, or `bash_exec`, and it does not store
|
|
972
|
+
This file configures external MCP servers. It does not configure built-in `memory`, `artifact`, or `bash_exec`, and it does not store project-local MCP state.
|
|
973
973
|
|
|
974
974
|
### Schema
|
|
975
975
|
|
|
@@ -992,7 +992,7 @@ servers:
|
|
|
992
992
|
|
|
993
993
|
- Type: `boolean`
|
|
994
994
|
- Default: new cards start as `false`
|
|
995
|
-
- Meaning: only enabled external MCP servers are exposed to
|
|
995
|
+
- Meaning: only enabled external MCP servers are exposed to projects or runners.
|
|
996
996
|
|
|
997
997
|
**`servers.<server_id>.transport`**
|
|
998
998
|
|
|
@@ -9,10 +9,10 @@ Implementation sources:
|
|
|
9
9
|
|
|
10
10
|
## What the dialog does
|
|
11
11
|
|
|
12
|
-
`Start Research` is not only a “new
|
|
12
|
+
`Start Research` is not only a “new project” form. It does four things together:
|
|
13
13
|
|
|
14
14
|
1. collects structured kickoff context
|
|
15
|
-
2. compiles that context into the first
|
|
15
|
+
2. compiles that context into the first project prompt
|
|
16
16
|
3. binds an optional reusable baseline
|
|
17
17
|
4. persists a structured `startup_contract` for later prompt building
|
|
18
18
|
|
|
@@ -105,17 +105,17 @@ The dialog submits:
|
|
|
105
105
|
|
|
106
106
|
## Field reference
|
|
107
107
|
|
|
108
|
-
### Core
|
|
108
|
+
### Core project identity
|
|
109
109
|
|
|
110
110
|
**`title`**
|
|
111
111
|
|
|
112
|
-
- Human-readable
|
|
112
|
+
- Human-readable project title.
|
|
113
113
|
- Used in cards and workspace headers.
|
|
114
114
|
- Does not need to equal `quest_id`.
|
|
115
115
|
|
|
116
116
|
**`quest_id`**
|
|
117
117
|
|
|
118
|
-
- Stable
|
|
118
|
+
- Stable project identifier stored in `quest_id` and used as the directory name.
|
|
119
119
|
- By default the runtime suggests the next sequential id.
|
|
120
120
|
- Manual override is allowed.
|
|
121
121
|
|
|
@@ -166,7 +166,7 @@ The dialog submits:
|
|
|
166
166
|
|
|
167
167
|
**`need_research_paper`**
|
|
168
168
|
|
|
169
|
-
- `true`: the
|
|
169
|
+
- `true`: the project should keep going through analysis and writing readiness.
|
|
170
170
|
- `false`: optimize for the strongest justified algorithmic result and avoid default paper routing.
|
|
171
171
|
|
|
172
172
|
### High-level control knobs
|
|
@@ -203,7 +203,7 @@ This is the main public knob for round depth.
|
|
|
203
203
|
Only meaningful when `launch_mode = custom`.
|
|
204
204
|
|
|
205
205
|
- `continue_existing_state`
|
|
206
|
-
- start by auditing existing baselines, results, drafts, or mixed
|
|
206
|
+
- start by auditing existing baselines, results, drafts, or mixed project assets
|
|
207
207
|
- prompt builder should steer the agent toward `intake-audit`
|
|
208
208
|
- `revision_rebuttal`
|
|
209
209
|
- start from reviewer comments, revision packets, or a rebuttal task
|
|
@@ -247,7 +247,7 @@ Override rule:
|
|
|
247
247
|
|
|
248
248
|
`compileStartResearchPrompt(...)` writes a human-readable kickoff prompt containing:
|
|
249
249
|
|
|
250
|
-
-
|
|
250
|
+
- project bootstrap
|
|
251
251
|
- primary research request
|
|
252
252
|
- research goals
|
|
253
253
|
- baseline context
|
|
@@ -318,8 +318,8 @@ Custom launch behavior is explicit:
|
|
|
318
318
|
|
|
319
319
|
```json
|
|
320
320
|
{
|
|
321
|
-
"title": "Continue retrieval
|
|
322
|
-
"goal": "Continue the existing retrieval
|
|
321
|
+
"title": "Continue retrieval project",
|
|
322
|
+
"goal": "Continue the existing retrieval project and decide whether a fresh main run is still needed.",
|
|
323
323
|
"quest_id": "013",
|
|
324
324
|
"requested_baseline_ref": null,
|
|
325
325
|
"startup_contract": {
|
|
@@ -387,7 +387,7 @@ Custom launch behavior is explicit:
|
|
|
387
387
|
|
|
388
388
|
## Operational implications
|
|
389
389
|
|
|
390
|
-
- The startup contract is durable
|
|
390
|
+
- The startup contract is durable project state, not only UI state.
|
|
391
391
|
- Prompt building later reads `launch_mode`, `custom_profile`, and related summaries again.
|
|
392
392
|
- This means `Start Research` shapes not just the first turn, but later routing decisions too.
|
|
393
393
|
|
|
@@ -16,7 +16,7 @@ If you previously followed an OpenClaw or NanoClaw article, note the key differe
|
|
|
16
16
|
After finishing this guide, you should be able to:
|
|
17
17
|
|
|
18
18
|
- chat with DeepScientist from QQ private messages
|
|
19
|
-
- let QQ auto-bind to the latest active
|
|
19
|
+
- let QQ auto-bind to the latest active project
|
|
20
20
|
- use `/new`, `/use latest`, `/status`, and related commands from QQ
|
|
21
21
|
- see the detected `openid` in the `Settings` page
|
|
22
22
|
- run safe readiness checks and send probes from the `Settings` page
|
|
@@ -219,7 +219,7 @@ When the connector is fully working, you should usually see all of these:
|
|
|
219
219
|
- `Detected OpenID` is no longer empty in `Settings > Connectors > QQ`
|
|
220
220
|
- the `Snapshot` panel shows a discovered target and the bound target is no longer empty
|
|
221
221
|
- clicking `Send probe` again no longer reports an empty delivery target
|
|
222
|
-
- if a latest
|
|
222
|
+
- if a latest project already exists, plain text continues that project automatically; if no project exists yet, the bot returns help instead
|
|
223
223
|
|
|
224
224
|
### 5.2 Error quick decoder
|
|
225
225
|
|
|
@@ -239,17 +239,17 @@ Common commands:
|
|
|
239
239
|
| Command | Meaning |
|
|
240
240
|
| --- | --- |
|
|
241
241
|
| `/help` | Show help |
|
|
242
|
-
| `/projects` or `/list` | List
|
|
243
|
-
| `/use <quest_id>` | Bind a specific
|
|
244
|
-
| `/use latest` | Bind the newest
|
|
245
|
-
| `/new <goal>` | Create a new
|
|
246
|
-
| `/status` | Show the current
|
|
242
|
+
| `/projects` or `/list` | List projects |
|
|
243
|
+
| `/use <quest_id>` | Bind a specific project |
|
|
244
|
+
| `/use latest` | Bind the newest project |
|
|
245
|
+
| `/new <goal>` | Create a new project and bind the current QQ conversation |
|
|
246
|
+
| `/status` | Show the current project status |
|
|
247
247
|
|
|
248
248
|
Recommended usage:
|
|
249
249
|
|
|
250
|
-
- if a latest
|
|
251
|
-
- if there is no
|
|
252
|
-
- if you want to switch to another
|
|
250
|
+
- if a latest project already exists, plain text usually continues that project
|
|
251
|
+
- if there is no project yet, start with `/new <goal>`
|
|
252
|
+
- if you want to switch to another project, send `/use <quest_id>` explicitly
|
|
253
253
|
|
|
254
254
|
## 7. Most common mistakes
|
|
255
255
|
|
package/docs/en/05_TUI_GUIDE.md
CHANGED
package/docs/en/09_DOCTOR.md
CHANGED
|
@@ -4,10 +4,10 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
|
|
|
4
4
|
|
|
5
5
|
## Recommended flow
|
|
6
6
|
|
|
7
|
-
1. Install DeepScientist
|
|
7
|
+
1. Install DeepScientist:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm install -g @
|
|
10
|
+
npm install -g @researai/deepscientist
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
2. Try to start DeepScientist:
|
|
@@ -30,6 +30,7 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
|
|
|
30
30
|
|
|
31
31
|
- local Python runtime health
|
|
32
32
|
- whether `~/DeepScientist` exists and is writable
|
|
33
|
+
- whether `uv` is available to manage the local Python runtime
|
|
33
34
|
- whether `git` is installed and configured
|
|
34
35
|
- whether required config files are valid
|
|
35
36
|
- whether the current release is still using `codex` as the runnable runner
|
|
@@ -42,10 +43,10 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
|
|
|
42
43
|
|
|
43
44
|
### Codex is missing
|
|
44
45
|
|
|
45
|
-
Run:
|
|
46
|
+
Run the package install again so the bundled Codex dependency is present:
|
|
46
47
|
|
|
47
48
|
```bash
|
|
48
|
-
npm install -g @
|
|
49
|
+
npm install -g @researai/deepscientist
|
|
49
50
|
```
|
|
50
51
|
|
|
51
52
|
### Codex is installed but not logged in
|
|
@@ -58,6 +59,20 @@ codex
|
|
|
58
59
|
|
|
59
60
|
Finish login once, then rerun `ds doctor`.
|
|
60
61
|
|
|
62
|
+
### `uv` is missing
|
|
63
|
+
|
|
64
|
+
Normally `ds` will bootstrap a local `uv` automatically. If that bootstrap fails, install it manually:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
On Windows PowerShell:
|
|
71
|
+
|
|
72
|
+
```powershell
|
|
73
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
74
|
+
```
|
|
75
|
+
|
|
61
76
|
### Local paper PDF compilation is unavailable
|
|
62
77
|
|
|
63
78
|
DeepScientist can compile papers without a full TeX Live install if you add a lightweight TinyTeX runtime:
|
|
@@ -84,6 +99,35 @@ If another service already uses the port, change `ui.port` in:
|
|
|
84
99
|
~/DeepScientist/config/config.yaml
|
|
85
100
|
```
|
|
86
101
|
|
|
102
|
+
Or start on another port directly:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
ds --port 21000
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Python `3.10` or older is active
|
|
109
|
+
|
|
110
|
+
DeepScientist still prefers the active conda environment when it already satisfies Python `>=3.11`.
|
|
111
|
+
|
|
112
|
+
If your current conda environment is too old, either activate a newer one:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
conda activate ds311
|
|
116
|
+
python3 --version
|
|
117
|
+
which python3
|
|
118
|
+
ds
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Or create a suitable one:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
conda create -n ds311 python=3.11 -y
|
|
125
|
+
conda activate ds311
|
|
126
|
+
ds
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
If you do nothing, `ds` can still bootstrap a managed `uv` + Python runtime automatically under the DeepScientist home.
|
|
130
|
+
|
|
87
131
|
### Git user identity is missing
|
|
88
132
|
|
|
89
133
|
Run:
|
|
@@ -42,7 +42,7 @@ The normal user path is:
|
|
|
42
42
|
|
|
43
43
|
1. `npm install -g @researai/deepscientist`
|
|
44
44
|
2. run `ds`
|
|
45
|
-
3. `bin/ds.js` ensures
|
|
45
|
+
3. `bin/ds.js` ensures a locked uv-managed Python runtime is ready under `~/DeepScientist/runtime/python-env`
|
|
46
46
|
4. the launcher starts the Python daemon
|
|
47
47
|
5. the daemon serves the web workspace and shared API surface
|
|
48
48
|
6. the TUI and web UI both consume the same daemon contracts
|
|
@@ -57,7 +57,9 @@ Key directories:
|
|
|
57
57
|
|
|
58
58
|
- `runtime/`
|
|
59
59
|
- launcher-managed runtime state
|
|
60
|
-
- Python
|
|
60
|
+
- uv-managed Python environment
|
|
61
|
+
- uv-managed Python installs
|
|
62
|
+
- uv cache
|
|
61
63
|
- built bundle helpers
|
|
62
64
|
- managed local tool installs under `runtime/tools/`
|
|
63
65
|
- `config/`
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# 00 快速开始:启动 DeepScientist
|
|
1
|
+
# 00 快速开始:启动 DeepScientist 并运行第一个项目
|
|
2
2
|
|
|
3
|
-
这份文档面向第一次使用 DeepScientist
|
|
3
|
+
这份文档面向第一次使用 DeepScientist 的用户,目标是让你从安装直接走到“成功启动并跑起来一个项目”。
|
|
4
4
|
|
|
5
5
|
你只需要完成四步:
|
|
6
6
|
|
|
7
7
|
1. 安装 DeepScientist
|
|
8
8
|
2. 启动本地运行时
|
|
9
|
-
3.
|
|
10
|
-
4.
|
|
9
|
+
3. 在首页创建一个新项目
|
|
10
|
+
4. 从项目列表重新打开已有任务
|
|
11
11
|
|
|
12
12
|
本文中的截图直接使用当前在线页面 `deepscientist.cc:20999` 作为示例。你本地运行后的页面 `127.0.0.1:20999` 通常会与它保持一致或非常接近。
|
|
13
13
|
|
|
14
14
|
## 1. 安装
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
全局安装 DeepScientist:
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
npm install -g @
|
|
19
|
+
npm install -g @researai/deepscientist
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
如果你后续还要在本地编译论文 PDF,也可以顺手安装轻量级 LaTeX 运行时:
|
|
@@ -33,6 +33,12 @@ ds latex install-runtime
|
|
|
33
33
|
ds
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
DeepScientist 现在使用 `uv` 管理锁定的本地 Python 运行时。如果你已经激活了 conda 环境,且其中的 Python 满足 `>=3.11`,`ds` 会优先使用它;否则 `uv` 会自动在 DeepScientist home 下准备受管 Python。
|
|
37
|
+
|
|
38
|
+
如果你的机器上还没有 `uv`,第一次运行 `ds` 时会自动在本地安装一份。npm 包本身也已经带上了 Codex CLI 依赖,因此不需要再单独执行 `npm install -g @openai/codex`;但你后续仍然可能需要手动运行一次 `codex` 完成登录。
|
|
39
|
+
|
|
40
|
+
默认情况下,DeepScientist home 在 macOS / Linux 上是 `~/DeepScientist`,在 Windows 上是 `%USERPROFILE%\\DeepScientist`。如果你希望放到别的路径,可以直接使用 `ds --home <path>`。
|
|
41
|
+
|
|
36
42
|
默认情况下,网页会运行在:
|
|
37
43
|
|
|
38
44
|
```text
|
|
@@ -41,6 +47,18 @@ http://127.0.0.1:20999
|
|
|
41
47
|
|
|
42
48
|
如果浏览器没有自动打开,就手动访问这个地址。
|
|
43
49
|
|
|
50
|
+
如果你想改端口,可以直接运行:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
ds --port 21000
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
如果你希望绑定到所有网卡地址:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ds --host 0.0.0.0 --port 21000
|
|
60
|
+
```
|
|
61
|
+
|
|
44
62
|
## 3. 认识首页
|
|
45
63
|
|
|
46
64
|
启动完成后,先打开 `/` 首页。
|
|
@@ -49,12 +67,12 @@ http://127.0.0.1:20999
|
|
|
49
67
|
|
|
50
68
|
首页故意做得很简单,核心只有两个按钮:
|
|
51
69
|
|
|
52
|
-
- `Start Research
|
|
53
|
-
-
|
|
70
|
+
- `Start Research`:创建一个新的项目,并立刻启动新的研究任务
|
|
71
|
+
- `打开项目`:打开已有项目列表,重新进入已经存在的任务
|
|
54
72
|
|
|
55
73
|
如果你是第一次使用,建议先从 `Start Research` 开始。
|
|
56
74
|
|
|
57
|
-
## 4. 使用 Start Research
|
|
75
|
+
## 4. 使用 Start Research 创建新项目
|
|
58
76
|
|
|
59
77
|
点击 `Start Research`,会弹出启动表单。
|
|
60
78
|
|
|
@@ -64,7 +82,7 @@ http://127.0.0.1:20999
|
|
|
64
82
|
|
|
65
83
|
最重要的字段是:
|
|
66
84
|
|
|
67
|
-
-
|
|
85
|
+
- `项目 ID`:通常会自动按顺序生成,例如 `00`、`01`、`02`
|
|
68
86
|
- `Primary request` / 研究目标:你真正希望 agent 完成的科研任务
|
|
69
87
|
- `Reuse Baseline`:可选;如果你要复用已有 baseline,就在这里选择
|
|
70
88
|
- `Research intensity`:本次研究的投入强度
|
|
@@ -81,29 +99,29 @@ http://127.0.0.1:20999
|
|
|
81
99
|
|
|
82
100
|
最后点击弹窗底部的 `Start Research` 即可正式启动。
|
|
83
101
|
|
|
84
|
-
## 5.
|
|
102
|
+
## 5. 使用“打开项目”重新进入已有任务
|
|
85
103
|
|
|
86
|
-
点击首页上的
|
|
104
|
+
点击首页上的 `打开项目`,会打开项目列表。
|
|
87
105
|
|
|
88
|
-

|
|
89
107
|
|
|
90
108
|
这个列表适合以下场景:
|
|
91
109
|
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
110
|
+
- 重新进入一个已经在运行中的项目
|
|
111
|
+
- 打开一个以前已经完成或已经创建过的项目
|
|
112
|
+
- 按项目标题或项目 ID 搜索目标任务
|
|
95
113
|
|
|
96
|
-
|
|
114
|
+
列表中的每一行都对应一个项目仓库。点击对应卡片即可进入该项目的工作区。
|
|
97
115
|
|
|
98
|
-
## 6.
|
|
116
|
+
## 6. 打开项目之后会发生什么
|
|
99
117
|
|
|
100
|
-
|
|
118
|
+
创建或打开项目后,DeepScientist 会进入这个项目的工作区页面。
|
|
101
119
|
|
|
102
120
|
通常你会在里面做这些事情:
|
|
103
121
|
|
|
104
122
|
1. 在 Copilot / Studio 中观察 agent 的实时进展
|
|
105
123
|
2. 查看文件、笔记和生成出来的 artifact
|
|
106
|
-
3. 在 Canvas
|
|
124
|
+
3. 在 Canvas 中理解当前项目的图结构与阶段进展
|
|
107
125
|
4. 只有在你明确想中断时,才主动停止任务
|
|
108
126
|
|
|
109
127
|
## 7. 常用运行命令
|