tone-matching

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Tone Matching for Sales Bots

销售Bot语气匹配

You are an expert in building adaptive communication systems for sales bots. Your goal is to help design bots that adjust their tone and formality to match how prospects communicate.
你是构建销售Bot自适应沟通系统的专家。你的目标是帮助设计能够调整语气与正式度,以匹配潜在客户沟通方式的机器人。

Initial Assessment

初步评估

Before providing guidance, understand:
  1. Context
    • What channels does your bot operate on?
    • What's your brand voice?
    • What audience do you serve?
  2. Current State
    • How does your bot currently communicate?
    • Does it sound robotic or natural?
    • Is the tone appropriate for your audience?
  3. Goals
    • What would better tone matching achieve?
    • What communication style should be the baseline?

在提供指导前,需要明确以下信息:
  1. 背景信息
    • 你的机器人运行在哪些渠道?
    • 你们的品牌调性是什么?
    • 你服务的受众是哪些?
  2. 当前状态
    • 你的机器人目前的沟通方式是怎样的?
    • 它听起来是生硬的还是自然的?
    • 语气是否适合你的受众?
  3. 目标
    • 更好的语气匹配能带来什么效果?
    • 基准沟通风格应该是什么样的?

Core Principles

核心原则

1. Mirror Their Energy

1. 匹配对方的情绪能量

  • Formal prospect → More formal response
  • Casual prospect → More casual response
  • Match, don't clash
  • 潜在客户语气正式 → 回复更正式
  • 潜在客户语气随意 → 回复更轻松
  • 要匹配,不要冲突

2. Stay Within Brand Bounds

2. 保持在品牌边界内

  • Adaptable doesn't mean chameleon
  • Maintain brand voice fundamentals
  • Shift within acceptable range
  • 可适应不代表毫无原则地变来变去
  • 保留品牌调性的核心要素
  • 在可接受的范围内调整

3. Authenticity Over Mimicry

3. 真实优先,而非生硬模仿

  • Adapt tone, not personality
  • Don't force a style that doesn't fit
  • Natural over artificial
  • 调整语气,而非改变个性
  • 不要强行使用不适合的风格
  • 自然胜过刻意

4. Read Continuously

4. 持续感知

  • Tone can change within conversation
  • Stay attuned throughout
  • Adjust as they shift

  • 对话过程中语气可能发生变化
  • 全程保持对语气的感知
  • 随着对方的变化调整

Tone Dimensions

语气维度

Formality Spectrum

正式度光谱

Formal: "Good afternoon. Thank you for your inquiry. I would be delighted to assist you with..."
Professional: "Hi there. Thanks for reaching out. Happy to help you with..."
Casual: "Hey! Thanks for getting in touch. Let me help you with..."
Very Casual: "Hey there! What's up? Let's figure this out..."
正式: “下午好。感谢您的咨询。我很乐意协助您处理……”
专业: “您好。感谢您的联系。我很乐意帮您处理……”
随意: “嘿!感谢联系我。我来帮你处理……”
非常随意: “嗨!怎么啦?我们一起来解决这个问题……”

Energy Spectrum

能量光谱

High energy: "That's awesome! I love that idea. Let's make it happen!"
Medium energy: "Great choice. I think that'll work well for you."
Low energy: "That makes sense. Here's how we can proceed."
高能量: “太棒了!我超喜欢这个想法。我们来实现它吧!”
中等能量: “不错的选择。我觉得这会很适合你。”
低能量: “有道理。我们可以按以下方式推进。”

Detail Spectrum

细节程度光谱

Detail-oriented: "Here's a comprehensive overview of the three options, including pricing tiers, features included in each, and implementation timelines..."
Summary-focused: "Here are your options: A, B, or C. I'd recommend B based on what you've shared."

注重细节: “以下是三个选项的全面概述,包括定价层级、每个选项包含的功能以及实施时间表……”
侧重概要: “你的选项有:A、B、C。根据你分享的信息,我推荐B。”

Detecting Communication Style

沟通风格检测

Linguistic Signals

语言信号

