tone-matching
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseTone 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:
-
Context
- What channels does your bot operate on?
- What's your brand voice?
- What audience do you serve?
-
Current State
- How does your bot currently communicate?
- Does it sound robotic or natural?
- Is the tone appropriate for your audience?
-
Goals
- What would better tone matching achieve?
- What communication style should be the baseline?
在提供指导前,需要明确以下信息:
-
背景信息
- 你的机器人运行在哪些渠道?
- 你们的品牌调性是什么?
- 你服务的受众是哪些?
-
当前状态
- 你的机器人目前的沟通方式是怎样的?
- 它听起来是生硬的还是自然的?
- 语气是否适合你的受众?
-
目标
- 更好的语气匹配能带来什么效果?
- 基准沟通风格应该是什么样的?
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
默认风格: 随意到专业
调整规则:
- 无论对方消息多长,都保持简短
- 如果对方使用表情,你也可以用
- 使用更不正式的问候语
邮件
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:
- What's your brand voice today?
- What audience do you serve?
- What channels does your bot operate on?
- What tone problems have you observed?
- What are your brand's communication boundaries?
如果你需要更多背景信息:
- 你们目前的品牌调性是什么?
- 你服务的受众是哪些?
- 你的机器人运行在哪些渠道?
- 你观察到了哪些语气相关的问题?
- 你们品牌的沟通边界是什么?
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:规模化个性化沟通