Files
mcn-short-video/极致事件素材接入创作流程方案_V1.1_20260924.md
maogeigei 6e4ce9441c feat(skill): 素材层切换 WeKnora + 方法层接线
定性:素材载体切换(本地 md -> WeKnora 容器),非扩容;驱动方向由素材驱动改为方法驱动。

- 新建 references/接口调用/WeKnora_极致事件检索.md 调用契约:MCP hybrid_search(服务 weknora)/ kb_id 用库名禁写死 UUID / match_count=3 / vector_threshold=0.5 显式 / 不传 keyword_threshold / 零命中判据 success=true 且 data=null / 只读 chunk_metadata.answers[0] / 禁用 chat 与 agent_chat / 复筛<=2条每节点 / 取材不取形转译 / 降级矩阵 / 成本控制
- S7 布位表新增「候选创作方法」列(4->5 列)打通方法层(此前 05_极致事件 6 个方法文件在创作流程中 0 调用)
- S7 新增「极致触点素材检索」按需环节 + {material_content} 定死结构 + 极致触点机制自检([期待A]-被X打破->[结果B]);输入章节素材库改双层源(主源 WeKnora / 降级 md,md 永不删除)
- 6 个方法文件补「素材供给」块(极致标签 / 定库检索入口 / 问法②打破方式填法)
- SKILL.md MCP 依赖节增 WeKnora 检索层(含静默降级口径);S7 小节补调用链;frontmatter updated_at
- 索引_知识素材库.md 修正 03/05/06/07/08/11 定性(实为字段结构模板而非素材库);新增「接口调用」章节
- S9 输入增 {material_cards} + 新增台词毛边三档参考;S11 类1「爆点贯穿」升级为爆点溯源 4 判据,八类35项清单同步
- 根目录补 3 份方案/规范文档 + 2 份 09-23 WeKnora 文档;变更日志归档
2026-09-24 14:47:19 +08:00