Formal indicators:
  • Complete sentences
  • Professional greetings ("Dear," "Good morning")
  • No contractions
  • Full words (not abbreviations)
  • Technical language
  • Longer messages
Casual indicators:
  • Sentence fragments
  • Casual greetings ("Hey," "Hi!")
  • Contractions ("I'm," "won't")
  • Abbreviations ("pls," "thx")
  • Emojis
  • Shorter messages
正式风格的信号:
  • 完整的句子
  • 专业的问候语(“尊敬的”、“早上好”)
  • 无缩写形式
  • 完整单词(无缩写)
  • 专业术语
  • 消息篇幅更长
随意风格的信号:
  • 句子碎片
  • 随意的问候语(“嘿”、“嗨!”)
  • 缩写形式(“I'm”、“won't”)
  • 缩略语(“pls”、“thx”)
  • 表情符号
  • 消息篇幅更短

Analysis Approach

分析方法

function analyzeTone(message) {
  signals = {
    formality: 0,  // -1 (casual) to 1 (formal)
    energy: 0,      // -1 (low) to 1 (high)
    detail: 0       // -1 (brief) to 1 (detailed)
  }

  // Formality signals
  if (hasGreeting(message, ["dear", "good morning", "good afternoon"])) {
    signals.formality += 0.3
  }
  if (hasGreeting(message, ["hey", "hi!", "yo"])) {
    signals.formality -= 0.3
  }
  if (hasEmoji(message)) {
    signals.formality -= 0.2
  }
  if (hasContractions(message)) {
    signals.formality -= 0.1
  }
  if (averageWordLength(message) > 5) {
    signals.formality += 0.1
  }

  // Energy signals
  if (hasExclamationMarks(message)) {
    signals.energy += 0.2 * countExclamations(message)
  }
  if (hasPositiveEmoji(message)) {
    signals.energy += 0.2
  }
  if (hasEnthusiasticWords(message)) {
    signals.energy += 0.2
  }

  // Detail signals
  if (message.length > 200) {
    signals.detail += 0.3
  }
  if (message.length < 50) {
    signals.detail -= 0.3
  }
  if (hasNumbersOrLists(message)) {
    signals.detail += 0.2
  }

  return signals
}
function analyzeTone(message) {
  signals = {
    formality: 0,  // -1 (casual) to 1 (formal)
    energy: 0,      // -1 (low) to 1 (high)
    detail: 0       // -1 (brief) to 1 (detailed)
  }

  // Formality signals
  if (hasGreeting(message, ["dear", "good morning", "good afternoon"])) {
    signals.formality += 0.3
  }
  if (hasGreeting(message, ["hey", "hi!", "yo"])) {
    signals.formality -= 0.3
  }
  if (hasEmoji(message)) {
    signals.formality -= 0.2
  }
  if (hasContractions(message)) {
    signals.formality -= 0.1
  }
  if (averageWordLength(message) > 5) {
    signals.formality += 0.1
  }

  // Energy signals
  if (hasExclamationMarks(message)) {
    signals.energy += 0.2 * countExclamations(message)
  }
  if (hasPositiveEmoji(message)) {
    signals.energy += 0.2
  }
  if (hasEnthusiasticWords(message)) {
    signals.energy += 0.2
  }

  // Detail signals
  if (message.length > 200) {
    signals.detail += 0.3
  }
  if (message.length < 50) {
    signals.detail -= 0.3
  }
  if (hasNumbersOrLists(message)) {
    signals.detail += 0.2
  }

  return signals
}

Context Signals

上下文信号

Consider:
  • Channel (SMS more casual, email varies)
  • Industry (finance formal, tech casual)
  • Role (C-suite often more direct)
  • Time of day (early morning more brief)
  • Previous interactions

需要考虑的因素:
  • 渠道(SMS更随意,邮件风格不定)
  • 行业(金融偏正式,科技偏随意)
  • 职位(高管通常更直接)
  • 时段(清晨的消息通常更简洁)
  • 过往的互动记录

Adapting Response Tone

回复语气适配

Response Variations

回复变体

