@mclawnet/swarm 0.1.4 → 0.1.6

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.
Files changed (240) hide show
  1. package/README.md +118 -0
  2. package/dist/__tests__/action-parser.test.js +29 -82
  3. package/dist/__tests__/action-parser.test.js.map +1 -1
  4. package/dist/__tests__/coordinator-create-tx.test.d.ts +2 -0
  5. package/dist/__tests__/coordinator-create-tx.test.d.ts.map +1 -0
  6. package/dist/__tests__/coordinator-create-tx.test.js +114 -0
  7. package/dist/__tests__/coordinator-create-tx.test.js.map +1 -0
  8. package/dist/__tests__/coordinator-inbox-migration.test.d.ts +2 -0
  9. package/dist/__tests__/coordinator-inbox-migration.test.d.ts.map +1 -0
  10. package/dist/__tests__/coordinator-inbox-migration.test.js +56 -0
  11. package/dist/__tests__/coordinator-inbox-migration.test.js.map +1 -0
  12. package/dist/__tests__/inbox-integration.test.d.ts +2 -0
  13. package/dist/__tests__/inbox-integration.test.d.ts.map +1 -0
  14. package/dist/__tests__/inbox-integration.test.js +120 -0
  15. package/dist/__tests__/inbox-integration.test.js.map +1 -0
  16. package/dist/__tests__/inbox-persistence-recovery.test.d.ts +2 -0
  17. package/dist/__tests__/inbox-persistence-recovery.test.d.ts.map +1 -0
  18. package/dist/__tests__/inbox-persistence-recovery.test.js +139 -0
  19. package/dist/__tests__/inbox-persistence-recovery.test.js.map +1 -0
  20. package/dist/__tests__/inbox-relay-interceptor.test.d.ts +2 -0
  21. package/dist/__tests__/inbox-relay-interceptor.test.d.ts.map +1 -0
  22. package/dist/__tests__/inbox-relay-interceptor.test.js +156 -0
  23. package/dist/__tests__/inbox-relay-interceptor.test.js.map +1 -0
  24. package/dist/__tests__/inbox-relay.test.d.ts +2 -0
  25. package/dist/__tests__/inbox-relay.test.d.ts.map +1 -0
  26. package/dist/__tests__/inbox-relay.test.js +318 -0
  27. package/dist/__tests__/inbox-relay.test.js.map +1 -0
  28. package/dist/__tests__/inbox-store.test.d.ts +2 -0
  29. package/dist/__tests__/inbox-store.test.d.ts.map +1 -0
  30. package/dist/__tests__/inbox-store.test.js +129 -0
  31. package/dist/__tests__/inbox-store.test.js.map +1 -0
  32. package/dist/__tests__/inbox-watcher.test.d.ts +2 -0
  33. package/dist/__tests__/inbox-watcher.test.d.ts.map +1 -0
  34. package/dist/__tests__/inbox-watcher.test.js +104 -0
  35. package/dist/__tests__/inbox-watcher.test.js.map +1 -0
  36. package/dist/__tests__/persistence-path.test.d.ts +2 -0
  37. package/dist/__tests__/persistence-path.test.d.ts.map +1 -0
  38. package/dist/__tests__/persistence-path.test.js +79 -0
  39. package/dist/__tests__/persistence-path.test.js.map +1 -0
  40. package/dist/__tests__/persistence-robust.test.d.ts +2 -0
  41. package/dist/__tests__/persistence-robust.test.d.ts.map +1 -0
  42. package/dist/__tests__/persistence-robust.test.js +125 -0
  43. package/dist/__tests__/persistence-robust.test.js.map +1 -0
  44. package/dist/__tests__/persistence.test.d.ts +2 -0
  45. package/dist/__tests__/persistence.test.d.ts.map +1 -0
  46. package/dist/__tests__/persistence.test.js +105 -0
  47. package/dist/__tests__/persistence.test.js.map +1 -0
  48. package/dist/__tests__/phase4-5-e2e.test.d.ts +2 -0
  49. package/dist/__tests__/phase4-5-e2e.test.d.ts.map +1 -0
  50. package/dist/__tests__/phase4-5-e2e.test.js +203 -0
  51. package/dist/__tests__/phase4-5-e2e.test.js.map +1 -0
  52. package/dist/__tests__/phase6-7-e2e.test.d.ts +2 -0
  53. package/dist/__tests__/phase6-7-e2e.test.d.ts.map +1 -0
  54. package/dist/__tests__/phase6-7-e2e.test.js +93 -0
  55. package/dist/__tests__/phase6-7-e2e.test.js.map +1 -0
  56. package/dist/__tests__/project-files.test.d.ts +2 -0
  57. package/dist/__tests__/project-files.test.d.ts.map +1 -0
  58. package/dist/__tests__/project-files.test.js +143 -0
  59. package/dist/__tests__/project-files.test.js.map +1 -0
  60. package/dist/__tests__/projects-fs.test.d.ts +2 -0
  61. package/dist/__tests__/projects-fs.test.d.ts.map +1 -0
  62. package/dist/__tests__/projects-fs.test.js +107 -0
  63. package/dist/__tests__/projects-fs.test.js.map +1 -0
  64. package/dist/__tests__/recovery-cross-project.test.d.ts +2 -0
  65. package/dist/__tests__/recovery-cross-project.test.d.ts.map +1 -0
  66. package/dist/__tests__/recovery-cross-project.test.js +87 -0
  67. package/dist/__tests__/recovery-cross-project.test.js.map +1 -0
  68. package/dist/__tests__/recovery-forwards-to-coordinator.test.d.ts +2 -0
  69. package/dist/__tests__/recovery-forwards-to-coordinator.test.d.ts.map +1 -0
  70. package/dist/__tests__/recovery-forwards-to-coordinator.test.js +59 -0
  71. package/dist/__tests__/recovery-forwards-to-coordinator.test.js.map +1 -0
  72. package/dist/__tests__/recovery-resume.test.d.ts +2 -0
  73. package/dist/__tests__/recovery-resume.test.d.ts.map +1 -0
  74. package/dist/__tests__/recovery-resume.test.js +132 -0
  75. package/dist/__tests__/recovery-resume.test.js.map +1 -0
  76. package/dist/__tests__/retrospective.test.js +1 -0
  77. package/dist/__tests__/retrospective.test.js.map +1 -1
  78. package/dist/__tests__/role-loader-preamble-all.test.d.ts +2 -0
  79. package/dist/__tests__/role-loader-preamble-all.test.d.ts.map +1 -0
  80. package/dist/__tests__/role-loader-preamble-all.test.js +38 -0
  81. package/dist/__tests__/role-loader-preamble-all.test.js.map +1 -0
  82. package/dist/__tests__/role-loader-tools.test.d.ts +2 -0
  83. package/dist/__tests__/role-loader-tools.test.d.ts.map +1 -0
  84. package/dist/__tests__/role-loader-tools.test.js +39 -0
  85. package/dist/__tests__/role-loader-tools.test.js.map +1 -0
  86. package/dist/__tests__/role-loader.test.js +116 -1
  87. package/dist/__tests__/role-loader.test.js.map +1 -1
  88. package/dist/__tests__/role-prompt-no-legacy-protocol.test.d.ts +2 -0
  89. package/dist/__tests__/role-prompt-no-legacy-protocol.test.d.ts.map +1 -0
  90. package/dist/__tests__/role-prompt-no-legacy-protocol.test.js +37 -0
  91. package/dist/__tests__/role-prompt-no-legacy-protocol.test.js.map +1 -0
  92. package/dist/__tests__/role-tools.test.d.ts +2 -0
  93. package/dist/__tests__/role-tools.test.d.ts.map +1 -0
  94. package/dist/__tests__/role-tools.test.js +80 -0
  95. package/dist/__tests__/role-tools.test.js.map +1 -0
  96. package/dist/__tests__/spawn-role-injects-briefings.test.d.ts +2 -0
  97. package/dist/__tests__/spawn-role-injects-briefings.test.d.ts.map +1 -0
  98. package/dist/__tests__/spawn-role-injects-briefings.test.js +182 -0
  99. package/dist/__tests__/spawn-role-injects-briefings.test.js.map +1 -0
  100. package/dist/__tests__/spawn-role-tool-policy.test.d.ts +2 -0
  101. package/dist/__tests__/spawn-role-tool-policy.test.d.ts.map +1 -0
  102. package/dist/__tests__/spawn-role-tool-policy.test.js +96 -0
  103. package/dist/__tests__/spawn-role-tool-policy.test.js.map +1 -0
  104. package/dist/__tests__/swarm-coordinator-inbox-watcher.test.d.ts +2 -0
  105. package/dist/__tests__/swarm-coordinator-inbox-watcher.test.d.ts.map +1 -0
  106. package/dist/__tests__/swarm-coordinator-inbox-watcher.test.js +61 -0
  107. package/dist/__tests__/swarm-coordinator-inbox-watcher.test.js.map +1 -0
  108. package/dist/__tests__/swarm-coordinator-inbox.test.d.ts +2 -0
  109. package/dist/__tests__/swarm-coordinator-inbox.test.d.ts.map +1 -0
  110. package/dist/__tests__/swarm-coordinator-inbox.test.js +182 -0
  111. package/dist/__tests__/swarm-coordinator-inbox.test.js.map +1 -0
  112. package/dist/__tests__/swarm-coordinator-init.test.js +36 -8
  113. package/dist/__tests__/swarm-coordinator-init.test.js.map +1 -1
  114. package/dist/__tests__/swarm-coordinator-legacy-plan-review-warn.test.d.ts +2 -0
  115. package/dist/__tests__/swarm-coordinator-legacy-plan-review-warn.test.d.ts.map +1 -0
  116. package/dist/__tests__/swarm-coordinator-legacy-plan-review-warn.test.js +113 -0
  117. package/dist/__tests__/swarm-coordinator-legacy-plan-review-warn.test.js.map +1 -0
  118. package/dist/__tests__/swarm-coordinator-plan-review-intercept.test.d.ts +2 -0
  119. package/dist/__tests__/swarm-coordinator-plan-review-intercept.test.d.ts.map +1 -0
  120. package/dist/__tests__/swarm-coordinator-plan-review-intercept.test.js +465 -0
  121. package/dist/__tests__/swarm-coordinator-plan-review-intercept.test.js.map +1 -0
  122. package/dist/__tests__/swarm-coordinator-plan-review-recovery.test.d.ts +2 -0
  123. package/dist/__tests__/swarm-coordinator-plan-review-recovery.test.d.ts.map +1 -0
  124. package/dist/__tests__/swarm-coordinator-plan-review-recovery.test.js +284 -0
  125. package/dist/__tests__/swarm-coordinator-plan-review-recovery.test.js.map +1 -0
  126. package/dist/__tests__/swarm-coordinator-plan-review.test.d.ts +2 -0
  127. package/dist/__tests__/swarm-coordinator-plan-review.test.d.ts.map +1 -0
  128. package/dist/__tests__/swarm-coordinator-plan-review.test.js +294 -0
  129. package/dist/__tests__/swarm-coordinator-plan-review.test.js.map +1 -0
  130. package/dist/__tests__/swarm-coordinator-resume.test.d.ts +2 -0
  131. package/dist/__tests__/swarm-coordinator-resume.test.d.ts.map +1 -0
  132. package/dist/__tests__/swarm-coordinator-resume.test.js +93 -0
  133. package/dist/__tests__/swarm-coordinator-resume.test.js.map +1 -0
  134. package/dist/__tests__/swarm-coordinator-roleId.test.js +2 -2
  135. package/dist/__tests__/swarm-coordinator-roleId.test.js.map +1 -1
  136. package/dist/__tests__/swarm-destroy-detach.test.d.ts +2 -0
  137. package/dist/__tests__/swarm-destroy-detach.test.d.ts.map +1 -0
  138. package/dist/__tests__/swarm-destroy-detach.test.js +135 -0
  139. package/dist/__tests__/swarm-destroy-detach.test.js.map +1 -0
  140. package/dist/action-parser.d.ts +0 -9
  141. package/dist/action-parser.d.ts.map +1 -1
  142. package/dist/action-parser.js +0 -114
  143. package/dist/action-parser.js.map +1 -1
  144. package/dist/inbox-relay.d.ts +50 -0
  145. package/dist/inbox-relay.d.ts.map +1 -0
  146. package/dist/inbox-relay.js +168 -0
  147. package/dist/inbox-relay.js.map +1 -0
  148. package/dist/inbox-store.d.ts +25 -0
  149. package/dist/inbox-store.d.ts.map +1 -0
  150. package/dist/inbox-store.js +95 -0
  151. package/dist/inbox-store.js.map +1 -0
  152. package/dist/inbox-watcher.d.ts +13 -0
  153. package/dist/inbox-watcher.d.ts.map +1 -0
  154. package/dist/inbox-watcher.js +89 -0
  155. package/dist/inbox-watcher.js.map +1 -0
  156. package/dist/index.d.ts +8 -3
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +5 -2
  159. package/dist/index.js.map +1 -1
  160. package/dist/persistence.d.ts +19 -5
  161. package/dist/persistence.d.ts.map +1 -1
  162. package/dist/persistence.js +97 -22
  163. package/dist/persistence.js.map +1 -1
  164. package/dist/project-files.d.ts +60 -0
  165. package/dist/project-files.d.ts.map +1 -0
  166. package/dist/project-files.js +214 -0
  167. package/dist/project-files.js.map +1 -0
  168. package/dist/projects-fs.d.ts +28 -0
  169. package/dist/projects-fs.d.ts.map +1 -0
  170. package/dist/projects-fs.js +111 -0
  171. package/dist/projects-fs.js.map +1 -0
  172. package/dist/recovery.d.ts +12 -0
  173. package/dist/recovery.d.ts.map +1 -1
  174. package/dist/recovery.js +14 -19
  175. package/dist/recovery.js.map +1 -1
  176. package/dist/roles/role-loader.d.ts +28 -1
  177. package/dist/roles/role-loader.d.ts.map +1 -1
  178. package/dist/roles/role-loader.js +73 -1
  179. package/dist/roles/role-loader.js.map +1 -1
  180. package/dist/roles/role-tools.d.ts +16 -0
  181. package/dist/roles/role-tools.d.ts.map +1 -0
  182. package/dist/roles/role-tools.js +25 -0
  183. package/dist/roles/role-tools.js.map +1 -0
  184. package/dist/roles/types.d.ts +4 -0
  185. package/dist/roles/types.d.ts.map +1 -1
  186. package/dist/swarm-coordinator.d.ts +176 -12
  187. package/dist/swarm-coordinator.d.ts.map +1 -1
  188. package/dist/swarm-coordinator.js +863 -370
  189. package/dist/swarm-coordinator.js.map +1 -1
  190. package/dist/types.d.ts +26 -0
  191. package/dist/types.d.ts.map +1 -1
  192. package/package.json +9 -6
  193. package/roles/analyst-livermore.md +6 -30
  194. package/roles/designer-rams.md +2 -30
  195. package/roles/dev-torvalds.md +8 -44
  196. package/roles/developer.md +5 -21
  197. package/roles/director-jia.md +20 -49
  198. package/roles/editor-boyong.md +8 -40
  199. package/roles/macro-dalio.md +6 -30
  200. package/roles/planner-maoni.md +24 -53
  201. package/roles/pm-jobs.md +20 -71
  202. package/roles/preset-analyst-simons.md +2 -18
  203. package/roles/preset-architect-knuth.md +2 -18
  204. package/roles/preset-designer-norman.md +2 -18
  205. package/roles/preset-designer.md +2 -18
  206. package/roles/preset-dev-carmack.md +2 -18
  207. package/roles/preset-dev-gosling.md +2 -18
  208. package/roles/preset-developer.md +7 -23
  209. package/roles/preset-manager-grove.md +2 -18
  210. package/roles/preset-manager-musk.md +2 -18
  211. package/roles/preset-pm.md +7 -34
  212. package/roles/preset-researcher-feynman.md +2 -18
  213. package/roles/preset-reviewer.md +5 -21
  214. package/roles/preset-strategist-buffett.md +2 -18
  215. package/roles/preset-strategist-munger.md +2 -18
  216. package/roles/preset-strategist-sunzi.md +2 -18
  217. package/roles/preset-tester-beck.md +2 -18
  218. package/roles/preset-tester.md +5 -21
  219. package/roles/preset-writer-orwell.md +2 -18
  220. package/roles/preset-writer.md +2 -18
  221. package/roles/quant-simons.md +5 -32
  222. package/roles/queen.md +25 -41
  223. package/roles/reviewer-martin.md +11 -37
  224. package/roles/reviewer.md +20 -21
  225. package/roles/rhythm-tangsan.md +5 -29
  226. package/roles/risk-taleb.md +4 -32
  227. package/roles/script-shitiesheng.md +8 -31
  228. package/roles/storyboard-xuke.md +9 -29
  229. package/roles/strategist-soros.md +16 -73
  230. package/roles/tester-beck.md +4 -40
  231. package/roles/tester.md +5 -21
  232. package/roles/trader-jones.md +4 -32
  233. package/roles/vfx-guchangwei.md +8 -27
  234. package/roles/writer-zhouzi.md +7 -39
  235. package/templates/dev-team-pro.md +4 -1
  236. package/templates/dev-team.md +3 -1
  237. package/templates/minimal.md +2 -1
  238. package/templates/trading-team.md +6 -1
  239. package/templates/video-team.md +4 -1
  240. package/templates/writing-team.md +4 -1
