2.1 小节说相同技术可能同时出现在不同目录,能否给出一些示例?
4.3 小节我觉得还是可能导致很多不同位置的知识产生重复,对后续4.5小节也有影响。
- 这个Guide类型,有没有预期示例?我个人感觉这个词概念比较大,一个具体的Optimization我感觉也可能是一个有完整流程的Guide。
- 此外Case这个类型,从负责内容上看,和Optimization很可能也是重叠的,可能有一些理解没表达出来?
- Anti-pattern 很可能是从轨迹里发现的,那这种经验是否也有可能被写入到了Runbook里?比如轨迹中提出来了一种错误写法和修复方式?
- 总的来说,目前的设计可能考虑方向是各类型目录尽可能解耦,但或许实际中重复难以避免,或者是否考虑知识提取时加入库中检索去重的动作?
4.4 小节也有一些疑问,很多规则schema需要明确清楚,否则系统没有稳定的一致性:
- 提案希望覆盖长序列、batch/并发、量化、并行策略,但示例字段没有对应这些维度。
- moe、mla、dsa 这些不是互斥类别,可以同时成立。所以每个scope可以根据实际情况填写,没有互斥的约束?
- online_pd 混合了服务形态和部署拓扑 (online和pd分离)
- 还有一些scope匹配的语义没有描述清楚,例如:缺字段、空数组分别表示未知、未标注,还是普遍适用;同一维度多个值表达的是 OR 还是 AND;用户只给自然语言时,具体是什么算法来提取过滤条件,是agent配合人为给定的一些规则吗;独立数组还可能丢失条件之间的关联,例如 某卡只适用于“Prefill+GE”和“Decode+eager”,写成两个 phases、两个 execution_modes,可能被误读成四种组合都适用
- 另外,scope这种形式我觉得是有价值的,类似于keywords加快检索。不过最好考虑扩展性,规定好一套规则,后续其他领域要加scope时agent检查也必须遵守同一套规范
另外,小范围试点是必要的,但是我感觉只是推理任务测试不够,因为前面目录调整、去重影响范围很大,算子任务也要测试


关于 2.1 节,已补充具体示例:Multi-stream 同时存在机制概念、优化规则、模型案例和任务型 Guide;图模式同时存在概念、启用决策规则、Graph Break Guide 和运行时 Runbook;MTP 也存在机制、规则、案例和接入流程。这里的重复并不一定是错误,但需要明确一个规范性来源,其他卡片只能补充流程、案例、观测或诊断信息,不能复制并独立维护同一条规则。
关于 4.3 节,已将各类型从“互斥目录”调整为“同一主题的不同知识视图”。Guide 只用于串联多个知识卡并完成一个完整任务,例如模型部署、MTP 接入或多机 DP+EP 接入;单个优化点即使包含实施步骤,仍然归为 Optimization。Case 不是第二种 Optimization,而是记录特定模型、硬件、版本和 commit 下对 Optimization 的实施证据和结果;如果 Case 中发现了可跨模型复用的结论,再单独提炼为 Optimization。Anti-pattern 可以来自轨迹或失败记录,如果只有错误模式和影响,就保留为 Anti-pattern;如果已经形成“症状—探针—修复—验证”的完整链路,则建立Runbook,Anti-pattern 只链接到 Runbook。RFC 还新增了知识提取前的检索去重门禁,要求先判断 create/update/merge/split/deprecate/defer,避免通过复制正文产生重复卡片。
关于 4.4 节,已将 Scope 扩展到阶段、目标、序列长度、batch/并发、模型特征、执行模式、量化、并行/部署和框架等维度。MoE、MLA、DSA 被定义为可组合的模型特征,不再作为互斥类别;online 和 PD 也拆分为服务形态和部署拓扑。Scope 使用 any_of 和 all_of 表达组合条件:不同 profile 之间是 OR,单个 profile 内不同维度是 AND,同一维度多个值默认是 OR,模型特征可以用 all_of 表达同时具备多个特征。缺少字段表示未声明或未知,空数组禁止作为语义表达,需要“所有值”时使用显式 any。对于自然语言查询,先通过受控别名和 Registry 归一化,再由Agent 提取候选 Scope;平台、阶段、执行模式等高影响条件不确定时需要确认,不能静默硬过滤。Scope 的逻辑结构由全局 Contract 统一定义,其他领域通过各自的 scope.schema 扩展,避免后续形成不兼容的领域私有语法。
关于试点范围,已将原来的模型推理试点扩展为两条线:一条选择 20~30 张推理知识卡验证分类、去重和 Scope;另一条选择 5~10 张 Operator/算子框架知识卡,验证 Operator 查询、TileLang/PyPTO 互操作、Trace→Runbook 摄入、跨 domain 检索隔离和重复建卡拦截。RFC 的 A/B 评测也增加了算子和 Runbook 的跨领域回归用例。cann_versions 不纳入本次 RFC 的新增或批量迁移范围,版本边界继续通过正文和固定 commit 来源表达。


