@researai/deepscientist 1.5.11 → 1.5.12
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 +8 -8
- package/bin/ds.js +358 -61
- package/docs/en/00_QUICK_START.md +35 -3
- package/docs/en/01_SETTINGS_REFERENCE.md +11 -0
- package/docs/en/02_START_RESEARCH_GUIDE.md +68 -4
- package/docs/en/09_DOCTOR.md +28 -3
- package/docs/en/12_GUIDED_WORKFLOW_TOUR.md +21 -2
- package/docs/en/15_CODEX_PROVIDER_SETUP.md +284 -0
- package/docs/en/README.md +4 -0
- package/docs/zh/00_QUICK_START.md +34 -2
- package/docs/zh/01_SETTINGS_REFERENCE.md +11 -0
- package/docs/zh/02_START_RESEARCH_GUIDE.md +69 -3
- package/docs/zh/09_DOCTOR.md +28 -1
- package/docs/zh/12_GUIDED_WORKFLOW_TOUR.md +21 -2
- package/docs/zh/15_CODEX_PROVIDER_SETUP.md +285 -0
- package/docs/zh/README.md +4 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/deepscientist/__init__.py +1 -1
- package/src/deepscientist/bash_exec/monitor.py +7 -5
- package/src/deepscientist/bash_exec/service.py +84 -21
- package/src/deepscientist/channels/local.py +3 -3
- package/src/deepscientist/channels/qq.py +7 -7
- package/src/deepscientist/channels/relay.py +7 -7
- package/src/deepscientist/channels/weixin_ilink.py +90 -19
- package/src/deepscientist/config/models.py +1 -0
- package/src/deepscientist/config/service.py +121 -20
- package/src/deepscientist/daemon/app.py +314 -6
- package/src/deepscientist/doctor.py +1 -5
- package/src/deepscientist/mcp/server.py +124 -3
- package/src/deepscientist/prompts/builder.py +113 -11
- package/src/deepscientist/quest/service.py +247 -31
- package/src/deepscientist/runners/codex.py +121 -22
- package/src/deepscientist/runners/runtime_overrides.py +6 -0
- package/src/deepscientist/shared.py +33 -14
- package/src/prompts/connectors/qq.md +2 -1
- package/src/prompts/connectors/weixin.md +2 -1
- package/src/prompts/contracts/shared_interaction.md +4 -1
- package/src/prompts/system.md +59 -9
- package/src/skills/analysis-campaign/SKILL.md +46 -6
- package/src/skills/analysis-campaign/references/campaign-plan-template.md +21 -8
- package/src/skills/baseline/SKILL.md +1 -1
- package/src/skills/decision/SKILL.md +1 -1
- package/src/skills/experiment/SKILL.md +1 -1
- package/src/skills/finalize/SKILL.md +1 -1
- package/src/skills/idea/SKILL.md +1 -1
- package/src/skills/intake-audit/SKILL.md +1 -1
- package/src/skills/rebuttal/SKILL.md +74 -1
- package/src/skills/rebuttal/references/response-letter-template.md +55 -11
- package/src/skills/review/SKILL.md +118 -1
- package/src/skills/review/references/experiment-todo-template.md +23 -0
- package/src/skills/review/references/review-report-template.md +16 -0
- package/src/skills/review/references/revision-log-template.md +4 -0
- package/src/skills/scout/SKILL.md +1 -1
- package/src/skills/write/SKILL.md +168 -7
- package/src/skills/write/references/paper-experiment-matrix-template.md +131 -0
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/{AiManusChatView-D0mTXG4-.js → AiManusChatView-CnJcXynW.js} +12 -12
- package/src/ui/dist/assets/{AnalysisPlugin-Db0cTXxm.js → AnalysisPlugin-DeyzPEhV.js} +1 -1
- package/src/ui/dist/assets/{CliPlugin-DrV8je02.js → CliPlugin-CB1YODQn.js} +9 -9
- package/src/ui/dist/assets/{CodeEditorPlugin-QXMSCH71.js → CodeEditorPlugin-B-xicq1e.js} +8 -8
- package/src/ui/dist/assets/{CodeViewerPlugin-7hhtWj_E.js → CodeViewerPlugin-DT54ysXa.js} +5 -5
- package/src/ui/dist/assets/{DocViewerPlugin-BWMSnRJe.js → DocViewerPlugin-DQtKT-VD.js} +3 -3
- package/src/ui/dist/assets/{GitDiffViewerPlugin-7J9h9Vy_.js → GitDiffViewerPlugin-hqHbCfnv.js} +20 -20
- package/src/ui/dist/assets/{ImageViewerPlugin-CHJl_0lr.js → ImageViewerPlugin-OcVo33jV.js} +5 -5
- package/src/ui/dist/assets/{LabCopilotPanel-1qSow1es.js → LabCopilotPanel-DdGwhEUV.js} +11 -11
- package/src/ui/dist/assets/{LabPlugin-eQpPPCEp.js → LabPlugin-Ciz1gDaX.js} +2 -2
- package/src/ui/dist/assets/{LatexPlugin-BwRfi89Z.js → LatexPlugin-BhmjNQRC.js} +37 -11
- package/src/ui/dist/assets/{MarkdownViewerPlugin-836PVQWV.js → MarkdownViewerPlugin-BzdVH9Bx.js} +4 -4
- package/src/ui/dist/assets/{MarketplacePlugin-C2y_556i.js → MarketplacePlugin-DmyHspXt.js} +3 -3
- package/src/ui/dist/assets/{NotebookEditor-DIX7Mlzu.js → NotebookEditor-BMXKrDRk.js} +1 -1
- package/src/ui/dist/assets/{NotebookEditor-BRzJbGsn.js → NotebookEditor-BTVYRGkm.js} +11 -11
- package/src/ui/dist/assets/{PdfLoader-DzRaTAlq.js → PdfLoader-CvcjJHXv.js} +1 -1
- package/src/ui/dist/assets/{PdfMarkdownPlugin-DZUfIUnp.js → PdfMarkdownPlugin-DW2ej8Vk.js} +2 -2
- package/src/ui/dist/assets/{PdfViewerPlugin-BwtICzue.js → PdfViewerPlugin-CmlDxbhU.js} +10 -10
- package/src/ui/dist/assets/{SearchPlugin-DHeIAMsx.js → SearchPlugin-DAjQZPSv.js} +1 -1
- package/src/ui/dist/assets/{TextViewerPlugin-C3tCmFox.js → TextViewerPlugin-C-nVAZb_.js} +5 -5
- package/src/ui/dist/assets/{VNCViewer-CQsKVm3t.js → VNCViewer-D7-dIYon.js} +10 -10
- package/src/ui/dist/assets/{bot-BEA2vWuK.js → bot-C_G4WtNI.js} +1 -1
- package/src/ui/dist/assets/{code-XfbSR8K2.js → code-Cd7WfiWq.js} +1 -1
- package/src/ui/dist/assets/{file-content-BjxNaIfy.js → file-content-B57zsL9y.js} +1 -1
- package/src/ui/dist/assets/{file-diff-panel-D_lLVQk0.js → file-diff-panel-DVoheLFq.js} +1 -1
- package/src/ui/dist/assets/{file-socket-D9x_5vlY.js → file-socket-B5kXFxZP.js} +1 -1
- package/src/ui/dist/assets/{image-BhWT33W1.js → image-LLOjkMHF.js} +1 -1
- package/src/ui/dist/assets/{index-Dqj-Mjb4.css → index-BQG-1s2o.css} +40 -2
- package/src/ui/dist/assets/{index--c4iXtuy.js → index-C3r2iGrp.js} +12 -12
- package/src/ui/dist/assets/{index-DZTZ8mWP.js → index-CLQauncb.js} +911 -120
- package/src/ui/dist/assets/{index-PJbSbPTy.js → index-Dxa2eYMY.js} +1 -1
- package/src/ui/dist/assets/{index-BDxipwrC.js → index-hOUOWbW2.js} +2 -2
- package/src/ui/dist/assets/{monaco-K8izTGgo.js → monaco-BGGAEii3.js} +1 -1
- package/src/ui/dist/assets/{pdf-effect-queue-DfBors6y.js → pdf-effect-queue-DlEr1_y5.js} +1 -1
- package/src/ui/dist/assets/{popover-yFK1J4fL.js → popover-CWJbJuYY.js} +1 -1
- package/src/ui/dist/assets/{project-sync-PENr2zcz.js → project-sync-CRJiucYO.js} +18 -4
- package/src/ui/dist/assets/{select-CAbJDfYv.js → select-CoHB7pvH.js} +2 -2
- package/src/ui/dist/assets/{sigma-DEuYJqTl.js → sigma-D5aJWR8J.js} +1 -1
- package/src/ui/dist/assets/{square-check-big-omoSUmcd.js → square-check-big-DUK_mnkS.js} +1 -1
- package/src/ui/dist/assets/{trash--F119N47.js → trash-ChU3SEE3.js} +1 -1
- package/src/ui/dist/assets/{useCliAccess-D31UR23I.js → useCliAccess-BrJBV3tY.js} +1 -1
- package/src/ui/dist/assets/{useFileDiffOverlay-BH6KcMzq.js → useFileDiffOverlay-C2OQaVWc.js} +1 -1
- package/src/ui/dist/assets/{wrap-text-CZ613PM5.js → wrap-text-C7Qqh-om.js} +1 -1
- package/src/ui/dist/assets/{zoom-out-BgDLAv3z.js → zoom-out-rtX0FKya.js} +1 -1
- package/src/ui/dist/index.html +2 -2
|
@@ -115,13 +115,21 @@ type StartResearchTemplate = {
|
|
|
115
115
|
baseline_variant_id: string
|
|
116
116
|
baseline_urls: string
|
|
117
117
|
paper_urls: string
|
|
118
|
+
review_materials: string
|
|
118
119
|
runtime_constraints: string
|
|
119
120
|
objectives: string
|
|
120
121
|
need_research_paper: boolean
|
|
121
122
|
research_intensity: 'light' | 'balanced' | 'sprint'
|
|
122
123
|
decision_policy: 'autonomous' | 'user_gated'
|
|
123
124
|
launch_mode: 'standard' | 'custom'
|
|
124
|
-
custom_profile: 'continue_existing_state' | 'revision_rebuttal' | 'freeform'
|
|
125
|
+
custom_profile: 'continue_existing_state' | 'review_audit' | 'revision_rebuttal' | 'freeform'
|
|
126
|
+
review_followup_policy: 'audit_only' | 'auto_execute_followups' | 'user_gated_followups'
|
|
127
|
+
baseline_execution_policy:
|
|
128
|
+
| 'auto'
|
|
129
|
+
| 'must_reproduce_or_verify'
|
|
130
|
+
| 'reuse_existing_only'
|
|
131
|
+
| 'skip_unless_blocking'
|
|
132
|
+
manuscript_edit_mode: 'none' | 'copy_ready_text' | 'latex_required'
|
|
125
133
|
entry_state_summary: string
|
|
126
134
|
review_summary: string
|
|
127
135
|
custom_brief: string
|
|
@@ -179,6 +187,9 @@ The dialog submits:
|
|
|
179
187
|
decision_policy,
|
|
180
188
|
launch_mode,
|
|
181
189
|
custom_profile,
|
|
190
|
+
review_followup_policy,
|
|
191
|
+
baseline_execution_policy,
|
|
192
|
+
manuscript_edit_mode,
|
|
182
193
|
scope,
|
|
183
194
|
baseline_mode,
|
|
184
195
|
resource_policy,
|
|
@@ -188,6 +199,7 @@ The dialog submits:
|
|
|
188
199
|
objectives: string[],
|
|
189
200
|
baseline_urls: string[],
|
|
190
201
|
paper_urls: string[],
|
|
202
|
+
review_materials: string[],
|
|
191
203
|
entry_state_summary,
|
|
192
204
|
review_summary,
|
|
193
205
|
custom_brief,
|
|
@@ -256,12 +268,18 @@ The dialog submits:
|
|
|
256
268
|
|
|
257
269
|
**`baseline_urls`**
|
|
258
270
|
|
|
259
|
-
- Fallback source links when there is no registered reusable baseline.
|
|
271
|
+
- Fallback source links or absolute local file/folder paths when there is no registered reusable baseline.
|
|
260
272
|
- Submitted as `string[]`.
|
|
261
273
|
|
|
262
274
|
**`paper_urls`**
|
|
263
275
|
|
|
264
|
-
- Papers, repos, benchmarks, or
|
|
276
|
+
- Papers, repos, manuscripts, benchmarks, leaderboards, or absolute local file/folder paths that shape early scouting or writing work.
|
|
277
|
+
- Submitted as `string[]`.
|
|
278
|
+
|
|
279
|
+
**`review_materials`**
|
|
280
|
+
|
|
281
|
+
- Only meaningful for `review_audit` or `revision_rebuttal`.
|
|
282
|
+
- Use one URL or one absolute local file/folder path per line for reviewer comments, decision letters, meta-review notes, or revision packets.
|
|
265
283
|
- Submitted as `string[]`.
|
|
266
284
|
|
|
267
285
|
### Constraints and objectives
|
|
@@ -317,12 +335,49 @@ Only meaningful when `launch_mode = custom`.
|
|
|
317
335
|
- `continue_existing_state`
|
|
318
336
|
- start by auditing existing baselines, results, drafts, or mixed project assets
|
|
319
337
|
- prompt builder should steer the agent toward `intake-audit`
|
|
338
|
+
- `review_audit`
|
|
339
|
+
- start from a substantial draft or paper package that needs an independent skeptical audit
|
|
340
|
+
- prompt builder should steer the agent toward `review`
|
|
320
341
|
- `revision_rebuttal`
|
|
321
342
|
- start from reviewer comments, revision packets, or a rebuttal task
|
|
322
343
|
- prompt builder should steer the agent toward `rebuttal`
|
|
323
344
|
- `freeform`
|
|
345
|
+
- use this as the “Other” path
|
|
324
346
|
- follow a custom brief with minimal forced workflow assumptions
|
|
325
347
|
|
|
348
|
+
**`baseline_execution_policy`**
|
|
349
|
+
|
|
350
|
+
- Only meaningful when `launch_mode = custom`.
|
|
351
|
+
- `auto`
|
|
352
|
+
- let the startup contract and current evidence decide
|
|
353
|
+
- `must_reproduce_or_verify`
|
|
354
|
+
- verify or recover the rebuttal-critical baseline/comparator before reviewer-linked follow-up work
|
|
355
|
+
- `reuse_existing_only`
|
|
356
|
+
- trust the current baseline/results unless they are inconsistent or unusable
|
|
357
|
+
- `skip_unless_blocking`
|
|
358
|
+
- skip baseline reruns unless a named review/rebuttal item truly depends on a missing comparator
|
|
359
|
+
|
|
360
|
+
**`review_followup_policy`**
|
|
361
|
+
|
|
362
|
+
- Mainly meaningful for `review_audit`.
|
|
363
|
+
- `audit_only`
|
|
364
|
+
- stop after the audit artifacts and route recommendation
|
|
365
|
+
- `auto_execute_followups`
|
|
366
|
+
- continue automatically into the justified experiments and manuscript deltas after the audit
|
|
367
|
+
- `user_gated_followups`
|
|
368
|
+
- finish the audit first, then ask for approval before expensive follow-up work
|
|
369
|
+
|
|
370
|
+
**`manuscript_edit_mode`**
|
|
371
|
+
|
|
372
|
+
- Mainly meaningful for `review_audit` and `revision_rebuttal`.
|
|
373
|
+
- `none`
|
|
374
|
+
- planning artifacts only
|
|
375
|
+
- `copy_ready_text`
|
|
376
|
+
- produce section-level revision text that is ready to paste into the manuscript
|
|
377
|
+
- `latex_required`
|
|
378
|
+
- prefer the provided LaTeX tree as the writing surface and produce LaTeX-ready replacement text
|
|
379
|
+
- if you choose this mode, it is best to provide the LaTeX source tree via local path / folder input
|
|
380
|
+
|
|
326
381
|
**`entry_state_summary`**
|
|
327
382
|
|
|
328
383
|
- Plain-language summary of what already exists.
|
|
@@ -378,6 +433,9 @@ Custom launch behavior is explicit:
|
|
|
378
433
|
- `custom + continue_existing_state`
|
|
379
434
|
- tells the agent to audit and normalize existing assets first
|
|
380
435
|
- explicitly prefers `intake-audit`
|
|
436
|
+
- `custom + review_audit`
|
|
437
|
+
- tells the agent that the current draft/paper state is the active contract
|
|
438
|
+
- explicitly prefers `review`
|
|
381
439
|
- `custom + revision_rebuttal`
|
|
382
440
|
- tells the agent to interpret reviewer comments and current paper state first
|
|
383
441
|
- explicitly prefers `rebuttal`
|
|
@@ -477,6 +535,9 @@ Custom launch behavior is explicit:
|
|
|
477
535
|
"decision_policy": "user_gated",
|
|
478
536
|
"launch_mode": "custom",
|
|
479
537
|
"custom_profile": "revision_rebuttal",
|
|
538
|
+
"review_followup_policy": "audit_only",
|
|
539
|
+
"baseline_execution_policy": "skip_unless_blocking",
|
|
540
|
+
"manuscript_edit_mode": "latex_required",
|
|
480
541
|
"scope": "baseline_plus_direction",
|
|
481
542
|
"baseline_mode": "restore_from_url",
|
|
482
543
|
"resource_policy": "balanced",
|
|
@@ -490,6 +551,9 @@ Custom launch behavior is explicit:
|
|
|
490
551
|
],
|
|
491
552
|
"baseline_urls": [],
|
|
492
553
|
"paper_urls": [],
|
|
554
|
+
"review_materials": [
|
|
555
|
+
"/absolute/path/to/review-comments.md"
|
|
556
|
+
],
|
|
493
557
|
"entry_state_summary": "A draft and previous experiment outputs already exist.",
|
|
494
558
|
"review_summary": "Reviewers asked for one stronger ablation, one extra baseline, and a clearer limitation paragraph.",
|
|
495
559
|
"custom_brief": "Treat the current manuscript and review packet as the active contract."
|
|
@@ -500,7 +564,7 @@ Custom launch behavior is explicit:
|
|
|
500
564
|
## Operational implications
|
|
501
565
|
|
|
502
566
|
- The startup contract is durable project state, not only UI state.
|
|
503
|
-
- Prompt building later reads `launch_mode`, `custom_profile`, and
|
|
567
|
+
- Prompt building later reads `launch_mode`, `custom_profile`, `review_followup_policy`, `baseline_execution_policy`, `manuscript_edit_mode`, `entry_state_summary`, `review_summary`, `review_materials`, and `custom_brief` again.
|
|
504
568
|
- This means `Start Research` shapes not just the first turn, but later routing decisions too.
|
|
505
569
|
|
|
506
570
|
## Validation checklist
|
package/docs/en/09_DOCTOR.md
CHANGED
|
@@ -10,20 +10,26 @@ Use `ds doctor` when DeepScientist does not start cleanly after installation.
|
|
|
10
10
|
npm install -g @researai/deepscientist
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
2. Make sure Codex is
|
|
13
|
+
2. Make sure Codex itself is working first:
|
|
14
|
+
|
|
15
|
+
Default OpenAI path:
|
|
14
16
|
|
|
15
17
|
```bash
|
|
16
18
|
codex --login
|
|
17
19
|
```
|
|
18
20
|
|
|
21
|
+
Provider-backed profile path:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
codex --profile minimax
|
|
25
|
+
```
|
|
26
|
+
|
|
19
27
|
If `codex` is missing, repair it explicitly with:
|
|
20
28
|
|
|
21
29
|
```bash
|
|
22
30
|
npm install -g @openai/codex
|
|
23
31
|
```
|
|
24
32
|
|
|
25
|
-
If your Codex CLI version does not expose `--login`, run `codex` and finish the interactive setup there.
|
|
26
|
-
|
|
27
33
|
3. Try to start DeepScientist:
|
|
28
34
|
|
|
29
35
|
```bash
|
|
@@ -81,6 +87,23 @@ If your Codex CLI version does not expose `--login`, run `codex` and finish the
|
|
|
81
87
|
|
|
82
88
|
Finish login once, then rerun `ds doctor`.
|
|
83
89
|
|
|
90
|
+
### Codex profile works in the terminal, but DeepScientist still fails
|
|
91
|
+
|
|
92
|
+
Run DeepScientist with the same profile explicitly:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
ds doctor --codex-profile minimax
|
|
96
|
+
ds --codex-profile minimax
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Replace `minimax` with your real profile name such as `m27`, `glm`, `ark`, or `bailian`.
|
|
100
|
+
|
|
101
|
+
Also check:
|
|
102
|
+
|
|
103
|
+
- the same shell still exports the provider API key
|
|
104
|
+
- the profile points at the provider's Coding Plan endpoint, not the generic API endpoint
|
|
105
|
+
- `~/DeepScientist/config/runners.yaml` uses `model: inherit` if the provider expects the model to come from the profile itself
|
|
106
|
+
|
|
84
107
|
### The configured Codex model is unavailable
|
|
85
108
|
|
|
86
109
|
DeepScientist blocks startup until Codex passes a real startup hello probe. In the current release, that probe first uses the runner model configured in:
|
|
@@ -95,6 +118,8 @@ The default is `gpt-5.4`. If your Codex account or CLI config cannot access that
|
|
|
95
118
|
ds doctor
|
|
96
119
|
```
|
|
97
120
|
|
|
121
|
+
For provider-backed Codex profiles, `model: inherit` is usually the right default.
|
|
122
|
+
|
|
98
123
|
### `uv` is missing
|
|
99
124
|
|
|
100
125
|
Normally `ds` will bootstrap a local `uv` automatically. If that bootstrap fails, install it manually:
|
|
@@ -118,12 +118,12 @@ Good pattern:
|
|
|
118
118
|
|
|
119
119
|
Use these fields to reduce ambiguity before the first round starts.
|
|
120
120
|
|
|
121
|
-
Put repositories in `Baseline links` when:
|
|
121
|
+
Put repositories or absolute local file/folder paths in `Baseline links` when:
|
|
122
122
|
|
|
123
123
|
- the quest should restore a known repo
|
|
124
124
|
- the baseline must come from a specific official implementation
|
|
125
125
|
|
|
126
|
-
Put papers or important external references in `
|
|
126
|
+
Put papers, manuscript paths, or important external references in `Paper / reference sources` when:
|
|
127
127
|
|
|
128
128
|
- the task is defined by a paper
|
|
129
129
|
- the expected protocol comes from prior work
|
|
@@ -131,6 +131,9 @@ Put papers or important external references in `Reference papers / repos` when:
|
|
|
131
131
|
|
|
132
132
|
If you already know the baseline and paper, do not hide them in the main request. Put them in the dedicated fields.
|
|
133
133
|
|
|
134
|
+
These reference fields are not web-only.
|
|
135
|
+
You can use network links, absolute local file paths, or absolute local folder paths.
|
|
136
|
+
|
|
134
137
|
### 4.5 Reusable baseline
|
|
135
138
|
|
|
136
139
|
Use this only when you already imported a trusted reusable baseline into the registry.
|
|
@@ -177,6 +180,22 @@ Why these defaults are usually correct:
|
|
|
177
180
|
- `Standard` keeps the workflow on the ordinary path
|
|
178
181
|
- `Research paper = On` keeps analysis and writing in scope
|
|
179
182
|
|
|
183
|
+
If you switch `Launch mode` to `Custom`, choose the custom task type explicitly:
|
|
184
|
+
|
|
185
|
+
- `Continue existing state`
|
|
186
|
+
- for reuse-first work on an existing quest state
|
|
187
|
+
- `Review`
|
|
188
|
+
- for an independent skeptical audit of a substantial draft or paper package
|
|
189
|
+
- `Rebuttal / revision`
|
|
190
|
+
- for reviewer-driven work where comments must be mapped into experiments, manuscript deltas, and a response letter
|
|
191
|
+
- `Other / freeform`
|
|
192
|
+
- for everything else that does not fit the standard custom types
|
|
193
|
+
|
|
194
|
+
If you choose `Review`, also decide:
|
|
195
|
+
|
|
196
|
+
- whether the system should stop after the audit or continue automatically into follow-up experiments and manuscript updates
|
|
197
|
+
- whether manuscript-facing output should be ordinary copy-ready text or LaTeX-ready text
|
|
198
|
+
|
|
180
199
|
### 4.8 Runtime constraints
|
|
181
200
|
|
|
182
201
|
Use this field for hard rules, not wishes.
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# 15 Codex Provider Setup
|
|
2
|
+
|
|
3
|
+
DeepScientist does not implement separate provider adapters for MiniMax, GLM, Volcengine Ark, or Alibaba Bailian.
|
|
4
|
+
|
|
5
|
+
Instead, it reuses the same Codex CLI setup that already works in your terminal.
|
|
6
|
+
|
|
7
|
+
The recommended order is always:
|
|
8
|
+
|
|
9
|
+
1. make Codex itself work first
|
|
10
|
+
2. confirm `codex` or `codex --profile <name>` works in a terminal
|
|
11
|
+
3. run `ds doctor`
|
|
12
|
+
4. run `ds` or `ds --codex-profile <name>`
|
|
13
|
+
|
|
14
|
+
## Three supported patterns
|
|
15
|
+
|
|
16
|
+
### 1. Default OpenAI login path
|
|
17
|
+
|
|
18
|
+
Use this when your Codex CLI works through the standard OpenAI login flow.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
codex --login
|
|
22
|
+
ds doctor
|
|
23
|
+
ds
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. One-off provider profile
|
|
27
|
+
|
|
28
|
+
Use this when you already have a named Codex profile such as `minimax`, `glm`, `ark`, or `bailian`.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
codex --profile minimax
|
|
32
|
+
ds doctor --codex-profile minimax
|
|
33
|
+
ds --codex-profile minimax
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This is the simplest path. You do not need to edit `runners.yaml` just to try one provider-backed session.
|
|
37
|
+
|
|
38
|
+
### 3. Persistent provider profile
|
|
39
|
+
|
|
40
|
+
Use this when you want DeepScientist to keep using the same profile by default.
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
codex:
|
|
44
|
+
enabled: true
|
|
45
|
+
binary: codex
|
|
46
|
+
config_dir: ~/.codex
|
|
47
|
+
profile: minimax
|
|
48
|
+
model: inherit
|
|
49
|
+
model_reasoning_effort: xhigh
|
|
50
|
+
approval_policy: on-request
|
|
51
|
+
sandbox_mode: workspace-write
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Important:
|
|
55
|
+
|
|
56
|
+
- keep `model: inherit` for provider-backed Codex profiles unless you are certain the provider accepts the explicit model id you plan to send
|
|
57
|
+
- DeepScientist will reuse the same `~/.codex/config.toml` and environment that your terminal Codex already uses
|
|
58
|
+
|
|
59
|
+
## Provider matrix
|
|
60
|
+
|
|
61
|
+
| Provider | Official docs | Codex login needed | What DeepScientist should use |
|
|
62
|
+
|---|---|---|---|
|
|
63
|
+
| OpenAI | use the normal Codex setup | Yes | no profile; run `ds` |
|
|
64
|
+
| MiniMax | [MiniMax Codex CLI](https://platform.minimaxi.com/docs/coding-plan/codex-cli) | No | your Codex profile, for example `ds --codex-profile minimax` |
|
|
65
|
+
| GLM | [GLM Coding Plan: Other Tools](https://docs.bigmodel.cn/cn/coding-plan/tool/others) | No | a Codex profile that targets the GLM coding endpoint |
|
|
66
|
+
| Volcengine Ark | [Ark Coding Plan Overview](https://www.volcengine.com/docs/82379/1925114?lang=zh) | No | a Codex profile that targets the Ark coding endpoint |
|
|
67
|
+
| Alibaba Bailian | [Bailian Coding Plan: Other Tools](https://help.aliyun.com/zh/model-studio/other-tools-coding-plan) | No | a Codex profile that targets the Bailian coding endpoint |
|
|
68
|
+
|
|
69
|
+
## OpenAI
|
|
70
|
+
|
|
71
|
+
### What to prepare
|
|
72
|
+
|
|
73
|
+
- a normal Codex CLI install
|
|
74
|
+
- a successful `codex --login` or `codex` interactive first-run setup
|
|
75
|
+
|
|
76
|
+
### DeepScientist commands
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ds doctor
|
|
80
|
+
ds
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Persistent runner config
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
codex:
|
|
87
|
+
enabled: true
|
|
88
|
+
binary: codex
|
|
89
|
+
config_dir: ~/.codex
|
|
90
|
+
profile: ""
|
|
91
|
+
model: gpt-5.4
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## MiniMax
|
|
95
|
+
|
|
96
|
+
MiniMax is the clearest profile-based case. Its official Codex CLI guide configures a custom Codex provider and sets `requires_openai_auth = false`.
|
|
97
|
+
|
|
98
|
+
Official doc:
|
|
99
|
+
|
|
100
|
+
- <https://platform.minimaxi.com/docs/coding-plan/codex-cli>
|
|
101
|
+
|
|
102
|
+
### What to prepare
|
|
103
|
+
|
|
104
|
+
- Codex CLI installed
|
|
105
|
+
- `MINIMAX_API_KEY` available in the shell that starts Codex and DeepScientist
|
|
106
|
+
- a working Codex profile in `~/.codex/config.toml`
|
|
107
|
+
|
|
108
|
+
### Codex-side setup
|
|
109
|
+
|
|
110
|
+
MiniMax's official page provides a real Codex custom-provider example. The profile name is yours to choose. Use `minimax` below as an example; if you already created `m27`, keep using `m27`.
|
|
111
|
+
|
|
112
|
+
```toml
|
|
113
|
+
[model_providers.minimax]
|
|
114
|
+
name = "MiniMax Chat Completions API"
|
|
115
|
+
base_url = "https://api.minimaxi.com/v1"
|
|
116
|
+
env_key = "MINIMAX_API_KEY"
|
|
117
|
+
wire_api = "chat"
|
|
118
|
+
requires_openai_auth = false
|
|
119
|
+
request_max_retries = 4
|
|
120
|
+
stream_max_retries = 10
|
|
121
|
+
stream_idle_timeout_ms = 300000
|
|
122
|
+
|
|
123
|
+
[profiles.minimax]
|
|
124
|
+
model = "codex-MiniMax-M2.5"
|
|
125
|
+
model_provider = "minimax"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Then:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
export MINIMAX_API_KEY="..."
|
|
132
|
+
codex --profile minimax
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### DeepScientist commands
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
ds doctor --codex-profile minimax
|
|
139
|
+
ds --codex-profile minimax
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Persistent runner config
|
|
143
|
+
|
|
144
|
+
```yaml
|
|
145
|
+
codex:
|
|
146
|
+
enabled: true
|
|
147
|
+
binary: codex
|
|
148
|
+
config_dir: ~/.codex
|
|
149
|
+
profile: minimax
|
|
150
|
+
model: inherit
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## GLM
|
|
154
|
+
|
|
155
|
+
GLM documents the Coding Plan as an OpenAI-compatible coding endpoint rather than a dedicated Codex login flow.
|
|
156
|
+
|
|
157
|
+
Official docs:
|
|
158
|
+
|
|
159
|
+
- <https://docs.bigmodel.cn/cn/coding-plan/tool/others>
|
|
160
|
+
- <https://docs.bigmodel.cn/cn/coding-plan/faq>
|
|
161
|
+
|
|
162
|
+
### Official provider values
|
|
163
|
+
|
|
164
|
+
- Base URL: `https://open.bigmodel.cn/api/coding/paas/v4`
|
|
165
|
+
- API key: your GLM Coding Plan key
|
|
166
|
+
- Model: `GLM-4.7` for the documented path, or `GLM-5` where supported
|
|
167
|
+
|
|
168
|
+
### Recommended Codex adaptation
|
|
169
|
+
|
|
170
|
+
GLM does not currently publish a separate Codex CLI page in the same style as MiniMax. The practical DeepScientist path is:
|
|
171
|
+
|
|
172
|
+
1. create a Codex profile in `~/.codex/config.toml` that points to the GLM coding endpoint above
|
|
173
|
+
2. make sure `codex --profile glm` works in a terminal first
|
|
174
|
+
3. run DeepScientist with the same profile
|
|
175
|
+
|
|
176
|
+
### DeepScientist commands
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
ds doctor --codex-profile glm
|
|
180
|
+
ds --codex-profile glm
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Persistent runner config
|
|
184
|
+
|
|
185
|
+
```yaml
|
|
186
|
+
codex:
|
|
187
|
+
enabled: true
|
|
188
|
+
binary: codex
|
|
189
|
+
config_dir: ~/.codex
|
|
190
|
+
profile: glm
|
|
191
|
+
model: inherit
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Volcengine Ark
|
|
195
|
+
|
|
196
|
+
Volcengine Ark explicitly lists Codex CLI as a supported coding tool.
|
|
197
|
+
|
|
198
|
+
Official doc:
|
|
199
|
+
|
|
200
|
+
- <https://www.volcengine.com/docs/82379/1925114?lang=zh>
|
|
201
|
+
|
|
202
|
+
### Official provider values
|
|
203
|
+
|
|
204
|
+
- OpenAI-compatible Base URL: `https://ark.cn-beijing.volces.com/api/coding/v3`
|
|
205
|
+
- Supported coding models: `doubao-seed-code-preview-latest`, `ark-code-latest`
|
|
206
|
+
- Use the Coding Plan key and the exact Coding Plan endpoint
|
|
207
|
+
|
|
208
|
+
### Recommended Codex adaptation
|
|
209
|
+
|
|
210
|
+
Create a Codex profile that targets the Ark coding endpoint and test it directly first:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
codex --profile ark
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Then start DeepScientist with the same profile:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
ds doctor --codex-profile ark
|
|
220
|
+
ds --codex-profile ark
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Persistent runner config
|
|
224
|
+
|
|
225
|
+
```yaml
|
|
226
|
+
codex:
|
|
227
|
+
enabled: true
|
|
228
|
+
binary: codex
|
|
229
|
+
config_dir: ~/.codex
|
|
230
|
+
profile: ark
|
|
231
|
+
model: inherit
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Alibaba Bailian
|
|
235
|
+
|
|
236
|
+
Bailian documents Coding Plan as an OpenAI-compatible coding endpoint. It requires the Coding Plan-specific key and endpoint, not the generic platform endpoint.
|
|
237
|
+
|
|
238
|
+
Official docs:
|
|
239
|
+
|
|
240
|
+
- <https://help.aliyun.com/zh/model-studio/other-tools-coding-plan>
|
|
241
|
+
- <https://help.aliyun.com/zh/model-studio/coding-plan-faq>
|
|
242
|
+
|
|
243
|
+
### Official provider values
|
|
244
|
+
|
|
245
|
+
- OpenAI-compatible Base URL: `https://coding.dashscope.aliyuncs.com/v1`
|
|
246
|
+
- API key: Coding Plan-specific key, typically `sk-sp-...`
|
|
247
|
+
- Model: choose a Coding Plan-supported model from the current Bailian overview
|
|
248
|
+
|
|
249
|
+
### Recommended Codex adaptation
|
|
250
|
+
|
|
251
|
+
Create a Codex profile that points to the Bailian Coding Plan endpoint and test it directly first:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
codex --profile bailian
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Then start DeepScientist with the same profile:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
ds doctor --codex-profile bailian
|
|
261
|
+
ds --codex-profile bailian
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Persistent runner config
|
|
265
|
+
|
|
266
|
+
```yaml
|
|
267
|
+
codex:
|
|
268
|
+
enabled: true
|
|
269
|
+
binary: codex
|
|
270
|
+
config_dir: ~/.codex
|
|
271
|
+
profile: bailian
|
|
272
|
+
model: inherit
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Troubleshooting checklist
|
|
276
|
+
|
|
277
|
+
If a provider-backed profile still fails in DeepScientist:
|
|
278
|
+
|
|
279
|
+
1. run `codex --profile <name>` manually first
|
|
280
|
+
2. confirm the provider API key is present in the same shell
|
|
281
|
+
3. confirm the provider-specific Base URL is the Coding Plan endpoint, not the generic API endpoint
|
|
282
|
+
4. keep DeepScientist runner `model: inherit` unless you need an explicit override
|
|
283
|
+
5. run `ds doctor --codex-profile <name>`
|
|
284
|
+
6. only after that run `ds --codex-profile <name>`
|
package/docs/en/README.md
CHANGED
|
@@ -30,6 +30,8 @@ This page is the shortest path to the right document.
|
|
|
30
30
|
|
|
31
31
|
- [00 Quick Start](./00_QUICK_START.md)
|
|
32
32
|
Start here if you want to install DeepScientist, launch it locally, and create your first project.
|
|
33
|
+
- [15 Codex Provider Setup](./15_CODEX_PROVIDER_SETUP.md)
|
|
34
|
+
Read this when you want to run DeepScientist through MiniMax, GLM, Volcengine Ark, Alibaba Bailian, or another Codex profile.
|
|
33
35
|
- [12 Guided Workflow Tour](./12_GUIDED_WORKFLOW_TOUR.md)
|
|
34
36
|
Follow the real product flow from landing page to workspace, step by step.
|
|
35
37
|
- [02 Start Research Guide](./02_START_RESEARCH_GUIDE.md)
|
|
@@ -68,6 +70,8 @@ This page is the shortest path to the right document.
|
|
|
68
70
|
|
|
69
71
|
- [09 Doctor](./09_DOCTOR.md)
|
|
70
72
|
Start here for diagnostics and common runtime problems.
|
|
73
|
+
- [15 Codex Provider Setup](./15_CODEX_PROVIDER_SETUP.md)
|
|
74
|
+
Check this if the problem is likely in your Codex profile, provider endpoint, API key, or model configuration.
|
|
71
75
|
- [01 Settings Reference](./01_SETTINGS_REFERENCE.md)
|
|
72
76
|
Check this if the problem is likely caused by config, credentials, or connector setup.
|
|
73
77
|
|
|
@@ -36,7 +36,9 @@
|
|
|
36
36
|
建议你先准备好这些:
|
|
37
37
|
|
|
38
38
|
- 安装好 Node.js `>=18.18` 和 npm `>=9`;请优先参考官方页面安装:https://nodejs.org/en/download
|
|
39
|
-
-
|
|
39
|
+
- 一条已经可用的 Codex 路径:
|
|
40
|
+
- 默认 OpenAI 登录路径:`codex --login`(或 `codex`)
|
|
41
|
+
- provider-backed 路径:一个已经可用的 Codex profile,例如 `minimax`、`glm`、`ark`、`bailian`
|
|
40
42
|
- 模型或 API 凭证
|
|
41
43
|
- 如果任务比较重,准备好 GPU 或远程服务器
|
|
42
44
|
- 如果你要长期运行,优先准备 Docker 或其他隔离环境,并准备一个非 root 账号专门启动 DeepScientist
|
|
@@ -52,6 +54,10 @@
|
|
|
52
54
|
- 阿里百炼 Coding Plan:https://help.aliyun.com/zh/model-studio/coding-plan
|
|
53
55
|
- 火山引擎 Ark Coding Plan:https://www.volcengine.com/docs/82379/1925115?lang=zh
|
|
54
56
|
|
|
57
|
+
如果你准备使用 provider-backed 的 Codex profile,而不是默认 OpenAI 登录流,请继续看:
|
|
58
|
+
|
|
59
|
+
- [15 Codex Provider 配置](./15_CODEX_PROVIDER_SETUP.md)
|
|
60
|
+
|
|
55
61
|
## 1. 先安装 Node.js,再安装 DeepScientist
|
|
56
62
|
|
|
57
63
|
DeepScientist 目前仅支持 Linux 和 macOS。
|
|
@@ -89,6 +95,10 @@ ds latex install-runtime
|
|
|
89
95
|
|
|
90
96
|
## 2. 第一次运行 `ds` 前,先完成 Codex 配置
|
|
91
97
|
|
|
98
|
+
这里有两条路径,二选一即可。
|
|
99
|
+
|
|
100
|
+
### 2.1 默认 OpenAI 登录路径
|
|
101
|
+
|
|
92
102
|
运行:
|
|
93
103
|
|
|
94
104
|
```bash
|
|
@@ -109,7 +119,29 @@ codex
|
|
|
109
119
|
ds doctor
|
|
110
120
|
```
|
|
111
121
|
|
|
112
|
-
|
|
122
|
+
### 2.2 provider-backed 的 Codex profile 路径
|
|
123
|
+
|
|
124
|
+
如果你已经在 MiniMax、GLM、火山方舟、阿里百炼或其他 provider 上配置了一个命名的 Codex profile,请先在终端里确认这个 profile 本身可用:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
codex --profile minimax
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
然后用同一个 profile 去跑 DeepScientist:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
ds doctor --codex-profile minimax
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
之后启动:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
ds --codex-profile minimax
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
把这里的 `minimax` 替换成你真实的 profile 名,例如 `m27`、`glm`、`ark`、`bailian`。
|
|
143
|
+
|
|
144
|
+
DeepScientist 会在启动前强制做一次真实的 Codex hello 探测。默认情况下,`~/DeepScientist/config/runners.yaml` 里的 runner 模型还是 `gpt-5.4`。如果你的 profile 希望模型由 profile 自己决定,请把 `runners.yaml` 里的 `model` 改成 `inherit`;或者直接使用 `--codex-profile <name>`,让这一轮启动自动继承 profile 对应的模型。
|
|
113
145
|
|
|
114
146
|
## 3. 启动本地运行时
|
|
115
147
|
|
|
@@ -406,6 +406,7 @@ codex:
|
|
|
406
406
|
enabled: true
|
|
407
407
|
binary: codex
|
|
408
408
|
config_dir: ~/.codex
|
|
409
|
+
profile: ""
|
|
409
410
|
model: gpt-5.4
|
|
410
411
|
model_reasoning_effort: xhigh
|
|
411
412
|
approval_policy: on-request
|
|
@@ -453,6 +454,15 @@ claude:
|
|
|
453
454
|
- 页面标签:`Config directory`
|
|
454
455
|
- 作用:runner 的全局配置目录,通常存放认证和全局配置。
|
|
455
456
|
|
|
457
|
+
**`profile`**
|
|
458
|
+
|
|
459
|
+
- 类型:`string`
|
|
460
|
+
- 默认值:`""`
|
|
461
|
+
- 页面标签:`Codex profile`
|
|
462
|
+
- 作用:可选的 Codex profile 名称,会直接透传为 `codex --profile <name>`。
|
|
463
|
+
- 当你的 Codex CLI 已经配置成 MiniMax、GLM、火山方舟、阿里百炼或其他 provider-backed 路径时,就在这里填写。
|
|
464
|
+
- 临时使用说明:如果你不想持久化写配置,也可以保持这里为空,直接使用 `ds --codex-profile <name>` 启动。
|
|
465
|
+
|
|
456
466
|
**`model`**
|
|
457
467
|
|
|
458
468
|
- 类型:`string`
|
|
@@ -460,6 +470,7 @@ claude:
|
|
|
460
470
|
- 页面标签:`Default model`
|
|
461
471
|
- 作用:项目和单次请求没有覆盖时的默认模型。
|
|
462
472
|
- 启动说明:DeepScientist 的 Codex 就绪探测会优先使用这里配置的模型。如果你的 Codex 账号无法访问它,DeepScientist 会自动回退到当前 Codex 默认模型,并持久化为 `model: inherit`。
|
|
473
|
+
- provider-profile 说明:当 `profile` 已设置时,通常推荐使用 `model: inherit`,让 Codex profile 自己决定 provider 侧模型。
|
|
463
474
|
|
|
464
475
|
**`model_reasoning_effort`**
|
|
465
476
|
|