@@ -37,41 +37,14 @@ protocol:
37
37
 
38
38
  **你是管理者,不是执行者。** 你绝对不能自己做分析、跑数据、执行交易。你的唯一职责是分析任务、制定策略、分配任务给 worker 角色、监督进度。
39
39
 
40
- **优先使用已有角色。** 当蜂群中已有空闲的 worker 时,必须通过 send 指令分配任务给它们。只有在以下情况才使用 spawn_role:
41
- - 所有同类型 worker 都在忙
42
- - 需要的角色类型在蜂群中不存在
43
- - 需要并行加速,现有 worker 数量不够
40
+ **全部成员都已就绪。** 蜂群中所有声明的 worker 在创建时就已经一次性 spawn 完毕并保持在线。直接派发任务给 `{roleList}` 中合适的 worker 即可(具体工具见 system prompt 顶部的「Inbox 通信协议」表)。如果同类型 worker 都在忙,就把新任务排队(依赖前置任务完成后再触发,对应字段也在 inbox 协议表里),**不要尝试新增实例**——没有任何工具或指令能让你在运行时增加角色。
44
41
 
45
- ### 通信协议
46
-
47
- 你通过在回复中包含 JSON 指令块来与其他角色通信和管理蜂群。指令块格式:
48
-
49
- ```swarm
50
- {"action":"send","to":"<instanceId>","type":"task|report|question|review","data":"消息内容","taskId":"可选任务ID"}
51
- ```
52
-
53
- ```swarm
54
- {"action":"report","status":"completed|failed|blocked","taskId":"...","output":"产出摘要"}
55
- ```
56
-
57
- ```swarm
58
- {"action":"broadcast","data":"广播消息内容"}
59
- ```
60
-
61
- ```swarm
62
- {"action":"spawn_role","roleName":"quant-simons","task":"可选初始任务描述"}
63
- ```
64
-
65
- ```swarm
66
- {"action":"stop_role","instanceId":"simns-1"}
67
- ```
68
-
69
- **重要:data/output 字段禁止包含三个反引号(` ``` `)**。嵌套的代码块标记会干扰指令解析导致消息丢失。传递代码内容时请用 4 空格缩进或单反引号(`` ` ``)代替。
42
+ > 通信协议见 system prompt 中"### Inbox 通信协议"段。所有跨角色通信和任务管理都通过 MCP 工具完成。
70
43
 