233 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 极致事件素材切换 WeKnora + 方法驱动 · 方案 V1.1
> 日期:2026-09-24 | 类型:分析方案(**未改动任何技能文件**,待授权后执行)
> 取代 V1.0。相对 V1.0 的三处修正见 V1.0 顶部标注。
> 范围:`project/短视频脚本创作/V1.0/`(技能口径源)+ `tools/weknora-ingest/`(检索运行时)
---
## 〇、结论先行
**一句话**:不是"给创作流程加一个检索步骤"(V1.0 的错误),而是**把素材的载体从本地 md 文件切换到 WeKnora 容器**,同时把驱动关系从"素材驱动"改为"方法驱动"。
| # | 结论 | 依据 |
|:--:|:--|:--|
| 1 | **本地 md 素材库名存实亡,可切换性极高** | 实测:7 个通用库中 **6 个是空壳**,唯一有实素材的 01 美食库 **仅 21 条**;而 WeKnora 已有 **240 条**真实素材 |
| 2 | 切换的是**素材本体与调用方式**,不是规格 | 分块定义/模板/标签闭集属"必须遵守的规则"→ **留文件**;素材条目属"要被翻出来看的"→ **进 WeKnora** |
| 3 | 切换有**代价**:四维标签筛条失效 | WeKnora FAQ **纯向量召回、`CustomMetadata` 不参与过滤**(实测)→ 字段精确筛选降级为语义召回 |
| 4 | md 素材文件**不能删**(硬约束) | WeKnora 是**开发机本地 Docker**,用户环境没有 → 无 md 则用户环境**零素材**。md = 权威源 + 降级源,WeKnora = 检索副本 |
| 5 | 方法层接线是**另一半**,不能只做切换 | `05_极致事件/` 的 6 个方法文件在创作流程中 **0 调用** → 只切换素材则仍是素材驱动 |
---
## 一、事实基线(2026-09-24 实测)
### 1.1 本地素材库的真实存量
| 库 | 文件数 | 真实素材条目 | 状态 |
|:--|:--:|:--:|:--|
| 01 美食库(中式家常菜/仪式感美食/深夜宵夜/煲汤类) | 4 | **21** | ✅ 唯一有实素材 |
| 03 生活仪式库 | 1 | **0** | ❌ 只有 `## 字段结构` + `<!-- 在此添加生活仪式条目 -->` + 「最低要求:每个账号 ≥ 10 个」 |
| 05 装修布局库 | 1 | **0** | ❌ 同构空壳 |
| 06 生活服务库 | 1 | **0** | ❌ 同构空壳 |
| 07 穿搭库 | 1 | **0** | ❌ 同构空壳(「最低要求:每个账号 ≥ 15 套」) |
| 08 妆容库 | 1 | **0** | ❌ 同构空壳 |
| 11 造型库 | 1 | **0** | ❌ 同构空壳 |
| 04 对话库 | 0(标准库仅分块定义) | **0** | 账号专属,实体存账号产出目录 |
| **合计** | 10 文件 / 546 行 | **21 条** | 7 库中 6 库为空壳 |
> ⚠️ **连带问题**:`references/索引_知识素材库.md` 对 03/05/06/07/08/11 的描述("安睡/做饭/按摩选型"「穿搭方案选型」「妆容方案选型」等)**承诺了不存在的内容**——索引把"字段结构模板"写成了"素材库"。切换时须一并修正。
### 1.2 WeKnora 侧存量
| 项 | 值 |
|:--|:--|
| 容器 | `MCN极致事件素材库`(FAQ 型,`e6772e41-…`,`127.0.0.1:31607`) |
| 条目 | **240 条**(全部为 `### ` 开头的极致事件卡,无杂质条目) |
| 标签分布 | 反差 70 / 反常识 62 / 价值观冲击 47 / 视觉冲击 22 / 自嘲反差 18 / 细节专业 13 / 预见式服务 3 / 品质对比 2 / 难度极限 2 / 食材极致 1 |
| 赛道分布 | 剧情 **186(77.5%)** / 生活vlog 38 / 旅行 6 / 小剧场 3 / 亲子 3 / 明星娱乐 3 / 搞笑短剧 1 |
| 覆盖缺口 | **感官沉浸 / 氛围沉浸 = 0 条**(治愈/慢生活向检索为空) |
| 已污染项 | 15 条「泛化磁铁卡」(标准问统一为"找一条 X 的极致事件素材",与任何意图都近,挤占 top1);6 条卡 `事件标签` 字段混入自检备注 |
| 检索实测 | 10 组跨赛道意图,命中 9/10,分数窄带 **0.50–0.61**;**纯抽象 query 零命中**,带具象动作的 query 最高(0.6058) |
---
## 二、三层关系(流程 / 方法 / 素材)
| 层 | 回答 | 内容 | 归属形态 | 流程落点 |
|:--|:--|:--|:--|:--|
| **方法层** | 怎么制造极致感 | 预期反转 / 荒诞化 / 抽象化 / 无厘头 / 错位化 / 极致行为创作法 | 文件(规则类) | S7 布位 —— **当前 0 调用** |
| 判定层 | 这是什么极致 | 00 总纲 / 01 映射表 / 02 赛道形态 / 03 评估标准 | 文件(规则类) | S6 · S7(已在) |
| **素材层** | **用什么材料** | 载体类 + 事件类 | **WeKnora(本体)+ md(源与降级)** | S7 素材调用 |
| 流程层 | 谁在何时调用 | S1–S11 | 文件 | —— |
**调用方向:方法 → 判定 → 素材**(上游决定下游,素材不被上游牵着走)。
### 2.1 「极致事件」一词两义(必须切开)
| 说法 | 归属 | 是什么 |
|:--|:--|:--|
| 知识库 `05_极致事件/` | **方法层 + 判定层** | 关于极致事件的**知识**,**不是素材**(该目录内无一条素材) |
| 极致事件**卡**(240 条) | **素材层 · 事件类** | 极致事件这种**材料**本身,**不是方法** |
### 2.2 素材层内部两类(用法不同,不可混同)
| | 载体类 | 事件类(极致事件卡) |
|:--|:--|:--|
| 粒度 | 可拍摄的**物料**(菜品、仪式、穿搭、对话) | 可拍摄的**事件结构**(期待→打破闭环 + 落差 + 铺垫量级) |
| 存量 | 21 条(仅美食库) | 240 条 |
| 用法 | **直接取用**(换成本账号具名物品) | **结构参照 + 转译**(属他人账号事件,禁直取) |
---
## 三、切换设计
### 3.1 切换范围(什么切、什么留)
| 资产 | 处置 | 理由 |
|:--|:--|:--|
| `素材库/分块定义/`(00 通用维度、00 模板、各库分块定义) | ✅ **留文件** | 规格/规则,必须遵守 → 按既有原则「规则类文本不进检索层」 |
| `01_美食库_*.md` 4 文件(21 条) | → **切 WeKnora**,md 降级为源 | 素材本体 |
| `03/05/06/07/08/11_*.md` 6 个空壳 | **字段结构并入分块定义**,原文件退役 | 无素材可切;字段结构是规格不是素材 |
| `04 对话库`(账号专属) | ⚠️ **待裁决** | FAQ 无 metadata 过滤 → 多账号共用容器会**串号**(见 3.4) |
| 极致事件卡 240 条 | 已在 WeKnora,无需迁移 | —— |
| `索引_知识素材库.md` | **改** | 现描述与实体不符(见 §1.1 连带问题) |
### 3.2 切换的能力置换(必须接受)
| 维度 | 切换前(md + 四维筛条) | 切换后(WeKnora + 语义检索) |
|:--|:--|:--|
| 素材量 | 21 条(实) | 240 条 + 增量 |
| 检索方式 | **字段精确筛**(极致标签/适用场景/镜头语言/画面风格) | **语义召回**(FAQ 纯向量) |
| 标签作用 | 筛选字段(可组合过滤) | 退化为**正文内容**,靠语义命中 |
| 精度 | 高但只在 21 条内 | 中(需复筛),靠问法质量决定 |
| 阈值 | 不适用 | **必须显式 0.5**(默认 0.7 硬编码,口语问法召不回) |
| 覆盖 | 仅美食 1 库有效 | 按赛道覆盖(当前剧情偏斜 77.5%) |
| 不可用时的保底 | —— | 回退读 md 源文件(见 3.5) |
> **能力置换的净收益**:用"失去字段精确筛选"换"素材从 21 条 → 240 条 + 语义召回"。这是**正确的交易**——21 条素材即使筛得再准,也支撑不了多赛道创作。
### 3.3 前置成本(切换前必须完成)
| # | 事项 | 量 |
|:--:|:--|:--|
| 1 | 为每条素材配「标准问 + 相似问」(FAQ 召回**唯一杠杆**) | 21 条 × 5-6 问法 = **约 120 条问法**,可复用卡片 spec 机制(`2_import_batch.py`) |
| 2 | 清理 15 条泛化磁铁卡的标准问(改为具象绑定式) | 15 条 |
| 3 | 清理 6 条卡 `事件标签` 字段混入的自检备注 | 6 条 |
| 4 | 补按赛道缺失的素材(亲子仅 3 条、沉浸类 0 条) | 后续批次优先排非剧情赛道 |
### 3.4 账号隔离边界(切换的硬边界)
FAQ 容器**只支持单标签、`CustomMetadata` 不参与过滤**(实测)→ **无法做账号级隔离**。
| 素材类型 | 能否进共享容器 | 结论 |
|:--|:--:|:--|
| 跨账号通用素材(菜品/仪式/事件的通用形态) | ✅ | 进共享容器 |
| **账号专属素材**(04 对话库、专属符号/口头禅) | ❌ | 多账号会串号 → **单独容器** 或 **仍留文件按账号存** |
> 04 对话库现状本就是"账号专属,实体存账号产出目录",与 FAQ 无账号隔离能力**天然冲突** → 建议该项**不切换**,保持文件形态。
### 3.5 检索调用契约
**① 触发**:S7「极致触点节点布位」定完节点后,对每个 L1 节点检索。
**② 问法 —— 镜像式五要素**(与库内标准问语域同构):
```
「找一条 {①落差对象} {②打破方式} {③具象锚点} 的 {④段落功能} 型事件素材」
```
| 要素 | 来源 |
|:--:|:--|
| ① 落差对象 | 布位表节点 + S6 场次事件 |
| ② 打破方式 | **方法层**(预期反转·道具误导 / 错位化 / 冲突叙事套路…)+ 判定层类型 |
| ③ 具象锚点 | **必须有**,取自本账号赛道与人设 |
| ④ 段落功能 | 钩子型 / 留人型 / 转粉型 / 传播型 |
**三条禁忌**(实测支撑):
- ❌ 禁用纯抽象机制词("制造反差""引起共鸣")→ **零命中**;
- ❌ 禁用赛道词当主检索词(库内 77.5% 为剧情赛道,用"亲子/美妆"检索只会落到极少数条且分数低);
- ❌ 不用 `CustomMetadata` 过滤(不参与过滤)+ 不依赖关键词(纯向量)。
**③ 参数与复筛**:
| 项 | 值 | 理由 |
|:--|:--|:--|
| `vector_threshold` | **0.5**(显式) | 跨赛道实测分数仅 0.50–0.61,提到 0.6 会大面积漏召 |
| `match_count` | **5** | 留复筛空间 |
| 复筛后保留 | **≤2 条/节点** | 泛化磁铁卡会挤占 top1,须由 AI 读 `内容含义` 判同构性 |
| 载体类素材 | 同容器内一并召回 | 两类语域不同("找一道菜" vs "找一个事件"),混召回风险可控 |
**④ 降级(P0)**:
| 情形 | 行为 |
|:--|:--|
| WeKnora 不可用(用户环境无此服务 / 容器未启动) | **静默回退读 md 源文件**(`素材库/*.md` 保留为权威源)→ 按原四维标签筛条;流程不中断、不报错 |
| 检索零命中 | 退化为「仅用判定层类型子类」指引;**不编造素材** |
| 库为空 / 未配置 | 视为未启用,全流程与原行为一致 |
### 3.6 转译红线(P0,切换后更需强调)
卡片与素材来自**他人账号**,直接搬用 = 抄袭且违反关键规则六。
| 可迁移(取材) | 禁止搬用(不取形) |
|:--|:--|
| 落差结构(期待 A → 打破 X → 结果 B) | 具体人物、身份、关系 |
| 手法类别 + 铺垫量级(短≤3s / 中3-10s / 长>10s) | 原账号台词、金句 |
| 镜头与剪辑逻辑 | 原场景具名道具 / 招牌 |
| 段落功能(开场/中段/结尾) | 原账号机制与专属符号 |
### 3.7 方法层接线(另一半,不做则切换无意义)
**落点**:S7「极致触点节点布位」表**新增一列「候选创作方法」**(不新增步骤):
| 布位类型 | 优先极致类型(现有) | 候选创作方法(新增) |
|:--|:--|:--|
| 钩子型(前3秒) | 极致行为、感官极致 | 极致行为四分类(感官刺激/身份反差/强度拉满/专属符号) |
| 留人型(5-15秒) | 戏剧极致(反转/冲突) | 预期反转四大误导载体 / 冲突叙事套路(摩擦类型×人设对齐) |
| 转粉型(结尾前3秒) | 戏剧极致(共鸣/错位/克制) | 克制 / 荒诞化 / 抽象化 |
| 传播型(任意) | 极致行为(专属符号) | 无厘头 / 专属符号型 |
配套:6 个方法文件各补一行「**素材供给**:本方法需用的极致标签 X / 到 Y 库取 Z」;240 条卡补「**方法归属**」字段(预期反转/错位化/荒诞化/抽象化/无厘头/极致行为四分类)→ 「按方法取素材」才有直接索引。
---
## 四、需要改动的文件清单(待授权)
| # | 文件 | 改动 | 优先级 |
|:--:|:--|:--|:--:|
| 1 | `references/知识库/05_极致事件/04_检索调用规范.md`(**新建**) | 定义调用契约:触发 / 镜像问法 / 参数 / 复筛 / 转译 / 降级 / 注入格式 | **P0** |
| 2 | `references/创作流程/7_生成短视频大纲.md` | ①「素材库」定义改为**双层源**(WeKnora 检索 + md 源降级);② 布位表加「候选创作方法」列;③ `{material_content}` 定死结构;④ 增「极致触点机制自检」(落差三件套) | **P0** |
| 3 | `SKILL.md` S7 小节 | 调用链补中间环节(类型层 → 映射表 → 检索规范 → 素材) | **P0** |
| 4 | `references/索引_知识素材库.md` | ① 修正 03/05/06/07/08/11 的"素材库"定性(实为字段结构模板);② 补检索调用规范条目 | **P0** |
| 5 | `references/素材库/03/05/06/07/08/11_*.md`(6 个空壳) | 字段结构并入 `分块定义/`,原文件退役 | P1 |
| 6 | `references/创作流程/9_生成短视频脚本.md` | 输入增补 `{material_cards}`;补「台词毛边三档参考」 | P1 |
| 7 | `references/创作流程/11_脚本检查和诊断.md` | 「爆点贯穿」升级为爆点溯源三判据 | P1 |
| 8 | 6 个方法文件 | 各补「素材供给」行 | P1 |
| 9 | `references-add/变更日志.md` | 记录本次变更 | P1 |
| 10 | **不入技能包** | 检索脚本(含 `127.0.0.1:31607` 与 API Key)只留 `tools/weknora-ingest/` | **P0** |
---
## 五、风险
| 风险 | 等级 | 缓解 |
|:--|:--:|:--|
| 用户环境无 WeKnora → 素材全失 | **P0** | md 源文件**不删**,作为权威源 + 静默降级路径 |
| 照搬他人账号桥段(抄袭 / 硬编码) | **P0** | §3.6 转译表 + S11 溯源判据 |
| 把"切换"误解为"删除本地素材" | **P0** | 本方案 §3.1 / §五 明示 |
| 失去四维筛条后精度下降 | P1 | 镜像问法 + top5 复筛 ≤2 + 阈值锁 0.5 |
| 账号专属素材串号 | P1 | §3.4:04 对话库**不切换**,保持文件形态 |
| 索引与实体继续不符 | P1 | §四·4 一并修正 |
| 素材规模仍不足支撑多赛道(亲子 3 条 / 沉浸 0 条) | P1 | 后续批次优先排非剧情赛道;零命中走降级不编造 |
---
## 六、待办顺序(授权后)
1. 补 21 条载体素材的问答对 → 导入 WeKnora(与卡同容器)
2. 清理 15 条泛化磁铁卡 + 6 条标签污染
3. 按 §四 清单改技能文件(逐条读→改→验)
4. 卡片补「方法归属」字段(小样本试点 → 批量回填)
5. 变更同步 `references-add/变更日志.md` + 失误记录(如有)