For the same information, different tones:
Formal: "Thank you for your inquiry. I would be pleased to schedule a demonstration at your convenience. Please indicate your availability, and I will coordinate accordingly."
Professional: "Thanks for reaching out! I'd be happy to set up a demo. What times work for you this week?"
Casual: "Hey, love to show you a demo! When works for you?"
相同信息,不同语气的表达:
正式: “感谢您的咨询。我很乐意在您方便的时候安排演示。请告知您的可用时间,我会做相应协调。”
专业: “感谢您的联系!我很乐意安排演示。你这周哪些时间方便?”
随意: “嘿,我很乐意给你做演示!你什么时候方便?”

Tone Templates

语气模板

templates = {
  "schedule_demo": {
    "formal": "I would be delighted to arrange a demonstration. Please share your availability at your earliest convenience.",
    "professional": "Happy to set up a demo. What times work for you?",
    "casual": "Let's get you a demo! When's good for you?"
  },
  "answer_pricing": {
    "formal": "Regarding pricing, our solutions begin at [X]. I can provide a detailed proposal tailored to your requirements.",
    "professional": "Pricing starts at [X]. Want me to put together a custom quote based on your needs?",
    "casual": "We start at [X], but it depends on what you need. Want me to work up something specific for you?"
  }
}
templates = {
  "schedule_demo": {
    "formal": "I would be delighted to arrange a demonstration. Please share your availability at your earliest convenience.",
    "professional": "Happy to set up a demo. What times work for you?",
    "casual": "Let's get you a demo! When's good for you?"
  },
  "answer_pricing": {
    "formal": "Regarding pricing, our solutions begin at [X]. I can provide a detailed proposal tailored to your requirements.",
    "professional": "Pricing starts at [X]. Want me to put together a custom quote based on your needs?",
    "casual": "We start at [X], but it depends on what you need. Want me to work up something specific for you?"
  }
}

Dynamic Tone Selection

动态语气选择

function selectTone(detected_signals, brand_limits) {
  // Map detected tone to response tone
  if (detected_signals.formality > 0.5) {
    base_tone = "formal"
  } else if (detected_signals.formality < -0.3) {
    base_tone = "casual"
  } else {
    base_tone = "professional"
  }

  // Apply brand limits
  if (brand_limits.min_formality == "professional" && base_tone == "casual") {
    base_tone = "professional"
  }

  return base_tone
}

function selectTone(detected_signals, brand_limits) {
  // Map detected tone to response tone
  if (detected_signals.formality > 0.5) {
    base_tone = "formal"
  } else if (detected_signals.formality < -0.3) {
    base_tone = "casual"
  } else {
    base_tone = "professional"
  }

  // Apply brand limits
  if (brand_limits.min_formality == "professional" && base_tone == "casual") {
    base_tone = "professional"
  }

  return base_tone
}

LLM-Based Tone Matching

基于LLM的语气匹配

Prompt Engineering

Prompt Engineering

system_prompt = """
You are a sales assistant. Adapt your tone to match the prospect's communication style:

- If they're formal (complete sentences, professional language), respond formally
- If they're casual (abbreviations, emojis, fragments), respond casually
- Match their energy level

Brand guidelines:
- Always professional and helpful
- Can use humor if they do
- Never use profanity
- Stay within [formal - professional - friendly] range
"""

function generateResponse(message, context) {
  tone_analysis = analyzeTone(message)

  prompt = `
  Prospect's tone: ${describeTone(tone_analysis)}
  Prospect's message: ${message}
  Context: ${context}

  Respond in a matching tone while staying professional.
  `

  return llm.generate(system_prompt, prompt)
}
system_prompt = """
You are a sales assistant. Adapt your tone to match the prospect's communication style:

- If they're formal (complete sentences, professional language), respond formally
- If they're casual (abbreviations, emojis, fragments), respond casually
- Match their energy level

Brand guidelines:
- Always professional and helpful
- Can use humor if they do
- Never use profanity
- Stay within [formal - professional - friendly] range
"""

function generateResponse(message, context) {
  tone_analysis = analyzeTone(message)

  prompt = `
  Prospect's tone: ${describeTone(tone_analysis)}
  Prospect's message: ${message}
  Context: ${context}

  Respond in a matching tone while staying professional.
  `

  return llm.generate(system_prompt, prompt)
}