§4.4.1:补充查询 Scope 与卡片 Scope 的匹配决策表
目前明确了单份 Scope 内部的 AND/OR,但还没有完整定义查询条件与卡片适用条件之间如何匹配。例如:
- 查询为 Prefill + GE,卡片未声明 execution_mode:应排除、保留,还是标记为适用性未知?
- 查询只指定 Prefill,卡片仅适用于 Prefill + GE:是否召回,并向使用者提示 GE 前提?
- 用户模型同时具有 MoE、MLA,卡片只声明 MoE:如何判断适用性?
- 显式使用模型推理 Scope 时,未标注 Scope 的旧卡片和使用其他 scope.schema 的卡片如何处理?
“缺字段表示未知,不代表普遍适用”是合理的,但还需明确未知结果是否参与召回、如何排序和提示。建议补充匹配决策表及正反案例,覆盖查询缺字段、卡片缺字段、显式 any、条件冲突、集合包含和不同 schema,并区分“检索相关”与“适用性已确认”。
§8.4:修正 Scope precision 的指标方向,并明确计算口径
当前将 Scope precision 定义为“前 5 中平台、阶段、目标和模型结构不匹配的比例”,但通过标准要求该指标提升。按此定义,提升意味着错误结果更多。
§6.1、§6.3、§12:统一第一阶段是否启用 Scope 过滤
§6.1 表述为可选过滤、不改变旧查询默认范围;§6.3 写的是“关闭 Scope 的默认过滤”;§12 又把是否启用机器过滤列为待评审问题。
建议明确第一阶段的实际行为。例如:无显式 Scope 时沿用原查询;有确认后的 Scope 时才启用过滤;自然语言推断但未确认的条件只用于宽召回。回退方案也应与最终选定的行为一致。


