Merge PR #87: [moz] docs(§19): S3-S5 cron 配置方案 + 一致性偏差修复清单
This commit was merged in pull request #87.
This commit is contained in:
@@ -465,7 +465,152 @@ IMPROVE(每周 cron,庞统执行)
|
||||
| S5 | 实现 IMPROVE cron:JSONL 引用追踪 + 淘汰报告(每周) | P2 | L2-L3 |
|
||||
| S6 | 清理 deprecated 代码(skill_system.py / experience.py / self-improvement skill / SELF_IMPROVEMENT_REMINDER.md) | P3 | L1 |
|
||||
|
||||
S1 和 S2 可以立即做。S3-S5 需要先确认设计文档。
|
||||
S1 和 S2 已完成(PR #85)。S3-S5 设计见下方 §11A。
|
||||
|
||||
## 11A. Cron 配置方案(S3-S5 详细设计)
|
||||
|
||||
### 设计决策
|
||||
|
||||
**每个 agent 用自己的 agentId 执行 L1 cron**,不由庞统代理。
|
||||
|
||||
理由(对照设计目标 D4):
|
||||
- L1 核心价值是"每个 agent 是自己经验的最佳蒸馏者"——agent 扫描自己的 JSONL,用自己的判断力识别信号
|
||||
- 如果庞统代理,变成庞统替别人蒸馏,消除不了蒸馏者偏差(D4 要解决的正是这个问题)
|
||||
- openclaw cron 原生支持 `agentId` 参数 + `sessionTarget: "isolated"`,技术上无障碍
|
||||
|
||||
### S3: L1 各 agent 自蒸馏 cron
|
||||
|
||||
6 个 agent,各创建一个 isolated cron,错开 15 分钟(和 discover-l1.md 时间表一致):
|
||||
|
||||
| Agent | agentId | cron 表达式 | 时区 |
|
||||
|-------|---------|-----------|------|
|
||||
| 张飞 | zhangfei-dev | `0 3 * * *` | Asia/Shanghai |
|
||||
| 关羽 | guanyu-dev | `15 3 * * *` | Asia/Shanghai |
|
||||
| 赵云 | zhaoyun-data | `30 3 * * *` | Asia/Shanghai |
|
||||
| 司马懿 | simayi-challenger | `45 3 * * *` | Asia/Shanghai |
|
||||
| 庞统 | pangtong-fujunshi | `0 4 * * *` | Asia/Shanghai |
|
||||
| 姜维 | jiangwei-infra | `15 4 * * *` | Asia/Shanghai |
|
||||
|
||||
**Cron 配置规范**(每个 L1 cron job):
|
||||
|
||||
```json
|
||||
{
|
||||
"schedule": { "kind": "cron", "expr": "<时间>", "tz": "Asia/Shanghai" },
|
||||
"sessionTarget": "isolated",
|
||||
"agentId": "<agent-id>",
|
||||
"payload": {
|
||||
"kind": "agentTurn",
|
||||
"message": "L1 自蒸馏 cron。请执行:\n1. read ~/.sanguo_projects/sanguo_mozi/skills/skill-management/SKILL.md\n2. read ~/.sanguo_projects/sanguo_mozi/skills/skill-management/references/discover-l1.md\n3. 按 discover-l1.md 步骤执行自蒸馏\n4. 如有信号:蒸馏为 HOW 格式,使用 skill_workshop(action=create) 提交 draft proposal\n5. 如无有价值信号:不产出,这是正常的",
|
||||
"timeoutSeconds": 600
|
||||
},
|
||||
"delivery": { "mode": "none" }
|
||||
}
|
||||
```
|
||||
|
||||
**设计要点**:
|
||||
- `sessionTarget: "isolated"`:每次创建临时 session,不污染 main session context
|
||||
- `delivery.mode: "none"`:L1 不需要通知任何人,proposal 存在 skill_workshop 中即可
|
||||
- `timeoutSeconds: 600`:10 分钟足够(扫描 JSONL + 蒸馏 + 提交 proposal)
|
||||
- message 指引 read SKILL.md + discover-l1.md:agent 按 references 指南执行,不依赖 memory
|
||||
|
||||
### S4: L2 庞统整合审查 cron
|
||||
|
||||
庞统的 L2 cron 在所有 L1 完成后执行(最后一个 agent 04:15 开始,L2 设在 05:00):
|
||||
|
||||
| 角色 | agentId | cron 表达式 | 时区 |
|
||||
|------|---------|-----------|------|
|
||||
| 庞统 | pangtong-fujunshi | `0 5 * * *` | Asia/Shanghai |
|
||||
|
||||
**Cron 配置**:
|
||||
|
||||
```json
|
||||
{
|
||||
"schedule": { "kind": "cron", "expr": "0 5 * * *", "tz": "Asia/Shanghai" },
|
||||
"sessionTarget": "isolated",
|
||||
"agentId": "pangtong-fujunshi",
|
||||
"payload": {
|
||||
"kind": "agentTurn",
|
||||
"message": "L2 整合审查 cron。请执行:\n1. read ~/.sanguo_projects/sanguo_mozi/skills/skill-management/references/discover-l2.md\n2. 按 discover-l2.md 步骤执行:\n a. skill_workshop(action=list, status=pending) 获取所有 L1 draft proposals\n b. 全量数据源扫描,识别跨 agent 共性模式\n c. 逐个审查 proposal:approve / merge / reject\n d. 全局提升检查(Recurrence-Count >= 3 的经验提升为规则)\n e. 知识缺口反馈到 knowledge-gaps.md",
|
||||
"timeoutSeconds": 1200
|
||||
},
|
||||
"delivery": { "mode": "none" }
|
||||
}
|
||||
```
|
||||
|
||||
**设计要点**:
|
||||
- `timeoutSeconds: 1200`(20 分钟):L2 需要扫描全量数据源 + 审查多个 proposal,时间更长
|
||||
- 庞统可以访问所有 agent 的 JSONL 和 skill_workshop proposals
|
||||
|
||||
### S5: IMPROVE 每周引用追踪 cron
|
||||
|
||||
庞统每周日 06:00 执行引用追踪(周日选活动量最低的时段):
|
||||
|
||||
| 角色 | agentId | cron 表达式 | 时区 |
|
||||
|------|---------|-----------|------|
|
||||
| 庞统 | pangtong-fujunshi | `0 6 * * 0` | Asia/Shanghai |
|
||||
|
||||
**Cron 配置**:
|
||||
|
||||
```json
|
||||
{
|
||||
"schedule": { "kind": "cron", "expr": "0 6 * * 0", "tz": "Asia/Shanghai" },
|
||||
"sessionTarget": "isolated",
|
||||
"agentId": "pangtong-fujunshi",
|
||||
"payload": {
|
||||
"kind": "agentTurn",
|
||||
"message": "IMPROVE 每周引用追踪 cron。请执行:\n1. read ~/.sanguo_projects/sanguo_mozi/skills/skill-management/references/improve.md\n2. 按 improve.md 步骤执行:\n a. 扫描过去 7 天所有 agent 的 session JSONL,采集 Skill 引用信号\n b. 生成淘汰候选报告(30 天无引用的 Skill)\n c. 庞统审阅决策:quarantine / 保留观察 / 更新后保留\n d. 经验提升检查(被频繁引用 >= 5 次的 Skill)\n e. 反馈知识缺口到 knowledge-gaps.md",
|
||||
"timeoutSeconds": 1800
|
||||
},
|
||||
"delivery": { "mode": "none" }
|
||||
}
|
||||
```
|
||||
|
||||
**设计要点**:
|
||||
- `timeoutSeconds: 1800`(30 分钟):全量 JSONL 扫描是最重的操作
|
||||
- 每周一次频率足够——Skill 引用变化不会很快
|
||||
- 淘汰决策通过 skill_workshop quarantine 执行,提升决策通过手动编辑 AGENTS.md
|
||||
|
||||
### Cron 创建方式
|
||||
|
||||
使用 openclaw cron 工具创建。**不是 moziplus 管理**,而是直接在 openclaw 层面配置。
|
||||
|
||||
创建顺序:先 S3(L1),再 S4(L2),最后 S5(IMPROVE)。
|
||||
|
||||
创建后验证:`cron(action=list)` 确认所有 job 存在且 enabled=true。
|
||||
|
||||
### 去重和幂等
|
||||
|
||||
每个 cron job 的 name 包含 agent 名,避免命名冲突:
|
||||
- `l1-distill-zhangfei`
|
||||
- `l1-distill-guanyu`
|
||||
- `l1-distill-zhaoyun`
|
||||
- `l1-distill-simayi`
|
||||
- `l1-distill-pangtong`
|
||||
- `l1-distill-jiangwei`
|
||||
- `l2-review-pangtong`
|
||||
- `improve-weekly-pangtong`
|
||||
|
||||
创建前先 `cron(action=list)` 检查同名 job 是否已存在,避免重复创建。
|
||||
|
||||
## 11B. 一致性偏差修复清单(S6 补充)
|
||||
|
||||
§19 设计-实现一致性检查(2026-06-18)发现以下偏差,列入 S6 一并修复:
|
||||
|
||||
| # | 偏差 | 严重度 | 修复方式 |
|
||||
|---|------|--------|--------|
|
||||
| B4 | ticker.py:336-348 ExperienceDistiller 调用未移除 | 中 | 移除 experience_distiller 参数和调用,日志改为 debug 级空转提示 |
|
||||
| B5 | skill_system.py / experience.py 未标记 deprecated | 低 | 文件头部加 `# DEPRECATED — §19 重设计,不再参与 skill 发现/加载` 注释 |
|
||||
| B6 | SELF_IMPROVEMENT_REMINDER.md 引用残留 | 低 | AGENTS.md 中已标注废弃,但 system prompt 仍注入。从 workspace 文件列表中移除该文件 |
|
||||
|
||||
**B4 修复细节**:
|
||||
|
||||
ticker.py 构造函数 `__init__` 接受 `experience_distiller` 参数(默认 None),tick() 中第 336-348 行有条件调用。修复方式:
|
||||
- 保留参数(向后兼容),但条件块内加 `logger.debug("ExperienceDistiller deprecated per §19, skipping")` 后直接 return
|
||||
- 不删除代码(P3 级清理时再做物理删除)
|
||||
|
||||
**B6 修复细节**:
|
||||
|
||||
当前 Project Context 中注入了 `SELF_IMPROVEMENT_REMINDER.md` 的内容。该文件在 workspace-pangtong 中已不存在(被删),但 system prompt 模板仍引用它。修复方式:确认文件不存在即可——openclaw 会跳过不存在的注入文件。实际已无影响,标注为 resolved。
|
||||
|
||||
## 12. wiki-vault / 知识库参考实践映射
|
||||
|
||||
|
||||
Reference in New Issue
Block a user