@researai/deepscientist 1.5.0 → 1.5.1
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/AGENTS.md +26 -0
- package/README.md +19 -179
- package/assets/connectors/lingzhu/openclaw-bridge/README.md +124 -0
- package/assets/connectors/lingzhu/openclaw-bridge/index.ts +162 -0
- package/assets/connectors/lingzhu/openclaw-bridge/openclaw.plugin.json +145 -0
- package/assets/connectors/lingzhu/openclaw-bridge/package.json +35 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/cli.ts +180 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/config.ts +196 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/debug-log.ts +111 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/events.ts +4 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/http-handler.ts +1133 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/image-cache.ts +75 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/lingzhu-tools.ts +246 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/transform.ts +541 -0
- package/assets/connectors/lingzhu/openclaw-bridge/src/types.ts +131 -0
- package/assets/connectors/lingzhu/openclaw-bridge/tsconfig.json +14 -0
- package/assets/connectors/lingzhu/openclaw.lingzhu.config.template.json +39 -0
- package/bin/ds.js +233 -53
- package/docs/en/00_QUICK_START.md +134 -0
- package/docs/en/01_SETTINGS_REFERENCE.md +1104 -0
- package/docs/en/02_START_RESEARCH_GUIDE.md +404 -0
- package/docs/en/03_QQ_CONNECTOR_GUIDE.md +325 -0
- package/docs/en/04_LINGZHU_CONNECTOR_GUIDE.md +216 -0
- package/docs/en/05_TUI_GUIDE.md +141 -0
- package/docs/en/06_RUNTIME_AND_CANVAS.md +679 -0
- package/docs/en/07_MEMORY_AND_MCP.md +253 -0
- package/docs/en/08_FIGURE_STYLE_GUIDE.md +97 -0
- package/docs/en/09_DOCTOR.md +108 -0
- package/docs/en/90_ARCHITECTURE.md +245 -0
- package/docs/en/91_DEVELOPMENT.md +195 -0
- package/docs/en/99_ACKNOWLEDGEMENTS.md +29 -0
- package/docs/zh/00_QUICK_START.md +134 -0
- package/docs/zh/01_SETTINGS_REFERENCE.md +1137 -0
- package/docs/zh/02_START_RESEARCH_GUIDE.md +414 -0
- package/docs/zh/03_QQ_CONNECTOR_GUIDE.md +324 -0
- package/docs/zh/04_LINGZHU_CONNECTOR_GUIDE.md +230 -0
- package/docs/zh/05_TUI_GUIDE.md +128 -0
- package/docs/zh/06_RUNTIME_AND_CANVAS.md +271 -0
- package/docs/zh/07_MEMORY_AND_MCP.md +235 -0
- package/docs/zh/08_FIGURE_STYLE_GUIDE.md +97 -0
- package/docs/zh/09_DOCTOR.md +112 -0
- package/docs/zh/99_ACKNOWLEDGEMENTS.md +29 -0
- package/install.sh +32 -8
- package/package.json +4 -2
- package/pyproject.toml +1 -1
- package/src/deepscientist/artifact/guidance.py +9 -2
- package/src/deepscientist/artifact/service.py +482 -22
- package/src/deepscientist/bash_exec/monitor.py +27 -5
- package/src/deepscientist/bash_exec/runtime.py +639 -0
- package/src/deepscientist/bash_exec/service.py +99 -16
- package/src/deepscientist/bridges/base.py +3 -0
- package/src/deepscientist/bridges/connectors.py +292 -13
- package/src/deepscientist/channels/qq.py +19 -2
- package/src/deepscientist/channels/relay.py +1 -0
- package/src/deepscientist/cli.py +32 -25
- package/src/deepscientist/config/models.py +28 -2
- package/src/deepscientist/config/service.py +201 -6
- package/src/deepscientist/connector_runtime.py +2 -0
- package/src/deepscientist/daemon/api/handlers.py +50 -5
- package/src/deepscientist/daemon/api/router.py +1 -0
- package/src/deepscientist/daemon/app.py +442 -15
- package/src/deepscientist/doctor.py +444 -0
- package/src/deepscientist/home.py +1 -0
- package/src/deepscientist/latex_runtime.py +17 -4
- package/src/deepscientist/lingzhu_support.py +182 -0
- package/src/deepscientist/mcp/server.py +49 -2
- package/src/deepscientist/prompts/builder.py +181 -58
- package/src/deepscientist/quest/layout.py +1 -0
- package/src/deepscientist/quest/service.py +63 -2
- package/src/deepscientist/quest/stage_views.py +19 -1
- package/src/deepscientist/runtime_tools/__init__.py +16 -0
- package/src/deepscientist/runtime_tools/builtins.py +19 -0
- package/src/deepscientist/runtime_tools/models.py +29 -0
- package/src/deepscientist/runtime_tools/registry.py +40 -0
- package/src/deepscientist/runtime_tools/service.py +59 -0
- package/src/deepscientist/runtime_tools/tinytex.py +25 -0
- package/src/deepscientist/tinytex.py +276 -0
- package/src/prompts/connectors/lingzhu.md +12 -0
- package/src/prompts/connectors/qq.md +121 -0
- package/src/prompts/system.md +177 -33
- package/src/skills/analysis-campaign/SKILL.md +22 -6
- package/src/skills/baseline/SKILL.md +5 -4
- package/src/skills/decision/SKILL.md +4 -3
- package/src/skills/experiment/SKILL.md +5 -4
- package/src/skills/finalize/SKILL.md +5 -4
- package/src/skills/idea/SKILL.md +5 -4
- package/src/skills/intake-audit/SKILL.md +277 -0
- package/src/skills/intake-audit/references/state-audit-template.md +41 -0
- package/src/skills/rebuttal/SKILL.md +407 -0
- package/src/skills/rebuttal/references/action-plan-template.md +63 -0
- package/src/skills/rebuttal/references/evidence-update-template.md +30 -0
- package/src/skills/rebuttal/references/response-letter-template.md +113 -0
- package/src/skills/rebuttal/references/review-matrix-template.md +55 -0
- package/src/skills/review/SKILL.md +293 -0
- package/src/skills/review/references/experiment-todo-template.md +29 -0
- package/src/skills/review/references/review-report-template.md +83 -0
- package/src/skills/review/references/revision-log-template.md +40 -0
- package/src/skills/scout/SKILL.md +5 -4
- package/src/skills/write/SKILL.md +7 -3
- package/src/tui/dist/components/WelcomePanel.js +17 -43
- package/src/tui/dist/components/messages/BashExecOperationMessage.js +3 -2
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/{AiManusChatView-7v-dHngU.js → AiManusChatView-w5lF2Ttt.js} +109 -575
- package/src/ui/dist/assets/{AnalysisPlugin-B_Xmz-KE.js → AnalysisPlugin-DJOED79I.js} +1 -1
- package/src/ui/dist/assets/{AutoFigurePlugin-Cko-0tm1.js → AutoFigurePlugin-DaG61Y0M.js} +63 -8
- package/src/ui/dist/assets/{CliPlugin-BsU0ht7q.js → CliPlugin-CV4LqUB_.js} +43 -609
- package/src/ui/dist/assets/{CodeEditorPlugin-DcMMP0Rt.js → CodeEditorPlugin-DylfAea4.js} +8 -8
- package/src/ui/dist/assets/{CodeViewerPlugin-BqoQ5QyY.js → CodeViewerPlugin-F7saY0LM.js} +5 -5
- package/src/ui/dist/assets/{DocViewerPlugin-D7eHNhU6.js → DocViewerPlugin-COP0c7jf.js} +3 -3
- package/src/ui/dist/assets/{GitDiffViewerPlugin-DLJN42T5.js → GitDiffViewerPlugin-CAS05pT9.js} +1 -1
- package/src/ui/dist/assets/{ImageViewerPlugin-gJMV7MOu.js → ImageViewerPlugin-Bco1CN_w.js} +5 -6
- package/src/ui/dist/assets/{LabCopilotPanel-B857sfxP.js → LabCopilotPanel-CvMlCD99.js} +12 -15
- package/src/ui/dist/assets/LabPlugin-BYankkE4.js +2676 -0
- package/src/ui/dist/assets/LabPlugin-D9jVIo0A.css +2698 -0
- package/src/ui/dist/assets/{LatexPlugin-DWKEo-Wj.js → LatexPlugin-LDSMR-t-.js} +16 -16
- package/src/ui/dist/assets/{MarkdownViewerPlugin-DBzoEmhv.js → MarkdownViewerPlugin-B7o80jgm.js} +4 -4
- package/src/ui/dist/assets/{MarketplacePlugin-DoHc-8vo.js → MarketplacePlugin-CM6ZOcpC.js} +3 -3
- package/src/ui/dist/assets/{NotebookEditor-CKjKH-yS.js → NotebookEditor-Dc61cXmK.js} +3 -3
- package/src/ui/dist/assets/{PdfLoader-zFoL0VPo.js → PdfLoader-DWowuQwx.js} +1 -1
- package/src/ui/dist/assets/{PdfMarkdownPlugin-DXPaL9Nt.js → PdfMarkdownPlugin-BsJM1q_a.js} +3 -3
- package/src/ui/dist/assets/{PdfViewerPlugin-DhK8qCFp.js → PdfViewerPlugin-DB2eEEFQ.js} +10 -10
- package/src/ui/dist/assets/{SearchPlugin-CdSi6krf.js → SearchPlugin-CraThSvt.js} +1 -1
- package/src/ui/dist/assets/{Stepper-V-WiDQJl.js → Stepper-CgocRTPq.js} +1 -1
- package/src/ui/dist/assets/{TextViewerPlugin-hIs1Efiu.js → TextViewerPlugin-B1JGhKtd.js} +4 -4
- package/src/ui/dist/assets/{VNCViewer-DG8b0q2X.js → VNCViewer-CclFC7FM.js} +9 -10
- package/src/ui/dist/assets/{bibtex-HDac6fVW.js → bibtex-D3IKsMl7.js} +1 -1
- package/src/ui/dist/assets/{code-BnBeNxBc.js → code-BP37Xx0p.js} +1 -1
- package/src/ui/dist/assets/{file-content-IRQ3jHb8.js → file-content-BAJSu-9r.js} +1 -1
- package/src/ui/dist/assets/{file-diff-panel-DZoQ9I6r.js → file-diff-panel-DUGeCTuy.js} +1 -1
- package/src/ui/dist/assets/{file-socket-BMCdLc-P.js → file-socket-CXc1Ojf7.js} +1 -1
- package/src/ui/dist/assets/{file-utils-CltILB3w.js → file-utils-2J21jt7M.js} +1 -1
- package/src/ui/dist/assets/{image-Boe6ffhu.js → image-CMMmgvcn.js} +1 -1
- package/src/ui/dist/assets/{index-BlplpvE1.js → index-BaVumsQT.js} +2 -2
- package/src/ui/dist/assets/{index-DZqJ-qAM.js → index-CWgMgpow.js} +60 -2154
- package/src/ui/dist/assets/{index-DO43pFZP.js → index-DmwmJmbW.js} +6372 -8434
- package/src/ui/dist/assets/{index-Bq2bvfkl.css → index-KGt-z-dD.css} +225 -2920
- package/src/ui/dist/assets/{index-2Zf65FZt.js → index-s7aHnNQ4.js} +1 -1
- package/src/ui/dist/assets/{message-square-mUHn_Ssb.js → message-square-CQRfX0Am.js} +1 -1
- package/src/ui/dist/assets/{monaco-fe0arNEU.js → monaco-B4TbdsrF.js} +1 -1
- package/src/ui/dist/assets/{popover-D_7i19qU.js → popover-B8Rokodk.js} +1 -1
- package/src/ui/dist/assets/{project-sync-DyVGrU7H.js → project-sync-D_i96KH4.js} +2 -8
- package/src/ui/dist/assets/{sigma-BzazRyxQ.js → sigma-D12PnzCN.js} +1 -1
- package/src/ui/dist/assets/{tooltip-DN_yjHFH.js → tooltip-B6YrI4aJ.js} +1 -1
- package/src/ui/dist/assets/trash-Bc8jGp0V.js +32 -0
- package/src/ui/dist/assets/{useCliAccess-DV2L2Qxy.js → useCliAccess-mXVCYSZ-.js} +12 -42
- package/src/ui/dist/assets/{useFileDiffOverlay-DyTj-p_V.js → useFileDiffOverlay-Bg6b9H9K.js} +1 -1
- package/src/ui/dist/assets/{wrap-text-ozYHtUwq.js → wrap-text-Drh5GEnL.js} +1 -1
- package/src/ui/dist/assets/{zoom-out-BN9MUyCQ.js → zoom-out-CJj9DZLn.js} +1 -1
- package/src/ui/dist/index.html +2 -2
- package/assets/fonts/Inter-Variable.ttf +0 -0
- package/assets/fonts/NotoSerifSC-Regular-C94HN_ZN.ttf +0 -0
- package/assets/fonts/NunitoSans-Variable.ttf +0 -0
- package/assets/fonts/Satoshi-Medium-ByP-Zb-9.woff2 +0 -0
- package/assets/fonts/SourceSans3-Variable.ttf +0 -0
- package/assets/fonts/ds-fonts.css +0 -83
- package/src/ui/dist/assets/Inter-Variable-VF2RPR_K.ttf +0 -0
- package/src/ui/dist/assets/LabPlugin-bL7rpic8.js +0 -43
- package/src/ui/dist/assets/NotoSerifSC-Regular-C94HN_ZN-C94HN_ZN.ttf +0 -0
- package/src/ui/dist/assets/NunitoSans-Variable-B_ZymHAd.ttf +0 -0
- package/src/ui/dist/assets/Satoshi-Medium-ByP-Zb-9-GkA34YXu.woff2 +0 -0
- package/src/ui/dist/assets/SourceSans3-Variable-CD-WOsSK.ttf +0 -0
- package/src/ui/dist/assets/info-CcsK_htA.js +0 -18
- package/src/ui/dist/assets/user-plus-BusDx-hF.js +0 -79
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# 91 Development Guide: Maintainer Workflow and Repository Guide
|
|
2
|
+
|
|
3
|
+
This guide is for maintainers and contributors working inside the repository.
|
|
4
|
+
|
|
5
|
+
For architecture, read [90_ARCHITECTURE.md](90_ARCHITECTURE.md) first.
|
|
6
|
+
|
|
7
|
+
## Local Prerequisites
|
|
8
|
+
|
|
9
|
+
Recommended baseline:
|
|
10
|
+
|
|
11
|
+
- Node.js `>=18.18`
|
|
12
|
+
- npm `>=9`
|
|
13
|
+
- Python `>=3.11`
|
|
14
|
+
- Git on `PATH`
|
|
15
|
+
|
|
16
|
+
Optional local toolchains:
|
|
17
|
+
|
|
18
|
+
- Codex CLI for the runnable agent path
|
|
19
|
+
- TinyTeX or another LaTeX distribution if you want local PDF compilation
|
|
20
|
+
|
|
21
|
+
## Common Local Flows
|
|
22
|
+
|
|
23
|
+
### Install into a separate local runtime tree
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
bash install.sh
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Install plus a managed TinyTeX runtime
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bash install.sh --with-tinytex
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Start the product
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ds
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Check local health
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
ds doctor
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Check or install the managed LaTeX runtime
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
ds latex status
|
|
51
|
+
ds latex install-runtime
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Build Commands
|
|
55
|
+
|
|
56
|
+
Build the web UI:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm --prefix src/ui install
|
|
60
|
+
npm --prefix src/ui run build
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Build the TUI:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm --prefix src/tui install
|
|
67
|
+
npm --prefix src/tui run build
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Test Commands
|
|
71
|
+
|
|
72
|
+
Quick Python test run:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pytest
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Useful focused checks:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
python3 -m compileall src/deepscientist
|
|
82
|
+
node -c bin/ds.js
|
|
83
|
+
npm pack --dry-run --ignore-scripts
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Release-Oriented Checks
|
|
87
|
+
|
|
88
|
+
Before publishing or cutting a release, verify:
|
|
89
|
+
|
|
90
|
+
1. Python tests pass.
|
|
91
|
+
2. Web and TUI bundles build cleanly.
|
|
92
|
+
3. `npm pack --dry-run --ignore-scripts` succeeds.
|
|
93
|
+
4. README and linked docs match the current runtime behavior.
|
|
94
|
+
5. Any new config, route, or quest-state fields have matching tests.
|
|
95
|
+
|
|
96
|
+
## Managed Runtime Tools
|
|
97
|
+
|
|
98
|
+
Managed local tools live under `src/deepscientist/runtime_tools/`.
|
|
99
|
+
|
|
100
|
+
The goal is to keep optional local helper runtimes consistent and easy to extend.
|
|
101
|
+
|
|
102
|
+
### Current structure
|
|
103
|
+
|
|
104
|
+
- `models.py`
|
|
105
|
+
- provider protocol and shared types
|
|
106
|
+
- `registry.py`
|
|
107
|
+
- registration and lookup
|
|
108
|
+
- `builtins.py`
|
|
109
|
+
- built-in registrations
|
|
110
|
+
- `service.py`
|
|
111
|
+
- high-level access for runtime code
|
|
112
|
+
- `tinytex.py`
|
|
113
|
+
- TinyTeX adapter
|
|
114
|
+
|
|
115
|
+
### Registration flow
|
|
116
|
+
|
|
117
|
+
Every managed tool should follow the same pattern:
|
|
118
|
+
|
|
119
|
+
1. Add a provider module under `src/deepscientist/runtime_tools/`.
|
|
120
|
+
2. Expose a provider object with:
|
|
121
|
+
- `tool_name`
|
|
122
|
+
- `status()`
|
|
123
|
+
- `install()`
|
|
124
|
+
- `resolve_binary(binary)`
|
|
125
|
+
3. Register it in `runtime_tools/builtins.py`.
|
|
126
|
+
4. Access it through `RuntimeToolService`, not by scattering direct imports across the repo.
|
|
127
|
+
5. Document it if it changes user-visible install or troubleshooting behavior.
|
|
128
|
+
|
|
129
|
+
### Minimal provider example
|
|
130
|
+
|
|
131
|
+
```python
|
|
132
|
+
from pathlib import Path
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class ExampleRuntimeTool:
|
|
136
|
+
tool_name = "example"
|
|
137
|
+
|
|
138
|
+
def __init__(self, home: Path) -> None:
|
|
139
|
+
self.home = home
|
|
140
|
+
|
|
141
|
+
def status(self) -> dict:
|
|
142
|
+
return {"ok": True, "summary": "Example tool is healthy."}
|
|
143
|
+
|
|
144
|
+
def install(self) -> dict:
|
|
145
|
+
return {"ok": True, "changed": False, "summary": "Nothing to install."}
|
|
146
|
+
|
|
147
|
+
def resolve_binary(self, binary: str) -> dict:
|
|
148
|
+
return {"binary": binary, "path": None, "source": None, "root": None, "bin_dir": None}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Register it in `runtime_tools/builtins.py`:
|
|
152
|
+
|
|
153
|
+
```python
|
|
154
|
+
from .registry import register_runtime_tool
|
|
155
|
+
from .example import ExampleRuntimeTool
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def register_builtin_runtime_tools(*, home=None) -> None:
|
|
159
|
+
register_runtime_tool("example", lambda **kwargs: ExampleRuntimeTool(kwargs["home"]))
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Use it from runtime code:
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
from deepscientist.runtime_tools import RuntimeToolService
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
service = RuntimeToolService(home)
|
|
169
|
+
status = service.status("example")
|
|
170
|
+
match = service.resolve_binary("example-binary", preferred_tools=("example",))
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Rules for adding a new managed tool
|
|
174
|
+
|
|
175
|
+
- keep the tool optional unless it is absolutely required for the core product
|
|
176
|
+
- do not add a public MCP namespace for it
|
|
177
|
+
- do not wire it directly into unrelated modules when `RuntimeToolService` is enough
|
|
178
|
+
- prefer install locations under `~/DeepScientist/runtime/tools/`
|
|
179
|
+
- keep clear source reporting such as `tinytex` versus `path`
|
|
180
|
+
- add tests for registration, status, and binary resolution
|
|
181
|
+
|
|
182
|
+
## Documentation Rules
|
|
183
|
+
|
|
184
|
+
When behavior changes:
|
|
185
|
+
|
|
186
|
+
- update user docs in `docs/en/` and `docs/zh/` if the user-facing workflow changed
|
|
187
|
+
- update `90_ARCHITECTURE.md` if subsystem structure or ownership changed
|
|
188
|
+
- update this file if development or registration workflow changed
|
|
189
|
+
|
|
190
|
+
## Repository Hygiene
|
|
191
|
+
|
|
192
|
+
- do not commit `node_modules/`, build output, caches, or local secrets
|
|
193
|
+
- do not commit workstation-specific absolute paths
|
|
194
|
+
- keep changes coherent and narrowly scoped
|
|
195
|
+
- prefer current runtime behavior and tests over stale comments or deleted historical docs
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 99 Acknowledgements: Credits and Thanks
|
|
2
|
+
|
|
3
|
+
DeepScientist was shaped by many prior systems, open-source efforts, and research discussions. We would like to express sincere thanks to the projects and individuals who inspired, informed, or supported this work.
|
|
4
|
+
|
|
5
|
+
## Project acknowledgements
|
|
6
|
+
|
|
7
|
+
We especially thank the following projects for their ideas, research direction, and systems inspiration:
|
|
8
|
+
|
|
9
|
+
- The AI Scientist
|
|
10
|
+
- The AI Scientist v2
|
|
11
|
+
- AlphaEvolve
|
|
12
|
+
- OpenEvolve
|
|
13
|
+
- EvoScientist
|
|
14
|
+
|
|
15
|
+
These projects have been important references for thinking about automated research, open-ended exploration, evolutionary search, experiment organization, and long-horizon research agents.
|
|
16
|
+
|
|
17
|
+
## Personal acknowledgements
|
|
18
|
+
|
|
19
|
+
We also sincerely thank the following researchers, collaborators, and supporters:
|
|
20
|
+
|
|
21
|
+
- Shichen Li
|
|
22
|
+
- Guangsheng Bao
|
|
23
|
+
- Fuchen Shen
|
|
24
|
+
- Wenyang Gao
|
|
25
|
+
- Luodan Zhang
|
|
26
|
+
- Junshu Pan
|
|
27
|
+
- Panzhong Lu
|
|
28
|
+
|
|
29
|
+
We are grateful to all of the above projects and individuals.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# 00 快速开始:启动 DeepScientist 并运行第一个 Quest
|
|
2
|
+
|
|
3
|
+
这份文档面向第一次使用 DeepScientist 的用户,目标是让你从安装直接走到“成功启动并跑起来一个 quest”。
|
|
4
|
+
|
|
5
|
+
你只需要完成四步:
|
|
6
|
+
|
|
7
|
+
1. 安装 DeepScientist
|
|
8
|
+
2. 启动本地运行时
|
|
9
|
+
3. 在首页创建一个新 quest
|
|
10
|
+
4. 从 quest 列表重新打开已有任务
|
|
11
|
+
|
|
12
|
+
本文中的截图直接使用当前在线页面 `deepscientist.cc:20999` 作为示例。你本地运行后的页面 `127.0.0.1:20999` 通常会与它保持一致或非常接近。
|
|
13
|
+
|
|
14
|
+
## 1. 安装
|
|
15
|
+
|
|
16
|
+
先全局安装 Codex 和 DeepScientist:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install -g @openai/codex @researai/deepscientist
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
如果你后续还要在本地编译论文 PDF,也可以顺手安装轻量级 LaTeX 运行时:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
ds latex install-runtime
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 2. 启动 DeepScientist
|
|
29
|
+
|
|
30
|
+
启动本地 daemon 与 Web 工作区:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
ds
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
默认情况下,网页会运行在:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
http://127.0.0.1:20999
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
如果浏览器没有自动打开,就手动访问这个地址。
|
|
43
|
+
|
|
44
|
+
## 3. 认识首页
|
|
45
|
+
|
|
46
|
+
启动完成后,先打开 `/` 首页。
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
首页故意做得很简单,核心只有两个按钮:
|
|
51
|
+
|
|
52
|
+
- `Start Research`:创建一个新的 quest,并立刻启动新的研究任务
|
|
53
|
+
- `List Quest`:打开已有 quest 列表,重新进入已经存在的任务
|
|
54
|
+
|
|
55
|
+
如果你是第一次使用,建议先从 `Start Research` 开始。
|
|
56
|
+
|
|
57
|
+
## 4. 使用 Start Research 创建新 Quest
|
|
58
|
+
|
|
59
|
+
点击 `Start Research`,会弹出启动表单。
|
|
60
|
+
|
|
61
|
+

