定性:素材载体切换(本地 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 文档;变更日志归档
7.9 KiB
WeKnora 极致事件检索规范
维度:接口调用 | 定位:S7「极致触点素材检索」的调用契约 依赖 MCP 服务:
weknora(工具hybrid_search);不可用时静默降级(见 §5),不影响 S1-S11 核心创作流程 上游串联:../知识库/05_极致事件/00_极致事件总纲.md(类型层判定)→../知识库/05_极致事件/01_极致类型-素材标签映射表.md(类型↔标签)→ 本文件(检索取条) 变更(2026-09-24):新建。素材层由「读 md 文件 + 四维标签筛条」切换为「WeKnora 语义检索(主)+ md 源文件(降级)」;实测依据见 §7。
一、定位:本规范解决什么
| 层 | 文件 | 回答 |
|---|---|---|
| 方法层 | ../知识库/05_极致事件/ 各创作体系 + ../知识库/03_框架节奏/02_冲突叙事套路.md |
这场用什么手法制造极致感 |
| 判定层 | 00_总纲 / 01_映射表 / 02_赛道形态 / 03_评估标准 |
这是什么极致、定哪个库 |
| 检索层 | 本文件 | 怎么取到可参考的事件素材 |
| 素材层 | WeKnora 容器(主)+ ../素材库/*.md(源与降级) |
取到什么材料 |
🔴 调用方向自上而下:方法 → 判定 → 素材。不得反向(先看有什么素材再想故事=素材驱动,会导致内容与账号人设脱节)。
二、调用:工具与参数
工具:hybrid_search(MCP 服务 weknora)
| 参数 | 取值 | 说明 |
|---|---|---|
kb_id |
MCN极致事件素材库 |
用库名(服务自动解析),禁写死 UUID |
query |
镜像式五要素问法(见 §3) | 唯一召回杠杆 |
match_count |
3 | 默认 5;压到 3 以控上下文(见 §6) |
vector_threshold |
0.5(显式传) | 默认恰为 0.5,仍显式传以防版本变化;不得调高(提到 0.6 会大面积漏召) |
keyword_threshold |
❌ 不传 | FAQ 库恒为纯向量召回,关键词不参与 |
⚠️ 禁用
chat/agent_chat替代:二者走 RAG+LLM 总结,会把卡片摘要化——而卡片的价值恰在不可概括的细节(原话、微反应、铺垫量级、镜头语言)。必须用hybrid_search取卡片原文。
三、问法:镜像式五要素
核心原则:问法要与库内标准问的语域同构(库内标准问即"编导检索意图句")。
「找一条 {①落差对象} {②打破方式} {③具象锚点} 的 {④段落功能} 型事件素材」
| 要素 | 来源 | 示例 |
|---|---|---|
| ① 落差对象 | S7 布位表节点 + S6 场次事件 | 被当场刁难的人 / 等了一整天的人 |
| ② 打破方式 | 方法层(见 §一 表格左列) | 用一连串专业细节把对方顶回去 |
| ③ 具象锚点 | 必须有,取自本账号赛道与人设 | 厨房 / 接送孩子 / 试妆镜前 |
| ④ 段落功能 | 布位表四型之一 | 钩子型 / 留人型 / 转粉型 |
3.1 三条禁忌(实测支撑)
| 禁忌 | 后果 |
|---|---|
| ❌ 纯抽象机制词("制造反差""引起共鸣") | 零命中(实测:"一句话让所有人都沉默了,因为谁都没法反驳" → data: null) |
| ❌ 赛道词当主检索词("亲子""美妆") | 库内 77.5% 为剧情赛道,赛道词检索只会落到极少数条且分数低。赛道词只作为③具象锚点的一部分 |
❌ 依赖 CustomMetadata 过滤 |
不参与过滤(实测)。想收敛范围只能靠 query 语义 + 检索后复筛 |
四、返回值判据(三个必知行为)
4.1 零命中不是错误
{ "data": null, "success": true } ← 零命中
判据:
success == true 且 data == null→ 零命中。 ❌ 不得判为"调用失败";✅ 不重试、不报错,直接走 §5 降级。
4.2 同一张卡内容返回三份
| 字段 | 内容 | 处理 |
|---|---|---|
chunk_metadata.answers[0] |
卡片原文 | ✅ 只读这一份 |
content |
标准问 + 相似问 + Answers 拼接 | ❌ 噪声 |
matched_content |
又一份全文 | ❌ 噪声 |
chunk_metadata.standard_question / similar_questions / negative_questions |
问法(生产信息) | ❌ 创作时无用 |
4.3 复筛与转译
| 步 | 动作 | 判据 |
|---|---|---|
| 1 | 读 chunk_metadata.answers[0] |
只读这一份 |
| 2 | 复筛 | 看卡片 内容含义 的落差结构 [期待A]—被X打破→[结果B] 是否与本节点同构;不同构直接弃。分数不参与判断(存在「泛化磁铁卡」会挤占 top1) |
| 3 | 保留 | ≤2 条/节点 |
| 4 | 转译 | 只取落差结构 / 手法类别 / 铺垫量级(短≤3s·中3-10s·长>10s)/ 镜头逻辑;禁搬人物·身份·台词·道具(取材不取形,硬规则见 ../创作流程规范.md 六) |
🔴 卡片来自他人账号的具体桥段,直接搬用 = 抄袭且违反硬编码禁止规则。转译产物必须换成本账号的具象锚点(人设卡身份 + 本赛道物品),写入大纲时不留原卡痕迹。
五、降级矩阵(P0)
| 情形 | 判据 | 行为 |
|---|---|---|
| 会话未挂载 weknora MCP | 工具不可用 | 静默回退读 ../素材库/*.md(md = 权威源,永不删除) |
| 服务不可用(容器未启动 / 用户环境无服务) | 调用报错或超时 | 同上 |
| 库不存在 | 返回错误 | 视为未启用,全流程与原行为一致 |
| 零命中 | success=true 且 data=null |
退化为「仅用判定层类型子类」指引;不编造素材、不重试 |
能力探测式:先试图检索 → 失败/零命中 → 降级。既不假定可用,也不假定不可用。 与
SKILL.md「MCP 不可用时不影响核心创作流程(步骤 1-11)」原则一致。
六、上下文成本控制
单条卡约 3.5–4KB(因 §4.2 的三份重复)× match_count:
match_count |
单次返回 | 一视频 3 节点 | 一视频 5 节点 |
|---|---|---|---|
| 5(默认) | ~18KB ≈ 6K tokens | ~18K | ~30K |
| 3(本规范取值) | ~11KB ≈ 3.5K tokens | ~10K | ~18K |
三条控制规则:
match_count=3,复筛后留 ≤2 —— 不追求多召回(泛化磁铁卡会挤进前列);- 按需检索 —— 只对「规划时想不出具体桥段的节点」检索;已有明确桥段的节点跳过(通常一视频 1–3 次,而非每节点必检);
- 串行、读后即弃 —— 一次只检索一个节点,读卡 → 转译 → 丢弃原文,不把多节点结果堆积在上下文里。
七、实测依据(2026-09-24)
| 项 | 结果 |
|---|---|
| MCP 可召回 FAQ 库 | ✅ hybrid_search(kb_id="MCN极致事件素材库", query="被当场刁难的人,用一连串专业细节一步步把对方顶回去") → 命中 28325-3,score=0.6058205716953738 |
| 与 REST 路径等价 | ✅ 同 query 分数与 POST /api/v1/knowledge-bases/{KB}/faq/search 完全一致 |
kb_id 支持库名 |
✅ 无需 UUID |
| 纯抽象问法 | ❌ data: null(零命中) |
| 具象机制问法 | ✅ 0.50–0.61 区间,最高 0.6058 |
| 库内库存 | 240 条事件卡;赛道分布剧情 186(77.5%)/ 生活vlog 38 / 旅行 6 / 小剧场 3 / 亲子 3 / 明星娱乐 3 / 搞笑短剧 1;感官沉浸、氛围沉浸 = 0 条 |
八、与其他接口的分工
| 路径 | 使用者 | 场景 |
|---|---|---|
MCP hybrid_search |
AI 会话(S7 执行时) | 创作端单次检索,每视频 1–3 次 |
REST /faq/search |
tools/weknora-ingest/*.py(项目侧,不入技能包) |
生产端:批量导入 + 检索终验;导入通道独占(dry_run 须轮询 completed) |
🔴 MCP 服务地址与 API Key 属环境配置,只存在于
~/.workbuddy/mcp.json(项目侧tools/文档内),不得写入本技能任何文件。