@researai/deepscientist 1.5.15 → 1.5.17
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 +385 -104
- package/bin/ds.js +1241 -110
- package/docs/en/00_QUICK_START.md +100 -19
- package/docs/en/01_SETTINGS_REFERENCE.md +34 -1
- package/docs/en/02_START_RESEARCH_GUIDE.md +7 -0
- package/docs/en/05_TUI_GUIDE.md +6 -0
- package/docs/en/06_RUNTIME_AND_CANVAS.md +4 -3
- package/docs/en/09_DOCTOR.md +25 -8
- package/docs/en/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +63 -13
- package/docs/en/15_CODEX_PROVIDER_SETUP.md +37 -11
- package/docs/en/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
- package/docs/en/19_LOCAL_BROWSER_AUTH.md +70 -0
- package/docs/en/20_WORKSPACE_MODES_GUIDE.md +250 -0
- package/docs/en/21_LOCAL_MODEL_BACKENDS_GUIDE.md +283 -0
- package/docs/en/91_DEVELOPMENT.md +237 -0
- package/docs/en/README.md +24 -2
- package/docs/zh/00_QUICK_START.md +89 -19
- package/docs/zh/01_SETTINGS_REFERENCE.md +34 -1
- package/docs/zh/02_START_RESEARCH_GUIDE.md +7 -0
- package/docs/zh/05_TUI_GUIDE.md +6 -0
- package/docs/zh/09_DOCTOR.md +26 -9
- package/docs/zh/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +63 -13
- package/docs/zh/15_CODEX_PROVIDER_SETUP.md +37 -11
- package/docs/zh/19_EXTERNAL_CONTROLLER_GUIDE.md +226 -0
- package/docs/zh/19_LOCAL_BROWSER_AUTH.md +68 -0
- package/docs/zh/20_WORKSPACE_MODES_GUIDE.md +251 -0
- package/docs/zh/21_LOCAL_MODEL_BACKENDS_GUIDE.md +281 -0
- package/docs/zh/README.md +24 -2
- package/install.sh +46 -4
- package/package.json +2 -1
- package/pyproject.toml +1 -1
- package/src/deepscientist/__init__.py +1 -1
- package/src/deepscientist/acp/envelope.py +6 -0
- package/src/deepscientist/artifact/service.py +647 -22
- package/src/deepscientist/bash_exec/service.py +234 -9
- package/src/deepscientist/bridges/connectors.py +8 -2
- package/src/deepscientist/cli.py +115 -19
- package/src/deepscientist/codex_cli_compat.py +367 -22
- package/src/deepscientist/config/models.py +2 -1
- package/src/deepscientist/config/service.py +183 -13
- package/src/deepscientist/daemon/api/handlers.py +255 -31
- package/src/deepscientist/daemon/api/router.py +9 -0
- package/src/deepscientist/daemon/app.py +1146 -105
- package/src/deepscientist/diagnostics/__init__.py +6 -0
- package/src/deepscientist/diagnostics/runner_failures.py +130 -0
- package/src/deepscientist/doctor.py +207 -3
- package/src/deepscientist/gitops/__init__.py +10 -1
- package/src/deepscientist/gitops/diff.py +129 -0
- package/src/deepscientist/gitops/service.py +4 -1
- package/src/deepscientist/mcp/server.py +39 -0
- package/src/deepscientist/prompts/builder.py +275 -34
- package/src/deepscientist/quest/layout.py +15 -2
- package/src/deepscientist/quest/service.py +707 -55
- package/src/deepscientist/quest/stage_views.py +6 -1
- package/src/deepscientist/runners/codex.py +143 -43
- package/src/deepscientist/shared.py +19 -0
- package/src/deepscientist/skills/__init__.py +2 -2
- package/src/deepscientist/skills/installer.py +196 -5
- package/src/deepscientist/skills/registry.py +66 -0
- package/src/prompts/connectors/qq.md +18 -8
- package/src/prompts/connectors/weixin.md +16 -6
- package/src/prompts/contracts/shared_interaction.md +14 -2
- package/src/prompts/system.md +23 -5
- package/src/prompts/system_copilot.md +56 -0
- package/src/skills/analysis-campaign/SKILL.md +1 -0
- package/src/skills/baseline/SKILL.md +8 -0
- package/src/skills/decision/SKILL.md +8 -0
- package/src/skills/experiment/SKILL.md +8 -0
- package/src/skills/figure-polish/SKILL.md +1 -0
- package/src/skills/finalize/SKILL.md +1 -0
- package/src/skills/idea/SKILL.md +1 -0
- package/src/skills/intake-audit/SKILL.md +8 -0
- package/src/skills/mentor/SKILL.md +217 -0
- package/src/skills/mentor/references/correction-rules.md +210 -0
- package/src/skills/mentor/references/knowledge-profile.md +91 -0
- package/src/skills/mentor/references/persona-profile.md +138 -0
- package/src/skills/mentor/references/taste-profile.md +128 -0
- package/src/skills/mentor/references/thought-style-profile.md +138 -0
- package/src/skills/mentor/references/work-profile.md +289 -0
- package/src/skills/mentor/references/workflow-profile.md +240 -0
- package/src/skills/optimize/SKILL.md +1 -0
- package/src/skills/rebuttal/SKILL.md +1 -0
- package/src/skills/review/SKILL.md +1 -0
- package/src/skills/scout/SKILL.md +8 -0
- package/src/skills/write/SKILL.md +1 -0
- package/src/tui/dist/app/AppContainer.js +19 -11
- package/src/tui/dist/index.js +4 -1
- package/src/tui/dist/lib/api.js +33 -3
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/AiManusChatView-Bv-Z8YpU.js +204 -0
- package/src/ui/dist/assets/AnalysisPlugin-BCKAfjba.js +1 -0
- package/src/ui/dist/assets/CliPlugin-BCKcpc35.js +109 -0
- package/src/ui/dist/assets/CodeEditorPlugin-DbOfSJ8K.js +2 -0
- package/src/ui/dist/assets/CodeViewerPlugin-CbaFRrUU.js +270 -0
- package/src/ui/dist/assets/DocViewerPlugin-DAjLVeQD.js +7 -0
- package/src/ui/dist/assets/GitCommitViewerPlugin-CIUqbUDO.js +1 -0
- package/src/ui/dist/assets/GitDiffViewerPlugin-CQACjoAA.js +6 -0
- package/src/ui/dist/assets/GitSnapshotViewer-0r4nLPke.js +30 -0
- package/src/ui/dist/assets/ImageViewerPlugin-nBOmI2v_.js +26 -0
- package/src/ui/dist/assets/LabCopilotPanel-BHxOxF4z.js +14 -0
- package/src/ui/dist/assets/LabPlugin-BKoZGs95.js +22 -0
- package/src/ui/dist/assets/LatexPlugin-ZwtV8pIp.js +25 -0
- package/src/ui/dist/assets/MarkdownViewerPlugin-DKqVfKyW.js +128 -0
- package/src/ui/dist/assets/MarketplacePlugin-BwxStZ9D.js +13 -0
- package/src/ui/dist/assets/NotebookEditor-BEQhaQbt.js +81 -0
- package/src/ui/dist/assets/{NotebookEditor-CccQYZjX.css → NotebookEditor-BHH8rdGj.css} +1 -1
- package/src/ui/dist/assets/NotebookEditor-BOr3x3Ej.css +1 -0
- package/src/ui/dist/assets/NotebookEditor-DB9N_T9q.js +361 -0
- package/src/ui/dist/assets/PdfLoader-Cy5jtWrr.css +1 -0
- package/src/ui/dist/assets/PdfLoader-eWBONbQP.js +16 -0
- package/src/ui/dist/assets/PdfMarkdownPlugin-D22YOZL3.js +1 -0
- package/src/ui/dist/assets/PdfViewerPlugin-c-RK9DLM.js +17 -0
- package/src/ui/dist/assets/PdfViewerPlugin-nwwE-fjJ.css +1 -0
- package/src/ui/dist/assets/SearchPlugin-CxF9ytAx.js +16 -0
- package/src/ui/dist/assets/SearchPlugin-DA4en4hK.css +1 -0
- package/src/ui/dist/assets/TextViewerPlugin-C5xqeeUH.js +54 -0
- package/src/ui/dist/assets/VNCViewer-BoLGLnHz.js +11 -0
- package/src/ui/dist/assets/bot-DREQOxzP.js +6 -0
- package/src/ui/dist/assets/browser-CTB2jwNe.js +8 -0
- package/src/ui/dist/assets/chevron-up-C9Qpx4DE.js +6 -0
- package/src/ui/dist/assets/code-WlFHE7z_.js +6 -0
- package/src/ui/dist/assets/file-content-BZMz3RYp.js +1 -0
- package/src/ui/dist/assets/file-diff-panel-CQhw0jS2.js +1 -0
- package/src/ui/dist/assets/file-jump-queue-DA-SdG__.js +1 -0
- package/src/ui/dist/assets/file-socket-CfQPKQKj.js +1 -0
- package/src/ui/dist/assets/git-commit-horizontal-DxZ8DCZh.js +6 -0
- package/src/ui/dist/assets/image-Bgl4VIyx.js +6 -0
- package/src/ui/dist/assets/index-BpV6lusQ.css +33 -0
- package/src/ui/dist/assets/index-CBNVuWcP.js +2496 -0
- package/src/ui/dist/assets/index-CwNu1aH4.js +11 -0
- package/src/ui/dist/assets/index-DrUnlf6K.js +1 -0
- package/src/ui/dist/assets/index-NW-h8VzN.js +1 -0
- package/src/ui/dist/assets/monaco-CiHMMNH_.js +1 -0
- package/src/ui/dist/assets/pdf-effect-queue-J8OnM0jE.js +6 -0
- package/src/ui/dist/assets/plugin-monaco-C8UgLomw.js +19 -0
- package/src/ui/dist/assets/plugin-notebook-HbW2K-1c.js +169 -0
- package/src/ui/dist/assets/plugin-pdf-CR8hgQBV.js +357 -0
- package/src/ui/dist/assets/plugin-terminal-MXFIPun8.js +227 -0
- package/src/ui/dist/assets/popover-CLc0pPP8.js +1 -0
- package/src/ui/dist/assets/project-sync-C9IdzdZW.js +1 -0
- package/src/ui/dist/assets/select-Cs2PmzwL.js +11 -0
- package/src/ui/dist/assets/sigma-ClKcHAXm.js +6 -0
- package/src/ui/dist/assets/trash-DwpbFr3w.js +11 -0
- package/src/ui/dist/assets/useCliAccess-NQ8m0Let.js +1 -0
- package/src/ui/dist/assets/useFileDiffOverlay-FuhcnKiw.js +1 -0
- package/src/ui/dist/assets/wrap-text-BC-Hltpd.js +11 -0
- package/src/ui/dist/assets/zoom-out-E_gaeAxL.js +11 -0
- package/src/ui/dist/index.html +5 -2
- package/src/ui/dist/assets/AiManusChatView-DDjbFnbt.js +0 -26597
- package/src/ui/dist/assets/AnalysisPlugin-Yb5IdmaU.js +0 -123
- package/src/ui/dist/assets/CliPlugin-e64sreyu.js +0 -31037
- package/src/ui/dist/assets/CodeEditorPlugin-C4D2TIkU.js +0 -427
- package/src/ui/dist/assets/CodeViewerPlugin-BVoNZIvC.js +0 -905
- package/src/ui/dist/assets/DocViewerPlugin-CLChbllo.js +0 -278
- package/src/ui/dist/assets/GitDiffViewerPlugin-C4xeFyFQ.js +0 -2661
- package/src/ui/dist/assets/ImageViewerPlugin-OiMUAcLi.js +0 -500
- package/src/ui/dist/assets/LabCopilotPanel-BjD2ThQF.js +0 -4104
- package/src/ui/dist/assets/LabPlugin-DQPg-NrB.js +0 -2677
- package/src/ui/dist/assets/LatexPlugin-CI05XAV9.js +0 -1792
- package/src/ui/dist/assets/MarkdownViewerPlugin-DpeBLYZf.js +0 -308
- package/src/ui/dist/assets/MarketplacePlugin-DolE58Q2.js +0 -413
- package/src/ui/dist/assets/NotebookEditor-7Qm2rSWD.js +0 -4214
- package/src/ui/dist/assets/NotebookEditor-C1kWaxKi.js +0 -84873
- package/src/ui/dist/assets/NotebookEditor-C3VQ7ylN.css +0 -1405
- package/src/ui/dist/assets/PdfLoader-BfOHw8Zw.js +0 -25468
- package/src/ui/dist/assets/PdfLoader-C-Y707R3.css +0 -49
- package/src/ui/dist/assets/PdfMarkdownPlugin-BulDREv1.js +0 -409
- package/src/ui/dist/assets/PdfViewerPlugin-C-daaOaL.js +0 -3095
- package/src/ui/dist/assets/PdfViewerPlugin-DQ11QcSf.css +0 -3627
- package/src/ui/dist/assets/SearchPlugin-CjpaiJ3A.js +0 -741
- package/src/ui/dist/assets/SearchPlugin-DDMrGDkh.css +0 -379
- package/src/ui/dist/assets/TextViewerPlugin-BxIyqPQC.js +0 -472
- package/src/ui/dist/assets/VNCViewer-HAg9mF7M.js +0 -18821
- package/src/ui/dist/assets/awareness-C0NPR2Dj.js +0 -292
- package/src/ui/dist/assets/bot-0DYntytV.js +0 -21
- package/src/ui/dist/assets/browser-BAcuE0Xj.js +0 -2895
- package/src/ui/dist/assets/code-B20Slj_w.js +0 -17
- package/src/ui/dist/assets/file-content-DT24KFma.js +0 -377
- package/src/ui/dist/assets/file-diff-panel-DK13YPql.js +0 -92
- package/src/ui/dist/assets/file-jump-queue-r5XKgJEV.js +0 -16
- package/src/ui/dist/assets/file-socket-B4T2o4nR.js +0 -58
- package/src/ui/dist/assets/function-B5QZkkHC.js +0 -1895
- package/src/ui/dist/assets/image-DSeR_sDS.js +0 -18
- package/src/ui/dist/assets/index-BrFje2Uk.js +0 -120
- package/src/ui/dist/assets/index-BwRJaoTl.js +0 -25
- package/src/ui/dist/assets/index-D_E4281X.js +0 -221322
- package/src/ui/dist/assets/index-DnYB3xb1.js +0 -159
- package/src/ui/dist/assets/index-G7AcWcMu.css +0 -12594
- package/src/ui/dist/assets/monaco-LExaAN3Y.js +0 -623
- package/src/ui/dist/assets/pdf-effect-queue-BJk5okWJ.js +0 -47
- package/src/ui/dist/assets/pdf_viewer-e0g1is2C.js +0 -8206
- package/src/ui/dist/assets/popover-D3Gg_FoV.js +0 -476
- package/src/ui/dist/assets/project-sync-C_ygLlVU.js +0 -297
- package/src/ui/dist/assets/select-CpAK6uWm.js +0 -1690
- package/src/ui/dist/assets/sigma-DEccaSgk.js +0 -22
- package/src/ui/dist/assets/square-check-big-uUfyVsbD.js +0 -17
- package/src/ui/dist/assets/trash-CXvwwSe8.js +0 -32
- package/src/ui/dist/assets/useCliAccess-Bnop4mgR.js +0 -957
- package/src/ui/dist/assets/useFileDiffOverlay-B8eUAX0I.js +0 -53
- package/src/ui/dist/assets/wrap-text-9vbOBpkW.js +0 -35
- package/src/ui/dist/assets/yjs-DncrqiZ8.js +0 -11243
- package/src/ui/dist/assets/zoom-out-BgVMmOW4.js +0 -34
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
DeepScientist 不会为 MiniMax、GLM、火山方舟、阿里百炼单独实现一套 provider 适配器。
|
|
4
4
|
|
|
5
|
+
如果你要使用阿里百炼上的 Qwen,需要特别注意:DeepScientist 只支持 **Coding Plan** 这条路径,不支持普通百炼 / DashScope 平台的 Qwen API。
|
|
6
|
+
|
|
5
7
|
它复用的是你本机已经能正常工作的 Codex CLI 配置。
|
|
6
8
|
|
|
7
9
|
推荐顺序始终是:
|
|
@@ -18,7 +20,7 @@ DeepScientist 不会为 MiniMax、GLM、火山方舟、阿里百炼单独实现
|
|
|
18
20
|
如果你的 Codex CLI 走的是标准 OpenAI 登录流,就用这一条。
|
|
19
21
|
|
|
20
22
|
```bash
|
|
21
|
-
codex
|
|
23
|
+
codex login
|
|
22
24
|
ds doctor
|
|
23
25
|
ds
|
|
24
26
|
```
|
|
@@ -62,7 +64,8 @@ codex:
|
|
|
62
64
|
|
|
63
65
|
- 对 provider-backed 的 Codex profile,建议优先使用 `model: inherit`
|
|
64
66
|
- 除非你非常确定该 provider 接受你要显式传入的模型名,否则不要再额外硬写一个模型
|
|
65
|
-
- DeepScientist
|
|
67
|
+
- DeepScientist 现在会在 `.ds/codex-home` 下启动一个隔离的运行时 home,但会先继承你配置的 `~/.codex` 里的 auth、config、skills、agents 与 prompts
|
|
68
|
+
- 如果当前生效 provider 使用的是 `wire_api = "chat"`,DeepScientist 现在会在启动探测时自动检查所选 Codex binary 是否正好是 `0.57.0`
|
|
66
69
|
|
|
67
70
|
## Provider 一览
|
|
68
71
|
|
|
@@ -72,14 +75,14 @@ codex:
|
|
|
72
75
|
| MiniMax | [MiniMax Codex CLI](https://platform.minimaxi.com/docs/coding-plan/codex-cli) | 否 | 使用你自己的 Codex profile,例如 `ds --codex-profile m27` |
|
|
73
76
|
| GLM | [GLM Coding Plan:其他工具](https://docs.bigmodel.cn/cn/coding-plan/tool/others) | 否 | 使用一个指向 GLM coding endpoint 的 Codex profile |
|
|
74
77
|
| 火山方舟 | [Ark Coding Plan 总览](https://www.volcengine.com/docs/82379/1925114?lang=zh) | 否 | 使用一个指向 Ark coding endpoint 的 Codex profile |
|
|
75
|
-
| 阿里百炼 | [百炼 Coding Plan:其他工具](https://help.aliyun.com/zh/model-studio/other-tools-coding-plan) | 否 | 使用一个指向 Bailian
|
|
78
|
+
| 阿里百炼 | [百炼 Coding Plan:其他工具](https://help.aliyun.com/zh/model-studio/other-tools-coding-plan) | 否 | 使用一个指向 Bailian Coding Plan endpoint 的 Codex profile;不要使用普通百炼 / DashScope Qwen API |
|
|
76
79
|
|
|
77
80
|
## OpenAI
|
|
78
81
|
|
|
79
82
|
### 需要准备什么
|
|
80
83
|
|
|
81
84
|
- 正常安装的 Codex CLI
|
|
82
|
-
- 已成功执行过一次 `codex
|
|
85
|
+
- 已成功执行过一次 `codex login`,或者在 `codex` 交互界面里完成首次认证
|
|
83
86
|
|
|
84
87
|
### DeepScientist 命令
|
|
85
88
|
|
|
@@ -109,13 +112,13 @@ MiniMax 是最典型的 profile 模式。它的官方 Codex CLI 文档直接给
|
|
|
109
112
|
|
|
110
113
|
### 已验证的兼容性说明
|
|
111
114
|
|
|
112
|
-
按 2026-
|
|
115
|
+
按 2026-04-04 对 MiniMax 官方 Codex CLI 页面和本地兼容性测试的核对结果:
|
|
113
116
|
|
|
114
117
|
- MiniMax 官方 Codex CLI 页面当前建议使用 `@openai/codex@0.57.0`
|
|
115
118
|
- MiniMax 当前应使用的 Coding Plan endpoint 是 `https://api.minimaxi.com/v1`
|
|
116
119
|
- MiniMax 官方页面示例 profile 名是 `m21`,但 profile 名本身只是本地别名;本仓库统一用 `m27` 作为示例名
|
|
117
120
|
- MiniMax 官方页面当前给出的 `codex-MiniMax-*` 模型名,在本地使用你提供的 key 实测并不能稳定通过 Codex CLI
|
|
118
|
-
-
|
|
121
|
+
- 本地实测 DeepScientist 可稳定跑通的组合包括 `MiniMax-M2.7` + `m27` + Codex CLI `0.57.0`,以及 `MiniMax-M2.5` + `m25` + Codex CLI `0.57.0`
|
|
119
122
|
- 当前最新版 `@openai/codex` 和 MiniMax 官方文档并不能稳定直接对齐
|
|
120
123
|
|
|
121
124
|
如果你现在要走最稳的 DeepScientist + MiniMax 路径,建议直接使用 Codex CLI `0.57.0`。
|
|
@@ -125,7 +128,7 @@ MiniMax 是最典型的 profile 模式。它的官方 Codex CLI 文档直接给
|
|
|
125
128
|
- 已安装 Codex CLI `0.57.0`
|
|
126
129
|
- 已创建 MiniMax `Coding Plan Key`
|
|
127
130
|
- 在启动 Codex 和 DeepScientist 的 shell 中可见的 `MINIMAX_API_KEY`
|
|
128
|
-
-
|
|
131
|
+
- 如果你要单独在终端里验证 `codex --profile <name>`,当前 shell 需要先清理 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`
|
|
129
132
|
- `~/.codex/config.toml` 中已经配置好的 Codex profile
|
|
130
133
|
|
|
131
134
|
### 安装 Codex CLI `0.57.0`
|
|
@@ -145,6 +148,8 @@ codex-cli 0.57.0
|
|
|
145
148
|
|
|
146
149
|
如果你还想保留另一个 Codex 版本,也可以单独写一个 wrapper 脚本,再把 `runners.codex.binary` 指向那个绝对路径。
|
|
147
150
|
|
|
151
|
+
现在如果 DeepScientist 在启动时检测到 MiniMax profile,但当前 `codex` 版本不是 `0.57.0`,在交互式终端里会主动提示是否自动安装 `@openai/codex@0.57.0`。
|
|
152
|
+
|
|
148
153
|
### Codex 侧配置
|
|
149
154
|
|
|
150
155
|
请使用 `https://api.minimaxi.com/v1`,不要用 `https://api.minimax.io/v1`。
|
|
@@ -157,15 +162,19 @@ unset OPENAI_BASE_URL
|
|
|
157
162
|
export MINIMAX_API_KEY="..."
|
|
158
163
|
```
|
|
159
164
|
|
|
165
|
+
如果你是在终端里单独验证 `codex --profile <name>`,就按上面的方式处理。
|
|
166
|
+
如果你走的是 DeepScientist 路径,那么当所选 provider 明确写了 `requires_openai_auth = false` 时,DeepScientist 现在会在 startup probe 和真实 runner 执行时自动剥离 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`。
|
|
167
|
+
|
|
160
168
|
MiniMax 官方页面示例 profile 名是 `m21`。由于 profile 名只是本地别名,本仓库统一改写成 `m27`。
|
|
161
169
|
|
|
162
170
|
先说明差异:
|
|
163
171
|
|
|
164
172
|
- 官方页面当前展示的是 `codex-MiniMax-M2.5`
|
|
165
|
-
- 但本地实测里,直接请求 MiniMax API 能稳定跑通的是 `MiniMax-M2.7`
|
|
166
|
-
-
|
|
173
|
+
- 但本地实测里,直接请求 MiniMax API 能稳定跑通的是 `MiniMax-M2.7` 和 `MiniMax-M2.5`
|
|
174
|
+
- 可复现的 DeepScientist 路径是:`MiniMax-M2.7` 配 `m27`,以及 `MiniMax-M2.5` 配 `m25`
|
|
175
|
+
- 对 `m25` 这条路径,请使用 `MiniMax-M2.5`,不要写成 `codex-MiniMax-M2.5`
|
|
167
176
|
|
|
168
|
-
因此,下面给的是当前 DeepScientist
|
|
177
|
+
因此,下面给的是当前 DeepScientist 推荐配置:
|
|
169
178
|
|
|
170
179
|
```toml
|
|
171
180
|
[model_providers.minimax]
|
|
@@ -183,9 +192,20 @@ model = "MiniMax-M2.7"
|
|
|
183
192
|
model_provider = "minimax"
|
|
184
193
|
```
|
|
185
194
|
|
|
195
|
+
如果你想走同样的 DeepScientist 路径但使用 `m25`,保持上面的 provider 配置不变,再把 profile 写成:
|
|
196
|
+
|
|
197
|
+
```toml
|
|
198
|
+
[profiles.m25]
|
|
199
|
+
model = "MiniMax-M2.5"
|
|
200
|
+
model_provider = "minimax"
|
|
201
|
+
```
|
|
202
|
+
|
|
186
203
|
DeepScientist 现在对它的支持方式是:
|
|
187
204
|
|
|
188
|
-
- 如果你使用的是这类 profile-only MiniMax 配置,再配合 Codex CLI `0.57.0`,DeepScientist 会在自己的 probe / 运行时临时
|
|
205
|
+
- 如果你使用的是这类 profile-only MiniMax 配置,再配合 Codex CLI `0.57.0`,DeepScientist 会在自己的 probe / 运行时临时 `config.toml` 副本里,把所选 profile 的 `model_provider` 和 `model` 自动提升到顶层
|
|
206
|
+
- 对 provider-backed 的 MiniMax profile,DeepScientist 会强制使用 `model: inherit`,避免再被硬编码的 OpenAI 模型覆盖
|
|
207
|
+
- 当 `requires_openai_auth = false` 时,DeepScientist 会自动移除冲突的 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`
|
|
208
|
+
- 对 MiniMax 这类 `Codex CLI 0.57.0 + wire_api = \"chat\"` 的会话,DeepScientist 现在会额外注入一个兼容约束,明确要求 Codex 把 MCP 工具调用串行化,一次只发一个 tool call,而不是把多个 tool call 打包进同一轮回复
|
|
189
209
|
- 这意味着即使终端里原样执行 `codex --profile m27` 还会失败,DeepScientist 也可以先兼容跑起来
|
|
190
210
|
|
|
191
211
|
如果你还希望终端里的 `codex --profile <name>` 也直接可用,请使用显式顶层兼容写法:
|
|
@@ -248,6 +268,7 @@ DeepScientist 现在会为 MiniMax 的 `0.57.0` 路径额外做两层兼容:
|
|
|
248
268
|
|
|
249
269
|
- 当检测到旧版 Codex CLI 不支持 `xhigh` 时,自动把 `xhigh` 降级成 `high`
|
|
250
270
|
- 当检测到 MiniMax 使用 profile-only 的 `model_provider` / `model` 配置形态时,在临时 DeepScientist Codex home 里自动补齐顶层字段
|
|
271
|
+
- 当 provider 明确声明 `requires_openai_auth = false` 时,自动移除冲突的 `OPENAI_*` 认证环境变量
|
|
251
272
|
|
|
252
273
|
## GLM
|
|
253
274
|
|
|
@@ -334,6 +355,11 @@ codex:
|
|
|
334
355
|
|
|
335
356
|
阿里百炼的 Coding Plan 官方文档也是 OpenAI-compatible endpoint 路径。它特别强调:必须使用 Coding Plan 专属 key 和 endpoint,而不是普通平台 endpoint。
|
|
336
357
|
|
|
358
|
+
对 Qwen 这条路径,需要额外记住:
|
|
359
|
+
|
|
360
|
+
- 支持:走百炼 **Coding Plan** 的 Qwen
|
|
361
|
+
- 不支持:普通百炼 / DashScope 平台的 Qwen API
|
|
362
|
+
|
|
337
363
|
官方文档:
|
|
338
364
|
|
|
339
365
|
- <https://help.aliyun.com/zh/model-studio/other-tools-coding-plan>
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# 19 External Controller 指南
|
|
2
|
+
|
|
3
|
+
DeepScientist 已经暴露出足够多的持久状态,因此你可以在不改 core runtime 的前提下,构建一层外部编排控制器。
|
|
4
|
+
|
|
5
|
+
这篇文档说明一种最小、稳定的 external controller 模式,用来:
|
|
6
|
+
|
|
7
|
+
- 检查 quest 最近状态
|
|
8
|
+
- 判断当前 run 是否应该继续
|
|
9
|
+
- 通过 quest mailbox 注入下一步路由消息
|
|
10
|
+
- 必要时通过 `quest_control` 停止当前 run
|
|
11
|
+
- 写出一份 durable report,解释为什么 guard 被触发
|
|
12
|
+
|
|
13
|
+
这里刻意不引入重量级 plugin framework。
|
|
14
|
+
|
|
15
|
+
## 什么时候适合用 external controller
|
|
16
|
+
|
|
17
|
+
当某条规则满足下面任一条件时,适合放到外层 controller:
|
|
18
|
+
|
|
19
|
+
- 明显是项目级 / 团队级规则
|
|
20
|
+
- 不适合硬编码进全局 prompts 或 skills
|
|
21
|
+
- 更像治理逻辑,而不是 core runtime 默认行为
|
|
22
|
+
|
|
23
|
+
常见例子:
|
|
24
|
+
|
|
25
|
+
- paper-facing 写作前的 publishability admission 规则
|
|
26
|
+
- figure polish 在同一张图上反复 reopen 的空转
|
|
27
|
+
- 某个实验室自己的 stop / branch 策略
|
|
28
|
+
|
|
29
|
+
## 可以依赖的公共契约
|
|
30
|
+
|
|
31
|
+
最稳妥的扩展面是现有的 durable runtime contract:
|
|
32
|
+
|
|
33
|
+
- quest mailbox
|
|
34
|
+
- 排队中的用户消息位于 `.ds/user_message_queue.json`
|
|
35
|
+
- 最近 quest 状态
|
|
36
|
+
- runtime state、artifact state、connector 可见输出本来就是 durable files
|
|
37
|
+
- daemon quest control
|
|
38
|
+
- `POST /api/quests/<quest_id>/control`
|
|
39
|
+
- connector 可见的 durable report
|
|
40
|
+
- 你可以在 quest 树下写自己的 report,供下一轮 turn 引用
|
|
41
|
+
|
|
42
|
+
优先依赖这些契约,而不是 patch prompt、monkey-patch 私有实现,或者直接修改安装包文件。
|
|
43
|
+
|
|
44
|
+
## 最小 controller 工作流
|
|
45
|
+
|
|
46
|
+
一个 external controller 一般按下面顺序工作:
|
|
47
|
+
|
|
48
|
+
1. 读取最新 durable quest state。
|
|
49
|
+
2. 判断某个 guard 条件是否成立。
|
|
50
|
+
3. 写 durable report,说明:
|
|
51
|
+
- 观察到了什么
|
|
52
|
+
- 这意味着什么
|
|
53
|
+
- 推荐的下一步路由是什么
|
|
54
|
+
4. 如果需要干预:
|
|
55
|
+
- 可选地通过 `quest_control` 停止当前 run
|
|
56
|
+
- 往 mailbox 注入一条清晰的 routed message,供下一轮处理
|
|
57
|
+
|
|
58
|
+
mailbox 里的消息应该表达结论与下一步,而不是原样转储日志。
|
|
59
|
+
|
|
60
|
+
## 一个典型的控制流
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
读取 quest 状态
|
|
64
|
+
-> 识别低收益循环或路线漂移
|
|
65
|
+
-> 写 durable report
|
|
66
|
+
-> 必要时 stop 当前 run
|
|
67
|
+
-> 往 mailbox 注入下一步 routed message
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## `quest_control` 请求示例
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
curl -X POST http://127.0.0.1:20999/api/quests/<quest_id>/control \
|
|
74
|
+
-H 'Content-Type: application/json' \
|
|
75
|
+
-d '{
|
|
76
|
+
"action": "stop",
|
|
77
|
+
"source": "external-controller"
|
|
78
|
+
}'
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## mailbox intervention 内容示例
|
|
82
|
+
|
|
83
|
+
队列文件本身由 runtime 管理,所以 controller 应该保留既有 schema,只追加一条普通的 user-style message payload。
|
|
84
|
+
|
|
85
|
+
消息正文应短而可执行,例如:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
Hard control message from external orchestration layer: stop the current figure loop.
|
|
89
|
+
Return to the main line and do one bounded route next:
|
|
90
|
+
1. literature scout
|
|
91
|
+
2. reference expansion
|
|
92
|
+
3. manuscript body revision
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 可以直接照着改的 controller 例子
|
|
96
|
+
|
|
97
|
+
### 例 1:publishability admission guard
|
|
98
|
+
|
|
99
|
+
这类 controller 适合处理一种常见情况:quest 还没有把证据线做扎实,却已经开始往 paper-facing 写作漂移。
|
|
100
|
+
|
|
101
|
+
常见输入:
|
|
102
|
+
|
|
103
|
+
- 最新 verification 结论
|
|
104
|
+
- 当前 draft / summary 状态
|
|
105
|
+
- 最近 baseline、utility 或主实验结果
|
|
106
|
+
|
|
107
|
+
常见触发条件:
|
|
108
|
+
|
|
109
|
+
- 当前论文主张的支撑仍然偏弱
|
|
110
|
+
- 还有一项或多项必要证据没有补齐
|
|
111
|
+
|
|
112
|
+
常见干预动作:
|
|
113
|
+
|
|
114
|
+
1. 写出 `reports/publishability_guard.md`,明确缺什么支撑。
|
|
115
|
+
2. 通过 `quest_control` 停止当前偏写作的 run。
|
|
116
|
+
3. 往 mailbox 注入一条 routed message,把下一轮明确导回 `idea`、`analysis` 或某个有边界的证据修复步骤。
|
|
117
|
+
|
|
118
|
+
示例消息正文:
|
|
119
|
+
|
|
120
|
+
```text
|
|
121
|
+
External controller: do not continue manuscript-facing writing yet.
|
|
122
|
+
Reason: the current evidence line does not pass the publishability admission gate.
|
|
123
|
+
Next route: return to one bounded evidence-building step before write resumes.
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 例 2:figure-loop guard
|
|
127
|
+
|
|
128
|
+
这类 controller 适合处理另一种常见情况:同一张图不断 reopen / polish,但对主结论已经没有实质推进。
|
|
129
|
+
|
|
130
|
+
常见输入:
|
|
131
|
+
|
|
132
|
+
- 最近的 figure artifact 历史
|
|
133
|
+
- 重复 reopen 的事件记录
|
|
134
|
+
- 最新 review 或 summary 结论
|
|
135
|
+
|
|
136
|
+
常见触发条件:
|
|
137
|
+
|
|
138
|
+
- 同一张图已经反复 reopen 多次,但主张没有被强化
|
|
139
|
+
- 下一步更有价值的动作已经不是继续 polish,而是修证据或改正文
|
|
140
|
+
|
|
141
|
+
常见干预动作:
|
|
142
|
+
|
|
143
|
+
1. 写出 `reports/figure_loop_guard.md`,概括当前循环为何低收益。
|
|
144
|
+
2. 必要时停止当前 figure 分支。
|
|
145
|
+
3. 往 mailbox 注入一条只给出一个下一步路由的消息。
|
|
146
|
+
|
|
147
|
+
示例消息正文:
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
External controller: stop the current figure-polish loop.
|
|
151
|
+
Reason: repeated reopen cycles are no longer improving the main evidence line.
|
|
152
|
+
Next route: return to one bounded manuscript or analysis task.
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## connector 定制时,通常改什么
|
|
156
|
+
|
|
157
|
+
controller 本身的控制逻辑最好保持 connector-agnostic。实际适配到不同 connector 时,通常只需要改消息呈现 profile,而不需要改 stop 逻辑或 durable report 契约。
|
|
158
|
+
|
|
159
|
+
例如:
|
|
160
|
+
|
|
161
|
+
```yaml
|
|
162
|
+
connector_profiles:
|
|
163
|
+
weixin:
|
|
164
|
+
summary_style: concise
|
|
165
|
+
max_route_options: 2
|
|
166
|
+
include_report_path: true
|
|
167
|
+
telegram:
|
|
168
|
+
summary_style: concise
|
|
169
|
+
max_route_options: 3
|
|
170
|
+
include_report_path: true
|
|
171
|
+
studio:
|
|
172
|
+
summary_style: detailed
|
|
173
|
+
max_route_options: 4
|
|
174
|
+
include_report_excerpt: true
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
controller 的核心决策始终不变:
|
|
178
|
+
|
|
179
|
+
- 读取 durable state
|
|
180
|
+
- 判断是否应该 stop
|
|
181
|
+
- 写一份 durable report
|
|
182
|
+
- 注入一条 routed mailbox message
|
|
183
|
+
|
|
184
|
+
真正跟 connector 相关的,通常只是给人看的信息颗粒度和呈现方式。
|
|
185
|
+
|
|
186
|
+
## durable report 建议结构
|
|
187
|
+
|
|
188
|
+
report 应该尽量简单且可审计。
|
|
189
|
+
|
|
190
|
+
一份好的 report 一般至少包含:
|
|
191
|
+
|
|
192
|
+
- `generated_at`
|
|
193
|
+
- `quest_id`
|
|
194
|
+
- `status`
|
|
195
|
+
- `recommended_action`
|
|
196
|
+
- `blockers`
|
|
197
|
+
- `evidence_summary`
|
|
198
|
+
|
|
199
|
+
常见且实用的做法是:一份 Markdown 报告,外加一份 machine-readable JSON。
|
|
200
|
+
|
|
201
|
+
## 不建议依赖什么
|
|
202
|
+
|
|
203
|
+
避免构建依赖下面这些东西的 controller:
|
|
204
|
+
|
|
205
|
+
- 私有 prompt 文本偏移或拼接细节
|
|
206
|
+
- 没有文档化的临时日志
|
|
207
|
+
- 直接改 `site-packages` 里的安装包文件
|
|
208
|
+
- 仅前端可见、没有 durable contract 的状态
|
|
209
|
+
|
|
210
|
+
如果某个 controller 必须依赖这些东西,说明契约还不够稳定。
|
|
211
|
+
|
|
212
|
+
## 设计建议
|
|
213
|
+
|
|
214
|
+
- 每个 controller 只回答一个清晰问题
|
|
215
|
+
- 优先写可回看的报告,而不是做隐藏副作用
|
|
216
|
+
- 只有当下一步路由很清楚时才 stop 当前 run
|
|
217
|
+
- 领域特定或团队特定规则尽量留在 core defaults 之外
|
|
218
|
+
- 把 external controller 当成可选治理层,而不是必需运行层
|
|
219
|
+
|
|
220
|
+
## 最适合先做的 controller
|
|
221
|
+
|
|
222
|
+
如果你想先从小处开始,优先做下面几类:
|
|
223
|
+
|
|
224
|
+
- 面向 paper-mode quest 的 publishability admission guard
|
|
225
|
+
- 阻止 figure reopen 循环的 figure-loop guard
|
|
226
|
+
- 在证据未准备好时阻止误入 `write` 的 route-drift guard
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# 本地浏览器密码说明
|
|
2
|
+
|
|
3
|
+
DeepScientist 现在可以为本地 Web 工作区按需开启一层 16 位随机密码保护。
|
|
4
|
+
|
|
5
|
+
这层保护是本地优先的:
|
|
6
|
+
|
|
7
|
+
- 浏览器界面会先被拦住
|
|
8
|
+
- 浏览器发出的 `/api/*` 请求也会一起受保护
|
|
9
|
+
- 默认关闭;只有在你用 `ds --auth true` 启动,或配置 `ui.auth_enabled: true` 时才会开启
|
|
10
|
+
|
|
11
|
+
## 启动时会发生什么
|
|
12
|
+
|
|
13
|
+
当你执行 `ds --auth true` 时,终端里会打印两类关键信息:
|
|
14
|
+
|
|
15
|
+
- 本地浏览器地址,例如 `http://127.0.0.1:20999`
|
|
16
|
+
- 这次启动生成的本地访问密码
|
|
17
|
+
|
|
18
|
+
现在浏览器地址本身不再依赖 `?token=...`。
|
|
19
|
+
|
|
20
|
+
如果当前浏览器还没有通过认证,DeepScientist 会先在首页之上弹出一个密码框;在输入正确密码之前,quest 列表、设置页、文档页和工作区数据都不会继续加载。
|
|
21
|
+
|
|
22
|
+
## 怎样查看密码
|
|
23
|
+
|
|
24
|
+
可以用下面任一方式:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ds --status
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
然后在 JSON 输出里查看 `auth_token` 字段,或者直接回到启动 `ds` 的那个终端。
|
|
31
|
+
|
|
32
|
+
## 登录态怎样持久化
|
|
33
|
+
|
|
34
|
+
第一次成功输入之后:
|
|
35
|
+
|
|
36
|
+
- 浏览器会保存这次本地登录态
|
|
37
|
+
- 同一个浏览器后续再次访问时,通常可以直接进入
|
|
38
|
+
- 但当 managed daemon 被重启或复用并触发密码轮换时,浏览器会再次要求输入
|
|
39
|
+
|
|
40
|
+
## 怎样关闭
|
|
41
|
+
|
|
42
|
+
如果你只想在某一次启动里开启这层本地密码保护,可以这样启动:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
ds --auth true
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
开启后:
|
|
49
|
+
|
|
50
|
+
- 首页会出现密码框
|
|
51
|
+
- 浏览器对 `/api/*` 的请求也会要求本地密码
|
|
52
|
+
|
|
53
|
+
如果你之后想在某一次启动里显式关闭它,可以这样启动:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
ds --auth false
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
关闭后:
|
|
60
|
+
|
|
61
|
+
- 首页不会再弹出密码框
|
|
62
|
+
- 浏览器对 `/api/*` 的请求也不会再要求本地密码
|
|
63
|
+
|
|
64
|
+
## 实际建议
|
|
65
|
+
|
|
66
|
+
- 这不是面向公网的强认证机制,它更像是“本机浏览器入口保护”。
|
|
67
|
+
- 如果这台机器会被他人接触,或者你把端口暴露到外部网络,建议保持开启。
|
|
68
|
+
- 如果你需要用浏览器脚本直接请求本地 daemon,要么先完成登录,要么明确使用 `ds --auth true` 启动并复用本地登录态。
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# 20 工作区模式指南:Copilot 与 Autonomous
|
|
2
|
+
|
|
3
|
+
这篇文档专门解释 DeepScientist 创建项目时最重要的两种模式:
|
|
4
|
+
|
|
5
|
+
- `Copilot`
|
|
6
|
+
- `Autonomous`
|
|
7
|
+
|
|
8
|
+
适合这些场景:
|
|
9
|
+
|
|
10
|
+
- 你正准备创建一个新项目
|
|
11
|
+
- 你不确定该选哪种启动方式
|
|
12
|
+
- 你想理解为什么有的项目会先待命,有的项目会一创建就开始推进
|
|
13
|
+
|
|
14
|
+
如果你只想快速安装并跑通第一条路径,先看 [00 快速开始](./00_QUICK_START.md)。
|
|
15
|
+
|
|
16
|
+
如果你想看启动表单和提交 payload 的精确字段,再看 [02 Start Research 参考](./02_START_RESEARCH_GUIDE.md)。
|
|
17
|
+
|
|
18
|
+
## 1. 一句话总结
|
|
19
|
+
|
|
20
|
+
- `Copilot`:安静启动、用户主导、做完当前请求单元后通常停驻
|
|
21
|
+
- `Autonomous`:标准版 DeepScientist,默认继续推进 quest
|
|
22
|
+
|
|
23
|
+
## 2. 你是在哪里选择它的
|
|
24
|
+
|
|
25
|
+
在首页或 Projects 页面里,新建项目时会先让你选择启动方式:
|
|
26
|
+
|
|
27
|
+
- `Copilot Mode`
|
|
28
|
+
- `Autonomous Mode`
|
|
29
|
+
|
|
30
|
+
当前 UI 里可能会看到两层文案:
|
|
31
|
+
|
|
32
|
+
- 外层入口:`Start Research` 或 `Start Experiment`
|
|
33
|
+
- 模式选择弹窗标题:`Choose the start style`
|
|
34
|
+
|
|
35
|
+
选完之后,这两条创建路径就会分开。
|
|
36
|
+
|
|
37
|
+
## 3. Copilot 模式
|
|
38
|
+
|
|
39
|
+
### 3.1 它是什么
|
|
40
|
+
|
|
41
|
+
Copilot 模式是“用户主导的工作区”。
|
|
42
|
+
|
|
43
|
+
适合你想让 DeepScientist 主动帮忙,但又希望每个工作单元都由你来明确主导的场景,例如:
|
|
44
|
+
|
|
45
|
+
- 看仓库
|
|
46
|
+
- 读论文
|
|
47
|
+
- 改代码
|
|
48
|
+
- debug
|
|
49
|
+
- 设计实验
|
|
50
|
+
- 检查运行状态
|
|
51
|
+
- 改写段落
|
|
52
|
+
- 汇总结论
|
|
53
|
+
|
|
54
|
+
它不应该默认把你的一句话理解成“现在开始完整自治科研流程”。
|
|
55
|
+
|
|
56
|
+
### 3.2 创建之后会发生什么
|
|
57
|
+
|
|
58
|
+
创建 Copilot 项目之后:
|
|
59
|
+
|
|
60
|
+
- 项目会被创建出来
|
|
61
|
+
- quest 会保持 idle / 待命
|
|
62
|
+
- agent 等你发第一条真正的工作指令
|
|
63
|
+
|
|
64
|
+
也就是说:
|
|
65
|
+
|
|
66
|
+
- 不会因为项目存在就立刻自动开跑
|
|
67
|
+
- 不会默认直接进入 baseline / experiment / write 长循环
|
|
68
|
+
- 第一轮实质动作从你的第一条消息开始
|
|
69
|
+
|
|
70
|
+
### 3.3 continuation 行为
|
|
71
|
+
|
|
72
|
+
Copilot 模式对 continuation 是刻意保守的。
|
|
73
|
+
|
|
74
|
+
在当前请求单元完成之后,DeepScientist 正常应该:
|
|
75
|
+
|
|
76
|
+
- 说明这轮做了什么
|
|
77
|
+
- 把上下文和结果持久化
|
|
78
|
+
- 等待你下一条消息或 `/resume`
|
|
79
|
+
|
|
80
|
+
它适合这些目标:
|
|
81
|
+
|
|
82
|
+
- 你想强控制节奏
|
|
83
|
+
- 你想按 request-by-request 方式协作
|
|
84
|
+
- 你不希望后台自己扩太多
|
|
85
|
+
- 你希望 handoff 点很清楚
|
|
86
|
+
|
|
87
|
+
### 3.4 什么时候适合选
|
|
88
|
+
|
|
89
|
+
选择 `Copilot`,通常意味着:
|
|
90
|
+
|
|
91
|
+
- 你想先看、先问、先改,再决定是否启动长任务
|
|
92
|
+
- 当前任务边界还不清楚
|
|
93
|
+
- 你预期会频繁交互式迭代
|
|
94
|
+
- 你想让 DeepScientist 更像“科研 IDE 搭子”,而不是自治 operator
|
|
95
|
+
|
|
96
|
+
### 3.5 什么时候不适合选
|
|
97
|
+
|
|
98
|
+
不建议在这些情况下选 `Copilot`:
|
|
99
|
+
|
|
100
|
+
- 你已经明确知道这个 quest 应该持续运行好几个小时
|
|
101
|
+
- 你希望 detached 实验、监控、后续路由自己接着往前推
|
|
102
|
+
- 你的目标是让系统接管完整推进,而不是一小段一小段地问答协作
|
|
103
|
+
|
|
104
|
+
## 4. Autonomous 模式
|
|
105
|
+
|
|
106
|
+
### 4.1 它是什么
|
|
107
|
+
|
|
108
|
+
Autonomous 模式就是标准版 DeepScientist 的工作方式。
|
|
109
|
+
|
|
110
|
+
适用于 quest 应该自己持续推进、普通路线选择默认由系统承担的情况。
|
|
111
|
+
|
|
112
|
+
典型场景包括:
|
|
113
|
+
|
|
114
|
+
- baseline 建立
|
|
115
|
+
- 长实验
|
|
116
|
+
- analysis campaign
|
|
117
|
+
- 持续写作 / finalize
|
|
118
|
+
- 通过 connector 长时间回传项目进展
|
|
119
|
+
|
|
120
|
+
### 4.2 创建之后会发生什么
|
|
121
|
+
|
|
122
|
+
创建 Autonomous 项目之后:
|
|
123
|
+
|
|
124
|
+
- quest 会被创建
|
|
125
|
+
- 第一轮会立即启动
|
|
126
|
+
- 系统开始把 startup contract 变成真实工作
|
|
127
|
+
|
|
128
|
+
这可能包括:
|
|
129
|
+
|
|
130
|
+
- 读 baseline 和参考资料
|
|
131
|
+
- 检查环境和约束
|
|
132
|
+
- 准备脚本
|
|
133
|
+
- 决定下一条路线
|
|
134
|
+
- 启动 detached `bash_exec` 长任务
|
|
135
|
+
|
|
136
|
+
### 4.3 continuation 行为
|
|
137
|
+
|
|
138
|
+
Autonomous 模式下,continuation 可以分成两个阶段来理解。
|
|
139
|
+
|
|
140
|
+
#### A. 还没有真实长任务
|
|
141
|
+
|
|
142
|
+
如果真实的外部长时间任务还没有跑起来,DeepScientist 不应该停住。
|
|
143
|
+
|
|
144
|
+
它应该继续用后续 turns 去:
|
|
145
|
+
|
|
146
|
+
- 准备真实任务
|
|
147
|
+
- 启动真实任务
|
|
148
|
+
- 或者把“下一个真实任务到底是什么”记录成耐久决策
|
|
149
|
+
|
|
150
|
+
这是“准备 / 启动阶段”。
|
|
151
|
+
|
|
152
|
+
#### B. 已经有真实长任务在跑
|
|
153
|
+
|
|
154
|
+
一旦真实 detached 长任务已经在跑,continuation 的节奏就应该变。
|
|
155
|
+
|
|
156
|
+
这时候不应该再用高频 LLM turn 去假装“持续执行”。
|
|
157
|
+
|
|
158
|
+
更合理的方式是:
|
|
159
|
+
|
|
160
|
+
- 真实工作继续留在 detached `bash_exec` 或它启动的运行时进程里
|
|
161
|
+
- agent turn 变成低频监控 / 汇总 / 决策
|
|
162
|
+
- 当前默认巡检节奏大约是每 `240` 秒一轮
|
|
163
|
+
|
|
164
|
+
这是“后台长任务巡检阶段”。
|
|
165
|
+
|
|
166
|
+
### 4.4 什么时候适合选
|
|
167
|
+
|
|
168
|
+
选择 `Autonomous`,通常意味着:
|
|
169
|
+
|
|
170
|
+
- quest 应该自己持续往前推
|
|
171
|
+
- 你预期会有真实长时间实验或分析工作
|
|
172
|
+
- 你希望 milestone 之后系统自动继续路由
|
|
173
|
+
- 你想用标准版 DeepScientist 的完整研究操作系统行为
|
|
174
|
+
|
|
175
|
+
### 4.5 什么时候不适合选
|
|
176
|
+
|
|
177
|
+
不建议在这些情况下选 `Autonomous`:
|
|
178
|
+
|
|
179
|
+
- 你只是想先建一个安静的项目壳
|
|
180
|
+
- 你想先人工检查仓库、再决定是否启动
|
|
181
|
+
- 你希望每个下一步都由你明确指令驱动
|
|
182
|
+
|
|
183
|
+
## 5. 最关键的实际区别
|
|
184
|
+
|
|
185
|
+
最容易记住的方式是:
|
|
186
|
+
|
|
187
|
+
- `Copilot` 问的是:“我现在该帮你完成哪一个具体单元?”
|
|
188
|
+
- `Autonomous` 问的是:“这个 quest 的下一个真实步骤是什么,我该怎样让它继续推进?”
|
|
189
|
+
|
|
190
|
+
真正重要的是这个差异,而不是名字本身。
|
|
191
|
+
|
|
192
|
+
## 6. Resume 是怎么工作的
|
|
193
|
+
|
|
194
|
+
两种模式都会保留持久上下文,但 resume 方式不同。
|
|
195
|
+
|
|
196
|
+
现在 auto-continue turn 里会带一个紧凑的 `resume spine`,里面可能包括:
|
|
197
|
+
|
|
198
|
+
- 最近一条持久化用户消息
|
|
199
|
+
- 最近一条 assistant checkpoint
|
|
200
|
+
- 最近一条 run 摘要
|
|
201
|
+
- 少量最近 memory cue
|
|
202
|
+
- 当前 `bash_exec` 状态
|
|
203
|
+
|
|
204
|
+
但 continuation policy 仍然不同:
|
|
205
|
+
|
|
206
|
+
- `Copilot`:你说话了,或者显式 `/resume` 了,才继续
|
|
207
|
+
- `Autonomous`:除非进入显式等待状态,否则默认继续推进
|
|
208
|
+
|
|
209
|
+
## 7. 快速选择方法
|
|
210
|
+
|
|
211
|
+
你可以用这个简单规则:
|
|
212
|
+
|
|
213
|
+
1. 如果你想让项目先安静待命,等你说第一句明确指令,再开始干活,选 `Copilot`。
|
|
214
|
+
2. 如果你想让 DeepScientist 一创建项目就开始把合同变成真实工作,选 `Autonomous`。
|
|
215
|
+
3. 如果你暂时拿不准,先用 `Copilot` 更稳;路线清楚后再进入更长时间的自治推进。
|
|
216
|
+
|
|
217
|
+
## 8. 常见误解
|
|
218
|
+
|
|
219
|
+
### “Autonomous 就意味着必须一直高速空转”
|
|
220
|
+
|
|
221
|
+
不是。
|
|
222
|
+
|
|
223
|
+
Autonomous 的意思是:quest 要继续推进。
|
|
224
|
+
|
|
225
|
+
如果还没有真实长任务,那推进可以表现为快速准备 / 启动。
|
|
226
|
+
如果真实长任务已经在跑,那推进就应该表现为低频巡检,而不是高频模型空转。
|
|
227
|
+
|
|
228
|
+
### “Copilot 就不能跑实验”
|
|
229
|
+
|
|
230
|
+
也不是。
|
|
231
|
+
|
|
232
|
+
Copilot 当然也能帮你启动实验、看运行状态、做分析、改写作。
|
|
233
|
+
区别在于:它不该在你没明确要求的时候,自己扩成长期自治流程。
|
|
234
|
+
|
|
235
|
+
### “这两个模式只是文案不同”
|
|
236
|
+
|
|
237
|
+
不是。
|
|
238
|
+
|
|
239
|
+
它们会影响:
|
|
240
|
+
|
|
241
|
+
- 创建后的默认行为
|
|
242
|
+
- continuation policy
|
|
243
|
+
- quest 什么时候停驻
|
|
244
|
+
- 多大程度上应该自己继续做路线推进
|
|
245
|
+
|
|
246
|
+
## 9. 相关文档
|
|
247
|
+
|
|
248
|
+
- [00 快速开始](./00_QUICK_START.md)
|
|
249
|
+
- [02 Start Research 参考](./02_START_RESEARCH_GUIDE.md)
|
|
250
|
+
- [12 引导式工作流教程](./12_GUIDED_WORKFLOW_TOUR.md)
|
|
251
|
+
- [14 Prompt、Skills 与 MCP 指南](./14_PROMPT_SKILLS_AND_MCP_GUIDE.md)
|