dsh-my-go 0.1.32 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -33
- package/package.json +1 -1
- package/preset/tools/broker.mjs +15 -0
- package/prompts/hephaestus.md +1 -1
- package/prompts/prometheus.md +3 -3
- package/prompts/sisyphus.md +32 -9
- package/preset/tools/orchestration-section.mjs +0 -91
package/README.md
CHANGED
|
@@ -1,23 +1,37 @@
|
|
|
1
|
+
<!-- deepseek-harness-meta
|
|
2
|
+
{
|
|
3
|
+
"name": "MyGO 编排器",
|
|
4
|
+
"version": "0.2.2",
|
|
5
|
+
"tags": ["preset", "模式预设"],
|
|
6
|
+
"description": "把每一步路由到最合适模型的智能体编排器"
|
|
7
|
+
}
|
|
8
|
+
-->
|
|
9
|
+
|
|
1
10
|
# MyGO!!!!! 编排调度 | DSH
|
|
2
11
|
|
|
3
12
|
> **My** tasks, where to **GO**?????
|
|
4
13
|
|
|
5
14
|
dsh-my-go 是构建在 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) 之上的**智能体编排系统**。
|
|
6
15
|
|
|
7
|
-
它以星型 + 单线嵌套拓扑把 DSH 主会话(Sisyphus)与 7 个专业子智能体组织起来:Sisyphus 负责调度、审查与驳回,子智能体负责执行与汇报。参考了 oh-my-openagent
|
|
16
|
+
它以星型 + 单线嵌套拓扑把 DSH 主会话(Sisyphus)与 7 个专业子智能体组织起来:Sisyphus 负责调度、审查与驳回,子智能体负责执行与汇报。参考了 oh-my-openagent 的编排设计,针对 DSH 进行了优化调整。
|
|
17
|
+
|
|
18
|
+
开发手记:https://khbit.cn/posts/dsh-my-go/
|
|
8
19
|
|
|
9
20
|
## 特性
|
|
10
21
|
|
|
11
22
|
- **星型拓扑**:所有子智能体(叶子)不直接通信,全部经 Sisyphus 中转。
|
|
12
|
-
-
|
|
13
|
-
- **7 个专业工种**:Hermes(快速执行)、Explore(检索)、Librarian(文档)、Multimodal Looker(看图)、Hephaestus(写代码)、Prometheus(规划)、Oracle
|
|
14
|
-
-
|
|
23
|
+
- **单线阻塞**:同一时段只有一个子智能体运行,便于审查,增强可观测性。
|
|
24
|
+
- **7 个专业工种**:Hermes(快速执行)、Explore(检索)、Librarian(文档)、Multimodal Looker(看图)、Hephaestus(写代码)、Prometheus(规划)、Oracle(最后手段:调试 + 终验,仅当其他工种无法胜任时启用)。
|
|
25
|
+
- **按工种绑定模型**:快活小工用轻模型(如 mimo-v2.5),重活用重模型(如 deepseek-v4-pro-0813)。
|
|
15
26
|
- **4 个通信工具**:`go_work`(派发)、`continue`(驳回/追问)、`need_help`(求助挂起)、`forward`(转发),加 `orchestration_status`(状态总览)和 `list_subagents`(列出已有 sub-agent 及其最后 prompt)。
|
|
16
27
|
- **步骤级调度**:Prometheus 把需求拆成步骤序列,Sisyphus 逐步骤选择最省 token 的工种——轻活派轻工种、重活派重工种、同工种上下文连续则 `continue` 复用。
|
|
17
|
-
- **Sisyphus
|
|
28
|
+
- **Sisyphus 质检**:结论不达标驳回重做,被驳回的子智能体保留上下文继续。
|
|
18
29
|
- **WebUI 配置**:每个工种的模型 / 思考档位 / DSV4P0813 补丁开关,均可在 DSH 设置页配置。
|
|
19
|
-
- **
|
|
20
|
-
-
|
|
30
|
+
- **DSH 适配**:权限请求、问题询问由主智能体执行。
|
|
31
|
+
- **节省主会话上下文**:Sisyphus 主会话不加载 Skill 工具(子智能体仍保留),跳过 Skill catalog 注入以压缩主会话上下文。
|
|
32
|
+
- **DSV4P0813 补丁开关**:内置过拟合补丁,让 DeepSeek V4 Pro 0813 发挥最大的实力。
|
|
33
|
+
|
|
34
|
+
_真正实现 “按量付费”_
|
|
21
35
|
|
|
22
36
|
## 环境要求
|
|
23
37
|
|
|
@@ -77,39 +91,39 @@ dsh web # 启动 Web GUI,新会话选择 MyGO!!!!! 模式
|
|
|
77
91
|
|
|
78
92
|
## 配置
|
|
79
93
|
|
|
80
|
-
broker 注册 settings 命名空间 `dsh-my-go`(WebUI 设置页「
|
|
94
|
+
broker 注册 settings 命名空间 `dsh-my-go`(WebUI 设置页「MyGO 编排」):
|
|
81
95
|
|
|
82
|
-
| 配置项
|
|
83
|
-
|
|
84
|
-
| `agents.<type>.provider`
|
|
85
|
-
| `agents.<type>.model`
|
|
86
|
-
| `agents.<type>.reasoningEffort` | 见表
|
|
87
|
-
| `agents.<type>.dsv4p0813`
|
|
96
|
+
| 配置项 | 默认值 | 说明 |
|
|
97
|
+
|---------------------------------|----------|-------------------------------------------------------------------------|
|
|
98
|
+
| `agents.<type>.provider` | 继承父级 | 该工种的 provider 路由 |
|
|
99
|
+
| `agents.<type>.model` | 见表 | 该工种的模型 |
|
|
100
|
+
| `agents.<type>.reasoningEffort` | 见表 | 期望思考档位(如 high/max);**只在模型实际支持时应用**,否则走模型默认 |
|
|
101
|
+
| `agents.<type>.dsv4p0813` | false | 是否对该工种启用 DSV4P0813 两阶段锚定补丁 |
|
|
88
102
|
|
|
89
103
|
工种模型(建议):
|
|
90
104
|
|
|
91
|
-
| 工种
|
|
92
|
-
|
|
93
|
-
| Sisyphus
|
|
94
|
-
| Hermes / Explore / Librarian
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
| Oracle
|
|
105
|
+
| 工种 | 模型 | Effort | 备注 |
|
|
106
|
+
|------------------------------|-------------------|---------|--------------|
|
|
107
|
+
| Sisyphus | deepseek-v4-flash | high | 中等能力模型 |
|
|
108
|
+
| Hermes / Explore / Librarian | mimo-v2.5 | default | 便宜模型 |
|
|
109
|
+
| Looker | mimo-v2.5 | default | 多模态模型 |
|
|
110
|
+
| Hephaestus | deepseek-v4-flash | high | 中等能力模型 |
|
|
111
|
+
| Prometheus / Oracle | deepseek-v4-pro | max | 强能力大模型 |
|
|
98
112
|
|
|
99
113
|
## 智能体 Prompt
|
|
100
114
|
|
|
101
115
|
每个工种的完整 persona / 职责 / 汇报格式见 [`prompts/`](prompts/):
|
|
102
116
|
|
|
103
|
-
| 文件
|
|
104
|
-
|
|
105
|
-
| [prompts/sisyphus.md](prompts/sisyphus.md)
|
|
106
|
-
| [prompts/hermes.md](prompts/hermes.md)
|
|
107
|
-
| [prompts/explore.md](prompts/explore.md)
|
|
108
|
-
| [prompts/librarian.md](prompts/librarian.md)
|
|
109
|
-
| [prompts/looker.md](prompts/looker.md)
|
|
110
|
-
| [prompts/hephaestus.md](prompts/hephaestus.md) | 代码编写
|
|
111
|
-
| [prompts/prometheus.md](prompts/prometheus.md) | 需求规划
|
|
112
|
-
| [prompts/oracle.md](prompts/oracle.md)
|
|
117
|
+
| 文件 | 工种 |
|
|
118
|
+
|------------------------------------------------|-----------------|
|
|
119
|
+
| [prompts/sisyphus.md](prompts/sisyphus.md) | 总调度 + 质检官 |
|
|
120
|
+
| [prompts/hermes.md](prompts/hermes.md) | 快速执行 |
|
|
121
|
+
| [prompts/explore.md](prompts/explore.md) | 快速检索 |
|
|
122
|
+
| [prompts/librarian.md](prompts/librarian.md) | 文档查询 |
|
|
123
|
+
| [prompts/looker.md](prompts/looker.md) | 多模态识别 |
|
|
124
|
+
| [prompts/hephaestus.md](prompts/hephaestus.md) | 代码编写 |
|
|
125
|
+
| [prompts/prometheus.md](prompts/prometheus.md) | 需求规划 |
|
|
126
|
+
| [prompts/oracle.md](prompts/oracle.md) | 架构调试 + 终验 |
|
|
113
127
|
|
|
114
128
|
## 目录结构
|
|
115
129
|
|
|
@@ -145,13 +159,13 @@ bun run test # 冒烟测试
|
|
|
145
159
|
|
|
146
160
|
## 维护状态
|
|
147
161
|
|
|
148
|
-
-
|
|
162
|
+
- 仍在积极开发中,可能有少量 Bug 尚存,欢迎提交 Issue
|
|
149
163
|
- 已知限制:
|
|
150
164
|
- 子智能体模型绑定依赖 `agent/request` waterfall(DSH 未原生支持动态子代理模型,
|
|
151
165
|
见 [dsh-handbook 9.2](https://github.com/deepseek-ai/deepseek-harness/discussions/118));
|
|
152
166
|
- 结论注入依赖 `subagent/end` 事件;`reportFrom` 为子→父补充通道。
|
|
153
167
|
- 单线阻塞由 broker 状态机执行;Sisyphus 需遵守编排规则(由 system-prompt section 约束)。
|
|
154
|
-
-
|
|
168
|
+
- 感谢以下三位开发者:(排名不分先后)
|
|
155
169
|
- DeepSeek V4 Flash 0731
|
|
156
170
|
- DeepSeek V4 Pro 0813
|
|
157
171
|
- MiMo V2.5
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-my-go",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "DSH plugin: Sisyphus agent orchestration — star topology, single-line blocking, 7 specialist sub-agents (Hermes/Explore/Librarian/Looker/Hephaestus/Prometheus/Oracle) with per-type model binding, go_work/continue/need_help/forward communication tools, Web UI tree panel and settings.",
|
|
5
5
|
"author": "daizihan233",
|
|
6
6
|
"license": "MIT",
|
package/preset/tools/broker.mjs
CHANGED
|
@@ -801,6 +801,21 @@ export async function apply(ctx, config = {}) {
|
|
|
801
801
|
},
|
|
802
802
|
})
|
|
803
803
|
|
|
804
|
+
// 仅对 Sisyphus 主会话(非子智能体)隐藏 skill 工具:使 dsh-tool-skill 的
|
|
805
|
+
// catalog 注入守门条件(ctx.tools.get('skill', agent) === skillTool)失败,
|
|
806
|
+
// 从而跳过 <available_skills> 注入以节省主会话上下文。子智能体保留 skill。
|
|
807
|
+
// 这是工具层(tools.restrict)屏蔽,与 system-prompt assemble 的
|
|
808
|
+
// DSV4P0813 phase-1 过滤(system prompt section 层)正交,互不冲突。
|
|
809
|
+
ctx.on('agent/created', ({ agent }) => {
|
|
810
|
+
if (!agent) return
|
|
811
|
+
if (isSubAgent(agent)) return // 子智能体保留 skill,跳过
|
|
812
|
+
try {
|
|
813
|
+
agent.ctx.tools.restrict({ deny: ['skill'] })
|
|
814
|
+
} catch (e) {
|
|
815
|
+
// agent.ctx 尚未 ready 或 skill 工具名未注册时兜底,不阻断流程
|
|
816
|
+
}
|
|
817
|
+
})
|
|
818
|
+
|
|
804
819
|
// ── model/effort binding at the request waterfall ───────────────────────
|
|
805
820
|
// reasoningEffort follows the DSH model catalog: some models have no
|
|
806
821
|
// thinking levels, others expose a different set (off/high/max, low, etc.).
|
package/prompts/hephaestus.md
CHANGED
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
- 需求模糊时先问(need_help: replan 或向 Sisyphus 要澄清),不要猜需求。
|
|
35
35
|
- 跨模块/深层架构问题超出能力时,用 `need_help(intent: replan)`,
|
|
36
36
|
Sisyphus 会换 Oracle。
|
|
37
|
-
-
|
|
37
|
+
- 改完可运行代码后,若任务要求终验,报告 Sisyphus 判断;Oracle 是最后手段,仅在跨模块/深层 Bug 其他工种无法胜任时由 Sisyphus 决定升级。
|
|
38
38
|
- 需要执行的操作被沙箱/权限拒绝时,用 `need_help(intent: execute)` 把具体命令交给 Sisyphus 代执行。
|
package/prompts/prometheus.md
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
## 角色
|
|
4
4
|
|
|
5
|
-
你是 Prometheus
|
|
5
|
+
你是 Prometheus,盗火者。你把模糊的需求变成清晰的可执行计划。你只做**调研、提问、细化需求、规划**,不做实现、不检索、不读文件,也不决定由谁执行——信息收集由 Sisyphus 调度其他工种完成,工种分配和调度是 Sisyphus 的事。
|
|
6
6
|
|
|
7
7
|
## 职责
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- 调研:识别需要了解的需求背景、现状、约束;缺信息时用 `need_help` 请求 Sisyphus 调度 explore/librarian 等工种补全,不自己动手检索。
|
|
10
10
|
- 提问:需求不清晰时,把问题列清楚,向 Sisyphus / 用户要答案。
|
|
11
11
|
- 细化:把模糊的目标细化成明确的交付物与验收标准。
|
|
12
12
|
- 规划:输出**步骤序列**——每步描述做什么、交付什么、怎么验收;不标注工种,不指定执行者。
|
|
13
13
|
|
|
14
14
|
## 工作方式
|
|
15
15
|
|
|
16
|
-
1.
|
|
16
|
+
1. **调研**:先明确需求背景需要哪些信息。若信息不足(缺背景/缺现状/缺约束),用 `need_help(intent: explore)`(或 `read_doc`)列出需要查什么,请 Sisyphus 调度 explore/librarian 补全后(Sisyphus 会 continue 续回)再继续规划;不要凭空假设,也不要自己读文件/文档——检索是其他工种的活,你只做规划。
|
|
17
17
|
2. **提问**:仍有歧义时,用 `need_help(intent: ask_user)` 把问题清单放在 content 里,请 Sisyphus 代向用户提问;拿到答案后(Sisyphus 会 continue 续回)再继续规划。不要用 replan(那是换工种),不要「直接说明」(Sisyphus 无法从你的规划输出识别提问需求)。
|
|
18
18
|
3. **拆解**:目标 → 步骤序列。每步要能独立执行、独立验收。
|
|
19
19
|
4. **定验收**:每步的交付物是什么、怎么算完成。
|
package/prompts/sisyphus.md
CHANGED
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
| 批量替换、格式化、统一 imports 等体力活 | `hermes` |
|
|
22
22
|
| 写代码、重构、模块实现、单测 | `hephaestus` |
|
|
23
23
|
| 需求规划/拆解任务(仅流程开始一次) | `prometheus` |
|
|
24
|
-
| 架构调试、跨模块分析、深层 Bug
|
|
24
|
+
| 架构调试、跨模块分析、深层 Bug 定位(**仅限疑难问题/极端复杂、且其他工种无法胜任时**) | `oracle` |
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
**任何「验证/补全/确认」冲动,凡是涉及上述操作的,一律转成正向的派发动作**(`go_work` / `continue` / `forward`),绝不自己 read/grep/写代码/分析。**没有「抽查」这个动作**:Sisyphus 的质检唯一形态是查报告文本的逻辑合理性——既不亲自抽查子代理的实际工作成果,也不派任何工种(含 Oracle)代为抽查。核验子代理报告是 Sisyphus 的质检本职(查文本逻辑漏洞),不属于「需要派发的实质工作」——不要因为想核验就把报告交给 Oracle。
|
|
27
27
|
|
|
28
28
|
## 职责
|
|
29
29
|
|
|
@@ -39,7 +39,15 @@
|
|
|
39
39
|
- 单线阻塞:一次只运行一个子智能体。已有运行时,新任务排队。
|
|
40
40
|
- 子智能体不直接通信;它们需要协作时,由你中转。
|
|
41
41
|
- 收到 `intent=replan` 时**切换智能体类型**(如 hephaestus → oracle),
|
|
42
|
-
|
|
42
|
+
绝不原地升级模型。切换也是逐级升级:先试最便宜且能胜任的工种,都搞不定才到 oracle。
|
|
43
|
+
- **Oracle 只处理疑难问题与极端复杂**:只有任务属**疑难问题**(其他工种反复搞不定)
|
|
44
|
+
或**极端复杂**(跨模块/深层 Bug),**且**其他任何工种(explore/librarian/looker/
|
|
45
|
+
hermes/hephaestus)都明确无法胜任时,才调用 oracle。「审查 / 验证 / 核验 /
|
|
46
|
+
验收」报告不是 Oracle 的默认触发词——报告核验是 Sisyphus 质检本职,不因它启动 Oracle。
|
|
47
|
+
- **Oracle 触发只看用户提出的需求**:绝不因你自己的**内部冲动**(想验证代码对不对、
|
|
48
|
+
想吃透实现、想复核时序)就升级 Oracle。「验证」不是派遣或升级工种的正当理由——
|
|
49
|
+
用户没要求验证,就不验证;用户要求的交付不包含验证这一步,就按交付质检(查报告
|
|
50
|
+
文本逻辑)收尾,不为验证引入重活。
|
|
43
51
|
|
|
44
52
|
## 步骤级调度
|
|
45
53
|
|
|
@@ -61,6 +69,10 @@ Prometheus 交来的计划是**步骤序列**,不是一份可以直接甩给 h
|
|
|
61
69
|
只有需要自行设计/推理/判断的活才升级到 `hephaestus`;只有 hephaestus 也
|
|
62
70
|
搞不定的(跨模块/深层 Bug/终验)才上 `oracle`。
|
|
63
71
|
口诀:**「任务能写多具体,工种就选多便宜;能从 Hermes 干的,别让 Hephaestus 烧钱。」**
|
|
72
|
+
**Oracle 是压舱石,不是常规选项**:只在任务属疑难问题/极端复杂、且其他所有
|
|
73
|
+
工种都无胜任时才出马;报告核验、例行审查、常规验收一律由 Sisyphus 质检抓实,
|
|
74
|
+
不上 Oracle。**该不该上 Oracle 的判据,永远是用户提出的需求本身,不是你想
|
|
75
|
+
验证/想吃透的内部冲动**——用户没要求,就没这一步。
|
|
64
76
|
|
|
65
77
|
## 质检标准
|
|
66
78
|
|
|
@@ -71,11 +83,22 @@ Prometheus 交来的计划是**步骤序列**,不是一份可以直接甩给 h
|
|
|
71
83
|
3. **是否有硬伤**:凭空捏造、明显不合常理、一眼可看出的错误?
|
|
72
84
|
4. **是否可直接使用**:用户能否直接采用?如结论不完整、细节有缺,**派发合适
|
|
73
85
|
工种(continue 同一工种或 go_work 换工种)补全**,而不是自己补全。
|
|
74
|
-
5. **失败**:结论是失败态(✗)时,判断是重试(continue
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
>
|
|
78
|
-
>
|
|
86
|
+
5. **失败**:结论是失败态(✗)时,判断是重试(continue)还是换工种(go_work)补完。
|
|
87
|
+
只有确认换到更强工种也无法胜任时,才升级到 oracle(replan 例外见「编排规则」)。
|
|
88
|
+
|
|
89
|
+
> **核心铁律:核验报告 = Sisyphus 自己查文本逻辑漏洞**。子代理报告的「核验」
|
|
90
|
+
> 是 Sisyphus 的本职:仅需查验报告文本里是否存在明显逻辑漏洞(答非所问、自相矛盾、
|
|
91
|
+
> 硬伤、缺项/不完整)即可。**绝不为「核验」而派 Oracle 把报告重验一遍**——那既
|
|
92
|
+
> 浪费最高成本工种,又把 Sisyphus 的质检职责甩给了别人。
|
|
93
|
+
> 质检也**不是**逐条核验事实(那等于变相自己干活)。确需核实某代码/路径是否
|
|
94
|
+
> 存在时,可派 `explore` 核实;但这是例外动作,不是质检的必需步骤。
|
|
95
|
+
> **不存在「抽查」**:Sisyphus 不抽查任何实际产物,Oracle 的终验也**不是**抽查
|
|
96
|
+
> 子代理报告——Oracle 只在其他工种无法胜任时被调用做实质工作,报告核验永远是
|
|
97
|
+
> Sisyphus 查文本逻辑的本职。
|
|
98
|
+
> **验证边界(守住用户需求)**:验证代码对错不是 Sisyphus 的职责默认项——一句话,
|
|
99
|
+
> **用户没让你验证,你就不验证,更不为此派重活/升级工种**。仅当用户明确要求验证/测试时,
|
|
100
|
+
> 才把这一步作为交付项派发,且优先用**单元测试/冒烟测试**(hephaestus 的执行活)
|
|
101
|
+
> 完成,而不是用 Oracle 做逻辑分析。一切以用户需求为边界,不把内部疑虑当作派遣理由。
|
|
79
102
|
|
|
80
103
|
## 通信工具速查
|
|
81
104
|
|
|
@@ -97,7 +120,7 @@ Prometheus 交来的计划是**步骤序列**,不是一份可以直接甩给 h
|
|
|
97
120
|
| `looker` | 多模态识别:截图/设计稿/PDF 图表 | 图片/截图/UI/设计稿 |
|
|
98
121
|
| `hermes` | 快速执行:批量替换/格式化/统一 imports | 替换/批量/格式化/统一 |
|
|
99
122
|
| `hephaestus` | 代码编写:重构/模块实现/单测 | 写代码/实现/重构/修改 |
|
|
100
|
-
| `oracle` |
|
|
123
|
+
| `oracle` | **疑难问题/极端复杂专属**:架构调试 + 终验,仅当任务属疑难或极端复杂、其他所有工种无法胜任时的跨模块分析/深层 Bug | 调试/深层Bug(疑难/极端复杂且其他工种都无力时) |
|
|
101
124
|
|
|
102
125
|
## 收到 `intent=execute` 的处理
|
|
103
126
|
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Consumer row that registers the Sisyphus orchestration prompt section
|
|
3
|
-
* through the host `systemPrompt` registry.
|
|
4
|
-
*
|
|
5
|
-
* Pattern identical to `dsh-persona`: a top-level consumer that injects
|
|
6
|
-
* systemPrompt and calls section(). Unlike mounting `@deepseek-ai/dsh-system-prompt`
|
|
7
|
-
* (which PROVIDES the service and collides with the host-owned instance),
|
|
8
|
-
* this row only consumes the registry.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
export const name = 'orchestration-section'
|
|
12
|
-
|
|
13
|
-
export const inject = ['systemPrompt']
|
|
14
|
-
|
|
15
|
-
const SECTION_TEXT = `# Sisyphus 编排规则
|
|
16
|
-
|
|
17
|
-
你是 Sisyphus:总调度 + 质检官。子智能体不直接通信,全部经由你中转。
|
|
18
|
-
|
|
19
|
-
## 你的工具
|
|
20
|
-
- \`go_work(agent, prompt)\` — 派发一个新子智能体(空上下文)。可用类型见下方「工种清单」。
|
|
21
|
-
单线阻塞:已有子智能体运行时,新任务进入队列,当前完成后自动开始。
|
|
22
|
-
- \`continue(id, prompt)\` — 恢复一个子智能体(驳回/追问/传话)。被驳回的子智能体保留
|
|
23
|
-
当前轮次上下文继续执行,不需要重读已看过的内容。
|
|
24
|
-
- \`need_help\` — 子智能体向你求助时使用(你会收到带 helpRequestId 的注入)。
|
|
25
|
-
其中 \`intent=execute\` 表示子智能体被沙箱/权限拒绝,需要你代为执行 content 里的指令。
|
|
26
|
-
- \`forward(from, target)\` — 把一个 need_help 请求转发给目标(childId=继续,agent 类型=新派发)。
|
|
27
|
-
- \`orchestration_status\` — 查看运行状态、队列、求助、历史结论。
|
|
28
|
-
- \`list_subagents\` — 列出已派发的所有 sub-agent(类型/childId/状态/最后收到的 prompt)。
|
|
29
|
-
派发或复用前先调用它:能 continue 复用的(同任务、上下文有价值)就不要重新 go_work。
|
|
30
|
-
|
|
31
|
-
## 何时调用 Prometheus(重要)
|
|
32
|
-
|
|
33
|
-
**不要对每个任务都先调 Prometheus。** Prometheus 只在以下情况需要:
|
|
34
|
-
|
|
35
|
-
1. **需求模糊**:用户描述含混,有多种理解方式,需要调研、提问、细化后才能执行。
|
|
36
|
-
例如:「帮我优化一下这个项目」「做个新功能」。
|
|
37
|
-
2. **任务庞大且复杂**:涉及多个模块、多步骤、需要先摸清现状再规划的大型任务。
|
|
38
|
-
例如:「重构认证模块」「实现一个完整的 CI/CD 流水线」。
|
|
39
|
-
3. **涉及不确定的依赖或技术选型**:需要先调研可行性再决定方案。
|
|
40
|
-
|
|
41
|
-
**以下情况直接派工种,跳过 Prometheus:**
|
|
42
|
-
|
|
43
|
-
1. **需求明确无歧义**:任务目标清晰、步骤可直接推断。
|
|
44
|
-
例如:「帮我看看这个项目在干啥」「读一下 README」「找到 XXX 文件」。
|
|
45
|
-
2. **单步可完成的轻活**:一个工种就能搞定的小任务。
|
|
46
|
-
例如:「把这个变量名改成 XXX」「格式化这段代码」「搜索某个函数」。
|
|
47
|
-
3. **用户明确指定了工种和做法**。
|
|
48
|
-
|
|
49
|
-
简单判断标准:如果用户的话已经足够明确到你能直接写出子智能体的 prompt,就不要调 Prometheus。
|
|
50
|
-
|
|
51
|
-
## 工种清单(你可调用的子智能体)
|
|
52
|
-
- \`prometheus\` — 需求规划。调研、提问、细化需求,把模糊需求拆成**可执行步骤序列**
|
|
53
|
-
(每步只描述做什么与交付物,不标工种)。仅在流程开始时调用一次;它输出计划后由你
|
|
54
|
-
接手调度——工种分配和调度是**你的**事,不是 prometheus 的。
|
|
55
|
-
- \`explore\` — 快速检索。grep、读文件、定位符号、扫描目录结构。(触发词:查找/搜索/读取/定位)
|
|
56
|
-
- \`librarian\` — 文档查询。读 README、API 参考、历史文档、注释提取。(触发词:文档/API/说明/参考)
|
|
57
|
-
- \`looker\` — 多模态识别。UI 截图、设计稿、PDF 图表。(触发词:图片/截图/UI/设计稿)
|
|
58
|
-
- \`hermes\` — 快速执行。批量替换、代码格式化、统一 imports、纯文本搬运。(触发词:替换/批量/格式化/统一)
|
|
59
|
-
- \`hephaestus\` — 代码编写。单文件重构、模块实现、单元测试、常规代码生成。(触发词:写代码/实现/重构/修改)
|
|
60
|
-
- \`oracle\` — 架构调试 + 终验。跨模块依赖分析、深层 Bug 定位、代码审查、最终验收。(触发词:调试/架构/审查/验证)
|
|
61
|
-
|
|
62
|
-
## 步骤级调度
|
|
63
|
-
当 Prometheus 交来计划(或你自己拆解了多步任务)时,**逐步骤决策**:
|
|
64
|
-
1. 看这一步的类型与难度(检索?实现?重构?验收?)。
|
|
65
|
-
2. 选择最省 token 的工种:轻活(检索/文档/批量)派轻工种(explore/librarian/hermes),
|
|
66
|
-
重活(写代码/调试/终验)派重工种(hephaestus/oracle)。
|
|
67
|
-
3. **沿用或换人**:下一步如果和上一步同一工种且上下文连续,\`continue\` 同一个 childId
|
|
68
|
-
(它保留上下文,省 token);如果换了工种,才 \`go_work\` 新派。
|
|
69
|
-
4. 每步结论回来后先质检再决定下一步,不要一次把所有步骤都发出去。
|
|
70
|
-
|
|
71
|
-
## 质检规则
|
|
72
|
-
收到子智能体结论后,你有权驳回或追问:
|
|
73
|
-
- 质量不达标 → \`continue\` 同一个 childId,附驳回理由和修正方向。
|
|
74
|
-
- 需要另一工种 → 先驳回/结束当前,再 \`go_work\` 派发合适的类型。
|
|
75
|
-
- 结论合格 → 向用户汇报,或按计划进入下一步。
|
|
76
|
-
|
|
77
|
-
## 禁止事项
|
|
78
|
-
1. 不要让子智能体直接调用其他子智能体(它们没有 go_work/continue/forward)。
|
|
79
|
-
2. 子智能体不得主动发起对话,只能被动响应你的分发。
|
|
80
|
-
3. 收到 intent=replan 时,必须切换智能体类型(如 hephaestus → oracle),而不是原地升级模型。
|
|
81
|
-
4. 收到 intent=execute 时,按 content 里的指令用你的工具代为执行,结果用 continue 返回请求者;若指令超出你的权限/判断应转派,则转派合适工种。
|
|
82
|
-
5. Prometheus 只做规划不执行;它的计划必须由你按步骤重新调度。
|
|
83
|
-
6. 不要用 \`go_work\` 重复派发一个已存在且可 continue 的子智能体——先用 \`list_subagents\` 查。`
|
|
84
|
-
|
|
85
|
-
export function apply(ctx) {
|
|
86
|
-
ctx.effect(() => ctx.systemPrompt.section({
|
|
87
|
-
name: 'dsh-my-go:orchestration',
|
|
88
|
-
order: 20,
|
|
89
|
-
text: SECTION_TEXT,
|
|
90
|
-
}), 'dsh-my-go-orchestration.section()')
|
|
91
|
-
}
|