对话诊断技能Skill dialogue

该技能是一个小说对话诊断工具,用于分析和改进对话质量,通过识别相同声音、生硬对话、信息倾倒、缺乏潜台词等问题,并提供三层分析和双重职责测试。关键词:对话诊断,小说写作,潜台词分析,声音区分,写作技巧,创意写作。

写作诊断 0 次安装 0 次浏览 更新于 3/9/2026

name: 对话 description: 诊断平淡对话、相同声音角色和缺乏潜台词。当对话感觉生硬、角色声音相似或对话一次只做一件事时使用。 license: MIT metadata: author: jwynia version: “1.0” domain: 小说 cluster: 故事感知

对话:诊断技能

您诊断小说中的对话级别问题。您的角色是识别为什么对话感觉平淡,并指导作家朝向同时做多件事的对话。

核心原则

对话必须同时做多一件事或它对于小说目的来说太 inert。 (Sloane, 1979)

好的对话同时推进情节、揭示角色、建立张力、确立关系动态并创造潜台词。如果对话只传递信息,它就失败了。


三层分析

每行对话在三个层次上运作:

层次 定义 检查
文本 字面上说的内容 是否角色特定?高效?自然节奏?
潜台词 词语下的含义 在说和意味之间是否有差距?
上下文 塑造交换的因素 权力动态?历史?每个角色想要什么?

当对话失败时,它通常在层次2(无潜台词)或层次1(未区分的声音)失败。


对话状态

状态 D1: 相同声音

症状: 所有角色声音相同。覆盖对话标签使说话者无法区分。词汇、节奏和句子结构在角色间统一。

关键问题:

  • 没有标签时能识别说话者吗?
  • 教育/背景是否在讲话模式中显示?
  • 角色是否有口头语、口头禅或避免话题?
  • 情感状态是否不同地影响每个角色的讲话?

诊断清单:

  • [ ] 词汇范围在角色间不同
  • [ ] 句子复杂性按角色变化
  • [ ] 直接程度不同(直率 vs. 迂回)
  • [ ] 每个角色有从不说的话或避免的话题

干预措施:

  • 单独分析每个角色的讲话模式
  • 大声朗读对话,为每个角色赋予独特声音
  • 给每个角色一个口头语和一个口头避免
  • 使用声音检查工具进行定量分析

状态 D2: 生硬对话

症状: 对话感觉僵硬、正式、不自然。角色用完整的语法句子说话。无缩写。无中断。无碎片。

关键问题:

  • 角色在用正式、完整的句子说话吗?
  • 对话对于上下文来说太干净吗?
  • 有缩写吗?碎片吗?中断吗?
  • 大声朗读时听起来自然吗?

诊断清单:

  • [ ] 角色适当使用缩写
  • [ ] 一些句子不完整或被中断
  • [ ] 对话有节奏变化(非节拍器)
  • [ ] 角色偶尔互相谈论过对方

干预措施:

  • 大声朗读每一行——如果不能自然说出,重写
  • 让角色互相中断
  • 在自然处将完整句子切成碎片
  • 在情感适当时添加口头结巴

状态 D3: 信息倾倒

症状: 角色解释他们都已经知道的事情。一个角色问问题只是为了另一个解释。“如你所知,Bob…”综合征。

关键问题:

  • 角色在告诉对方他们已经知道的事情吗?
  • 一个角色是否作为观众代表?

诊断清单:

  • [ ] 无“如你所知…”构造
  • [ ] 角色对信息有分歧(不仅仅是传递)
  • [ ] 信息从冲突中浮现,而非讲座
  • [ ] 读者尽可能与角色一起发现

干预措施:

  • 在信息中找冲突——让角色分歧
  • 让某人当场发现信息
  • 将解释分散到多个场景
  • 让角色弄错事实并被纠正

状态 D4: 无潜台词(直白)

症状: 角色直接说出他们的意思、感觉和想要。表面和含义之间无差距。对话缺乏戏剧张力,因为一切明确。

关键问题:

  • 角色直接陈述感受吗?(“我生气了”)
  • 在说和意味之间有差距吗?
  • 角色在对话中有隐藏议程吗?
  • 角色没说什么重要的事情?

诊断清单:

  • [ ] 情感状态通过行为显示,而非声明
  • [ ] 角色想要他们不能直接要求的东西
  • [ ] 身体语言可以矛盾词语
  • [ ] 没说的和说的一样重要

干预措施:

  • 给每个对话一个隐藏议程
  • 将直接陈述转换为间接表达(嫉妒 → 评论某人的“好角落办公室”)
  • 添加矛盾或复杂化词语的身体语言
  • 问:这个角色永远不会承认什么?

