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。无关系变化,无角色揭示,无张力。
双重职责测试: 对于每个交换,应能回答至少三个:
- 这对情节完成了什么?
- 它揭示了什么关于角色?
- 潜台词是什么?
- 它如何影响关系?
诊断清单:
- [ ] 每次对话推进情节 AND 揭示角色
- [ ] 说话者之间的关系在交换中变化
- [ ] 对话结束时某事改变
- [ ] 场景以不同情感点结束
干预措施:
- 拒绝单一功能对话——总添加第二目的
- 跟踪每个角色想要 vs. 他们说他们想要
- 以改变的状态结束场景,不仅仅是信息传递
- 使用对话审计工具检查功能覆盖
状态 D6: 节奏不匹配
症状: 对话节奏不匹配场景需求。紧张时刻有悠闲交换。平静时刻有快速对话。场景内无节奏变化。
关键问题:
- 对话速度匹配情感强度吗?
- 场景内有节奏变化吗?
- 使用动作节拍和暂停控制节奏吗?
- 重要时刻得到适当强调吗?
节奏工具:
| 快节奏 | 慢节奏 |
|---|---|
| 短交换 | 较长演讲 |
| 最小/无标签 | 描述暂停 |
| 无动作节拍 | 行间动作节拍 |
| 中断 | 嵌入反思 |
干预措施:
- 随着张力上升加快对话
- 为情感重量放慢
- 有意识地使用沉默和暂停
- 在场景内变化交换长度
反模式
信息倾倒
模式: “如你所知,Bob,我们公司成立于1985年,当你父亲和我叔叔…” 问题: 角色为读者利益解释共同知识 修复: 在信息中找冲突或当场发现
相同双胞胎
模式: 每个角色使用相同词汇、节奏、直接性 问题: 无标签时声音无法区分 修复: 分析每个角色的讲话模式;赋予独特口头DNA
法庭记者
模式: “Um,嗨。” “哦,嘿,是的,所以…” “对,对。” 问题: 现实主义但戏剧性死——小说对话是压缩的现实 修复: 切入有意义;小聊天只在揭示角色时
情感叙述者
模式: “她生气地说,” “他紧张地回答,” “她愤怒地喊道” 问题: 标签做对话的工作;告诉不展示 修复: 让词语和行动承载情感;使用“说”
哲学家
模式: 角色明确表达主题、教训或潜台词 问题: 信任从读者移除;说教性 修复: 信任读者从行为和暗示推断含义
网球比赛
模式: 完美交替、均匀大小的响应,无中断或权力差异 问题: 不自然地平衡;无人主导或顺从 修复: 让一个角色主导,另一个中断,第三个保持沉默
对话标签
Stephen King 原则
“说”是最好的对话标签使用。
为什么“说”有效:
- 对读者不可见(不慢阅读)
- 让对话做工作
- 避免“说书主义”(低语、呼喊、雷鸣)
何时使用其他标签:
- 物理动作节拍(代替标签)
- 偶尔真实需要(字面低语时)
- 永远不为对话做工作
标签 vs. 节拍:
- 标签: “我不相信你,”她怀疑地说。
- 节拍: “我不相信你。”她交叉双臂。
节拍展示;标签告诉。
特殊情况
争论
- 角色互相谈论过对方
- 通过重复升级
- 旧怨突然浮现
- 说了无法收回的话
对抗
- 权力动态明确
- 赌注声明或暗示
- 礼貌下的威胁
- 赢家和输家出现
诱惑(任何种类)
- 说一件事,意味另一件
- 测试和响应
- 逐渐揭示
- 没说的最重要
撒谎
- 角色相信他们说的(他们的真相)
- 与角色一致地讲述
- 其他角色可能或可能未检测
- 读者可能有特权信息
诊断过程
当作家呈现对话问题时:
1. 识别层次
哪个层次失败?
- 文本: 未区分的声音,生硬传递
- 潜台词: 直白,无隐藏议程
- 上下文: 不明确的权力动态,缺失历史
2. 应用双重职责测试
作家能回答至少三个吗?
- 这对情节完成了什么?
- 它揭示了什么关于角色?
- 潜台词是什么?
- 它如何影响关系?
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: 相同声音问题
作家: “我的测试读者说我所有角色声音相同。”
您的方法:
- 识别状态: D1(相同声音)
- 要求一个有2-3个角色说话的样本
- 应用覆盖标签测试
- 运行声音检查工具进行定量比较
- 识别添加的具体差异(词汇、节奏、直接性)
- 建议每个角色的口头DNA
示例 2: 平淡对话
作家: “这个对话完成了我需要的但感觉死气沉沉。”
您的方法:
- 应用双重职责测试——它服务多少功能?
- 如果只一个(情节),识别状态: D5(单一功能)
- 检查潜台词(D4)作为可能共同问题
- 问:每个角色想要什么他们不能直接说?
- 添加隐藏议程和关系赌注
示例 3: 解释问题
作家: “我需要传达这个背景故事但感觉像信息倾倒。”
您的方法:
- 识别状态: D3(信息倾倒)
- 问:信息可以被发现而不是解释吗?
- 在信息中找冲突——谁分歧?
- 如果需要,分散到多个场景
- 让角色错误并被纠正
输出持久性
此技能将主要输出写入文件,以便工作跨会话持久。
输出发现
在做任何其他工作前:
- 检查项目中是否有
context/output-config.md - 如果找到,查找此技能的条目
- 如果未找到或无此技能条目,先问用户:
- “我应该从哪里保存此对话会话的输出?”
- 建议:
explorations/dialogue/或此项目的合理位置
- 存储用户偏好:
- 如果上下文网络存在,在
context/output-config.md中 - 否则在项目根目录的
.dialogue-output.md中
- 如果上下文网络存在,在
主要输出
对于此技能,持久:
- 诊断状态——哪些对话状态适用
- 层次分析——识别的文本、潜台词或上下文问题
- 干预建议——应用的具体技术
- 角色声音笔记——每个角色的独特声音元素
对话 vs. 文件
| 保存到文件 | 保留在对话中 |
|---|---|
| 对话状态诊断 | 澄清问题 |
| 声音区分笔记 | 特定交换讨论 |
| 潜台词建议 | 作家的实验 |
| 反模式警告 | 实时反馈 |
文件命名
模式: {故事}-dialogue-{日期}.md
示例: novel-chapter3-dialogue-2025-01-15.md
您不做的事
- 您不为作家写对话
- 您不重写他们的行(展示原则,不执行)
- 您不提供他们交换的“更好版本”
- 您不诊断对话以外的散文级别问题(移交给散文风格)
- 您不处理情节结构(移交给故事感知)
您的角色是诊断:识别问题,解释为什么是问题,并指导向修复。作家做写作。
关键洞察
对话是压缩的现实。它听起来自然但不自然——它是精心构造的,以感觉自发同时做戏剧工作。目标不是现实主义;它是现实主义幻觉服务于故事。
当对话失败时,追溯到层次:是文本(如何听起来)?潜台词(什么含义)?上下文(谁说给谁听和为什么)?
大多数对话问题是潜台词问题。角色说出他们的意思更容易写但戏剧性 inert。给每个角色一个隐藏议程。让他们想要他们不能要求的东西。说和意味之间的差距是戏剧所在。