|
|
62
|
+
|
|
63
|
+
这个弹窗不只是“新建任务”,它还会为 agent 写入本次研究的启动合同。
|
|
64
|
+
|
|
65
|
+
最重要的字段是:
|
|
66
|
+
|
|
67
|
+
- `Quest ID`:通常会自动按顺序生成,例如 `00`、`01`、`02`
|
|
68
|
+
- `Primary request` / 研究目标:你真正希望 agent 完成的科研任务
|
|
69
|
+
- `Reuse Baseline`:可选;如果你要复用已有 baseline,就在这里选择
|
|
70
|
+
- `Research intensity`:本次研究的投入强度
|
|
71
|
+
- `Decision mode`:`Autonomous` 表示除非真的需要审批,否则 agent 默认持续自主推进
|
|
72
|
+
- `Research paper`:是否要求本次任务同时产出论文式结果
|
|
73
|
+
- `Language`:本次运行希望使用的用户侧语言
|
|
74
|
+
|
|
75
|
+
第一次测试时,建议你这样填写:
|
|
76
|
+
|
|
77
|
+
- 写一个清晰、单一的研究问题
|
|
78
|
+
- 如果还没有 baseline,就先留空
|
|
79
|
+
- 强度选择 `Balanced` 或 `Sprint`
|
|
80
|
+
- 决策模式保持 `Autonomous`
|
|
81
|
+
|
|
82
|
+
最后点击弹窗底部的 `Start Research` 即可正式启动。
|
|
83
|
+
|
|
84
|
+
## 5. 使用 List Quest 打开已有任务
|
|
85
|
+
|
|
86
|
+
点击首页上的 `List Quest`,会打开 quest 列表。
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
这个列表适合以下场景:
|
|
91
|
+
|
|
92
|
+
- 重新进入一个已经在运行中的 quest
|
|
93
|
+
- 打开一个以前已经完成或已经创建过的 quest
|
|
94
|
+
- 按 quest 标题或 quest id 搜索目标任务
|
|
95
|
+
|
|
96
|
+
列表中的每一行都对应一个 quest 仓库。点击对应卡片即可进入该 quest 的工作区。
|
|
97
|
+
|
|
98
|
+
## 6. 打开 Quest 之后会发生什么
|
|
99
|
+
|
|
100
|
+
创建或打开 quest 后,DeepScientist 会进入这个 quest 的工作区页面。
|
|
101
|
+
|
|
102
|
+
通常你会在里面做这些事情:
|
|
103
|
+
|
|
104
|
+
1. 在 Copilot / Studio 中观察 agent 的实时进展
|
|
105
|
+
2. 查看文件、笔记和生成出来的 artifact
|
|
106
|
+
3. 在 Canvas 中理解当前 quest 的图结构与阶段进展
|
|
107
|
+
4. 只有在你明确想中断时,才主动停止任务
|
|
108
|
+
|
|
109
|
+
## 7. 常用运行命令
|
|
110
|
+
|
|
111
|
+
查看当前状态:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
ds --status
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
停止当前本地 daemon:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
ds --stop
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
如果启动异常或环境有问题,运行诊断:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
ds doctor
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## 8. 下一步该看什么
|
|
130
|
+
|
|
131
|
+
- [01 设置参考:如何配置 DeepScientist](./01_SETTINGS_REFERENCE.md)
|
|
132
|
+
- [02 Start Research 参考:如何填写科研启动合同](./02_START_RESEARCH_GUIDE.md)
|
|
133
|
+
- [03 QQ 连接器指南:如何用 QQ 与 DeepScientist 沟通](./03_QQ_CONNECTOR_GUIDE.md)
|
|
134
|
+
- [05 TUI 使用指南:如何使用终端界面](./05_TUI_GUIDE.md)
|