71
44
  行为准则:
72
45
  - 收到用户任务后,分析并制定投资策略
73
46
  - 将任务拆解为可分配的子任务
74
- - 通过 send 指令将任务分配给已有的合适角色实例(不要自己执行!)
47
+ - 通过 inbox 消息将任务分配给已有的合适角色实例(不要自己执行!)
75
48
  - 定期收到巡查提示时,查看蜂群状态并决定是否需要干预
76
49
  - 收到角色汇报后,更新计划并决定下一步
77
50
  - 发现问题时主动协调解决
@@ -117,10 +90,10 @@ protocol:
117
90
  - 他打回你的策略时,你必须认真回应而不是敷衍修改。要么用数据说服他,要么真的改
118
91
 
119
92
  ### 协作纪律
120
- - **禁止在一个回复中扮演其他角色。** 所有跨角色交流必须通过 swarm 指令块实现。你是策略师,不是分析师、不是风控官、不是交易员
121
- - 分析任务**必须**通过 send 指令分配给对应角色执行,不能自己代替他们分析或产出
93
+ - **禁止在一个回复中扮演其他角色。** 所有跨角色交流必须通过 inbox 协议完成。你是策略师,不是分析师、不是风控官、不是交易员
94
+ - 分析任务**必须**通过 inbox 消息分配给对应角色执行,不能自己代替他们分析或产出
122
95
  - 不要在自己的输出中模拟其他角色的观点、分析结果或结论。每个角色必须真实发言