§4.4.1:补充查询 Scope 与卡片 Scope 的匹配决策表
目前明确了单份 Scope 内部的 AND/OR,但还没有完整定义查询条件与卡片适用条件之间如何匹配。例如:
- 查询为 Prefill + GE,卡片未声明 execution_mode:应排除、保留,还是标记为适用性未知?
- 查询只指定 Prefill,卡片仅适用于 Prefill + GE:是否召回,并向使用者提示 GE 前提?
- 用户模型同时具有 MoE、MLA,卡片只声明 MoE:如何判断适用性?
- 显式使用模型推理 Scope 时,未标注 Scope 的旧卡片和使用其他 scope.schema 的卡片如何处理?
“缺字段表示未知,不代表普遍适用”是合理的,但还需明确未知结果是否参与召回、如何排序和提示。建议补充匹配决策表及正反案例,覆盖查询缺字段、卡片缺字段、显式 any、条件冲突、集合包含和不同 schema,并区分“检索相关”与“适用性已确认”。§8.4:修正 Scope precision 的指标方向,并明确计算口径
当前将 Scope precision 定义为“前 5 中平台、阶段、目标和模型结构不匹配的比例”,但通过标准要求该指标提升。按此定义,提升意味着错误结果更多。§6.1、§6.3、§12:统一第一阶段是否启用 Scope 过滤
§6.1 表述为可选过滤、不改变旧查询默认范围;§6.3 写的是“关闭 Scope 的默认过滤”;§12 又把是否启用机器过滤列为待评审问题。
建议明确第一阶段的实际行为。例如:无显式 Scope 时沿用原查询;有确认后的 Scope 时才启用过滤;自然语言推断但未确认的条件只用于宽召回。回退方案也应与最终选定的行为一致。
-
§4.4.1 补充匹配决策表和正反案例。
明确区分 match、conflict、unknown,覆盖查询缺字段、卡片缺字段、显式 any、条件冲突、模型特征集合包含、旧卡片无 Scope,以及不同 schema 等情况。查询模型具备 MoE+MLA、卡片只要求 MoE 时,必需特征满足;反过来只知道 MoE、卡片要求 MoE+MLA 时,判为未知。不同已注册 schema 不直接比较,保留为未知;非法或未注册的查询 schema 则报错。未知项在原有过滤和文本召回范围内保留,并提示待确认条件。排序沿用现有相关性评分,同分时匹配项优先。输出同时回显匹配状态、命中分支和缺失条件,区分“检索相关”与“适用条件已匹配”,避免跨分支拼接条件或推广收益。
-
§8.4 修正指标方向和计算口径。
将 Scope precision@5 定义为实际返回项中适用条件已确认匹配的比例,越高越好;另列 Conflict rate@5 和 Unknown rate@5,未知不直接计为冲突。补充了分母、微平均、人工判定依据、不足五项和零返回的处理,并结合 Recall@5、非空召回率约束,避免通过少返回结果美化精度。 -
§6.1、§6.3、§12 统一第一阶段行为。
无显式 Scope 时沿用原查询;显式提交已确认 Scope 时,仅排除明确冲突项,保留匹配项和未知项;未确认的自然语言推断只用于文本宽召回。回退方案同步改为停用新增的显式 Scope 处理,并明确回显未执行过滤,不再使用“关闭默认过滤”的表述。


@qq_41667743 我没问题了,可以先尝试开发并小范围验证效果


