dsh-subagent-profile 0.3.2 → 0.3.3
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 +38 -29
- package/README.zh.md +38 -29
- package/index.mjs +188 -62
- package/lib/client.js +1240 -47
- package/lib/core/catalog-cache.mjs +45 -7
- package/lib/core/catalog.mjs +6 -6
- package/lib/core/cost-guard.mjs +71 -44
- package/lib/core/decision-trace.mjs +433 -0
- package/lib/core/delegation.mjs +106 -48
- package/lib/core/dispatch-gates.mjs +146 -0
- package/lib/core/dispatch-guard.mjs +150 -0
- package/lib/core/dispatch-schema.mjs +98 -14
- package/lib/core/dispatch-tool.mjs +208 -199
- package/lib/core/escape.mjs +130 -0
- package/lib/core/evolution-ledger.mjs +289 -0
- package/lib/core/evolution-summary.mjs +432 -0
- package/lib/core/http-routes.mjs +155 -40
- package/lib/core/intersection.mjs +6 -9
- package/lib/core/presets-sync.mjs +256 -136
- package/lib/core/profile-provider.mjs +41 -39
- package/lib/core/profiles-store.mjs +103 -76
- package/lib/core/pure.mjs +110 -66
- package/lib/core/shims.mjs +56 -75
- package/lib/core/whitelist.mjs +23 -17
- package/package.json +2 -3
- package/presets/orchestrator/agent.cordis.yml +243 -271
- package/presets/orchestrator/NOTICE +0 -3
|
@@ -1,271 +1,243 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
#
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
#
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
# ──
|
|
81
|
-
|
|
82
|
-
#
|
|
83
|
-
#
|
|
84
|
-
#
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
#
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
- id: tool-subagent
|
|
206
|
-
name: '@deepseek-ai/dsh-tool-subagent'
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
provider: spawn
|
|
245
|
-
|
|
246
|
-
- id: tool-workflow
|
|
247
|
-
name: '@deepseek-ai/dsh-tool-workflow'
|
|
248
|
-
|
|
249
|
-
- id: tool-ralph
|
|
250
|
-
name: '@deepseek-ai/dsh-tool-ralph'
|
|
251
|
-
config:
|
|
252
|
-
subagentProvider: spawn
|
|
253
|
-
maxRounds: 64
|
|
254
|
-
|
|
255
|
-
# ── remaining model-facing rows ─────────────────────────────────────────────
|
|
256
|
-
|
|
257
|
-
- id: tool-ask-user
|
|
258
|
-
name: '@deepseek-ai/dsh-tool-ask-user'
|
|
259
|
-
|
|
260
|
-
- id: tool-todo
|
|
261
|
-
name: '@deepseek-ai/dsh-tool-todo'
|
|
262
|
-
config:
|
|
263
|
-
allowParallelInProgress: true
|
|
264
|
-
|
|
265
|
-
# The `web` service and its search provider stay in the host composition; only
|
|
266
|
-
# the model-facing tool is per-session.
|
|
267
|
-
- id: tool-web
|
|
268
|
-
name: '@deepseek-ai/dsh-tool-web'
|
|
269
|
-
config:
|
|
270
|
-
fetch: false
|
|
271
|
-
searchTimeoutMs: 60000
|
|
1
|
+
# `orchestrator` 编排者预设:主 Agent 协调模式。
|
|
2
|
+
#
|
|
3
|
+
# 与官方 `standard` 预设逐行一致,仅 persona 段改写为「主协调 Agent」身份:
|
|
4
|
+
# 拆解任务、经宿主注册的 `dispatch` 工具(按场景选方案/预设/模型/推理强度)
|
|
5
|
+
# 加普通 `subagent` / `subagent_fork` / `workflow` / `ralph` 委派工具分派子任务,
|
|
6
|
+
# 再集成结果。`dispatch` 工具本身由 dsh-subagent-profile 宿主行注册,对所有
|
|
7
|
+
# 预设可见;本预设只补下面的委派工具。
|
|
8
|
+
#
|
|
9
|
+
# 改编自官方 `standard` 预设(仅 persona 段不同);原始 DeepSeek 版权与
|
|
10
|
+
# MIT 许可声明见开源仓库。
|
|
11
|
+
#
|
|
12
|
+
# 本文件是 agent 平面组成:由 roster 挂载一次到 standing scope,引用它的会话
|
|
13
|
+
# 经 scope 父系加入,本文件注册的工具与 prompt 段覆盖每个加入的 agent;会话
|
|
14
|
+
# 自身状态仍按 Session/Agent 键控在插件内。宿主组成(base.cordis.yml +
|
|
15
|
+
# web.cordis.yml)保留预设不得拥有的东西:注册表、沙箱与审批栈、持久化、
|
|
16
|
+
# 模型路由。
|
|
17
|
+
#
|
|
18
|
+
# 服务行必须放在带 `isolate` realm 的 group 内:否则发布进根 realm 成为
|
|
19
|
+
# 进程全局单例——另一预设发布同名会冲突,宿主读者会对每个会话解析同一实例,
|
|
20
|
+
# `dsh-agent-presets` 挂载时拒绝。`true` 表示条目本地 realm:本 standing mount
|
|
21
|
+
# 私有的实例。共享 label 不会合并实例(同一 realm 符号下二次 provide 抛错),
|
|
22
|
+
# label 只连接 REALMS,本文件不需要。
|
|
23
|
+
|
|
24
|
+
# ── identity ────────────────────────────────────────────────────────────────
|
|
25
|
+
|
|
26
|
+
# 编排者 persona,遮蔽本 agent 的部署默认人设。
|
|
27
|
+
# `{{model}}` 与 `{{cwd}}` 从 agent 自身的路由与工作目录解析。
|
|
28
|
+
- id: persona
|
|
29
|
+
name: '@deepseek-ai/dsh-persona'
|
|
30
|
+
config:
|
|
31
|
+
text: |-
|
|
32
|
+
你是主协调 Agent(Orchestrator),由 {{model}} 驱动,工作目录是 {{cwd}}。职责是「拆解 → 委派 → 集成」:把复杂任务拆成边界清晰的子任务,按场景交给合适的子 Agent,再亲自核对质量、整合成连贯交付(别原样堆砌)。
|
|
33
|
+
|
|
34
|
+
委派:优先 dispatch 按场景选方案(swap-standard=标准编码、researcher=调研检索,可在「子 Agent 方案」设置页自定义);多轮可续探索用 subagent/subagent_fork,多路批量并行用 workflow,长任务反复迭代用 ralph;能后台并行就 run_in_background,不要串行干等。
|
|
35
|
+
|
|
36
|
+
prompt 必须自包含:子 Agent 看不到你的对话,写全背景、目标、期望产出、验收标准与禁止事项。
|
|
37
|
+
|
|
38
|
+
边界:子 Agent 能力 ⊆ 你,审批恒为「永不」;子 Agent 失败或超出权限时自己接手重做,或用 ask_user_question 向用户澄清。
|
|
39
|
+
|
|
40
|
+
- id: agent-instructions
|
|
41
|
+
name: '@deepseek-ai/dsh-agent-instructions'
|
|
42
|
+
config:
|
|
43
|
+
maxBytes: 65536
|
|
44
|
+
|
|
45
|
+
# ── shell ───────────────────────────────────────────────────────────────────
|
|
46
|
+
|
|
47
|
+
# `shell-env` 留在宿主组成:apps/cli/src/web.ts 注入它以发布
|
|
48
|
+
# DSH_WEB_URL/DSH_WEB_MODE,且宿主行注入服务即宿主平面归属标准——注入在
|
|
49
|
+
# 会话存在前解析,没有可归属的 agent;放预设 realm 里这些变量到不了模型
|
|
50
|
+
# 的 shell。两个 shell 工具在此消费宿主注册表;其执行器
|
|
51
|
+
# (bash-sandbox/pwsh-sandbox)也在宿主平面。
|
|
52
|
+
- id: tool-bash
|
|
53
|
+
name: '@deepseek-ai/dsh-tool-bash'
|
|
54
|
+
disabled: !!js process.platform === 'win32'
|
|
55
|
+
|
|
56
|
+
- id: tool-pwsh
|
|
57
|
+
name: '@deepseek-ai/dsh-tool-pwsh'
|
|
58
|
+
disabled: !!js process.platform !== 'win32'
|
|
59
|
+
|
|
60
|
+
# ── filesystem ──────────────────────────────────────────────────────────────
|
|
61
|
+
|
|
62
|
+
# 两者都注册进宿主 tools 注册表且不提供服务,无需 realm;fs 服务与其策略留在宿主。
|
|
63
|
+
- id: tool-fs
|
|
64
|
+
name: '@deepseek-ai/dsh-tool-fs'
|
|
65
|
+
|
|
66
|
+
- id: tool-fs-search
|
|
67
|
+
name: '@deepseek-ai/dsh-tool-fs-search'
|
|
68
|
+
config:
|
|
69
|
+
sampleOverCapGlobResults: false
|
|
70
|
+
|
|
71
|
+
# ── background jobs ────────────────────────────────────────────────────────
|
|
72
|
+
|
|
73
|
+
# 只放模型可见的控制。任务注册表留在宿主平面:其生产者在本文件任何 realm
|
|
74
|
+
# 之外(上面 tool-bash 用 ctx.get 解析它,条目本地 realm 对兄弟行不可见),
|
|
75
|
+
# 否则 run_in_background 会答「后台任务不可用」。注册表本就按所属 agent
|
|
76
|
+
# 键控,一个宿主实例服务所有会话;预设只决定其 agent 能否收集/停止后台任务。
|
|
77
|
+
- id: tool-jobs
|
|
78
|
+
name: '@deepseek-ai/dsh-tool-jobs'
|
|
79
|
+
|
|
80
|
+
# ── skills ──────────────────────────────────────────────────────────────────
|
|
81
|
+
|
|
82
|
+
# skill 注册表在宿主组成中按 scope 分层;以下行注册进本预设的那一层,
|
|
83
|
+
# 无需 realm。`skill-filesystem` 为本预设的 agent 提供本地根发现,
|
|
84
|
+
# `tool-skill` 提供目录与加载器;合并后的目录也包含部署全局注册的内容。
|
|
85
|
+
- id: skill-filesystem
|
|
86
|
+
name: '@deepseek-ai/dsh-skill-filesystem'
|
|
87
|
+
|
|
88
|
+
- id: tool-skill
|
|
89
|
+
name: '@deepseek-ai/dsh-tool-skill'
|
|
90
|
+
|
|
91
|
+
# ── goals ───────────────────────────────────────────────────────────────────
|
|
92
|
+
|
|
93
|
+
# 只放模型可见的工具。goal 服务、会话驱动与 /goal 命令留在宿主平面:
|
|
94
|
+
# Gateway 以 Remote endpoint 服务 goal 域,接收方来自生成描述符,条目本地
|
|
95
|
+
# realm 会隐藏它。注册表本就按会话键控,一个宿主实例服务所有会话;预设
|
|
96
|
+
# 只决定其 agent 能否调用 goal 工具。
|
|
97
|
+
- id: tool-goal
|
|
98
|
+
name: '@deepseek-ai/dsh-tool-goal'
|
|
99
|
+
|
|
100
|
+
# ── plan mode ───────────────────────────────────────────────────────────────
|
|
101
|
+
|
|
102
|
+
# plan 状态按 agent 天然独立,条目本地 realm 正是正确的生命周期。
|
|
103
|
+
- id: planning
|
|
104
|
+
name: cordis:group
|
|
105
|
+
group: true
|
|
106
|
+
isolate:
|
|
107
|
+
planMode: true
|
|
108
|
+
config:
|
|
109
|
+
- id: plan-mode
|
|
110
|
+
name: '@deepseek-ai/dsh-plan-mode'
|
|
111
|
+
config:
|
|
112
|
+
section: |
|
|
113
|
+
You are in plan mode. Stay in plan mode until exit_plan_mode succeeds or the user switches the session mode. Imperative language to implement changes means plan the implementation, not execute it. A user's conversational agreement — including an answer confirming something you asked — approves nothing and does not end plan mode; fold the confirmed decision into the plan and submit it through exit_plan_mode.
|
|
114
|
+
|
|
115
|
+
Explore first. Use non-mutating reads, searches, static analysis, and checks to ground the plan in the actual repository. Do not edit or write files, change configuration, run formatters or code generation that rewrites tracked files, commit, or otherwise carry out the plan. Prefer existing functions and patterns over new machinery.
|
|
116
|
+
|
|
117
|
+
The tool catalog stays the same across modes for request-cache stability. These plan-mode rules override any later tool description or guidance that suggests using mutation tools; those tools remain listed to keep the tool catalog unchanged. Do not use todo_write to track this planning phase: it tracks implementation after an approved plan, while the plan itself belongs in exit_plan_mode.
|
|
118
|
+
|
|
119
|
+
Resolve discoverable facts by inspection. Use ask_user_question only for user-owned choices or material ambiguity that inspection cannot answer. Do not ask the user where code lives or how current behavior works when you can find out.
|
|
120
|
+
|
|
121
|
+
Make the plan decision-complete: state the goal and success criteria; group implementation changes by subsystem; identify public API, schema, and data-flow changes; cover edge cases, failure modes, tests, acceptance criteria, and explicit assumptions. Keep it concise enough to review but detailed enough that another engineer can implement it without making design decisions.
|
|
122
|
+
|
|
123
|
+
When ready, call exit_plan_mode with the complete plan markdown, starting with a # title. Make exit_plan_mode the only and final tool call in that assistant response: it presents the plan for approval, and implementation begins only in a later step after approval. Do not paste the final plan as a plain reply or ask "should I proceed?" through prose or ask_user_question. If review rejects it, incorporate the feedback and present again. If the review channel is unavailable or aborted, stay in plan mode and ask the user to switch modes manually; do not proceed with implementation.
|
|
124
|
+
|
|
125
|
+
# ── compaction ──────────────────────────────────────────────────────────────
|
|
126
|
+
|
|
127
|
+
# `compaction-basic` 经 ctx.get 读取 toolResultPrune,pruner 必须与本 realm
|
|
128
|
+
# 共享而非留在外面。
|
|
129
|
+
#
|
|
130
|
+
# `tokenMeter` 刻意不在本 realm:meter 留在宿主平面,此处各行解析那个单例。
|
|
131
|
+
# 它无配置、按 Session 键控每次 fold,且持有浏览器为每个会话读取的上下文
|
|
132
|
+
# 计量单位——进 realm 会随挂载的预设增减。预设只决定其 agent 是否压缩,
|
|
133
|
+
# 即下面的 compaction-basic。
|
|
134
|
+
- id: compaction
|
|
135
|
+
name: cordis:group
|
|
136
|
+
group: true
|
|
137
|
+
isolate:
|
|
138
|
+
compaction: true
|
|
139
|
+
toolResultPruner: true
|
|
140
|
+
config:
|
|
141
|
+
- id: compaction-basic
|
|
142
|
+
name: '@deepseek-ai/dsh-compaction-basic'
|
|
143
|
+
|
|
144
|
+
- id: command-compact
|
|
145
|
+
name: '@deepseek-ai/dsh-command-compact'
|
|
146
|
+
|
|
147
|
+
- id: tool-result-pruner
|
|
148
|
+
name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
|
|
149
|
+
config:
|
|
150
|
+
thresholdChars: 8192
|
|
151
|
+
headChars: 4096
|
|
152
|
+
tailChars: 1024
|
|
153
|
+
|
|
154
|
+
# ── delegation and workflows ────────────────────────────────────────────────
|
|
155
|
+
|
|
156
|
+
# `subagents` 注册表及其 spawn/fork 后端在宿主组成中:注册表是进程单例,
|
|
157
|
+
# api-proxy 供浏览器跨会话查询,provider 名只能注册一次。本预设贡献
|
|
158
|
+
# delegation 工具,解析该宿主注册表。`dispatch` 工具(及其驱动的 profile
|
|
159
|
+
# provider)由 dsh-subagent-profile 宿主行注册,宿主全局可见;本组补普通
|
|
160
|
+
# subagent/workflow 工具,让编排者选最省成本的方式。
|
|
161
|
+
#
|
|
162
|
+
# `workflows` 不同——没有 agent 之外的东西读它——到达它的行共享本条目本地
|
|
163
|
+
# realm,留在外面的消费者会解析到本预设未填充的宿主注册表。
|
|
164
|
+
#
|
|
165
|
+
# `tool-subagent-report` 与注册表同理在宿主平面:它在那个单例上注册
|
|
166
|
+
# continuable setup 而非本 agent 调用的工具,且 setup 列表不感知 scope——
|
|
167
|
+
# 每个挂载的预设各注册一份,每个子 agent 都会重复注册 `report`,第二次抛错。
|
|
168
|
+
- id: delegation
|
|
169
|
+
name: cordis:group
|
|
170
|
+
group: true
|
|
171
|
+
isolate:
|
|
172
|
+
workflowEngine: true
|
|
173
|
+
config:
|
|
174
|
+
- id: tool-subagent-control
|
|
175
|
+
name: '@deepseek-ai/dsh-tool-subagent-control'
|
|
176
|
+
|
|
177
|
+
- id: tool-subagent-list-agents
|
|
178
|
+
name: '@deepseek-ai/dsh-tool-subagent-control/list-agents'
|
|
179
|
+
|
|
180
|
+
- id: tool-subagent
|
|
181
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
182
|
+
config:
|
|
183
|
+
provider: spawn
|
|
184
|
+
toolName: subagent
|
|
185
|
+
backgroundMode: continuable
|
|
186
|
+
|
|
187
|
+
- id: tool-subagent-fork
|
|
188
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
189
|
+
config:
|
|
190
|
+
provider: fork
|
|
191
|
+
toolName: subagent_fork
|
|
192
|
+
backgroundMode: continuable
|
|
193
|
+
|
|
194
|
+
# 生产版 dsh 不安装这些可选 provider。在本 Profile 安装对应 Bundle 并
|
|
195
|
+
# 重启宿主,再复制本预设、移除对应行的 disabled。宿主可用性本身不授予工具。
|
|
196
|
+
- id: tool-subagent-codex
|
|
197
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
198
|
+
disabled: true
|
|
199
|
+
config:
|
|
200
|
+
provider: codex
|
|
201
|
+
toolName: subagent_codex
|
|
202
|
+
backgroundMode: one-shot
|
|
203
|
+
maxDepth: provider-managed
|
|
204
|
+
|
|
205
|
+
- id: tool-subagent-claude-code
|
|
206
|
+
name: '@deepseek-ai/dsh-tool-subagent'
|
|
207
|
+
disabled: true
|
|
208
|
+
config:
|
|
209
|
+
provider: claude-code
|
|
210
|
+
toolName: subagent_claude_code
|
|
211
|
+
backgroundMode: one-shot
|
|
212
|
+
maxDepth: provider-managed
|
|
213
|
+
|
|
214
|
+
- id: workflow-worker-thread
|
|
215
|
+
name: '@deepseek-ai/dsh-workflow-worker-thread'
|
|
216
|
+
config:
|
|
217
|
+
provider: spawn
|
|
218
|
+
|
|
219
|
+
- id: tool-workflow
|
|
220
|
+
name: '@deepseek-ai/dsh-tool-workflow'
|
|
221
|
+
|
|
222
|
+
- id: tool-ralph
|
|
223
|
+
name: '@deepseek-ai/dsh-tool-ralph'
|
|
224
|
+
config:
|
|
225
|
+
subagentProvider: spawn
|
|
226
|
+
maxRounds: 64
|
|
227
|
+
|
|
228
|
+
# ── remaining model-facing rows ─────────────────────────────────────────────
|
|
229
|
+
|
|
230
|
+
- id: tool-ask-user
|
|
231
|
+
name: '@deepseek-ai/dsh-tool-ask-user'
|
|
232
|
+
|
|
233
|
+
- id: tool-todo
|
|
234
|
+
name: '@deepseek-ai/dsh-tool-todo'
|
|
235
|
+
config:
|
|
236
|
+
allowParallelInProgress: true
|
|
237
|
+
|
|
238
|
+
# `web` 服务及其搜索 provider 留在宿主组成;只有模型可见的工具按会话。
|
|
239
|
+
- id: tool-web
|
|
240
|
+
name: '@deepseek-ai/dsh-tool-web'
|
|
241
|
+
config:
|
|
242
|
+
fetch: false
|
|
243
|
+
searchTimeoutMs: 60000
|