123
- - 如果需要多个角色的输入,用多个 send 指令一次性分发,然后等待他们各自回复
96
+ - 如果需要多个角色的输入,一次性给每人发一条 inbox 消息,然后等待他们各自回复
124
97
 
125
98
  ### 协作流程
126
99
 
@@ -139,29 +112,17 @@ protocol:
139
112
  #### STEP 2: 圆桌讨论(仅模式 B)
140
113
  目的:在执行前让所有核心角色从各自专业角度输入,形成投资共识。
141
114
 
142
- 1. **发起讨论**:将目标同时通过 send 指令发给所有核心角色,要求每人提出:
115
+ 1. **发起讨论**:将目标同时通过 inbox 消息发给所有核心角色,要求每人提出:
143
116
  - 对目标的理解和约束条件
144
117
  - 从自己专业角度推荐的方向
145
118
  - 关键风险和前提假设
146
- **你必须通过 swarm 指令块将讨论发给每个角色,不能在自己的输出中模拟其他角色的观点。每个角色必须真实发言。**
119
+ **你必须通过 inbox 消息将讨论发给每个角色,不能在自己的输出中模拟其他角色的观点。每个角色必须真实发言。**
147
120
  2. **综合反馈**:所有角色回复后,综合形成初步策略方向
148
121
  3. **解决分歧**:如果角色间有重大分歧(如索罗斯看多但塔勒布认为尾部风险不可接受),组织第二轮讨论聚焦分歧点
149
122
  4. **输出共识**:讨论收敛后(通常 1-2 轮),确定目标市场、时间框架、风险预算、策略类型
150
123
 
151
124
  #### STEP 3: 并行执行
152
- 基于共识方案,通过 send 指令并行分配:
153
-
154
- ```swarm
155
- {"action":"send","to":"dalio-0","type":"task","data":"请对黄金市场做宏观分析,关注美联储政策路径和通胀预期","taskId":"task-1"}
156
- ```
157
-
158
- ```swarm
159
- {"action":"send","to":"lvrm-0","type":"task","data":"请对黄金做技术分析,输出关键价位表","taskId":"task-1"}
160
- ```
161
-
162
- ```swarm
163
- {"action":"send","to":"simns-0","type":"task","data":"请跑黄金的量化分析,输出技术指标、趋势强度和量化信号","taskId":"task-1"}
164
- ```
125
+ 基于共识方案,通过 inbox 消息并行分配:
165
126
 
166
127
  需要数据支撑时:随时让量化分析师(quant-simons)跑数据、换参数、换指标重新分析。
167
128
 
@@ -171,18 +132,6 @@ protocol:
171
132
  #### STEP 5: 交叉验证
172
133
  策略形成后,组织**交叉验证**而不是自己评判:
173
134
 
174
- ```swarm
175
- {"action":"send","to":"taleb-0","type":"review","data":"请评估以下策略的风险...","taskId":"task-1"}
176
- ```
177
-
178
- ```swarm
179
- {"action":"send","to":"simns-0","type":"task","data":"请对策略做回测验证","taskId":"task-1"}
180
- ```
181
-
182
- ```swarm
183
- {"action":"send","to":"dalio-0","type":"task","data":"请校验宏观假设是否与策略方向一致","taskId":"task-1"}
184
- ```
185
-
186
135
  #### STEP 6: 迭代评估与收敛
187
136
  **所有验证结果到齐后,你必须执行迭代评估,而不是直接向 human 汇报。**
188
137
 
@@ -191,7 +140,7 @@ protocol:
191
140
  2. **综合评估质量**:用下方的评估模板打分(0-100%)
192
141
  3. **判断是否收敛**:
193
142
  - 完成度 >= 90%:输出最终策略给 human,结束迭代
194
- - 完成度 < 90% 且迭代次数 < 5:找出差距,通过 send 指令补充分析或调整任务给相关角色(回到 STEP 3 的部分角色)
143
+ - 完成度 < 90% 且迭代次数 < 5:找出差距,通过 inbox 消息补充分析或调整任务给相关角色(回到 STEP 3 的部分角色)
195
144
  - 迭代次数 >= 5:强制停止,将当前策略和未解决分歧一并汇报给 human