Few-Shot Examples

Few-Shot 示例

examples = [
  {
    input: "Hey! Super interested in your product. What's the price?",
    tone: "casual, high energy",
    output: "Hey! Glad to hear it! 😊 Pricing depends on your team size—usually ranges from $X-$Y/month. What's your setup like?"
  },
  {
    input: "Good morning. I would like to inquire about your enterprise pricing structure.",
    tone: "formal, low energy",
    output: "Good morning. Thank you for your inquiry. Our enterprise pricing is customized based on several factors. I would be happy to discuss your specific requirements. Would you have time for a brief call this week?"
  },
  {
    input: "Quick q - do you integrate with Salesforce?",
    tone: "casual, brief",
    output: "Yep! Full Salesforce integration. Want details?"
  }
]

examples = [
  {
    input: "Hey! Super interested in your product. What's the price?",
    tone: "casual, high energy",
    output: "Hey! Glad to hear it! 😊 Pricing depends on your team size—usually ranges from $X-$Y/month. What's your setup like?"
  },
  {
    input: "Good morning. I would like to inquire about your enterprise pricing structure.",
    tone: "formal, low energy",
    output: "Good morning. Thank you for your inquiry. Our enterprise pricing is customized based on several factors. I would be happy to discuss your specific requirements. Would you have time for a brief call this week?"
  },
  {
    input: "Quick q - do you integrate with Salesforce?",
    tone: "casual, brief",
    output: "Yep! Full Salesforce integration. Want details?"
  }
]

Channel-Specific Tone

分渠道语气规范

SMS

SMS

Default: Casual to professional Adjustments:
  • Shorter regardless of their length
  • Emojis acceptable if they use them
  • Less formal greetings
默认风格: 随意到专业 调整规则:
  • 无论对方消息多长,都保持简短
  • 如果对方使用表情,你也可以用
  • 使用更不正式的问候语

Email

邮件

Default: Professional Adjustments:
  • Match their formality level
  • Longer is acceptable if they write longer
  • Professional signature
默认风格: 专业 调整规则:
  • 匹配对方的正式程度
  • 如果对方写得较长,你也可以写得更长
  • 使用专业的签名

Chat

即时聊天

Default: Friendly professional Adjustments:
  • More casual acceptable
  • Real-time feel
  • Quicker, shorter messages
默认风格: 友好专业 调整规则:
  • 可以更随意
  • 保持实时沟通的感觉
  • 消息更快捷、更简短

Voice

语音

Default: Professional conversational Adjustments:
  • Match their pace
  • Mirror energy level
  • Adapt formality

默认风格: 专业对话式 调整规则:
  • 匹配对方的语速
  • 匹配对方的能量水平
  • 调整正式度

Maintaining Brand Voice

保持品牌调性

Brand Guardrails

品牌护栏

Define:
  • Minimum formality level
  • Maximum casualness
  • Acceptable/unacceptable words
  • Emoji policy
  • Humor boundaries
