mcpField
C
chatbot-conversation-design

chatbot-conversation-design

github.com/seb1n设计与 UI232149 次安装11 周前更新
代码仓库

关于 chatbot-conversation-design

chatbot-conversation-design 面向设计或审查聊天机器人的开发者、UX 文案和产品经理。内容涵盖意图规划、状态管理、歧义处理、回退路径和迭代测试。

主要功能

  1. 01定义角色与服务范围
  2. 02规划意图和用户旅程
  3. 03设计槽位收集与消歧
  4. 04设计回退和人工转接流程
  5. 05管理上下文与对话状态
  6. 06原型测试与迭代

适用场景

  1. 01规划新聊天机器人的对话架构
  2. 02审查现有对话流程
  3. 03为模糊请求设计恢复路径
  4. 04处理多轮对话中的主题切换

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/seb1n/awesome-ai-agent-skills --skill chatbot-conversation-design

安装后在 Claude Code 中输入/chatbot-conversation-design确认已加载。

详细介绍

聊天机器人对话设计

这项技能提供了一套全面的框架,用于设计自然流畅、能妥善处理歧义并引导用户达成目标的聊天机器人对话。内容涵盖完整的设计生命周期——从角色设定和意图映射,到对话状态管理、错误恢复和迭代测试。重点在于构建能够应对意外输入,同时保持语气一致且乐于助人的对话。

工作流

  1. 定义机器人的角色和范围。 确定聊天机器人的性格特点(友好、专业、简洁、风趣)和行为准则。明确机器人能做什么、不能做什么。一个范围明确、擅长五项任务的机器人,胜过一个目标模糊、试图处理五十项任务的机器人。将角色设定记录在风格指南中,其中应包含用词偏好、表情符号使用规则、回复长度目标和升级处理的触发条件。

  2. 映射意图、实体和用户旅程。 列出机器人必须处理的所有意图,包括主要任务意图(例如,order.place、account.reset_password)和元意图(例如,help、cancel、speak_to_human)。针对每种意图,列出机器人必须收集的必要实体(槽位)。将对话流程映射为有向图,展示顺畅路径、分支节点和退出条件。确保每条路径最终都能解决问题或顺利转接。

  3. 设计槽位填充和消歧对话。 针对每种意图,定义槽位填充顺序——哪些实体是必需的,哪些是可选的,以及机器人应按什么顺序询问。当用户输入存在歧义时(例如,有多个商品符合条件时,用户说“那个大的”),设计消歧提示,提供清晰选项,避免让用户应接不暇。对于付款或取消等高风险操作,使用确认提示。

  4. 构建错误恢复和兜底流程。 设计三个层级的兜底方案:(1)置信度较低时换种方式提问;(2)经过两次尝试仍无法明确意图时,提供一组有限选项;(3)机器人无法恢复时,升级至人工 Agent。切勿让对话陷入死胡同。每种错误状态都应包含恢复路径,以及重新开始或顺利退出的方式。

  5. 实现上下文延续和状态管理。 定义对话状态如何跨轮次保留。指定哪些槽位会延续(例如,用户姓名应在整个会话中保留),哪些槽位应在任务之间重置。设计上下文栈,使机器人能够处理对话中途的话题切换(“对了,在继续之前,你能查一下我的余额吗?”),并在之后返回原有流程。

  6. 制作原型、测试并迭代。 使用对话脚本或 Botmock、Voiceflow、Dialogflow CX 等工具构建低保真原型。邀请真实用户进行测试,找出对话中断的环节。跟踪以下指标:任务完成率、平均解决轮数、兜底触发率和升级率。优先迭代表现最差的流程。

使用方法

这项技能适用于设计对话式界面的开发者、UX 文案撰写者和产品经理。向 Agent 提供机器人的用途、目标用户群以及需要处理的任务列表。

  • 对于新聊天机器人: 从头到尾遵循此工作流,构建完整的对话架构。
  • 对于现有聊天机器人: 使用这项技能审查对话流程、找出死胡同并改进错误处理。

提示词格式:

Design a chatbot conversation for [use case].
Bot persona: [personality traits]
Supported tasks: [list of tasks]
Platform: [web widget / Slack / WhatsApp / voice assistant]

示例

示例 1:客户支持机器人——完整对话流程

设计规范:

