Files
sanguo_moziplus_v2/skills/skill-management/references/discover-l1.md
T
cfdaily 166172e0b8
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 53s
CI / frontend (pull_request) Successful in 12s
CI / notify-on-failure (pull_request) Successful in 0s
[moz] impl(skill-mgmt): S1+S2 实现 — skill-management Skill + 设计文档修复
S1: AGENTS.md 经验闭环规则(workspace 层,单独管理)
S2: skill-management Skill 完整实现
  - SKILL.md(主:综述 + 四阶段速查 + 验证标准 + 自我修补规则)
  - references/discover-l1.md(各 agent 03:00 自蒸馏操作指南)
  - references/discover-l2.md(庞统 05:00 整合审查操作指南)
  - references/distill.md(蒸馏规范 + 验证标准 + 矛盾处理)
  - references/apply.md(openclaw 原生机制 + per-agent 可见性)
  - references/improve.md(引用追踪 + 淘汰 + 提升)
  - assets/templates/skill-template.md(SKILL.md 标准模板)
  - assets/templates/signal-format.md(信号输出格式模板)
  - assets/checklists/quality-check.md(质量检查清单)

文档修复:cron 错开时间 5min → 15min
2026-06-18 22:13:01 +08:00

2.9 KiB
Raw Blame History

DISCOVER L1 — 各 agent 自蒸馏(每天 03:00

你是谁

你是某个 agent(张飞/关羽/赵云/司马懿/庞统/姜维),在每天 03:00 被 cron 唤醒,执行自己的经验蒸馏。

cron 错开时间

各 agent 错开 15 分钟避免资源争用:

Agent 时间
zhangfei-dev 03:00
guanyu-dev 03:15
zhaoyun-data 03:30
simayi-challenger 03:45
pangtong-fujunshi 04:00
jiangwei-infra 04:15

操作步骤

Step 1: 扫描当天 session JSONL

输入:~/.openclaw/agents/<your-agent-id>/sessions/*.jsonl
时间范围:过去 24 小时(上次 L1 到现在)

重点扫描以下内容:

  • "tool":"exec" 失败的命令(exit code 非 0
  • "role":"user" 消息中的纠正(「不对」「错了」「应该是」等)
  • "role":"assistant" 中的反复返工(同一文件改了 3 次以上)
  • task status 变更为 failed 的事件
  • review verdict 为 REQUEST_CHANGES 的记录

Step 2: 信号识别(5 类高价值信号)

信号类型 识别特征 示例
失败模式 有明确的失败原因 + 排查过程 命令报错、CI 失败、review 驳回
重复问题 同关键词在当天出现 ≥2 次 反复修改同一段代码、同类错误
决策转折 原方向被推翻或修正 主公纠正、需求澄清、rebuttal
新实践 之前没有的知识 新工具用法、新架构模式
知识缺口 表达不确定、查不到 「不确定」「没找到」「推测」

Step 3: 蒸馏(HOW not WHAT

对每个信号,提取根因模式,不是事件描述:

❌ "PR #83 修复了 event_type 未知的问题"WHAT,无法复用)
✅ "消费者/生产者字段同步:新增 dataclass 字段时,必须同步所有从 JSON 提取该字段的代码路径"(HOW,可复用)

蒸馏规范详见 references/distill.md

Step 4: 产出 draft proposal

对蒸馏后的经验,使用 skill_workshop 提交:

skill_workshop(action="create", name="<skill-name>", description="Use when <触发条件>", proposal_content="<SKILL.md 内容>")

输出格式(每条信号):

信号类型 | 来源(task_id / session| 时间 | 简述(≤100 字)
ID: SIG-YYYYMMDD-XXX
Priority: low | medium | high | critical
Status: pending
Recurrence-Count: N
Pattern-Key: category.subcategory(如 sync.field_mapping

Step 5: 完成

所有 draft proposal 提交后,L1 结束。不需要等待 L2 审查结果(庞统会在 05:00 处理)。

注意事项

  • 数据源只有你自己的 session JSONL,不需要扫描黑板/Gitea/Mail
  • 如果当天没有有价值的信号(没踩坑、没被纠正、没新发现),不产出任何 proposal,这是正常的
  • 不要为了产出而强行蒸馏——偶发问题降级为 MEMORY.md,不提交 proposal
  • 质量优于数量:1 条高质量 proposal 比 5 条流水账有价值