Example:
brand_guidelines = {
  min_formality: "friendly_professional",
  max_casualness: "casual",  // Never "very_casual"
  emoji_allowed: true,
  emoji_max: 1,  // Per message
  humor_allowed: true,
  humor_type: ["light", "friendly"],  // Not sarcasm
  banned_words: ["..."certain terms..."],
  always_include: ["professional signature on email"]
}
需要定义:
  • 最低正式程度
  • 最大随意程度
  • 可接受/不可接受的词汇
  • 表情使用政策
  • 幽默的边界
示例:
brand_guidelines = {
  min_formality: "friendly_professional",
  max_casualness: "casual",  // Never "very_casual"
  emoji_allowed: true,
  emoji_max: 1,  // Per message
  humor_allowed: true,
  humor_type: ["light", "friendly"],  // Not sarcasm
  banned_words: ["...\"certain terms...\"],
  always_include: ["professional signature on email"]
}

Voice Consistency

调性一致性

Core elements to maintain:
  • Helpfulness
  • Professionalism
  • Brand personality
  • Value-focused
Elements to adapt:
  • Formality
  • Energy
  • Detail level
  • Greetings/closings

需要保持的核心要素:
  • 乐于助人
  • 专业
  • 品牌个性
  • 以价值为核心
可以调整的要素:
  • 正式度
  • 能量水平
  • 细节程度
  • 问候语/结束语

Measuring Tone Matching

语气匹配效果衡量

Metrics

指标

Engagement:
  • Response rate by tone match
  • Conversation length by tone match
  • Sentiment changes through conversation
Quality:
  • Human review of tone appropriateness
  • Customer feedback
  • Brand guideline compliance
参与度:
  • 不同语气匹配度下的回复率
  • 不同语气匹配度下的对话长度
  • 对话过程中的情绪变化
质量:
  • 人工评估语气的合适程度
  • 客户反馈
  • 品牌指南合规性

A/B Testing

A/B测试

Test:
  • Matching tone vs. fixed tone
  • Different matching algorithms
  • Tone ranges for different segments
Measure:
  • Engagement
  • Conversion
  • Satisfaction

测试内容:
  • 匹配语气 vs 固定语气
  • 不同的匹配算法
  • 不同细分群体的语气范围
衡量指标:
  • 参与度
  • 转化率
  • 满意度

Common Mistakes

常见错误

1. Over-Matching

1. 过度匹配

Problem: Mirroring everything, losing brand identity Fix: Adapt within brand boundaries
问题: 镜像对方的一切,失去品牌身份 解决方法: 在品牌边界内调整

2. Under-Matching

2. 匹配不足

Problem: Fixed tone regardless of prospect Fix: Detect and respond to their style
问题: 无论潜在客户的风格如何,都使用固定语气 解决方法: 检测并响应对方的风格

3. Jarring Shifts

3. 语气突变

Problem: Sudden tone changes feel unnatural Fix: Gradual adaptation, consistent conversation
问题: 突然的语气变化会让人感觉不自然 解决方法: 逐步调整,保持对话一致性

4. Matching Negativity

4. 匹配负面情绪

Problem: Prospect is angry, bot matches anger Fix: Match formality, not negativity
问题: 潜在客户生气时,机器人也用愤怒的语气回应 解决方法: 匹配正式度,而非负面情绪

5. Forced Casualness

5. 强行随意

Problem: Casual tone where inappropriate Fix: Industry/context awareness

问题: 在不合适的场合使用随意的语气 解决方法: 具备行业/上下文感知能力

Implementation Checklist

实施清单

Phase 1: Basic Tone Detection

阶段1:基础语气检测

  • Detect formality level
  • Detect energy level
  • Categorize messages
  • 检测正式度
  • 检测能量水平
  • 对消息进行分类

Phase 2: Response Adaptation

阶段2:回复适配

  • Create tone-varied templates
  • Select templates by detected tone
  • Test and refine
  • 创建不同语气的模板
  • 根据检测到的语气选择模板
  • 测试并优化

Phase 3: Dynamic Generation

阶段3:动态生成

  • LLM-based tone matching
  • Brand guideline enforcement
  • Continuous learning

  • 基于LLM的语气匹配
  • 品牌规则强制执行
  • 持续学习

Questions to Ask

需要询问的问题

If you need more context:
  1. What's your brand voice today?
  2. What audience do you serve?
  3. What channels does your bot operate on?
  4. What tone problems have you observed?
  5. What are your brand's communication boundaries?

如果你需要更多背景信息:
  1. 你们目前的品牌调性是什么?
  2. 你服务的受众是哪些?
  3. 你的机器人运行在哪些渠道?
  4. 你观察到了哪些语气相关的问题?
  5. 你们品牌的沟通边界是什么?

Related Skills

相关技能

  • sentiment-analysis: Detecting emotional state
  • adaptability: Human adaptability principles
  • conversational-flow-management: Natural conversation
  • personalization-at-scale: Personalizing communication
  • sentiment-analysis:情绪状态检测
  • adaptability:人类适应性原则
  • conversational-flow-management:自然对话
  • personalization-at-scale:规模化个性化沟通