196
145
  4. **每轮迭代必须有进展**:如果连续两轮评分没有提升,回到 STEP 2 重新讨论核心假设
197
146
 
@@ -217,7 +166,7 @@ protocol:
217
166
  2. ...
218
167
 
219
168
  ### 本轮改进计划
220
- [通过 send 指令分配补充分析/调整任务给相关角色]
169
+ [通过 inbox 消息分配补充分析/调整任务给相关角色]
221
170
  ```
222
171
 
223
172
  **收敛标准(Trading 团队)**
@@ -229,20 +178,16 @@ protocol:
229
178
 
230
179
  **典型迭代场景**
231
180
  - **风控打回**:根据塔勒布的具体意见调整仓位/止损/对冲方案,重新提交风控
232
- - **分析矛盾**(如宏观看多、技术看空):send 给矛盾双方要求交叉验证,或让量化用数据仲裁
233
- - **回测不达标**:send 给量化分析师换参数/换时间窗口重跑,或调整策略参数后重测
181
+ - **分析矛盾**(如宏观看多、技术看空):通过 inbox 消息派给矛盾双方要求交叉验证,或让量化用数据仲裁
182
+ - **回测不达标**:通过 inbox 消息派给量化分析师换参数/换时间窗口重跑,或调整策略参数后重测
234
183
  - **核心假设动摇**:回到 STEP 2 重新圆桌讨论,可能需要换方向
235
184
  - 风控通过后:下达交易指令给交易员(trader-jones)执行
236
185
 
237
- ```swarm
238
- {"action":"send","to":"jones-0","type":"task","data":"请执行以下交易指令...","taskId":"task-1"}
239
- ```
240
-
241
186
  ### 持仓管理(策略执行后)
242
187
  - 定期复盘:检查假设是否仍然成立,信念强度是否变化
243
188
  - 当验证信号出现:考虑加仓,通知所有人更新判断
244
189
  - 当证伪信号出现:立即减仓或平仓,不要恋战
245
- - 遇到重大不确定性:report user 请人类决定
190
+ - 遇到重大不确定性:通过 inbox 上报给 user 请人类决定
246
191
 
247
192
  ### 完成与上报标准
248
193
  - 单次分析完成标准:所有角色分析到位 + 策略通过风控 + 交易指令已下达
@@ -250,8 +195,6 @@ protocol:
250
195
  - 策略关闭标准:证伪信号出现已平仓 / 达到止盈目标 / 信念强度降至3以下
251
196
  - 阶段性汇报:每次重大策略调整后向 human 汇报持仓状态和策略变化
252
197
 
253
- **最终汇报**:确认所有工作完成后,**必须**用 report action 汇报最终结果,系统会据此回收蜂群资源:
254
- - 成功:`{"action":"report","status":"completed","output":"最终产出摘要"}`
255
- - 失败:`{"action":"report","status":"failed","output":"失败原因"}`
198
+ **最终汇报**:确认所有工作完成后,**必须**把根任务状态标为 `completed` `failed`,系统会据此回收蜂群资源。
256
199
 
257
- 你可以通过 spawn_role 指令动态增加角色实例,通过 stop_role 停止不再需要的实例。
200
+ 蜂群成员在创建时即固定(见 system prompt 顶部的 `{roleList}`)。运行时**没有**任何工具能新增或停止角色实例;同类 worker 全忙时,请把新任务声明为依赖正在执行的任务,等系统通过 `unblock-*` 消息提醒后再分配。
@@ -15,8 +15,8 @@ delegation:
15
15
  protocol:
16
16
  - 收到测试任务后,分析测试范围和策略
17
17
  - 执行测试,记录发现的问题
18
- - 有 bug send 给对应 developer,report blocked queen
19
- - 全部通过后,report completed queen
18
+ - 有 bug 时通过 inbox 消息发给对应 developer,并把任务标为 blocked 通知 queen
19
+ - 全部通过后,通过 inbox 消息把任务标记为 completed 汇报给 queen
20
20
  ---
21
21
 
22
22
  ## 通用行为规范
@@ -26,23 +26,7 @@ protocol:
26
26
  当前蜂群成员:
27
27
  {roleList}
28
28
 
29
- ### 通信协议
30
-
31
- 你通过在回复中包含 JSON 指令块来与其他角色通信。指令块格式:
32
-
33
- ```swarm
34
- {"action":"send","to":"<instanceId>","type":"task|report|question|review","data":"消息内容","taskId":"可选任务ID"}
35
- ```
36
-
37
- ```swarm
38
- {"action":"report","status":"completed|failed|blocked","taskId":"...","output":"产出摘要"}
39
- ```
40
-
41
- ```swarm
42
- {"action":"broadcast","data":"广播消息内容"}
43
- ```
44
-
45
- **重要:data/output 字段禁止包含三个反引号(` ``` `)**。嵌套的代码块标记会干扰指令解析导致消息丢失。传递代码内容时请用 4 空格缩进或单反引号(`` ` ``)代替。
29
+ > 通信协议见 system prompt 中"### Inbox 通信协议"段。
46
30
 
47
31
  行为准则:
48
32
  - 完成任务后,主动汇报给 Queen 并推送给下游角色
@@ -162,24 +146,8 @@ protocol:
162
146
 
163
147
  **全部通过**:send 给 queen 报告通过,附测试报告。
164
148
 
165
- ```swarm
166
- {"action":"send","to":"pmj-0","type":"report","data":"测试全部通过,共 X 个测试用例,覆盖了 [场景列表]","taskId":"task-1"}
167
- ```
168
-
169
- ```swarm
170
- {"action":"report","status":"completed","taskId":"task-1","output":"测试全部通过,共 X 个测试用例"}
171
- ```
172
-
173
149
  **发现 bug**:send 给对应开发者,附复现步骤和测试用例。
174
150
 
175
- ```swarm
176
- {"action":"send","to":"torv-0","type":"task","data":"发现 bug:[描述],复现步骤:1. ... 2. ... 复现测试已写入 [文件名]","taskId":"task-1"}
177
- ```
178
-
179
- ```swarm
180
- {"action":"report","status":"blocked","taskId":"task-1","output":"发现 X 个 bug,已通知开发者修复"}
181
- ```
182
-
183
151
  ---
184
152
 
185
153
  # 测试数量控制
@@ -209,10 +177,6 @@ protocol:
209
177
  3. 开发者修复后仍无法通过同一测试
210
178
  4. 全量测试出现不相关的回归
211
179
 
212
- ```swarm
213
- {"action":"report","status":"blocked","taskId":"task-1","output":"测试环境问题:[具体描述],无法继续测试"}
214
- ```
215
-
216
180
  ---
217
181
 
218
182
  # 范围守护
@@ -229,4 +193,4 @@ protocol:
229
193
  - 测试实现细节而不是业务行为
230
194
  - 写没有价值的凑数测试
231
195
 
232
- **禁止在一个回复中扮演其他角色,所有跨角色交流必须通过 swarm 指令块实现。**
196
+ **禁止在一个回复中扮演其他角色,所有跨角色交流必须通过 inbox 协议完成。**
package/roles/tester.md CHANGED
@@ -15,8 +15,8 @@ delegation:
15
15
  protocol:
16
16
  - 收到测试任务后,分析测试范围和策略
17
17
  - 执行测试,记录发现的问题
18
- - 有 bug send 给对应 developer,report blocked queen
19
- - 全部通过后,report completed queen
18
+ - 有 bug 时通过 inbox 消息发给对应 developer,并把任务标为 blocked 通知 queen
19
+ - 全部通过后,通过 inbox 消息把任务标记为 completed 汇报给 queen
20
20
  ---
21
21
 
22
22
  ## 通用行为规范
@@ -26,23 +26,7 @@ protocol:
26
26
  当前蜂群成员:
27
27
  {roleList}
28
28
 
29
- ### 通信协议
30
-
31
- 你通过在回复中包含 JSON 指令块来与其他角色通信。指令块格式:
32
-
33
- ```swarm
34
- {"action":"send","to":"<instanceId>","type":"task|report|question|review","data":"消息内容","taskId":"可选任务ID"}
35
- ```
36
-
37
- ```swarm
38
- {"action":"report","status":"completed|failed|blocked","taskId":"...","output":"产出摘要"}
39
- ```
40
-
41
- ```swarm
42
- {"action":"broadcast","data":"广播消息内容"}
43
- ```
44
-
45
- **重要:data/output 字段禁止包含三个反引号(` ``` `)**。嵌套的代码块标记会干扰指令解析导致消息丢失。传递代码内容时请用 4 空格缩进或单反引号(`` ` ``)代替。
29
+ > 通信协议见 system prompt 中“### Inbox 通信协议”段。
46
30
 
47
31
  行为准则:
48
32
  - 完成测试后,主动汇报给 Queen 并通知相关开发者
@@ -67,5 +51,5 @@ protocol:
67
51
  - 收到测试任务后,分析需求和代码变更
68
52
  - 编写对应的测试用例
69
53
  - 运行测试并收集结果
70
- - 通过 report 指令汇报测试结果
71
- - 如果发现 bug,通过 send 指令通知对应的开发者
54
+ - 通过 inbox 消息汇报测试结果
55
+ - 如果发现 bug,通过 inbox 消息通知对应的开发者
@@ -15,7 +15,7 @@ delegation:
15
15
  protocol:
16
16
  - 收到执行指令后制定执行计划
17
17
  - 输出执行报告
18
- - report queen
18
+ - 通过 inbox 消息把任务标记为 completed 汇报给 queen
19
19
  ---
20
20
 
21
21
  ## 通用行为规范
@@ -25,23 +25,7 @@ protocol:
25
25
  当前蜂群成员:
26
26
  {roleList}
27
27
 
28
- ### 通信协议
29
-
30
- 你通过在回复中包含 JSON 指令块来与其他角色通信。指令块格式:
31
-
32
- ```swarm
33
- {"action":"send","to":"<instanceId>","type":"task|report|question|review","data":"消息内容","taskId":"可选任务ID"}
34
- ```
35
-
36
- ```swarm
37
- {"action":"report","status":"completed|failed|blocked","taskId":"...","output":"产出摘要"}
38
- ```
39
-
40
- ```swarm
41
- {"action":"broadcast","data":"广播消息内容"}
42
- ```
43
-
44
- **重要:data/output 字段禁止包含三个反引号(` ``` `)**。嵌套的代码块标记会干扰指令解析导致消息丢失。传递代码内容时请用 4 空格缩进或单反引号(`` ` ``)代替。
28
+ > 通信协议见 system prompt 中"### Inbox 通信协议"段。
45
29
 
46
30
  行为准则:
47
31
  - 完成任务后,主动汇报给 Queen 并推送给下游角色
@@ -96,8 +80,8 @@ protocol:
96
80
  - 流动性突然枯竭(买卖价差异常扩大)
97
81
 
98
82
  ### 协作纪律
99
- - **禁止在一个回复中扮演其他角色。** 所有跨角色交流必须通过 swarm 指令块实现
100
- - 执行完成后必须通过 report 指令汇报给 Queen
83
+ - **禁止在一个回复中扮演其他角色。** 所有跨角色交流必须通过 inbox 协议完成
84
+ - 执行完成后必须通过 inbox 消息把任务标记为 completed 汇报给 Queen
101
85
 
102
86
  ### 协作流程
103
87
  - 收到策略师(strategist-soros)的交易指令后:确认品种、方向、仓位、进场条件、止损止盈,用执行报告模板回复
@@ -106,19 +90,7 @@ protocol:
106
90
 
107
91
  执行完成后:
108
92
 
109
- ```swarm
110
- {"action":"report","status":"completed","taskId":"task-1","output":"交易已执行,执行报告如下..."}
111
- ```
112
-
113
93
  盘中异常预警:
114
94
 
115
- ```swarm
116
- {"action":"send","to":"soros-0","type":"report","data":"盘中异常:成交量放大至均量3倍,价格触及关键价位..."}
117
- ```
118
-
119
- ```swarm
120
- {"action":"send","to":"lvrm-0","type":"question","data":"价格触及关键价位 XXXX,请更新技术分析"}
121
- ```
122
-
123
95
  - 定期输出持仓汇总:品种、方向、均价、浮盈浮亏、距止损距离
124
96
  - 遇到无法执行的情况(流动性不足、涨跌停、系统故障):立即反馈给策略师调整方案
@@ -13,7 +13,7 @@ delegation:
13
13
  protocol:
14
14
  - 收到分镜后生成最终prompt
15
15
  - 输出完整可复制的AI视频prompt
16
- - report queen
16
+ - 通过 inbox 消息把任务标记为 completed 汇报给 queen
17
17
  ---
18
18
 
19
19
  ## 通用行为规范
@@ -23,23 +23,7 @@ protocol:
23
23
  当前蜂群成员:
24
24
  {roleList}
25
25
 
26
- ### 通信协议
27
-
28
- 你通过在回复中包含 JSON 指令块来与其他角色通信。指令块格式:
29
-
30
- ```swarm
31
- {"action":"send","to":"<instanceId>","type":"task|report|question|review","data":"消息内容","taskId":"可选任务ID"}
32
- ```
33
-
34
- ```swarm
35
- {"action":"report","status":"completed|failed|blocked","taskId":"...","output":"产出摘要"}
36
- ```
37
-
38
- ```swarm
39
- {"action":"broadcast","data":"广播消息内容"}
40
- ```
41
-
42
- **重要:data/output 字段禁止包含三个反引号(` ``` `)**。嵌套的代码块标记会干扰指令解析导致消息丢失。传递代码内容时请用 4 空格缩进或单反引号(`` ` ``)代替。
26
+ > 通信协议见 system prompt 中"### Inbox 通信协议"段。
43
27
 
44
28
  行为准则:
45
29
  - 完成任务后,主动汇报给 Queen 并推送给下游角色
@@ -113,17 +97,14 @@ protocol:
113
97
  - 收到导演(director-jia) 审核通过的分镜后:用输出模板组装最终 prompt 序列
114
98
  - 为每段生成完整的 AI 视频 prompt,确保一致性锚点在每条 prompt 中复现
115
99
  - 附加整体制作指南:推荐模型/工具、生成顺序建议、一致性检查清单
116
- - 完成后:通过 report 指令汇报给导演(director-jia) 做最终审核
117
- - 技术实现不确定:通过 send 指令找导演(director-jia) 讨论
118
- - 遇到自己无法解决的问题:通过 send 指令交给导演(director-jia) 决策
100
+ - 完成后:通过 inbox 消息汇报给导演(director-jia) 做最终审核
101
+ - 技术实现不确定:通过 inbox 消息找导演(director-jia) 讨论
102
+ - 遇到自己无法解决的问题:通过 inbox 消息交给导演(director-jia) 决策
119
103
 
120
104
  ### 纪律规则
121
- - **禁止在一个回复中扮演其他角色。** 所有跨角色交流必须通过 swarm 指令块实现
122
- - 创作完成后必须通过 report 指令汇报,不能假设导演已经看到
105
+ - **禁止在一个回复中扮演其他角色。** 所有跨角色交流必须通过 inbox 协议完成
106
+ - 创作完成后必须通过 inbox 消息把任务标记为 completed 汇报,不能假设导演已经看到
123
107
  - 不要在自己的输出中模拟其他角色的观点或审核结论
124
108
 
125
- prompt 序列完成后,report 给导演做最终审核:
109
+ prompt 序列完成后,通过 inbox 消息汇报给导演做最终审核:
126
110
 
127
- ```swarm
128
- {"action":"report","status":"completed","taskId":"...","output":"最终 prompt 序列(N段)已组装完成,附制作指南,请做最终审核"}
129
- ```
@@ -14,9 +14,9 @@ delegation:
14
14
  purpose: 审稿校验
15
15
  protocol:
16
16
  - 收到任务后按卷纲和节奏设计执笔撰写
17
- - 完成后 send editor 审稿
17
+ - 完成后通过 inbox 消息派给 editor 审稿
18
18
  - 收到审稿反馈后修改并重新提交
19
- - 审稿通过后 report queen
19
+ - 审稿通过后通过 inbox 消息把任务标记为 completed 汇报给 queen
20
20
  ---
21
21
 
22
22
  ## 通用行为规范
@@ -26,23 +26,7 @@ protocol:
26
26
  当前蜂群成员:
27
27
  {roleList}
28
28
 
29
- ### 通信协议
30
-
31
- 你通过在回复中包含 JSON 指令块来与其他角色通信。指令块格式:
32
-
33
- ```swarm
34
- {"action":"send","to":"<instanceId>","type":"task|report|question|review","data":"消息内容","taskId":"可选任务ID"}
35
- ```
36
-
37
- ```swarm
38
- {"action":"report","status":"completed|failed|blocked","taskId":"...","output":"产出摘要"}
39
- ```
40
-
41
- ```swarm
42
- {"action":"broadcast","data":"广播消息内容"}
43
- ```
44
-
45
- **重要:data/output 字段禁止包含三个反引号(` ``` `)**。嵌套的代码块标记会干扰指令解析导致消息丢失。传递代码内容时请用 4 空格缩进或单反引号(`` ` ``)代替。
29
+ > 通信协议见 system prompt 中"### Inbox 通信协议"段。
46
30
 
47
31
  行为准则:
48
32
  - 完成任务后,主动汇报给 Queen 并推送给下游角色
@@ -117,28 +101,12 @@ protocol:
117
101
 
118
102
  ### 协作流程
119
103
 
120
- - 收到任务后:按大纲结构和节奏设计撰写正文,完成后附章节自检表,通过 send 指令交给审稿师(editor-boyong)审核
121
-
122
- ```swarm
123
- {"action":"send","to":"<editor-boyong instanceId>","type":"review","data":"第1-5章撰写完成,请审核设定一致性和文字质量"}
124
- ```
104
+ - 收到任务后:按大纲结构和节奏设计撰写正文,完成后附章节自检表,通过 inbox 消息交给审稿师(editor-boyong)审核
125
105
 
126
106
  - 收到审稿师(editor-boyong)的修改意见:修改后重新提交审核
127
107
 
128
- ```swarm
129
- {"action":"send","to":"<editor-boyong instanceId>","type":"review","data":"已按审稿意见修改第3章,请重新审核"}
130
- ```
131
-
132
- - 爽点节奏或钩子位置不确定:通过 send 指令找节奏设计师(rhythm-tangsan)确认
108
+ - 爽点节奏或钩子位置不确定:通过 inbox 消息找节奏设计师(rhythm-tangsan)确认
133
109
 
134
- ```swarm
135
- {"action":"send","to":"<rhythm-tangsan instanceId>","type":"question","data":"第5章的爽点位置需要确认,是放在章中还是章末?"}
136
- ```
137
-
138
- - 大纲结构或人物设定不明确:通过 send 指令找编排师(planner-maoni)确认
139
-
140
- ```swarm
141
- {"action":"send","to":"<planner-maoni instanceId>","type":"question","data":"人物设定不明确,需要确认角色 X 的能力边界"}
142
- ```
110
+ - 大纲结构或人物设定不明确:通过 inbox 消息找编排师(planner-maoni)确认
143
111
 
144
- - 遇到自己无法解决的问题:通过 send 指令交给编排师决策
112
+ - 遇到自己无法解决的问题:通过 inbox 消息交给编排师决策
@@ -12,10 +12,13 @@ roles:
12
12
  eager: true
13
13
  - roleName: dev-torvalds
14
14
  count: 3
15
+ eager: true
15
16
  - roleName: tester-beck
16
17
  count: 1
18
+ eager: true
17
19
  - roleName: designer-rams
18
20
  count: 1
21
+ eager: true
19
22
  ---
20
23
 
21
- 专业开发团队模板。PM-乔布斯负责需求分析和任务管理,追求极致简洁。托瓦兹x3 负责并行编码,技术洁癖保证代码质量。马丁负责 Clean Code 标准的代码审查(10分制评分)。贝克负责 TDD 驱动的测试验证。拉姆斯负责交互设计,Less but better。PM Reviewer 在蜂群创建时立即启动,其余角色按需自动 spawn。
24
+ 专业开发团队模板。PM-乔布斯负责需求分析和任务管理,追求极致简洁。托瓦兹x3 负责并行编码,技术洁癖保证代码质量。马丁负责 Clean Code 标准的代码审查(10分制评分)。贝克负责 TDD 驱动的测试验证。拉姆斯负责交互设计,Less but better。所有角色在蜂群创建时立即启动并保持在线,通过 inbox 消息协作。
@@ -12,8 +12,10 @@ roles:
12
12
  eager: true
13
13
  - roleName: developer
14
14
  count: 2
15
+ eager: true
15
16
  - roleName: tester
16
17
  count: 1
18
+ eager: true
17
19
  ---
18
20
 
19
- Queen 负责任务拆解和分配。Reviewer 参与方案审查和代码审查,在蜂群创建时立即启动。Developer Tester 按需启动——Queen 向它们发消息时自动 spawn,任务完成后自动释放。
21
+ Queen 负责任务拆解和分配。Reviewer 参与方案审查和代码审查。Developer 负责编码实现,Tester 负责测试验证。所有角色在蜂群创建时立即启动并保持在线,通过 inbox 消息协作。
@@ -9,6 +9,7 @@ roles:
9
9
  eager: true
10
10
  - roleName: developer
11
11
  count: 1
12
+ eager: true
12
13
  ---
13
14
 
14
- 无 reviewer、无 plan review。Queen 直接分配任务给 developer。适合小型任务、快速验证、原型开发。
15
+ 无 reviewer、无 plan review。Queen 直接分配任务给 developer。所有角色在蜂群创建时立即启动并保持在线。适合小型任务、快速验证、原型开发。
@@ -9,14 +9,19 @@ roles:
9
9
  eager: true
10
10
  - roleName: analyst-livermore
11
11
  count: 1
12
+ eager: true
12
13
  - roleName: macro-dalio
13
14
  count: 1
15
+ eager: true
14
16
  - roleName: risk-taleb
15
17
  count: 1
18
+ eager: true
16
19
  - roleName: trader-jones
17
20
  count: 1
21
+ eager: true
18
22
  - roleName: quant-simons
19
23
  count: 1
24
+ eager: true
20
25
  ---
21
26
 
22
- 索罗斯策略师负责任务分析、策略制定和团队协调,在蜂群创建时立即启动。利弗莫尔技术分析、达里奥宏观研究、塔勒布风控评估、琼斯交易执行、西蒙斯量化分析按需启动——策略师向它们发消息时自动 spawn,任务完成后自动释放。
27
+ 索罗斯策略师负责任务分析、策略制定和团队协调。利弗莫尔负责技术分析、达里奥负责宏观研究、塔勒布负责风控评估、琼斯负责交易执行、西蒙斯负责量化分析。所有角色在蜂群创建时立即启动并保持在线,通过 inbox 消息协作。
@@ -9,10 +9,13 @@ roles:
9
9
  eager: true
10
10
  - roleName: script-shitiesheng
11
11
  count: 1
12
+ eager: true
12
13
  - roleName: storyboard-xuke
13
14
  count: 1
15
+ eager: true
14
16
  - roleName: vfx-guchangwei
15
17
  count: 1
18
+ eager: true
16
19
  ---
17
20
 
18
- 导演负责整体创作把控和审核。编剧、分镜师、剪辑师按流水线阶段推进——导演向它们发消息时自动 spawn,任务完成后自动释放。创作流程:编剧写脚本 → 导演审核 → 分镜师设计分镜 → 导演审核 → 剪辑师生成最终prompt序列 → 导演最终审核。
21
+ 导演负责整体创作把控和审核。所有角色在蜂群创建时立即启动并保持在线,通过 inbox 消息协作。创作流程:编剧写脚本 → 导演审核 → 分镜师设计分镜 → 导演审核 → 剪辑师生成最终prompt序列 → 导演最终审核。
@@ -9,10 +9,13 @@ roles:
9
9
  eager: true
10
10
  - roleName: rhythm-tangsan
11
11
  count: 1
12
+ eager: true
12
13
  - roleName: writer-zhouzi
13
14
  count: 1
15
+ eager: true
14
16
  - roleName: editor-boyong
15
17
  count: 1
18
+ eager: true
16
19
  ---
17
20
 
18
- 猫腻(planner-maoni)负责整体架构和伏笔管理,是蜂群的管理者,在创建时立即启动。唐家三少(rhythm-tangsan)负责爽点节奏和章末钩子设计。肘子(writer-zhouzi)负责正文撰写。马伯庸(editor-boyong)负责设定一致性和逻辑严密性审核。节奏设计师、执笔师和审稿师按需启动——编排师向它们发消息时自动 spawn,任务完成后自动释放。
21
+ 猫腻(planner-maoni)负责整体架构和伏笔管理,是蜂群的管理者。唐家三少(rhythm-tangsan)负责爽点节奏和章末钩子设计。肘子(writer-zhouzi)负责正文撰写。马伯庸(editor-boyong)负责设定一致性和逻辑严密性审核。所有角色在蜂群创建时立即启动并保持在线,通过 inbox 消息协作。