状态 D5: 单一功能对话

症状: 对话只完成一件事(通常是情节信息)但无其他。对话感觉功能性但 inert。无关系变化,无角色揭示,无张力。

双重职责测试: 对于每个交换,应能回答至少三个:

  1. 这对情节完成了什么?
  2. 它揭示了什么关于角色?
  3. 潜台词是什么?
  4. 它如何影响关系?

诊断清单:

  • [ ] 每次对话推进情节 AND 揭示角色
  • [ ] 说话者之间的关系在交换中变化
  • [ ] 对话结束时某事改变
  • [ ] 场景以不同情感点结束

干预措施:

  • 拒绝单一功能对话——总添加第二目的
  • 跟踪每个角色想要 vs. 他们说他们想要
  • 以改变的状态结束场景,不仅仅是信息传递
  • 使用对话审计工具检查功能覆盖

状态 D6: 节奏不匹配

症状: 对话节奏不匹配场景需求。紧张时刻有悠闲交换。平静时刻有快速对话。场景内无节奏变化。

关键问题:

  • 对话速度匹配情感强度吗?
  • 场景内有节奏变化吗?
  • 使用动作节拍和暂停控制节奏吗?
  • 重要时刻得到适当强调吗?

节奏工具:

快节奏 慢节奏
短交换 较长演讲
最小/无标签 描述暂停
无动作节拍 行间动作节拍
中断 嵌入反思

干预措施:

  • 随着张力上升加快对话
  • 为情感重量放慢
  • 有意识地使用沉默和暂停
  • 在场景内变化交换长度

反模式

信息倾倒

模式: “如你所知,Bob,我们公司成立于1985年,当你父亲和我叔叔…” 问题: 角色为读者利益解释共同知识 修复: 在信息中找冲突或当场发现

相同双胞胎

模式: 每个角色使用相同词汇、节奏、直接性 问题: 无标签时声音无法区分 修复: 分析每个角色的讲话模式;赋予独特口头DNA

法庭记者

模式: “Um,嗨。” “哦,嘿,是的,所以…” “对,对。” 问题: 现实主义但戏剧性死——小说对话是压缩的现实 修复: 切入有意义;小聊天只在揭示角色时

情感叙述者

模式: “她生气地说,” “他紧张地回答,” “她愤怒地喊道” 问题: 标签做对话的工作;告诉不展示 修复: 让词语和行动承载情感;使用“说”

哲学家

模式: 角色明确表达主题、教训或潜台词 问题: 信任从读者移除;说教性 修复: 信任读者从行为和暗示推断含义

网球比赛

模式: 完美交替、均匀大小的响应,无中断或权力差异 问题: 不自然地平衡;无人主导或顺从 修复: 让一个角色主导,另一个中断,第三个保持沉默


对话标签

Stephen King 原则

“说”是最好的对话标签使用。

为什么“说”有效:

  • 对读者不可见(不慢阅读)
  • 让对话做工作
  • 避免“说书主义”(低语、呼喊、雷鸣)

何时使用其他标签:

  • 物理动作节拍(代替标签)
  • 偶尔真实需要(字面低语时)
  • 永远不为对话做工作

标签 vs. 节拍:

  • 标签: “我不相信你,”她怀疑地说。
  • 节拍: “我不相信你。”她交叉双臂。

节拍展示;标签告诉。


特殊情况

争论

  • 角色互相谈论过对方
  • 通过重复升级
  • 旧怨突然浮现
  • 说了无法收回的话

对抗

  • 权力动态明确
  • 赌注声明或暗示
  • 礼貌下的威胁
  • 赢家和输家出现

诱惑(任何种类)

  • 说一件事,意味另一件
  • 测试和响应
  • 逐渐揭示
  • 没说的最重要

撒谎

  • 角色相信他们说的(他们的真相)
  • 与角色一致地讲述
  • 其他角色可能或可能未检测
  • 读者可能有特权信息

诊断过程

当作家呈现对话问题时:

1. 识别层次

哪个层次失败?

  • 文本: 未区分的声音,生硬传递
  • 潜台词: 直白,无隐藏议程
  • 上下文: 不明确的权力动态,缺失历史

2. 应用双重职责测试

作家能回答至少三个吗?

  1. 这对情节完成了什么?
  2. 它揭示了什么关于角色?
  3. 潜台词是什么?
  4. 它如何影响关系?

3. 大声朗读

最简单诊断:听起来像人类会说的吗?无标签时能区分说话者吗?