[RFC] 优化模型推理知识的分类、结构和检索范围
状态: Draft
RFC 类型: 知识库结构、治理和检索能力调整
目标仓库:
cannbot-knowledge编制日期: 2026-10-12
关联范围:
knowledge/model/inference/**、推理知识的 Schema/Registry/Contract、Query/Lint 和 retrieval eval1. 摘要
当前
cannbot-knowledge已经形成了较完整的模型推理知识树,覆盖模型、模块、Kernel、框架、并行、平台、量化、优化、性能和故障诊断。本 RFC 不推翻现有 OKF Bundle、domain/route/Profile 体系,而是对模型推理领域做一次增量重构:
experience作为模糊的中间分类层;status、verified和证据强度的实际使用;目标是让知识库能够回答以下问题,而不依赖 Agent 阅读大量无关卡片:
2. 当前问题与修改必要性
2.1 当前内容规模较大,但知识类型和主题维度混杂
截至本 RFC 评审基线,
knowledge/model/inference约有 343 个 Markdown 文件,包含约 91 个 Concept、22 个 Guide、110 个 Optimization 和 94 个 Runbook。现有目录整体可用,但存在以下结构问题:
其中
experience、interventions等目录名没有明确的机器语义,导致新知识的归档选择依赖个人判断。相同技术可能同时出现在concepts/techniques、optimizations/rules、optimizations/cases和guides/experience中,但没有稳定的选择规则。具体示例:
concepts/techniques/multi_stream.md、优化规则optimizations/experience/rules/decode_multi_stream_overlap_core_balance.md、模型案例optimizations/experience/cases/moe_multi_stream_limit_core_num.md和任务型 Guideguides/experience/interventions/prefill_micro_batch_dual_stream_moe_overlap.md。这些位置并不一定都是错误的重复:它们可能分别表达机制、规则、案例和流程。当前真正的问题是没有定义“哪个文件拥有规范性结论、其他文件只能引用还是可以复制正文”的规则,导致同一条结论容易在多个位置各自维护。
2.2 推理场景维度没有结构化
模型推理优化知识实际需要按以下维度筛选:
当前主要依赖标题、description、正文和 tags 表达这些信息。
tags的治理职责是 task/topic,无法稳定承载完整的推理场景过滤。2.3 生命周期和证据状态没有充分发挥作用
当前推理知识卡片基本都处于
stable状态。静态审查发现,推理知识中没有实际使用 Frontmatterverified事件。这个问题说明机器可检索的以下信息不完整:本 RFC 不新增、不推广
cann_versions字段,也不把版本字段作为本次迁移或验收要求。版本边界继续沿用现有治理规范;需要版本信息的卡片可以在正文和固定 commit 来源中说明,是否单独使用cann_versions留待后续独立变更评估。模型推理知识尤其容易受到硬件代际、算子版本、图后端和量化格式变化影响,需要更严格的范围和生命周期表达。
2.4 Benchmark 观测和可复用规则边界不清
benchmark_observations当前位于optimizations下,并使用Optimization类型。一次特定 batch、卡数和模型配置下的性能观测,容易被检索为普遍可迁移的优化规则。需要明确区分:
3. 目标与非目标
3.1 目标
knowledge/model/inference的 domain/route/Profile 主体结构;cann-recipes-infer/.agents作为执行层接入本知识仓;3.2 非目标
cannbot-knowledge仓库;4. 设计方案
4.1 保留当前顶层分类
保留以下主结构:
concepts继续按知识对象分类:这部分已经能够覆盖模型推理的主要主题,不在本 RFC 中大范围重命名。
4.2 优化经验目录调整
将当前经验目录逐步归并为:
第一阶段可以保留原路径兼容已有链接,新增知识不再使用
experience作为新入口。第二阶段再通过merge、split、deprecate和replaced_by逐步迁移旧卡片。路径变化会改变 Concept ID。所有移动必须同步:
index.md;replaced_by;4.3 知识类型职责定义
这些类型不是互斥的“内容主题”,而是同一主题的不同知识视图。允许多个类型围绕同一技术存在,但必须指定一个规范性来源,其他卡片只能补充上下文、证据或操作入口,不能复制并维护同一条规则。
ConceptGuideOptimizationRunbookCaseBenchmark ObservationAnti-pattern具体规则:
Guide 的预期示例包括:
这些 Guide 的价值在于串联多个 Concept、Optimization 和 Runbook,并定义输入、步骤和最终验收;其中的单个优化点仍由被引用的 Optimization 负责。
第一阶段不新增
Case和Benchmark Observation的新 OKF Profile。它们先分别作为optimizations/cases和optimizations/benchmark_observations下的受控内容类型,待 Query 真实需要按类型过滤时再评估新增 Profile。4.3.1 知识提取前的去重门禁
知识生产不能直接按标题新建卡片。
knowledge-ingest在 create 前必须执行:create、update、merge、split、deprecate还是defer;去重采用“候选检索 + Agent/人工裁决”,不采用仅凭标题或向量相似度的自动合并。去重决策写入 ingest 的可重建产物和评审材料,不新增临时 Frontmatter 字段。
4.4 增加推理场景范围信息
本 RFC 建议增加一个受治理的可选字段
scope,而不是为模型推理单独设计一套不可复用的字段。scope使用通用的逻辑表达式,具体维度和值由各 domain 的 Registry 注册。该字段必须先进入 Schema、Registry、Contract 和 Query 回归,不能由单张卡自行添加。模型推理的第一版 scope 需要覆盖:
prefill、decode;throughput、latency、ttft、tpot、memory、bringup;short_context、long_context、ultra_long_context、single_request、small_batch、large_batch、high_concurrency;dense、moe、mla、dsa、dit、multimodal;eager、ge_graph、npugraph_ex;bf16、w8a8、w8a8c8、fp8、mxfp4;tp、ep、dp、cp、kvp、afd、offline、online、pd_disaggregated、pd_hybrid;cann_executor、sglang、vllm。硬件继续使用已有的
platforms字段,不复制到scope;版本字段不属于本 RFC 的实施范围。4.4.1 Scope 的表达和匹配语义
为避免多个独立数组丢失条件关联,scope 使用“多个候选 profile 的 OR + 单个 profile 内条件的 AND”语义:
scope: schema: model.inference.v1 any_of: - all_of: phase: [prefill] objective: [ttft] load: [long_context] execution_mode: [ge_graph] model_features: all_of: [moe, mla] deployment: [offline] - all_of: phase: [decode] objective: [latency] load: [single_request] execution_mode: [eager] model_features: all_of: [moe, mla] deployment: [offline]单份 Scope 的表达规则:
scope.any_of中的多个 profile 是 OR;命中任一 profile 即命中该卡片;phase: [prefill, decode];model_features.all_of: [moe, mla]表示结论要求同时具有 MoE 和 MLA,不是对模型全部特征的穷举;any_of必须至少包含一个场景分支,每个分支的all_of必须至少包含一个条件;[any],表示有依据确认结论不受该维度限制;不能与具体值混用,不能用来代替未核实或未标注;集合维度是否支持通配表达由 Registry 另行定义,不把model_features.all_of: [any]解释为特征无关;例如“Prefill + GE”和“Decode + eager”必须写成两个
any_ofprofile,不能写成:phase: [prefill, decode] execution_mode: [ge_graph, eager]后者会被错误解释为四种组合都适用。
查询 Scope 与卡片 Scope 的匹配决策
查询 Scope 只包含用户明确提供、配置已确定或经确认的条件;推断但未确认的条件不参与冲突判断。以下匹配在现有 domain、route、Profile、platform 和 status 等过滤之内进行,不放宽原有边界。
比较结果分为三类:
match(条件匹配):本次比较的条件均有明确支持,可作为适用候选;它不替代正文、来源和版本边界核对,也不代表性能收益已验证;conflict(条件冲突):至少一个条件有明确反证;unknown(适用性未知):没有明确冲突,但卡片或查询缺少必要信息,或者两者使用不同的已注册 schema,无法直接比较。只比较查询明确指定的维度和卡片声明的前置条件;双方均未涉及的维度不参与判断。普通枚举值存在交集时,该维度在交集范围内匹配;无交集时冲突。卡片要求的模型特征集合被查询已确认的特征集合包含时,该维度匹配;缺少某个必需特征的信息时为未知,只有明确不具备该特征或 Registry 存在确定的互斥关系时才判冲突。不能把“未提及 MLA”当成“不具备 MLA”。
matchexecution_modeunknownunknownexecution_mode: [any]matchany必须有不受执行模式限制的依据phase: [any],未确定实际阶段unknownconflictconflictmodel_features.all_of: [moe]matchmodel_features.all_of: [moe, mla]unknownmodel_features.all_of: [moe, mla]conflictmodel.inference.v1scope的旧卡片unknownmodel.inference.v1scope.schemaunknownunknown表中未列出的比较项假定已确认匹配。卡片自身的非法 Scope 由 Lint/索引准备拒绝,不作为合法旧卡片或未知适用性处理。查询中的
[any]表示本次不限定该维度,不要求每张卡覆盖该维度的所有值,也不能据此确认卡片的具体前置条件。单个场景分支内,任一条件冲突则该分支为
conflict;无冲突但存在未知条件则为unknown;全部比较项匹配才为match。多个分支之间,任一分支匹配则整体匹配;没有匹配但存在未知分支则整体未知;全部分支冲突才排除。查询含多个分支时逐对比较并保留组合关系,命中任一查询场景即可召回,不表示覆盖全部查询场景。召回、排序与适用性提示
第一阶段仅在调用方显式提交已确认的 Scope 时启用以上判断:排除
conflict,保留match和unknown。先在文本候选中判定和排除冲突,再排序并截取前 k 条,不在已截取的前 k 条内过滤后直接返回不足的结果。保留项沿用现有相关性评分,不因 Scope 填写完整就加分;同分时
match排在unknown前,再按原有路径顺序打破平局。未知项不被统一压到所有匹配项之后,避免无 Scope 的高相关旧卡片被低相关卡片挤出。查询输出和审计记录需区分“检索相关”与“适用条件匹配”:回显实际使用的查询 Scope、
scope_match、命中或待确认的场景分支,以及缺失条件、schema 不同或冲突原因。被保留的未知项明确提示“适用性待确认”,Agent 不得仅凭召回结果将其表述为已确认适用。过滤计数和原因进入审计,匹配结果不回写卡片。决策表各行均需形成确定性回归用例,另补充以下组合正反案例:
4.4.2 自然语言到 Scope 的解析
用户只给自然语言时,不能直接让模型自由生成过滤条件。解析流程为:
scope,同时标出来源词、置信度和未确定维度;4.4.3 Scope 的跨领域扩展
scope.schema是全局扩展点,例如:通用逻辑结构、缺省语义、OR/AND 组合和空值规则由全局 Scope Contract 统一定义;具体维度、枚举、别名和解析器由 domain Registry 注册。后续其他领域不能自行创造一套不兼容的 scope 语法。
不能把模型名称作为唯一适用范围。模型名称只作为 Model Concept 或正文中的案例标识,规则卡必须优先按结构和执行条件表达。
4.5 正文模板
Optimization 卡
## 适用场景 ## 问题信号 ## 优化规则 ## 机制 ## 实施要点 ## 收益 ## 代价和风险 ## 回退方式 ## 验证方法 ## 适用边界 ## 相关经验 ## EvidenceRunbook 卡
## 症状 ## 快速检查 ## 诊断路径 ## 根因 ## 修复 ## 验证 ## 回退和残留风险 ## EvidenceBenchmark Observation 卡
## Workload ## Hardware ## Software ## Baseline ## Variant ## Metric Definition ## Repetition and Variance ## Result ## Limitations ## Evidence性能数字必须写清:
4.6 生命周期和证据规则
推理知识使用以下状态:
draftstabledeprecatedverified记录真实复核事件,不因为 Lint 通过或来源固定而自动填写。对稳定的 Optimization、Guide、Runbook,至少要求正文存在:
版本字段不属于本 RFC 的实施范围。涉及版本差异时,卡片正文应说明已确认的范围或待验证边界,并保留固定 commit 来源;不要在本次迁移中批量补写
cann_versions。对于仓库自报 benchmark,没有独立复测时必须明确标记为仓自报,不能写成通用性能保证。
5. 迁移方案
阶段 0:规范和试点
范围只选择模型推理中的高价值主题:
工作内容:
scope通用逻辑契约和模型推理 Registry 值;阶段 1:规则、案例和 Runbook 归并
优先处理:
dp_attention_tp_oproj_mlp_hybrid;afd_attn_ffn_disaggregation;long_seq_prefill_context_parallel;kvp_longseq_decode;graph_mode_enable_decision_profiling;decode_multi_stream_overlap_core_balance;decode_weight_prefetch_ordering;superkernel_decode_ge_graph_fusion_scope;prefill_decode_cluster_scale_mismatch;每张卡明确采用
update、merge、split、deprecate或defer处理方式,不做无理由复制。所有新卡必须经过知识查询去重门禁。阶段 2:Query 和评测接入
新增推理检索用例,至少覆盖:
Query 评测需要同时检查:
同时增加跨领域回归用例:
阶段 3:旧路径迁移和清理
试点验证后再处理:
experience中重复的层级;deprecated/replaced_by;verified,不在本次迁移中批量补写版本字段;6. 兼容性、迁移和回退
6.1 兼容性
match;以后若改变默认行为或排除未知项,需另行评审并验证召回影响。6.2 迁移
replaced_by;knowledge-ingest和knowledge-lint完成新卡生产和校验;6.3 回退
如果新路径、字段或 Query 过滤导致召回下降:
7. 替代方案
方案 A:维持现状
优点是没有迁移成本。
缺点是:
experience和interventions继续扩大;不建议采用。
方案 B:完全重建新 Profile
为 Case、Benchmark、Anti-pattern、Scenario 分别新增 OKF Profile。
优点是语义更精确,缺点是需要同步修改大量 Schema、Registry、Contract、Query、Lint、索引和现有卡片,迁移风险较高。
不作为第一阶段方案。只有当现有
OptimizationProfile 无法满足实际 Query 和治理需求时,再单独提交后续 RFC。方案 C:本 RFC 的渐进方案
保留现有 Profile,先治理路径、模板、场景字段、证据和检索回归,再根据真实消费需求决定是否新增 Profile。
本 RFC 推荐方案 C。
8. A/B 实验计划
8.1 实验目标
验证新结构是否改善模型推理知识的:
8.2 A/B 版本
scope、场景检索和迁移试点卡片控制变量包括:
8.3 评测集
至少准备 30 个推理任务查询,覆盖:
每个用例包含:
8.4 预注册指标和通过标准
Scope 指标只在具有显式、已确认查询 Scope 的评测用例上计算。A/B 使用同一份冻结的查询条件、标准答案和判定依据,由人工结合正文、来源及查询前提判定前 5 个结果;不能直接用 Query 自报的
scope_match代替正确性判定。机器标为未知的旧卡片,如果正文和来源足以支持人工核对,可以在人工评测中判为匹配;证据不足或查询缺少前提的结果仍为未知,不能强行算作匹配或冲突。对每个用例 q,令
T_q为实际返回的前 5 个结果数,M_q、C_q、U_q分别为人工判定的条件匹配、明确冲突、适用性未知数量,满足T_q = M_q + C_q + U_q。平台、阶段、目标、执行模式、模型特征等的判定以该用例冻结的已确认条件为准。仅某个分支适用时按命中分支核对,不能用卡片其他分支的内容补足条件或收益证据。sum(M_q) / sum(T_q),按实际返回项微平均;未知项不算已确认匹配sum(C_q) / sum(T_q),即前 5 中明确违反查询条件的比例sum(U_q) / sum(T_q),单列适用性尚不能确认的比例,不将其算作明确冲突例如前 5 中有 2 项匹配、1 项冲突、2 项未知,则 Scope precision@5 为 40%,Conflict rate@5 为 20%,Unknown rate@5 为 40%。原定义中的“不匹配比例”不再使用 Scope precision 命名。
不足 5 项时按实际返回项计算,并报告返回数;零返回用例不伪造分母 5,也不记作精度 100%。若某项指标分母为零则记为 N/A,并报告原因;显式 Scope 评测整体零返回或无法计算精度时不能通过验收。无 Scope 的查询只参与召回、决策和兼容性评测,不混入 Scope 指标分母。Duplicate rate 等其他比率同样不在零分母时虚报改善。
通过标准在实验开始前固定,建议至少满足:
knowledge-lint、检索索引和bash check.sh全部通过。9. 实现影响
可能涉及的机器事实源和消费者:
scope字段frontmatter.schema.json、profiles.yaml、Registry、Contract、Query、Lint、测试knowledge-ingest、贡献文档、样板和内容检查knowledge-query、显式 Scope 的冲突过滤与未知项提示、同分排序、审计回显和范围回归本 RFC 不改变:
10. 风险与缓解
replaced_by11. 验收标准
本 RFC 实施完成后,至少应满足:
experience作为归档依据;knowledge-lint和bash check.sh通过;12. 待评审问题
scope是否采用当前 RFC 的schema + any_of/all_of结构?benchmark_observations是否继续使用OptimizationProfile,还是在后续 RFC 中新增ObservationProfile?Case建立独立 Profile,还是保持在optimizations/cases?experience路径,还是先只约束新增内容?platforms: ['950']注册值?13. 结论
本 RFC 推荐采用渐进式治理:保留当前 OKF/Profile 基础,先统一模型推理知识的职责边界、路径命名、场景范围、证据模板和检索评测,再根据实际消费结果决定是否引入新的 Observation 或 Case Profile。
这样可以避免一次性重建知识仓,同时解决当前最主要的三个问题: