kc-beta 0.3.2 → 0.5.4
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/package.json +1 -1
- package/src/agent/confidence-scorer.js +8 -0
- package/src/agent/context-window.js +7 -2
- package/src/agent/context.js +25 -0
- package/src/agent/corner-case-registry.js +5 -0
- package/src/agent/engine.js +564 -76
- package/src/agent/event-log.js +15 -2
- package/src/agent/history.js +91 -23
- package/src/agent/pipelines/initializer.js +3 -6
- package/src/agent/retry.js +9 -1
- package/src/agent/rule-catalog-normalize.js +37 -0
- package/src/agent/scheduler.js +276 -0
- package/src/agent/session-state.js +11 -2
- package/src/agent/task-manager.js +5 -0
- package/src/agent/tools/agent-tool.js +57 -14
- package/src/agent/tools/archive-file.js +94 -0
- package/src/agent/tools/copy-to-workspace.js +140 -0
- package/src/agent/tools/phase-advance.js +60 -0
- package/src/agent/tools/release.js +323 -0
- package/src/agent/tools/rule-catalog.js +56 -4
- package/src/agent/tools/schedule-fetch.js +118 -0
- package/src/agent/tools/snapshot.js +101 -0
- package/src/agent/tools/workspace-file.js +10 -7
- package/src/agent/version-manager.js +29 -120
- package/src/agent/workspace.js +127 -4
- package/src/cli/components.js +68 -12
- package/src/cli/index.js +147 -15
- package/src/config.js +10 -1
- package/src/model-tiers.json +5 -5
- package/template/release-runtime/README.md.tmpl +84 -0
- package/template/release-runtime/kc_runtime/__init__.py +2 -0
- package/template/release-runtime/kc_runtime/confidence.py +93 -0
- package/template/release-runtime/kc_runtime/dashboard.py +208 -0
- package/template/release-runtime/render_dashboard.py +49 -0
- package/template/release-runtime/run.py +230 -0
- package/template/release-runtime/serve.sh +15 -0
- package/template/skills/en/meta-meta/bootstrap-workspace/SKILL.md +11 -0
- package/template/skills/en/meta-meta/quality-control/SKILL.md +13 -1
- package/template/skills/en/meta-meta/skill-to-workflow/SKILL.md +8 -0
- package/template/skills/en/meta-meta/task-decomposition/SKILL.md +13 -0
- package/template/skills/en/meta-meta/version-control/SKILL.md +13 -0
- package/template/skills/zh/meta-meta/bootstrap-workspace/SKILL.md +11 -0
- package/template/skills/zh/meta-meta/quality-control/SKILL.md +12 -0
- package/template/skills/zh/meta-meta/skill-to-workflow/SKILL.md +8 -0
- package/template/skills/zh/meta-meta/task-decomposition/SKILL.md +16 -0
- package/template/skills/zh/meta-meta/version-control/SKILL.md +13 -0
- package/template/workspace.gitignore +22 -0
|
@@ -168,6 +168,22 @@ description: Decompose each verification rule into independent sub-tasks and ass
|
|
|
168
168
|
| `template` | 模板填充(批注生成等) |
|
|
169
169
|
| `manual_review` | 人工审核 |
|
|
170
170
|
|
|
171
|
+
## 多智能体协同 —— 不要用锁
|
|
172
|
+
|
|
173
|
+
如果一个任务大到你打算用 `agent_tool` 起多个子智能体并行做,按独立单元分片(一个规则一个子智能体、一份文档一个子智能体),让子智能体之间不需要通过共享可变文件来协同。
|
|
174
|
+
|
|
175
|
+
来自一个友邻团队的失败教训:他们让所有子智能体平等,通过共享协同文件领任务,并加锁防抢占。两类失败必然出现:
|
|
176
|
+
|
|
177
|
+
1. 锁被持有太久,或者干脆忘了释放。即便锁机制工作,二十个智能体的吞吐会下降到只有两三个的水平 —— 大部分时间都在等。
|
|
178
|
+
2. 系统脆弱:智能体可能在持有锁时崩溃,或重复获取自己已经持有的锁,或干脆不获取锁就更新协同文件。
|
|
179
|
+
|
|
180
|
+
KC 偏好的两种模式:
|
|
181
|
+
|
|
182
|
+
- **单调度器** —— `TaskManager` 一次发一个任务给主 conductor。无锁,无 peer 协同。这是 ralph-loop 的默认架构。
|
|
183
|
+
- **按单元分片** —— 用 `agent_tool` 起子智能体时,每个子智能体只负责一个不重叠的切片(一规则、一文档)。子智能体的状态写到自己的 `sub_agents/<taskId>/` 下,共享产物(`rule_skills/<id>/`、`workflows/<id>/`)按规则路径分开。Block 11 的 git 自动提交把共享路径的写入序列化,按规则分片让"后写覆盖前写"不再是问题。
|
|
184
|
+
|
|
185
|
+
如果两个本应并行的子智能体非要相互通信才能推进,那它们其实应该是一个任务(顺序跑)或一条流水线(父智能体发完 A 再发 B),而不是平行的 peer。
|
|
186
|
+
|
|
171
187
|
## 反模式
|
|
172
188
|
|
|
173
189
|
### LLM 万能论
|
|
@@ -5,6 +5,19 @@ description: Manage versioning of skills, workflows, prompts, and system configu
|
|
|
5
5
|
|
|
6
6
|
# 版本控制与制品溯源
|
|
7
7
|
|
|
8
|
+
## Git 即唯一真相源
|
|
9
|
+
|
|
10
|
+
工作区是一个 git 仓库。每次对受跟踪路径(skills、workflows、rules、glossary、AGENT.md、tasks.json)的写入,都由 KC 自动提交,提交信息中带有 trace ID。这意味着:
|
|
11
|
+
|
|
12
|
+
- `git log --oneline` 就是本次 session 中所有有意义变更的时间线。
|
|
13
|
+
- `git diff HEAD~3 -- rule_skills/R001/` 显示某个技能在最近三次有意义写入间的变化。
|
|
14
|
+
- `git checkout HEAD~5 -- workflows/R001/` 回滚一个工作流,不影响其他任何东西。
|
|
15
|
+
- `snapshot` 工具用来标记值得记住的时刻(发版、"高风险操作前"),用 `git checkout snap/<label>` 恢复。
|
|
16
|
+
|
|
17
|
+
通过 `sandbox_exec` 加 `cwd: "workspace"` 直接跑 git 命令。不要绕开 git —— 它就是审计链路本身。
|
|
18
|
+
|
|
19
|
+
下文中按版本号复制文件名(`workflow_v1.py`、`workflow_v3.py`)和 CHANGELOG.md 的约定依然有用,但作用是 *在单个技能文件夹内提升人类可读性* —— 让智能体直接对比,不必每次都去翻 git 历史。系统的真相记录在 git,不在已废弃的 `versions.json` manifest(新工作区不再写入这个文件)。
|
|
20
|
+
|
|
8
21
|
## 设计目标
|
|
9
22
|
|
|
10
23
|
这套版本控制机制不是为了多人协作——在这个系统中,编程智能体是唯一的执行者。版本控制的目的是:
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Auto-installed by KC at session start. Do not commit secrets, runtime
|
|
2
|
+
# noise, or user source documents — git tracks KC's outputs only.
|
|
3
|
+
|
|
4
|
+
# Secrets
|
|
5
|
+
.env
|
|
6
|
+
|
|
7
|
+
# Runtime / session noise
|
|
8
|
+
logs/
|
|
9
|
+
sub_agents/
|
|
10
|
+
session-state.json
|
|
11
|
+
.DS_Store
|
|
12
|
+
*.log
|
|
13
|
+
|
|
14
|
+
# User-provided source documents (read in place, not tracked)
|
|
15
|
+
samples/
|
|
16
|
+
|
|
17
|
+
# High-volume IO
|
|
18
|
+
input/
|
|
19
|
+
output/
|
|
20
|
+
|
|
21
|
+
# Deprecated metadata manifest (old workspaces only — replaced by git)
|
|
22
|
+
versions.json
|