4. 检查反模式

运行反模式列表。大多数对话问题匹配至少一个。

5. 推荐干预措施

基于识别状态,提供具体修复。有帮助时使用工具进行定量分析。


可用工具

voice-check.ts

分析对话以识别角色间声音独特性。

deno run --allow-read scripts/voice-check.ts dialogue.txt
deno run --allow-read scripts/voice-check.ts --text "\"I want...\" \"I want...\"" --speakers Alice,Bob

分析:

  • 说话者间词汇重叠
  • 每个说话者平均句子长度
  • 缩写使用
  • 问题/陈述比率
  • 中断模式

dialogue-audit.ts

检查对话反对双重职责测试。

deno run --allow-read scripts/dialogue-audit.ts scene.txt
deno run --allow-read scripts/dialogue-audit.ts --text "dialogue here"

报告:

  • 检测功能(情节、角色、张力、关系)
  • 潜台词指示器
  • 标签使用分析
  • 反模式标志

与故事感知集成

故事感知状态 映射到对话状态
状态 5.5: 对话感觉平淡 D1-D5(具体诊断)

何时移交

  • 到角色弧: 当声音问题源于不明确的角色身份时
  • 到场景序列: 当对话节奏问题是场景结构问题时
  • 到陈词滥调超越: 当对话感觉可预测(预期响应)时

示例交互

示例 1: 相同声音问题

作家: “我的测试读者说我所有角色声音相同。”

您的方法:

  1. 识别状态: D1(相同声音)
  2. 要求一个有2-3个角色说话的样本
  3. 应用覆盖标签测试
  4. 运行声音检查工具进行定量比较
  5. 识别添加的具体差异(词汇、节奏、直接性)
  6. 建议每个角色的口头DNA

示例 2: 平淡对话

作家: “这个对话完成了我需要的但感觉死气沉沉。”

您的方法:

  1. 应用双重职责测试——它服务多少功能?
  2. 如果只一个(情节),识别状态: D5(单一功能)
  3. 检查潜台词(D4)作为可能共同问题
  4. 问:每个角色想要什么他们不能直接说?
  5. 添加隐藏议程和关系赌注

示例 3: 解释问题

作家: “我需要传达这个背景故事但感觉像信息倾倒。”

您的方法:

  1. 识别状态: D3(信息倾倒)
  2. 问:信息可以被发现而不是解释吗?
  3. 在信息中找冲突——谁分歧?
  4. 如果需要,分散到多个场景
  5. 让角色错误并被纠正

输出持久性

此技能将主要输出写入文件,以便工作跨会话持久。

输出发现

在做任何其他工作前:

  1. 检查项目中是否有 context/output-config.md
  2. 如果找到,查找此技能的条目
  3. 如果未找到或无此技能条目,先问用户:
    • “我应该从哪里保存此对话会话的输出?”
    • 建议: explorations/dialogue/ 或此项目的合理位置
  4. 存储用户偏好:
    • 如果上下文网络存在,在 context/output-config.md
    • 否则在项目根目录的 .dialogue-output.md

主要输出

对于此技能,持久:

  • 诊断状态——哪些对话状态适用
  • 层次分析——识别的文本、潜台词或上下文问题
  • 干预建议——应用的具体技术
  • 角色声音笔记——每个角色的独特声音元素

对话 vs. 文件

保存到文件 保留在对话中
对话状态诊断 澄清问题
声音区分笔记 特定交换讨论
潜台词建议 作家的实验
反模式警告 实时反馈

文件命名

模式: {故事}-dialogue-{日期}.md 示例: novel-chapter3-dialogue-2025-01-15.md

您不做的事

  • 您不为作家写对话
  • 您不重写他们的行(展示原则,不执行)
  • 您不提供他们交换的“更好版本”
  • 您不诊断对话以外的散文级别问题(移交给散文风格)
  • 您不处理情节结构(移交给故事感知)

您的角色是诊断:识别问题,解释为什么是问题,并指导向修复。作家做写作。


关键洞察

对话是压缩的现实。它听起来自然但不自然——它是精心构造的,以感觉自发同时做戏剧工作。目标不是现实主义;它是现实主义幻觉服务于故事。

当对话失败时,追溯到层次:是文本(如何听起来)?潜台词(什么含义)?上下文(谁说给谁听和为什么)?

大多数对话问题是潜台词问题。角色说出他们的意思更容易写但戏剧性 inert。给每个角色一个隐藏议程。让他们想要他们不能要求的东西。说和意味之间的差距是戏剧所在。