{
  "bot_name": "HelpBot",
  "persona": "Friendly, efficient, empathetic",
  "intent": "order.track",
  "required_entities": [
    { "name": "order_id", "type": "string", "prompt": "What's your order number?" },
    { "name": "email", "type": "email", "prompt": "What email did you use for the order?" }
  ],
  "optional_entities": [
    { "name": "issue_type", "type": "enum", "values": ["delayed", "damaged", "wrong_item", "other"] }
  ]
}

对话流程:

User: Where's my order?

HelpBot: I'd be happy to look that up for you! Could you share your order number?
         It usually starts with "ORD-" and is in your confirmation email.

User: ORD-29481

HelpBot: Got it. And what email address did you place the order with?

User: [email protected]

HelpBot: Thanks, Marcus. I found your order — here's the latest status:

         Order: ORD-29481
         Status: In transit
         Carrier: FedEx
         Tracking: 7749 2381 0042
         Estimated delivery: Thursday, March 6

         Is there anything else about this order I can help with?

User: It was supposed to arrive yesterday.

HelpBot: I'm sorry about the delay. It looks like there was a weather-related
         shipping disruption. Based on the latest tracking update, it should
         arrive by end of day Thursday.

         Would you like me to:
         1. Send you tracking updates via email
         2. Connect you with our shipping team
         3. Something else

User: Option 1 please.

HelpBot: Done! You'll receive email updates at [email protected] whenever the
         tracking status changes. Is there anything else I can help with?
示例 2:错误处理与回退流程

场景: 机器人收到无法分类的输入。

User: asdfghjkl

HelpBot: I didn't quite catch that. Could you rephrase what you're looking for?
         I can help with things like:
         - Tracking an order
         - Returns and refunds
         - Account questions

User: I want to do the thing with the stuff

HelpBot: I want to make sure I help you with the right thing. Which of these
         is closest to what you need?
         1. Track an existing order
         2. Start a return or refund
         3. Update your account info
         4. Something else

User: 4

HelpBot: No problem — let me connect you with a team member who can help.
         You'll be transferred to a live agent shortly. Your reference
         number is #SUP-8842 so you won't have to repeat anything.

         [Escalating to human agent...]

状态管理说明: 两次分类失败后(置信度 < 0.3),机器人会从开放式提示切换为受限选项列表。第三次失败或用户明确选择“其他”后,机器人会在交接负载中附上完整上下文并升级处理。

最佳实践

  • 优先设计异常流程。 大多数对话都会偏离理想流程。与其投入时间构建直观易行的正常流程,不如更多关注错误恢复和边缘情况。
  • 机器人每次发言不超过 3 句话。 过长的回复会让用户匆匆浏览或失去兴趣。将复杂信息拆分为多轮对话,或使用结构化格式(列表、卡片)。
  • 执行不可逆操作前先确认。 取消、付款或删除数据等操作前,务必添加确认步骤。明确告知用户将要发生什么。
  • 采用渐进式呈现。 不要一开始就列出所有选项。先展示最常用的路径,仅在需要时提供“更多选项”。
  • 自然地在多轮对话中延续上下文。 如果用户说“我想要大份”,机器人应记得上一轮讨论的是披萨。明确确认(“大份披萨,对吗?”)比让用户重复更好。
  • 每一步都提供退出方式。 用户应始终可以说“取消”“重新开始”或“联系人工客服”,并立即获得有帮助的回复。

边缘情况

  • 多意图输入。 当用户说“追踪我的订单,也帮我发起退货”时,机器人应确认这两个意图,并按顺序处理,在切换到下一项任务时进行确认。
  • 流程中途切换话题。 如果用户在对话中途切换话题,应将当前对话状态压入堆栈并处理新意图。中断事项解决后,主动询问是否返回之前的任务。
  • 信息矛盾。 如果用户提供了相互矛盾的信息(例如在同一会话中提供了不同的电子邮件地址),应指出矛盾并请求澄清,而不是默默采用最新值。
  • 敏感或情绪化内容。 如果用户表达了沮丧、愤怒或难过,机器人应先回应用户的情绪(“我理解这确实令人沮丧”),再继续提供解决方案。对于明显心情不佳的用户,切勿用泛泛的热情语气回应。
  • 平台特定限制。 WhatsApp 对消息长度和按钮选项的限制与网页组件不同。应根据平台能力设计可灵活调整的对话,而不是强行采用一刀切的流程。

评论

支持 Markdown