codebee 0.1.6 → 0.1.8
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/CHANGELOG.md +18 -0
- package/README.md +415 -421
- package/app/core/automation.py +30 -5
- package/app/core/catalog.py +45 -3
- package/app/core/errorlog.py +179 -0
- package/app/core/flows.py +6 -2
- package/app/core/gitmod.py +45 -1
- package/app/core/health.py +55 -61
- package/app/core/jobs.py +104 -9
- package/app/core/manager.py +101 -11
- package/app/core/modelhub.py +2952 -2896
- package/app/core/paths.py +1 -0
- package/app/core/pipeline.py +425 -99
- package/app/core/remote.py +310 -303
- package/app/core/runner.py +148 -13
- package/app/core/selfupdate.py +47 -16
- package/app/core/settings.py +9 -2
- package/app/core/step_runner.py +28 -4
- package/app/core/store.py +160 -28
- package/app/core/telemetry.py +291 -0
- package/app/core/token_meter.py +18 -0
- package/app/core/usage.py +51 -1
- package/app/main.py +379 -37
- package/app/pick_dialog.py +78 -0
- package/app/ui/app.js +1006 -266
- package/app/ui/i18n.js +107 -7
- package/app/ui/index.html +148 -55
- package/app/ui/style.css +1816 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,421 +1,415 @@
|
|
|
1
|
-
# <img src="app/ui/icons/logo-horizontal.png" width="96" align="top" alt="CodeBee"> CodeBee · 多智能体编排台
|
|
2
|
-
|
|
3
|
-
> All agents, one hive. —— 一声令下,群蜂齐作。
|
|
4
|
-
> *CodeBee*,码蜂:蜂后统筹(编排者)、侦察蜂定方向(规划/评审)、工蜂采蜜(实现)——
|
|
5
|
-
> 一个蜂巢,多只蜜蜂,酿同一份蜜。
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<!-- relnotes:start -->
|
|
24
|
-
### 最新版更新内容(v0.1.
|
|
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
|
-
|
|
206
|
-
|
|
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
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
端到端(mock 全流程、门禁逻辑、验证失败拦截、服务级 API 全链路),全部不消耗真实配额。
|
|
417
|
-
|
|
418
|
-
## 后续路线
|
|
419
|
-
|
|
420
|
-
- v2:多智能体并行 + 投票/辩论;成本预算;历史胜率反哺路由;
|
|
421
|
-
- git worktree 隔离支持并行写同一仓库(并发任务已就绪,worktree 隔离待做)。
|
|
1
|
+
# <img src="app/ui/icons/logo-horizontal.png" width="96" align="top" alt="CodeBee"> CodeBee · 多智能体编排台
|
|
2
|
+
|
|
3
|
+
> All agents, one hive. —— 一声令下,群蜂齐作。
|
|
4
|
+
> *CodeBee*,码蜂:蜂后统筹(编排者)、侦察蜂定方向(规划/评审)、工蜂采蜜(实现)——
|
|
5
|
+
> 一个蜂巢,多只蜜蜂,酿同一份蜜。
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/codebee)
|
|
8
|
+
[](https://www.python.org/downloads/)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
|
|
11
|
+
**AI 是引擎,你的经验是方向盘。** CodeBee 为你指挥一支跨厂商的执笔/编码小队:
|
|
12
|
+
统一调度本机已装的 AI 编码 CLI(Codex CLI、Claude Code、Qwen Code、OpenCode、Aider、
|
|
13
|
+
Kimi Code、MiMo Code、Grok Build、Pi、DeepSeek Harness……),提供
|
|
14
|
+
**目标 → 自动拆解 → 智能路由 → 执行 → 客观验证 → 跨厂商评审 → 自动修复/换将 → 汇总报告**
|
|
15
|
+
的完整闭环。你不在时它们自动推进、自我打磨;需要你拍板的地方——质量闸门、任务分支的
|
|
16
|
+
采纳与丢弃——它们会亮起「待裁决」等你,绝不静默替你决定。
|
|
17
|
+
|
|
18
|
+
<img src="docs/screenshots/home.png" width="820" alt="CodeBee 主界面:极简新建任务 + 任务列表">
|
|
19
|
+
|
|
20
|
+
零第三方依赖:纯 Python 标准库(3.8+),本地 Web 界面,数据全部落盘可回放,
|
|
21
|
+
不会把你的任务内容交给任何第三方。
|
|
22
|
+
|
|
23
|
+
<!-- relnotes:start -->
|
|
24
|
+
### 最新版更新内容(v0.1.8)
|
|
25
|
+
|
|
26
|
+
- README 全面重写:功能导览 + 实机截图,新增蜂巢/经验库/插件市场/自动化/对话模式等章节
|
|
27
|
+
- 修复部分机器上孤儿 CLI 清扫拖慢启动 60 秒的问题(改后台执行,不再挡就绪)
|
|
28
|
+
- 连载更稳:死链自动补位活链 CLI、限流退避窗口可视化、答疑单步轮不重跑
|
|
29
|
+
- 目录页管理四道防线;评审全挂不再误判未达标;新增欢迎引导与手工添加模型
|
|
30
|
+
<!-- relnotes:end -->
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 功能速览
|
|
35
|
+
|
|
36
|
+
### 🐝 蜂巢工作台:实时盯进度,像看蜂群干活
|
|
37
|
+
|
|
38
|
+
运行详情按智能体分格,谁在采蜜一目了然:每只蜜蜂带忙碌动画,点一下直接看该 CLI
|
|
39
|
+
的实时日志流;步骤卡片记录每一步的角色、耗时、token 与费用。
|
|
40
|
+
|
|
41
|
+
<div>
|
|
42
|
+
<img src="docs/screenshots/hive.png" width="400" align="top" alt="蜂巢工作台">
|
|
43
|
+
<img src="docs/screenshots/run_steps.png" width="400" align="top" alt="步骤时间线与 CLI 日志">
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
### ⚔️ 跨厂商对抗式评审
|
|
47
|
+
|
|
48
|
+
评审者强制来自与作者不同的模型族——同族自评有同款盲区,换一双"眼睛"才挑得出
|
|
49
|
+
陈词滥调。评审按维度独立打分 + 提行级意见,不达标自动回炉修订;无跨厂商可用时
|
|
50
|
+
如实备注,绝不伪装。
|
|
51
|
+
|
|
52
|
+
<img src="docs/screenshots/bindings.png" width="820" alt="CLI 绑定:跨厂商模型链">
|
|
53
|
+
|
|
54
|
+
### 🔗 模型链跨厂商降级
|
|
55
|
+
|
|
56
|
+
「CLI 绑定」页把模型链配成 `主模型 → 备选 → 再备选`,每条自带供应商凭据注入
|
|
57
|
+
(API key + 地址,只影响 CodeBee 发起的调用,不改写 CLI 全局配置)。主模型瞬态失败
|
|
58
|
+
(503/限流)自动切下一条——可能是另一家厂商的模型。配额耗尽、供应商欠费也能自动接力。
|
|
59
|
+
|
|
60
|
+
### 🧠 经验库:越跑越好,无需人工维护
|
|
61
|
+
|
|
62
|
+
每次任务结束由编排者复盘评审暴露的问题,自动沉淀为教训并归类(情节逻辑 / 人物塑造 /
|
|
63
|
+
节奏爽点 / 文笔风格 / 一致性 / 流程规范),下次同类任务自动注入提示词。内置规范包
|
|
64
|
+
(如七猫签约标准)自动注入小说类任务;「插件市场」一键安装社区经验包。
|
|
65
|
+
|
|
66
|
+
<div>
|
|
67
|
+
<img src="docs/screenshots/skills.png" width="400" align="top" alt="经验库">
|
|
68
|
+
<img src="docs/screenshots/market.png" width="400" align="top" alt="插件市场">
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
### 🛠 智能体管理台:检测 / 安装 / 升级 / 一键绑模型
|
|
72
|
+
|
|
73
|
+
自动检测本机全部 CLI(含版本号),安装失败时 AI 读日志自动诊断给修正命令;「默认模型」
|
|
74
|
+
写回各家 CLI 自己的配置文件;「一键绑定推荐模型」按协议适配与可用性自动配好跨厂商链。
|
|
75
|
+
|
|
76
|
+
<img src="docs/screenshots/agents.png" width="820" alt="智能体管理:目录检测与一键绑定">
|
|
77
|
+
|
|
78
|
+
### 📡 模型接入:十种来源聚合
|
|
79
|
+
|
|
80
|
+
点「导入」扫描本机 CCSwitch / Claude Code / Codex CLI / ZCode / Qwen / Gemini /
|
|
81
|
+
OpenCode / Continue / Cursor / Trae 十种工具的配置,一次带入全部供应商(自动拉取模型
|
|
82
|
+
列表与价格表);也支持手动添加任意 OpenAI / Anthropic 兼容网关。密钥只存本机。
|
|
83
|
+
|
|
84
|
+
<img src="docs/screenshots/models.png" width="820" alt="模型接入:多来源供应商聚合">
|
|
85
|
+
|
|
86
|
+
### 📊 用量台账:每一分钱都有账
|
|
87
|
+
|
|
88
|
+
所有真实 LLM 调用(编排步骤、编排者直连、连通性冒烟、AI 修复)计入 append-only
|
|
89
|
+
台账:总 tokens、成功率、累计费用、每日趋势(纯 SVG 零依赖),按工具 / 智能体 /
|
|
90
|
+
模型 / 角色 / 任务类型五维排行,支持今天 / 近 7 天 / 近 30 天 / 全部。
|
|
91
|
+
|
|
92
|
+
<img src="docs/screenshots/usage.png" width="820" alt="用量统计">
|
|
93
|
+
|
|
94
|
+
### 更多内置能力
|
|
95
|
+
|
|
96
|
+
- **14 种任务类型**:代码、小说、连载小说、文档、翻译、调研、演讲、短视频脚本、
|
|
97
|
+
周报、邮件、技术方案、简历,以及「直接执行」对话模式;全部支持自定义流程
|
|
98
|
+
(引擎 / 评审维度 / 阈值 / 轮数 / 提示词覆盖);
|
|
99
|
+
- **质量闸门与裁决**:评审失败≠0 分照过、降级大纲不开写、超时但已落盘的稿件照常
|
|
100
|
+
送评审;需要人拍板的事项进「待裁决」队列(徽章 + 提示音),`tools/bee.py`
|
|
101
|
+
命令行不开浏览器也能过裁决;
|
|
102
|
+
- **产物隔离在任务分支**:指定代码版本的任务,产物提交在 `codebee/<task-id>`
|
|
103
|
+
分支上(工作区始终干净),详情页 Git 工作台看 diff,一键合并回原分支或丢弃;
|
|
104
|
+
- **运行中指挥**:任务跑着也能递话——文字 / 截图 / 附件注入下一轮;
|
|
105
|
+
- **对话模式**:不拆步骤、直接执行,时间线式对话页,随时追话续上下文;
|
|
106
|
+
- **自动化**:定时任务复用真实运行链,到点自动开跑(错过的一次性任务不补跑);
|
|
107
|
+
- **多任务并发**:worker 池默认 3(1-6 可调),互不打扰;连载任务超时/中断自动
|
|
108
|
+
断点续跑;
|
|
109
|
+
- **远程访问**:手机同一 WiFi 直开、Tailscale 外网可达、Cloudflare Tunnel 固定
|
|
110
|
+
域名——8 位访问令牌保护,多端实时同步(SSE),单设备控制权防互踩;
|
|
111
|
+
- **7 套皮肤**(默认「深海」),每套自带日间 / 夜间两版,安装默认即 深海·日间 + 中文。
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 快速开始
|
|
116
|
+
|
|
117
|
+
**方式一:npm 安装(推荐,普通用户)**
|
|
118
|
+
|
|
119
|
+
需要本机装有 [Node.js](https://nodejs.org) 与 [Python 3.8+](https://www.python.org/downloads/)
|
|
120
|
+
(Windows 装 Python 时勾选 “Add python.exe to PATH”)。然后:
|
|
121
|
+
|
|
122
|
+
```bat
|
|
123
|
+
npm install -g codebee
|
|
124
|
+
codebee
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
`codebee` 命令会启动服务并自动打开浏览器(默认 `http://127.0.0.1:8765`)。
|
|
128
|
+
**启动后那个命令行窗口就是服务本身**——保持开着别关,Ctrl+C 即退出。
|
|
129
|
+
每一步启动进度都会实时打印,卡在哪一步一眼可见。
|
|
130
|
+
|
|
131
|
+
升级:`npm update -g codebee`,或在界面「设置 → 关于与更新」里一键升级;
|
|
132
|
+
发现新版本时页面会直接展示本次更新内容。
|
|
133
|
+
|
|
134
|
+
数据存放在用户目录(Windows `%APPDATA%\CodeBee`,macOS/Linux `~/.codebee`),
|
|
135
|
+
升级/重装不影响;老版本 Tutti 目录(`%APPDATA%\Tutti`)会被自动沿用,无需迁移。
|
|
136
|
+
|
|
137
|
+
**方式二:源码运行(开发者)**
|
|
138
|
+
|
|
139
|
+
```bat
|
|
140
|
+
git clone https://github.com/Vercel-By-WXP/CodeBee.git
|
|
141
|
+
cd CodeBee
|
|
142
|
+
start.bat
|
|
143
|
+
:: 或
|
|
144
|
+
python app\main.py --port 8765
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
自动打开 `http://127.0.0.1:8765`。源码模式数据落仓库 `data/` 目录。
|
|
148
|
+
|
|
149
|
+
## 作者侧命令行(可选)
|
|
150
|
+
|
|
151
|
+
不开浏览器也能过裁决队列(本机免令牌):
|
|
152
|
+
|
|
153
|
+
```bat
|
|
154
|
+
python tools\bee.py status :: 任务总览(含待裁决标记)
|
|
155
|
+
python tools\bee.py pending :: 待裁决队列(分支 / 变更文件)
|
|
156
|
+
python tools\bee.py diff <task> :: 看本次变更
|
|
157
|
+
python tools\bee.py approve <task> :: 采纳——任务分支合并回原分支
|
|
158
|
+
python tools\bee.py discard <task> :: 否决——删除任务分支(需输 yes)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## 任务类型与自定义流程
|
|
162
|
+
|
|
163
|
+
主表单的「类型」下拉即流程列表,点「管理」可新增/编辑自定义流程(引擎、评审维度、
|
|
164
|
+
阈值、轮数、产出文件名、起草/评审提示词覆盖)。内置 14 种:
|
|
165
|
+
|
|
166
|
+
| 类型 | 引擎 | 流程 |
|
|
167
|
+
|---|---|---|
|
|
168
|
+
| 💬 直接执行 | direct | 不拆步骤直接跑,时间线对话页可追话续上下文 |
|
|
169
|
+
| 💻 代码 | code | 实现 → 验证 → 跨厂商评审 → 自动修复/换将 |
|
|
170
|
+
| 📖 小说 | review | 起草 → 多维评审(情节/人物/文笔/节奏/吸引力)→ 修订 → 发布门禁 |
|
|
171
|
+
| 📚 连载小说 | review | 大纲 → 逐章起草/评审/修订 → 全局一致性评审 → 合并成书(断点续跑/继续连载) |
|
|
172
|
+
| 📝 文档 | review | 起草 → 多维评审(准确性/结构/表达/实用)→ 修订 → 门禁 |
|
|
173
|
+
| 🌐 翻译 | review | 起草 → 多维评审(忠实度/流畅度/术语/风格)→ 修订 → 门禁 |
|
|
174
|
+
| 🔍 调研报告 | review | 起草 → 多维评审(全面性/深度/论据/结论)→ 修订 → 门禁 |
|
|
175
|
+
| 🎤 演讲稿 | review | 起草 → 多维评审(主题/结构/感染力/语言)→ 修订 → 门禁 |
|
|
176
|
+
| 🎬 短视频脚本 / 📅 周报 / ✉️ 邮件 / 📋 技术方案 / 📄 简历 | review | 各自专属评审维度 |
|
|
177
|
+
|
|
178
|
+
两种引擎:
|
|
179
|
+
- **code 引擎**:实现者在工作目录直接改代码 → 执行验证命令(确定性结果)→ 跨厂商评审
|
|
180
|
+
(结构化 JSON)→ 不通过则自动修复循环(至多 2 轮)→ 仍失败自动换将全量重实现;
|
|
181
|
+
- **review 引擎**:作者起草产出文件 → 多个评审智能体按维度独立打分 + 提问题 →
|
|
182
|
+
任一维度低于阈值则汇总 major 意见回炉修订 → 所有维度达标才标记"达到发布标准"。
|
|
183
|
+
|
|
184
|
+
自定义流程的参数在创建任务时固化到任务上,之后修改流程定义不影响已建任务。
|
|
185
|
+
|
|
186
|
+
### 连载小说与继续连载
|
|
187
|
+
|
|
188
|
+
「连载小说」按批次写作:大纲 → 逐章起草/每章评审修订 → 全局一致性评审 → 合并成书。
|
|
189
|
+
写完一批想接着写下一批(比如先写了前 10 章,现在续写 11–20 章):
|
|
190
|
+
|
|
191
|
+
- **侧栏任务右键 → 「继续连载(新任务)」**,或打开任务/运行详情点「继续连载」按钮;
|
|
192
|
+
- 弹框填续写章数(默认与上一批相同)→ 自动**新建一个任务**开跑。
|
|
193
|
+
|
|
194
|
+
续写任务沿用原任务的目标/上下文/工作目录/评审设置,从已写到的新一章接着写:
|
|
195
|
+
旧章一字不动,章节文件(`chapter-NN.md`)与成书合并(`manuscript.md`)都按
|
|
196
|
+
全书章号衔接;续写大纲会自动注入前情大纲与最新一章结尾作衔接锚点,保证跨批
|
|
197
|
+
剧情连贯;新任务标题自动带「·续 / ·续2」代数。若上一批没写完(超时/中断),
|
|
198
|
+
先用「↻ 重试任务」断点续跑补完本批(继承大纲与已完成章),再「继续连载」写
|
|
199
|
+
下一批。「继续连载」只出现在连载任务上(带章节衔接语义)。
|
|
200
|
+
|
|
201
|
+
任何任务右键 → 「基于此任务新建」可把同款配置预填进新建表单(连载的章节衔接
|
|
202
|
+
请用「继续连载」;沿用同一工作目录会覆盖原产出,表单会提醒)。
|
|
203
|
+
|
|
204
|
+
## 极简输入 + 会话延续
|
|
205
|
+
|
|
206
|
+
主表单只有 3 项:**类型、目标(一句话)、工作目录**(自动记住上次填写)。
|
|
207
|
+
标题自动取目标首行;其余(上下文/验证命令/编排模式/实现者/评审组/轮数/阈值)全部
|
|
208
|
+
收进"高级选项"折叠,默认全智能无需改动。
|
|
209
|
+
|
|
210
|
+
**在已有会话上继续**:「继续会话」下拉列出本机**已安装且支持会话恢复**的 CLI
|
|
211
|
+
(Codex CLI、Claude Code、OpenCode、QwenCode、MiMo Code 等),选中后 CodeBee 扫描
|
|
212
|
+
其本地会话(时间 / 项目 / 内容预览),挑一条即可延续那个会话的完整上下文——
|
|
213
|
+
实现者自动指定为对应智能体,规划、实现、修复都在原会话上进行(评审仍用新鲜
|
|
214
|
+
上下文避免偏见)。
|
|
215
|
+
|
|
216
|
+
各家会话存放位置与恢复方式(2026-09 本机实测):
|
|
217
|
+
|
|
218
|
+
| CLI | 会话位置 | 恢复方式 |
|
|
219
|
+
| --- | --- | --- |
|
|
220
|
+
| Codex CLI | `~/.codex/sessions/**.jsonl` | `codex exec resume <sid>` |
|
|
221
|
+
| Claude Code | `~/.claude/projects/*/<sid>.jsonl` | `claude -p --resume <sid>` |
|
|
222
|
+
| OpenCode | `~/.local/share/opencode/opencode.db`(SQLite) | `opencode run -s <sid>` |
|
|
223
|
+
| QwenCode | `~/.qwen/projects/*/chats/<sid>.jsonl` | `qwen -r <sid>` |
|
|
224
|
+
| MiMo Code | `~/.local/share/mimocode/mimocode.db`(SQLite) | `mimo run -s <sid>` |
|
|
225
|
+
|
|
226
|
+
两点注意:续会话是**显式指定**,不要求该 CLI 在设置页开启「参与编排」;
|
|
227
|
+
headless 一次性调用的 CLI(如 DeepSeek Harness)不支持会话恢复,不出现在下拉里。
|
|
228
|
+
|
|
229
|
+
## 手机 / 远程访问
|
|
230
|
+
|
|
231
|
+
服务默认监听 `0.0.0.0`,启动时控制台会打印所有可用地址:
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
[CodeBee] 本机 http://127.0.0.1:8765
|
|
235
|
+
[CodeBee] 局域网 http://192.168.x.x:8765/?token=xxxxxxxx ← 手机同一 WiFi 直接打开
|
|
236
|
+
[CodeBee] Tailscale http://100.x.x.x:8765/?token=xxxxxxxx ← 外网随时随地访问
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
- **令牌**:远程访问受访问令牌保护(首次启动生成,存于 `data/remote.json`;本机
|
|
240
|
+
127.0.0.1 免令牌)。手机打开带 `?token=` 的地址后自动记住;令牌错误会弹输入门。
|
|
241
|
+
- **多端同步**:所有设备看到同一份实时状态(SSE 推送,秒级),断线自动降级为轮询。
|
|
242
|
+
- **控制权**:同一时刻只有一台设备能操作,空闲时任意操作自动接管,其他设备只读,
|
|
243
|
+
顶栏胶囊一键抢回;45 秒无操作自动释放。
|
|
244
|
+
- **外网**:手机与电脑都装 [Tailscale](https://tailscale.com) 登录同一账号即随时随地访问。
|
|
245
|
+
|
|
246
|
+
### 公网访问(自己的域名 + Cloudflare Tunnel)
|
|
247
|
+
|
|
248
|
+
```bat
|
|
249
|
+
:: 一次性配置:cloudflared 登录后创建隧道并绑定子域名
|
|
250
|
+
cloudflared tunnel login
|
|
251
|
+
cloudflared tunnel create codebee
|
|
252
|
+
cloudflared tunnel route dns --overwrite-dns <隧道UUID> codebee.你的域名.com
|
|
253
|
+
|
|
254
|
+
:: 之后日常启动(服务 + 隧道一键起):
|
|
255
|
+
start-public.bat
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
- 真本机(不带转发头的 loopback)不受影响。
|
|
259
|
+
- `--public-url` 让「手机连接」弹框的二维码直接给公网地址。
|
|
260
|
+
- 公网暴露面 = 8 位访问令牌;想更强可叠加 Cloudflare Access(零信任,免费档 50 用户)。
|
|
261
|
+
- Cloudflare 免费版即可:无需公网 IP、无需备案、不开任何入站端口。
|
|
262
|
+
|
|
263
|
+
### 公网访问(零配置临时隧道)
|
|
264
|
+
|
|
265
|
+
装了 [cloudflared](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/)
|
|
266
|
+
(`winget install Cloudflare.cloudflared`)后,**默认启动即自动建立 Cloudflare 临时隧道**:
|
|
267
|
+
控制台打印一个随机的 `https://xxx.trycloudflare.com` 公网地址,出门扫码即用。
|
|
268
|
+
每次重启地址会变(手机重新扫码即可)。
|
|
269
|
+
|
|
270
|
+
- 已有 Cloudflare 隧道凭据的机器(`~/.cloudflared` 下有 `*.json`)不会自动起临时隧道,
|
|
271
|
+
请走固定域名路径;`--no-public-tunnel` 可彻底关闭该行为。
|
|
272
|
+
- 打开即自动强制 `--trusted-proxy`:公网暴露 ⇆ 反代回源令牌校验,二者永不分离。
|
|
273
|
+
|
|
274
|
+
## 多任务并发
|
|
275
|
+
|
|
276
|
+
任务队列是可并发 worker 池(默认 3,设置页「编排设置」可调 1-6):多个任务同时跑、
|
|
277
|
+
互不打扰——每个任务独立线程,运行数据按 run 隔离,互不等待。并发数调小后多余线程
|
|
278
|
+
在空闲检查点自行退出,调大即时补齐。串行模式(=1)也可用。连载任务超时/中断自动
|
|
279
|
+
断点续跑(延迟退避入队,防在网关限流墙上连续撞死)。
|
|
280
|
+
|
|
281
|
+
## 编排设置(编排者模型)
|
|
282
|
+
|
|
283
|
+
「编排设置」页可给 **CodeBee 自己的智能体**指定一个厂商的模型(直连 API,不占
|
|
284
|
+
CLI 会话):统一负责任务的**规划拆解、难度判定与写作大纲**。未启用或调用失败时
|
|
285
|
+
自动回落为「最强可用 CLI 智能体」规划,流程永不阻塞。三种协议(anthropic /
|
|
286
|
+
openai / google)都可作编排者;一键测试连通。
|
|
287
|
+
|
|
288
|
+
## 两种智能体
|
|
289
|
+
|
|
290
|
+
- **真实智能体**:来自 `data/catalog.json`,已安装且在管理页勾选"参与编排"的 CLI;
|
|
291
|
+
- **mock 智能体**(演示智能体 A/B):内置、零消耗,用于验证流程 / 演示 / 回归测试。
|
|
292
|
+
|
|
293
|
+
mock 的评分逻辑是确定性的:第 1 轮故意略低于阈值、第 2 轮达标——用来验证发布门禁。
|
|
294
|
+
仅当本机一个真实智能体都没有时才回退显示在表单里。
|
|
295
|
+
|
|
296
|
+
## 模型接入(API 供应商)
|
|
297
|
+
|
|
298
|
+
"模型接入"页是**主从视图**:左侧选供应商,右侧看该供应商的模型。
|
|
299
|
+
|
|
300
|
+
- **导入(多来源)**:点「导入」弹出扫描结果,列出本机所有受支持的 AI 工具及各自可导入
|
|
301
|
+
的供应商数量,勾选后可一次导入。支持 **CCSwitch(含 Claude Desktop / Codex / Gemini /
|
|
302
|
+
OpenClaw)、Claude Code、Codex CLI、ZCode、Qwen Code、Gemini CLI、OpenCode、Continue、
|
|
303
|
+
Cursor、Trae**——只读这些工具的配置,不改写它们本身;导入后**自动拉取各供应商的可用
|
|
304
|
+
模型列表**(后台并发,CCSwitch 的每百万 token 价格表一并带入);按「来源 + 原始条目」
|
|
305
|
+
幂等,重复导入原地更新并保留你设置的模型、启停状态与已删除墓碑;
|
|
306
|
+
- **手动添加**:点「+」弹出表单(名称 / 协议 / API 地址 / 密钥 / 默认与难度模型),
|
|
307
|
+
保存后自动拉取模型列表;地址若误填成 `.../v1/chat/completions` 会自动收敛为基址;
|
|
308
|
+
- **协议**:`anthropic` 与 `openai` 可注入 CLI;`google`(Gemini)**仅登记**——
|
|
309
|
+
可查看、可拉取模型列表,但不会出现在 CLI 绑定的下拉里;
|
|
310
|
+
- **左侧供应商列表**:名称、协议、来源标签、已拉取的模型数;支持批量启用/停用/删除;
|
|
311
|
+
停用即「暂不参与编排」,配置与墓碑保留,随时可再启用;
|
|
312
|
+
- **右侧供应商详情**:测试连接(连通性 + 延迟);模型按协议分组、每行可测试
|
|
313
|
+
(1-token 真实对话,显示 `✓ 850ms` 或 `✗ HTTP 402 欠费`)与启停;批量操作原子生效;
|
|
314
|
+
拖动 ☰ 调整调用优先级;删除模型是标记隐藏而非物理移除(刷新/重导入不会带回来),
|
|
315
|
+
「已删除 N 个」可恢复;
|
|
316
|
+
- **自动优先级**:新拉取的模型按名称启发式自动排序(pro/opus 强者靠前,
|
|
317
|
+
mini/flash 便宜者靠后),手动调序后刷新会保留你的顺序;
|
|
318
|
+
- **协议适配**:网关实际支持的 wire(responses / chat completions)可一键「适配测试」
|
|
319
|
+
实测登记;`protocol=auto` 的供应商按实测能力集自动归类;
|
|
320
|
+
- **运行时语义**:「CLI 绑定」页的**模型链可跨厂商混搭**——每条自带该供应商的
|
|
321
|
+
凭据注入(API key + 地址),第 1 条是主模型,其余按序降级:主模型瞬态失败
|
|
322
|
+
(503/限流/无可用通道)自动切到下一条,**可能是另一家厂商的模型**(最多 3 条);
|
|
323
|
+
链空则按供应商默认 / 难度路由自动选;同厂商多密钥可配多把 KEY,欠费/冷却自动切备用;
|
|
324
|
+
- **安全**:拉取与测试仅访问用户自己配置的 http/https 地址,解析 IP 做边界校验、
|
|
325
|
+
禁用重定向;内网自建网关(私网 IP)导入时自动放行 `allow_private`;
|
|
326
|
+
密钥只存本机 `data/models.json`。
|
|
327
|
+
|
|
328
|
+
## 智能编排(默认模式)
|
|
329
|
+
|
|
330
|
+
任务表单默认"智能"模式:只填 **目标 + 工作目录**,其余由系统决定:
|
|
331
|
+
|
|
332
|
+
1. **规划**:最强可用智能体把目标拆成 ≤4 个有序子任务(JSON 计划,失败退化为单步模板),计划在运行详情可见;
|
|
333
|
+
2. **智能路由**:能力基线 × 历史胜率(过往 run 的 verdict 统计)打分选实现者;评审者强制跨厂商;每一步记录"为什么选它";
|
|
334
|
+
3. **自动修复**:验证或评审不通过 → 问题清单自动发回实现者修复 → 重验证 → 重评审(至多 2 轮);
|
|
335
|
+
4. **自动换将**:修复穷尽仍失败 → 自动切换到次优智能体全量重实现一次;
|
|
336
|
+
5. **报告**:结论、评分、路由依据、修复轮数、问题清单。
|
|
337
|
+
|
|
338
|
+
"手动"模式保留完整人工控制(指定实现者、评审组等),行为同 v1。
|
|
339
|
+
|
|
340
|
+
## 智能体管理
|
|
341
|
+
|
|
342
|
+
"智能体管理"页提供:
|
|
343
|
+
|
|
344
|
+
- **检测**:已装 / 未装、版本号(CLI `--version` / UWP AppxManifest / PowerShell);
|
|
345
|
+
- **安装 / 升级 / 卸载**:执行 catalog 里配置的命令,日志**实时流式落盘**(边跑边看);
|
|
346
|
+
**安装失败时 AI 自动诊断**——真实智能体读取失败日志 + 本机环境给出修正命令,
|
|
347
|
+
只有命中白名单(`npm install` / `winget install` / `pip install` 前缀)才自动执行,
|
|
348
|
+
否则留待人工确认;卸载命令由安装命令自动推导,特殊渠道可显式覆盖;
|
|
349
|
+
- **模型配置**:工具默认模型(写回各家配置文件,自动备份 `.bak`);
|
|
350
|
+
CodeBee 编排运行时用哪个供应商 / 模型统一在「CLI 绑定」页配置;
|
|
351
|
+
- **编排开关**:决定哪些 CLI 参与任务路由。
|
|
352
|
+
|
|
353
|
+
Kimi Code / MiMo Code / Grok Build / Pi / DeepSeek Harness 的安装命令已内置(均取自
|
|
354
|
+
各工具官方渠道)。若某个条目的安装命令缺失,直接编辑 `data/catalog.json` 补上
|
|
355
|
+
`install` 字段保存后点"重新加载 catalog"即可;点"恢复默认 catalog"可回滚。
|
|
356
|
+
|
|
357
|
+
## 接入原理(已在本机实测)
|
|
358
|
+
|
|
359
|
+
| CLI | 无头调用 | 输出解析 |
|
|
360
|
+
|---|---|---|
|
|
361
|
+
| Codex CLI | `codex exec --skip-git-repo-check --json -s <sandbox>`(stdin 传提示词) | JSONL 事件流:`item.completed`=回答,`turn.completed`=token 用量 |
|
|
362
|
+
| Claude Code | `claude -p --output-format json`(stdin 传提示词;自动注入 Git Bash 路径与输出上限) | 单个 JSON:`result` / `total_cost_usd` / `usage` |
|
|
363
|
+
| DeepSeek Harness | `dsh --profile headless "<任务>"`(任务只能走位置参数) | stdout 即最终回答;退出码 0=完成 / 1=错误 |
|
|
364
|
+
|
|
365
|
+
- **模型指定因 CLI 而异**:codex/claude 支持运行时注入(env / `-c` 覆盖);dsh 只认
|
|
366
|
+
`~/.dsh/settings.yaml` 的配置项,凭据走 `DEEPSEEK_API_KEY` 环境变量(不落盘);
|
|
367
|
+
kimi/grok-build/mimo/pi/openclaw 的默认模型落点均已逐一实测内置,配置由 CodeBee
|
|
368
|
+
托管写入(自动备份)。
|
|
369
|
+
- **协议闸门**:claude 只吃 anthropic wire、codex 只吃 openai responses、dsh 只吃
|
|
370
|
+
OpenAI 兼容 chat——不匹配的供应商在绑定与起跑前就会被剔除并提示,不会产生
|
|
371
|
+
「必然失败的注入组合」。
|
|
372
|
+
- 所有子进程:并发读管道防死锁、超时/取消杀整棵进程树(`taskkill /T`)、stdout 全量
|
|
373
|
+
落盘;输出静默看门狗(默认 600s)防个别 CLI 卡死,超时自动换将接力。
|
|
374
|
+
|
|
375
|
+
## 目录约定
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
data/(npm 安装:%APPDATA%\CodeBee 或 ~/.codebee;源码模式:仓库 data/)
|
|
379
|
+
catalog.json 智能体目录(可手动编辑)
|
|
380
|
+
orchestration.json 编排偏好(参与编排开关)
|
|
381
|
+
models.json 供应商 / CLI 绑定(跨厂商模型链)/ 多 KEY
|
|
382
|
+
flows.json 自定义任务流程
|
|
383
|
+
settings.json 运行设置(最大并发数)
|
|
384
|
+
tasks/*.json 任务
|
|
385
|
+
runs/<run_id>/ 每次运行:run.json、steps/*.log、report.md、error.log
|
|
386
|
+
usage/ 用量台账(usage-YYYYMM.jsonl,按月分文件,append-only)
|
|
387
|
+
skills.json 经验库(教训 + 规范包)
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
安全约束(内置,勿绕过):配置路径必须位于用户主目录内;任务工作目录必须是已存在的
|
|
391
|
+
绝对路径;稿件文件名消毒后限制在工作目录内;步骤日志读取禁止目录穿越;
|
|
392
|
+
远程写操作需设备控制权 + 访问令牌。
|
|
393
|
+
|
|
394
|
+
## 测试
|
|
395
|
+
|
|
396
|
+
```bat
|
|
397
|
+
cd tests && python -m unittest discover -p "test_*.py" -v
|
|
398
|
+
python tests\e2e_service.py :: 起真实服务的端到端(临时数据目录 + 独立端口,零配额)
|
|
399
|
+
node tests\ui_check.mjs :: Edge headless + CDP 的 UI 交互验证
|
|
400
|
+
node tests\ui_audit.mjs :: 全页面体检(逐页可见性 + 控制台异常)
|
|
401
|
+
node tests\ui_skin.mjs :: 皮肤核验(调色板变量对齐 + 换肤/持久化)
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
单元测试(解析器/消毒/穿越防护/mock 确定性/流程注册表/跨厂商链/编排者/并发池/
|
|
405
|
+
自更新一致性)+ 端到端(mock 全流程、门禁逻辑、验证失败拦截、服务级 API 全链路),
|
|
406
|
+
全部不消耗真实配额。
|
|
407
|
+
|
|
408
|
+
## 更新日志
|
|
409
|
+
|
|
410
|
+
见 [CHANGELOG.md](CHANGELOG.md)。应用内「设置 → 关于与更新」可检查更新、查看
|
|
411
|
+
每次更新的内容并一键升级(npm 安装模式)。
|
|
412
|
+
|
|
413
|
+
## License
|
|
414
|
+
|
|
415
|
+
[MIT](LICENSE)
|