# 从对话记录到文章骨架 > **定位**:本文件是 `SKILL.md` §1.1 的完整执行方法,**本仓库原创**。 > > **它解决什么**:v3 的「先还原问题链」(第 13 条)只给了一个**形状**—— > `最初的问题 → 第一次追问 → 新经历或反例 → 搜索与证据 → 原判断被修正 → 新矛盾出现 → 问题继续推进 → 当前真正需要回答的问题` > ——但没有给出**从一堆混乱对话里推出这个链的过程**。第 10 条、第 20 条反复强调「信息资产不能无缘无故丢」,同样只给了要求、没给核对机制。本文件补的就是这两件事。 --- ## 1. 输入 / 输出契约 **输入**:一份完整对话记录(长期、多轮、含搜索、质疑、补充、修正)。 **输出**:六件东西,缺一不可。 1. **论元表**——对话被切成的可审计单元 2. **问题链**——`Q0 → Q1 → … → Qcurrent` 3. **判断变化点清单**——文章骨架的真正节点 4. **文章骨架表**——章节设计 5. **信息资产归属表**——每个论元与每项资产的去向,**总数守恒** 6. **未解决问题清单** **三条硬约束**: - 论元与资产**每一项都必须有归属**,不得静默丢失(守恒核对,见 Stage E)。 - 文章中出现的用户第一人称判断,**必须在论元表里能找到"现行"状态的依据**。 - **判断变化点为 0 时,不得据此写成文章**(见 Stage C 的停止条件)。 --- ## 2. 七阶段 ### A. 论元抽取 把对话切成**论元**:一段发言里**最小的、有独立主张或证据价值**的单元。 | 字段 | 含义 | |---|---| | `id` | 论元编号 | | `源位置` | 谁说的 + 第几轮 / 大致位置(用于回收核对) | | `类型` | 事实 / 用户判断 / 推演 / 假设 / 问题 / 证据 / 反例 / 未解决 | | `主张` | 一句话概括(问题类写成疑问句) | | `状态` | **现行 / 已被用户修正 / 已废弃** | **切分规则**: - 一条发言里含**多个独立主张** → 拆成多个论元。 - 助手产生的推演**不能**标成「用户判断」——这是替用户说话的主要来源。 - 用户亲身经历单独成论元,它通常是**问题入口**,不是论据(第 19 条)。 - 搜索结果、链接、工具、渠道**不是论元**,进 Stage E 的资产表。 **状态机制(最容易出错的一步)**: 用户后续修正过场景、情绪、强度、因果关系、具体用词时(第 17 条),**旧论元标 `已被用户修正`,新表述为 `现行`**。文章只能用现行版。 > 不做状态标记的后果:重新生成全文时,模型会自动回到旧措辞——这正是第 17 条要防的问题。 ### B. 问题链重建 把 `类型 = 问题` 的论元按时间排出来,然后做两件事: 1. **合并同义问题**:措辞不同、实际在问同一件事的 → 合成一个节点。 2. **标记变形**:后一个问题相对前一个是**收窄 / 转向 / 升级**? 产出形式: ``` Q0 ──(被 u12 回答)──> Q1 ──(被 u25 反例打破)──> Q2 ──> … ──> Qcurrent ``` **断点检查**:如果两个问题节点之间**没有任何「回答」把它们连起来**,中间就是断的。两种可能—— - 漏抽了论元 → 回去补; - 这段对话本来就没推进 → **别硬编成文章**(见 Stage C)。 ### C. 判断变化点识别 **文章不是"讨论过什么",而是"判断怎么变的"。** 逐个论元问:**哪个论元推翻了前面的判断?** 变化的**触发物**是什么(新证据 / 反例 / 用户经历 / 搜索到的制度 / 他人的样本)? 每个变化点写成三元组: ``` 原判断 → 触发物 → 新判断 ``` 例:`直播带货成本低` → `看到退货率与客服成本` → `Agent 便宜不等于履约便宜` **全篇一个变化点都找不到时**:这段对话只是**收集了资料**,不构成文章。此时应如实告诉用户"现在写出来会是资料汇编",而不是硬凑一篇"探索文章"。这是本文件相对上游新增的**停止条件**——上游只说了文章应该"让问题变得更准",但没说什么时候**不该**写。 ### D. 章节切分 **一节 = 一次判断变化 + 支撑它的证据。** | 判据 | 内容 | |---|---| | **原子性** | 这一节能否用一句话说清:**「原来以为 X,因为 Y,现在认为 Z」**?只有唯一正确填法才算过 | | **复合检测** | 一次变化里若含**两次独立的变化**(用「而 / 同时 / 另外 / 以及」并列)→ **拆成两节** | | **删除测试** | 删掉这一节,中心问题还成立吗?成立 → 它不是主线,改派到 Stage E 的「重要补充 / 后续资源」 | | **必要性提问** | 这一节能否回答第 13 条的要求——**「为什么现在必须谈这一节」**?答不出 → 顺序或归属错了 | **排列顺序**:按**问题依赖**(读者要先懂哪个判断,才能接受下一个),**不按聊天顺序**。聊天顺序只能当 tiebreaker。 > 这与第 38 条一致:结构跟着问题变化走,不是按资料分类(数据 / 法律 / 国外案例 / 论文)。 ### E. 信息资产归属与守恒核对 这一步把上游反复强调但没给机制的**「不能无缘无故丢」**变成可审计的动作。 **先回收**:把 Stage A 的**全部论元**,加上对话中出现过的**全部资产**(数据、法律、政策、官方文件、论文、案例、国外制度、网站、工具、社区、搜索关键词、方法、模板、工作流、未完成的线索——第 20 条),列成一张总表。 **再分派**:每一项指派到**恰好一个**位置。 | 归属 | 判据 | |---|---| | `某节正文` | 支撑该节的判断变化 | | `核心证据` | 缺它,重要判断站不住 | | `重要补充` | 让判断更完整、更准确 | | `反例 / 限制` | 防止结论过度扩张 | | `后续资源` | 值得保留,但不必进入主线 | | `边缘` | 正确,但与中心问题关系弱 | | `已废弃` | 被用户修正、已过时、来源更差 | **守恒核对**: ``` 论元总数 = Σ(各节归属) + Σ(各桶归属) 资产总数 = Σ(各节归属) + Σ(各桶归属) ``` **任何一项缺失都必须显式写出理由**,且理由只能从这份清单里选:不相关 / 重复 / 来源差 / 已过时 / 有更好的来源 / 用户不要。 > **不允许的理由**:「删了以后文章更顺」。 > > **来源说明**:这份删除理由清单出自**基础版第 10 条**。**v3 没有保留它**(已核实:v3 全文不含「删除必须有理由」「已过时」「更顺」)。本文件按仓库的「旧规则默认保留」原则恢复,并在 `CHANGELOG.md` 中记录为需人工确认的静默丢失项。守恒核对的价值,正是让"删了更顺"这种理由无处藏身。 ### F. 中心问题定稿 **在 A–E 做完之后**,才写这句话:**这篇文章最终真正想回答什么?** 两条判据: - 如果答案和 `Q0` **一样** → 说明对话没有推进,文章会变成资料汇编。 - 通常答案应该是**更准、更窄**的问题(第 14 条、第 48 条)。 ### G. 产出文章骨架表 | 节 | 这一节回答什么 | 判断变化(原 → 现) | 支撑证据 | 源位置 | 这一节不写什么 | |---|---|---|---|---|---| **「这一节不写什么」是本表相对上游的关键增量**:它把"不进入本节的信息资产"写在计划里,防止写作阶段资料倒灌(第 21、28 条要防的正是这个)。 配套附上 Stage E 的归属表与**未解决问题清单**(第 15 条的第五类内容,它决定结尾能不能做"问题升级")。 --- ## 3. 自检 定稿骨架前逐项回答,**每项给出「是/否 + 证据」**: 1. 每一个论元都**有归属**吗?(守恒核对通过) 2. 每一个**「已被用户修正」**的论元,是否都没被写回正文? 3. 问题链有没有**断点**(两个问题节点之间没有回答连接)? 4. 找到了几个**判断变化点**?(**0 个 → 不该写成文章**) 5. 每一节能否用「原来以为 X,因为 Y,现在认为 Z」说清? 6. 有没有哪一节含**两次独立的变化**? 7. 删掉任意一节,中心问题是否仍然成立?(成立 → 它不是主线) 8. 中心问题是否比 `Q0` **更准或更窄**? 9. 有没有哪一节的「这一节不写什么」是**空的**? 10. 每节的「为什么现在必须谈这一节」都答得出吗? --- ## 4. 失败模式目录 | 编号 | 失败模式 | 表现 | 修正 | |---|---|---|---| | **FM-A** | 按聊天**时间顺序**复述 | 文章像会议纪要,读者不知道哪句是结论 | 走 Stage B/C,用问题链和判断变化重排 | | **FM-B** | 判断变化为 **0** 却硬写成文章 | 资料齐全、排版整齐,但读者读完不知道"所以呢" | Stage C 的停止条件:如实说明这是资料汇编 | | **FM-C** | 用户**修正被写回旧版** | 重新生成全文后,用户改过的措辞/强度又变回去了 | Stage A 的状态机制;自检第 2 项 | | **FM-D** | 信息资产**静默丢失** | 搜索来的关键资源、渠道、案例在新稿里消失 | Stage E 守恒核对;删除必须给第 10 条允许的理由 | | **FM-E** | **资料倒灌** | 搜到了就都写进去,主线被淹没 | 每项资产的归属判据;每节必须有「这一节不写什么」 | | **FM-F** | 章节按**资料分类** | 结构是「数据 / 法律 / 国外案例 / 论文」 | 第 38 条:章节跟着问题变化走 | | **FM-G** | 中心问题**没变** | 开头问什么、结尾还问什么 | Stage F:答案必须比 Q0 更准更窄 | --- ## 5. Worked example(示意) > ⚠️ **这是构造的示意案例,不是真实对话。** 用途只是展示七阶段如何衔接;案例里的人、行业、数字、措辞都**不具有约束力**,不要照套。 **输入**:一段 6 轮的对话,主题是「朋友的餐饮店上了 AI 客服之后,投诉反而变多了」。 ### Stage A 论元抽取(节选) | id | 源位置 | 类型 | 主张 | 状态 | |---|---|---|---|---| | u01 | 用户·第1轮 | 问题 | 为什么上了 AI 客服之后投诉变多了? | 现行 | | u02 | 用户·第2轮 | 用户判断 | 我一开始以为是 AI 答得不准 | **已被修正** | | u03 | 助手·第2轮 | 推演 | 可能是意图识别率不够 | **已废弃**(后被数据否定) | | u04 | 用户·第3轮 | 事实 | 后台显示 AI 的答案准确率 92%,比人工还高 | 现行 | | u05 | 用户·第4轮 | 用户经历 | 但老客户说"它答得没错,就是让人不舒服" | 现行 | | u06 | 助手·第4轮 | 证据 | 搜到一项研究:投诉升级与"是否被承认情绪"相关 | 现行 | | u07 | 用户·第5轮 | 用户判断 | 所以我原来的判断错了,问题不在准确性 | **现行**(覆盖 u02) | | u08 | 用户·第6轮 | 问题 | 那什么场景适合上 AI 客服? | 现行 | > 注意三点:**u02 被 u07 覆盖**(文章只能用 u07);**u03 已废弃**(不能当证据);**u05 是用户经历**,是问题入口,不能直接当成"所有客户都这样"。 ### Stage B 问题链 ``` Q0(u01)为什么投诉变多 └─(u03 假设)→ Q1 AI 是不是答不准 └─(u04 数据否定)→ Q2 那为什么准确率更高、投诉却更多 └─(u05+u06)→ Q3 客户要的是答案还是被承认 └─→ Qcurrent(u08)什么场景适合 AI 客服 ``` **断点检查**:每两个问题之间都有论元连接,链条完整。 ### Stage C 判断变化点 | # | 原判断 | 触发物 | 新判断 | |---|---|---|---| | 1 | 投诉变多是因为 AI 答不准 | u04 准确率 92% | 准确性不是原因 | | 2 | 客服的目标是给出正确答案 | u05 老客户的话 + u06 研究 | 客服的目标是先让客户觉得被听见 | **2 个变化点 → 够撑起一篇文章。** 如果这里只有 0 个,就不该写。 ### Stage D 章节切分 | 节 | 能否用「原来以为 X,因为 Y,现在认为 Z」说清 | |---|---| | ① | 原来以为投诉是准确率问题,因为直觉上"答错了才会被投诉",现在知道准确率更高时投诉仍然上升 | | ② | 原来以为客服的职责是给答案,因为 KPI 一直这么定,现在认为在情绪场景里"被承认"先于"被回答" | | ③ | 原以为 AI 客服该全面铺开,现在要问它在什么场景**不**适用 | 删掉第③节,中心问题仍成立 → 所以③必须能独立回答"什么场景",否则降级为「重要补充」。 ### Stage E 资产归属与守恒 | 项 | 归属 | |---|---| | u01 / u07 / u08 | 节①②③正文 | | u04(准确率 92%) | 节① 核心证据 | | u05(老客户原话) | 节② 核心证据(用户经历) | | u06(研究) | 节② 核心证据(需给来源) | | u02 | `已废弃`——被 u07 覆盖,不得写回 | | u03 | `已废弃`——助手推演且被数据否定 | | "意图识别率"相关搜索 | `后续资源` | | 同行对比数据 | `边缘`(与中心问题关系弱) | **守恒**:论元 8 = 正文 5 + 已废弃 2 + 后续资源 1;无丢失、无未说明的删除。 ### Stage F 中心问题定稿 - `Q0`:为什么投诉变多了? - **定稿**:**在什么条件下,把"回答"自动化反而会损害客户关系?** 比 `Q0` 更准、更窄——它从"这一次为什么"变成了"什么条件下"。 ### Stage G 骨架表 | 节 | 这一节回答什么 | 判断变化(原 → 现) | 支撑证据 | 源位置 | 这一节不写什么 | |---|---|---|---|---|---| | 1 | 为什么"答得更准"没让投诉减少? | 准确率低 → 准确率不是原因 | u04 | 第 3 轮 | 不展开 AI 技术原理 | | 2 | 客户真正要的是什么? | 给答案 → 先被承认 | u05, u06 | 第 4 轮 | 不讲通用的情绪劳动理论 | | 3 | 哪些场景适合上 AI 客服? | 全面铺开 → 分场景判断 | u07, u08 | 第 5–6 轮 | 不给具体产品选型建议 | 未解决问题清单:本研究能否推广到非餐饮行业?(→ 结尾的"下一步该验证什么") --- ## 6. 边界情况 | 情况 | 处理 | |---|---| | 对话极短 / 只有一两轮 | 无判断变化 → 不写成文章,直接给结论或建议继续 | | 对话很长但无搜索、无证据 | 仍可写,但必须如实标注:全部结论为用户判断与推演,无外部证据 | | 用户中途改变主题 | 视为两条问题链;**不要**硬合并成一篇文章,除非确实存在依赖关系 | | 用户明确要求"就按时间顺序写" | 服从用户;但仍在结尾做问题升级,并说明本文是过程记录而非结论文章 | | 对话中助手曾给出错误信息后被纠正 | 被纠正的论元标 `已废弃`,**不得**再作为证据;若该错误本身有价值,可作为"常见误解"显式写出 | | 用户要求直接生成、不筛选 | 按第 5 条默认优先级:推动问题变化的信息 > 支撑核心判断的资料 > 可继续使用的工具/渠道 > 一般背景 | | 叙事需要一个对话里没有的过渡 | 可以补,但**必须标记「补充:」**,不得伪装成对话中已有的判断 |