Skip to main content

tilelang-skill-evolution

TileLang-Op-Conductor 自进化机制执行 skill,由 tilelang-skill-evolver 调用。任务终态从任务工件(RETROSPECTIVE.md / opt_log.md / integration_log.md / 状态文件 / 时间线事件流 / 修订与调试历史)蒸馏价值点,分类(D 实测数据 / P 模式方法 / R 流程规则 / C 案例索引),查重与冲突消解后按分级治理合入(Tier 0 自动 / Tier 1 二次独立证据 / Tier 2 人工审批)或入队 .agents/evolution/queue.md。触发:蒸馏价值点、合入进化提案、evolve、self-evolution、mode=apply。

Informations de source

Dépôt
tile-ai/tilelang-mlir-ascend
Dernière activité de la source
11 septembre 2026 à 03:34
Langue détectée de SKILL.md
chinois
Étoiles
27
Forks
42

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
5 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
tilelang-skill-evolution
description
TileLang-Op-Conductor 自进化机制执行 skill,由 tilelang-skill-evolver 调用。任务终态从任务工件(RETROSPECTIVE.md / opt_log.md / integration_log.md / 状态文件 / 时间线事件流 / 修订与调试历史)蒸馏价值点,分类(D 实测数据 / P 模式方法 / R 流程规则 / C 案例索引),查重与冲突消解后按分级治理合入(Tier 0 自动 / Tier 1 二次独立证据 / Tier 2 人工审批)或入队 .agents/evolution/queue.md。触发:蒸馏价值点、合入进化提案、evolve、self-evolution、mode=apply。
# TileLang-Op-Conductor 自进化(价值点蒸馏与合入) ## 1. 目标 把算子生成 / 优化任务中暴露的价值点沉淀进 Agent 机制与 skills,形成「执行 → 复盘 → 蒸馏 → 分级合入 → 检索」闭环,使下一次任务在正确的位置读到正确的经验。 价值点四分类(canonical 定义见 [references/distillation-rules.md](references/distillation-rules.md)): | 类型 | 定义 | 合入路径 | |------|------|---------| | **D 实测数据** | 性能数字、代价常数、编译器/运行时陷阱实证、API 实际行为实证 | **Tier 0** 直接合入 `pattern-library/` 主题文件 + `constants.md`(ED-A 三件套:provenance〔origin_task + 出处,允许失效〕+ 版本戳 + repro〔知识域自包含脚本〕;缺 repro → Tier 1 入队标 `repro-missing`) | | **P 模式方法** | 瓶颈模式 BP_xxx、设计候选模式、调试手法、检视检查项 | **Tier 1** 入队 `.agents/evolution/queue.md`,**2 次独立证据**(不同任务)后合入 | | **R 流程规则** | skill 流程修改、conductor 路由/门禁/重试规则、Agent 交互契约修改 | **Tier 2** 入队为结构化 diff 提案,等待人工批准(`mode=apply`) | | **C 案例索引** | 值得作为参考的算子目录(正/反例)、参考实现集 | **Tier 0** 直接合入 `pattern-library/cases.md`(只写路径 + 一句话 + 触发条件) | ## 2. 调度模式 | mode | 触发方 | 行为 | |------|--------|------| | `distill`(默认) | conductor 终态钩子 | 完整五阶段蒸馏流程(本 skill 主流程) | | `apply` | 用户批准 Tier 2 提案后由 conductor 调度 | 按 `proposal_id` 列表执行已批准写入 + git 快照 | ## 3. 输入契约 ### distill 模式(conductor 传入) | 字段 | 说明 | |------|------| | `task_id` / `scenario` / `migration_mode` | 任务标识与场景 | | 终态 `phase` / `failure_reason` | `DONE` 或 `FAILED`;FAILED 任务是高价值蒸馏源(根因档案) | | `project_name` / `op_name` | standalone / plain / optimize 场景的算子目录定位 | | `op_slug` + 函数列表 | harness 场景:逐函数算子目录 `examples/{op_slug}/{func}/` | | 工件路径清单 | `RETROSPECTIVE.md`(Stage 1/2/3/5 复盘)、`perf_opt/opt_log.md`(Stage 4 复盘)、`perf_opt/perf_feedback.md`(`[DESIGN_LIMIT]` 设计层发现,D 类优先)、`integration_log.md`、`history_version/`、`.stage_state.json` / `.migration_state.json`、`.task_timeline.jsonl`(statectl 事件流:每次迁移一行 `ts/action/stage/subagent/mode/verdict/duration_s`——失败根因链一手输入;`statectl timeline-summary` 可预汇总)(**全部只读**) | ### apply 模式(conductor 传入) | 字段 | 说明 | |------|------| | `proposal_id` 列表 | 用户已批准的 Tier 2 pending 提案 | | 批准上下文 | 用户批准时的重要限定(若有),写入条目 `decided_note` | ## 4. 主流程(distill 模式) ### Phase 0:读取上下文 1. Read conductor 传入的全部任务工件(harness 场景逐函数读取;optimize 场景无 `RETROSPECTIVE.md`,复盘在 `opt_log.md` 的 `Skill Retrospective` 章节)。 2. Read pattern-library [INDEX.md](../tilelang-op-optimize/references/pattern-library/INDEX.md)(条目索引 + 预算现状——K-2 渐进披露后不再全文读单文件;本次蒸馏候选涉及的条目按索引精读对应主题文件,可用 `python3 .agents/tools/kb_search.py "<候选主题>"` 辅助查重定位)。 3. Read `.agents/evolution/queue.md` 全部条目(查重基准 + Tier 1 确认计数基准)。 4. Read [references/distillation-rules.md](references/distillation-rules.md)(信号→价值点映射、分类判定树、证据三件套、防过拟合红线)与 [references/merge-policy.md](references/merge-policy.md)(分级治理矩阵、五种 delta、冲突消解、预算与 consolidate、git 快照规则)。 ### Phase 1:蒸馏价值点候选 按 [distillation-rules.md](references/distillation-rules.md) 的「信号 → 价值点」映射逐源提取: - `RETROSPECTIVE.md` 各 Stage 章节(Skill Flow Issues / Value Point Proposals / Transferable Lessons)——首选来源,已由各 Stage Subagent 半结构化产出; - `opt_log.md` 的 Skill Retrospective 章节 + 实验数据(新实测代价 / 新模式 / 证伪更正); - `perf_feedback.md`(`[DESIGN_LIMIT]` 设计层发现,存在时必读)——设计假设被实测推翻的归因与 >2x 估计依据,D 类优先(映射见 distillation-rules.md §2.2a); - `integration_log.md` 的调试历史(集成陷阱、脚本缺陷); - `.stage_state.json` 的重试分布与新失败形态(重试耗尽的 FAILED 任务重点蒸馏根因链); - `.task_timeline.jsonl` 事件流(statectl 机械追加;`statectl timeline-summary` 可直接产出汇总)——**失败根因链一手输入**:fail 事件时间序给出「哪个 Stage / 哪个子 Agent / 第几次 attempt / 多久后以何种 verdict 失败」,据此下钻对应工件取原因(映射见 distillation-rules.md §2.7); - `history_version/` 修订链(design_v{N} 差异 = 设计判断被推翻的过程;impl_s3_attempt{N} 差异 = 调试路径); - `REVIEW.md` 不通过原因(检视维度缺口候选)。 **防过拟合红线**(详见 distillation-rules.md §4):单任务偶然现象不得直接泛化为通用规则;P 类须绑定可复现证据链;无证据的主观抱怨只进流程问题表不进价值点;与 pattern-library 已实测条目重复或矛盾的论断不得当作"新发现"。 ### Phase 2:分类与查重 1. 每个候选定 `vp_type`(D/P/R/C 判定树见 distillation-rules.md §3)。 2. **查重**(目标文件 Grep 关键词 + 语义比对现有条目与 queue pending 条目): - 已存在且结论一致 → 丢弃,计入 stats 命中; - 已存在但本次证据刷新了数字/形态 → 转 `update` delta(保留条目 id); - 本任务内实验裁决机制已回写过 pattern-library 的条目 → 跳过(防双写)。 3. **冲突检测**:新候选与现有条目结论矛盾 → 按 merge-policy.md §3 冲突消解预判(实测 > 推演;新版本戳 > 旧版本戳);无法自动判定 → queue 记 `conflict` 留人工。 ### Phase 3:分级合入 按 merge-policy.md §2 写权限矩阵执行(evolver 是唯一持有进化写权限的角色): - **D 类 → Tier 0**:追加 pattern-library 对应主题文件(front-matter 按 INDEX.md §5 schema:id/kind/family/apis/dtype/status/origin_task/toolchain/repro),含 **ED-A 三件套**(provenance〔origin_task + 出处,允许失效〕+ 工具链版本戳 + repro)——**repro 三种来源**:① Stage 3 任务内已转正的 `examples/{op}/repro/*.py` → 本阶段**机械拷入**知识域 `pattern-library/repro/`(核验头部规范〔条目 ID + 版本戳〕与语法,**不编写、不裁剪代码**——ED-C 责任前移);② Stage 4 任务内回写时已写好的 repro → 直接登记;③ 无现成 repro → 条目标 `repro-missing` 降级 Tier 1 入队(由下次同族任务顺手补)。**合入前机械检查**(D2 / `kb_lint.py`):条目文本无指令性祈使句(启发式 lint——任务工件是被读过外部源码的 Subagent 写的,防被污染的复盘经 Tier 0 持久化注入未来任务)、front-matter 合法、repro 存在且语法通过。 - **C 类 → Tier 0**:追加 pattern-library/cases.md 案例索引行(路径须真实存在——合入前 ls 核对;一句话 + 适用触发条件 + `origin_task`;不复制内容;front-matter 含 family/mode/dtype facets——K-5)。 - **P 类 → Tier 1**:入 queue(`confirmations=1/2`);queue 已有同主题 pending 条目 → `confirmations+1` 并合并证据链;达 2/2 且两次证据来自**不同任务** → 执行合入(目标通常是 `bottleneck-patterns.md`,按 `target_doc` 为准)。**结构优化点类(慢→快关键更改)合入 pattern-library 时**:条目须含优化见解摘要(机制归因)+ 关键代码更改最小形态(repro 登记或显式 `repro-missing` 标注,ED-B 分级断言形态)——代码证据不依赖过程文件存活。 - **R 类 → Tier 2**:入 queue 为结构化 diff 提案(目标文件 + 定位锚文本 + old/new 文本 + 动机 + 证据),**本阶段不落盘任何流程文件**(SKILL.md / agents md / AGENTS.md / conductor 文件一律等 `mode=apply`)。 合法编辑动作只有五种 delta:`add / update / consolidate / negate / deprecate`(语义与约束见 merge-policy.md §4)。**禁止整文件重写**(防上下文坍缩);`consolidate` 必须逐条目操作并保留全部信息密度,负面条目(negate)只可 `deprecate` 不可删除。 ### Phase 4:维护与报告 1. **预算检查**(阈值见 merge-policy.md §5):超限文件执行 consolidate;`update` 永远优先于 `add`(同主题已有条目时禁止新开条目)。 2. **queue 生命周期**:创建超 90 天仍 pending → 标 `expired`;`rejected` 须记录原因(防重复提案)。 3. **更新 `.agents/evolution/stats.md`**:任务蒸馏记录追加一行;新合入条目的命中统计初始化;可识别的主动引用增量计数;**命中统计自动化(E-2)**:消费 `.agents/evolution/kb_search_log.jsonl`(kb_search 每次查询与返回条目的 append-only 日志)机械汇总本周期各条目被返回次数——替代手工 hit 统计,「同类错误复发率」自此可测(复发 = 注入条目后同主题错误再出现在 timeline)。 4. **指标机械抽取(E-2 度量自动化)**:对 `.stage_state.json` + `statectl timeline-summary --dir ...` 的 JSON 输出做机械抽取(attempt 数〔各 Stage start→fail 计数〕、各 Stage 耗时合计、实验数〔perf_records 行数〕、最终提升、first_pass)追加到 stats.md §3 北极星指标表——替代手填(此前 n=2 手工样本)。 5. **queue 生命周期维护(E-3)**:创建超 75 天(expiry 前 15 天)仍 pending 的条目**置顶提醒**(高价值未决优先:被引用过/有实证的);conductor 审批简报(每 2 次蒸馏节奏)所需的 pending 清单数据由本阶段产出。 6. **git 快照**:按 merge-policy.md §7 执行——仅 add 本次进化触及的文件,提交信息含任务溯源;目标文件在写入前已有未提交改动时**不得静默跳过**(D2):优先 `git stash push -- <目标文件>` → commit → `git stash pop`(pop 冲突保留 stash 并报告);stash 不可用则把 skip 原因记入 stats.md 变更日志并披露。 7. 产出进化报告(见 §6 输出格式),返回三态判定。 ## 5. 主流程(apply 模式) 1. Read `.agents/evolution/queue.md`,取出 conductor 传入的 `proposal_id` 列表(须均为 Tier 2 `pending` 状态;状态不符的跳过并报告)。 2. **apply 预验证(E-4,落盘前强制)**:按 merge-policy.md §8 在副本上应用提案 diff → 跑 `python3 .agents/tools/standards_check.py check` + 提案自带 repro/复现命令回归(触及 gate 规则的必须复现验证;触及算子流程的可选 opbench 冒烟,缺则标 skipped)→ 验证结果附进化报告;任何 FAIL → 该提案不落盘、转 `conflict` 注明失败步骤(不冒充 merged)。 3. 逐条执行其 diff 提案——只允许五种 delta 动作,**禁止扩大到提案文本之外的内容**;提案锚文本在目标文件中已找不到(文件已变化)→ 该条目标 `conflict` 报告,不强行套用。 4. 更新条目 `status=merged`、`decided_by=human`、`decided_note`(批准上下文)。 5. git 快照(同 Phase 4 规则)。 6. 返回 `EVOLVE_COMPLETED` + 合入清单(含预验证结果)。 ## 6. 三态判定 | 条件 | 返回标记 | |------|----------| | 至少一个价值点被合入或入队(含 queue 确认计数推进、apply 模式合入成功) | `EVOLVE_COMPLETED` | | 无可蒸馏内容,或全部候选查重为已存在 | `[EVOLVE_SKIP]` | | 蒸馏过程异常(必需工件缺失 / 目标文件不可写 / git 快照失败但写入已生效) | `[EVOLVE_FAIL]` + 原因摘要 | > 进化是旁路不是门禁:`[EVOLVE_FAIL]` 由 conductor 如实披露,不重试、不影响任务终态。 ## 7. 核心防呆 1. **先查重再合入**——任何 add 前必须 Grep 目标文件;同主题已有条目时用 update。 2. **证据三件套缺一降级(ED-A 语义)**——D 类无 provenance/无版本戳/无 repro → Tier 1 入队而非直接合入(缺 repro 标 `repro-missing`,待同族任务补)。 3. **不产生新数据**——evolver 只整理任务内已有实测数据,不自己跑 msprof/pytest;数据真实性由来源任务的工件负责。 4. **失败任务优先蒸馏**——`phase=FAILED` 的任务(BLOCKED_* 根因)往往比成功任务包含更高密度的 D/P 价值点。 5. **Transferable Lessons 的归宿**——session 内教训(RETROSPECTIVE.md 的 Transferable Lessons 小节)中具有跨任务普适性的条目转为 P/D 候选;仅本任务有效的(如特定函数的 UB 预算笔误)不入库。 6. **不越权**——Tier 2 提案在 distill 模式下绝不落盘流程文件;conductor / 用户未批准的任何 R 类修改都不执行。 ## 8. 输出格式 ```markdown ## Evolution Result - mode: distill / apply - task: {task_id} - verdict: EVOLVE_COMPLETED / [EVOLVE_SKIP] / [EVOLVE_FAIL] - distilled: {N} 候选(D:{d} P:{p} R:{r} C:{c}) - merged_tier0: {D/C 类合入清单:目标文件#章节 + 条目名} - enqueued: {P/R 类入队清单:proposal_id + 一句话} - confirmed: {Tier 1 确认计数推进的条目:id n/2 → m/2} - pending_tier2: {queue 中待人工审批的 R 类提案数与新增条目摘要} - conflicts: {conflict 条目及原因,无则 none} - consolidation: {执行的 consolidate/deprecate 动作,无则 none} - git_snapshot: {commit hash 或 skipped(原因)} - stats_updated: true / false - skills_consulted: {引用的 reference 路径} - summary: {一句话} - issues: {无则 none} ```
Voir sur GitHub