关于 chatbot-conversation-design
chatbot-conversation-design 面向设计或审查聊天机器人的开发者、UX 文案和产品经理。内容涵盖意图规划、状态管理、歧义处理、回退路径和迭代测试。
主要功能
- 01定义角色与服务范围
- 02规划意图和用户旅程
- 03设计槽位收集与消歧
- 04设计回退和人工转接流程
- 05管理上下文与对话状态
- 06原型测试与迭代
适用场景
- 01规划新聊天机器人的对话架构
- 02审查现有对话流程
- 03为模糊请求设计恢复路径
- 04处理多轮对话中的主题切换
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ seb1n/ awesome-ai-agent-skills --skill chatbot-conversation-design安装后在 Claude Code 中输入/chatbot-conversation-design确认已加载。
详细介绍
聊天机器人对话设计
这项技能提供了一套全面的框架,用于设计自然流畅、能妥善处理歧义并引导用户达成目标的聊天机器人对话。内容涵盖完整的设计生命周期——从角色设定和意图映射,到对话状态管理、错误恢复和迭代测试。重点在于构建能够应对意外输入,同时保持语气一致且乐于助人的对话。
工作流
-
定义机器人的角色和范围。 确定聊天机器人的性格特点(友好、专业、简洁、风趣)和行为准则。明确机器人能做什么、不能做什么。一个范围明确、擅长五项任务的机器人,胜过一个目标模糊、试图处理五十项任务的机器人。将角色设定记录在风格指南中,其中应包含用词偏好、表情符号使用规则、回复长度目标和升级处理的触发条件。
-
映射意图、实体和用户旅程。 列出机器人必须处理的所有意图,包括主要任务意图(例如,
order.place、account.reset_password)和元意图(例如,help、cancel、speak_to_human)。针对每种意图,列出机器人必须收集的必要实体(槽位)。将对话流程映射为有向图,展示顺畅路径、分支节点和退出条件。确保每条路径最终都能解决问题或顺利转接。 -
设计槽位填充和消歧对话。 针对每种意图,定义槽位填充顺序——哪些实体是必需的,哪些是可选的,以及机器人应按什么顺序询问。当用户输入存在歧义时(例如,有多个商品符合条件时,用户说“那个大的”),设计消歧提示,提供清晰选项,避免让用户应接不暇。对于付款或取消等高风险操作,使用确认提示。
-
构建错误恢复和兜底流程。 设计三个层级的兜底方案:(1)置信度较低时换种方式提问;(2)经过两次尝试仍无法明确意图时,提供一组有限选项;(3)机器人无法恢复时,升级至人工 Agent。切勿让对话陷入死胡同。每种错误状态都应包含恢复路径,以及重新开始或顺利退出的方式。
-
实现上下文延续和状态管理。 定义对话状态如何跨轮次保留。指定哪些槽位会延续(例如,用户姓名应在整个会话中保留),哪些槽位应在任务之间重置。设计上下文栈,使机器人能够处理对话中途的话题切换(“对了,在继续之前,你能查一下我的余额吗?”),并在之后返回原有流程。
-
制作原型、测试并迭代。 使用对话脚本或 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 对消息长度和按钮选项的限制与网页组件不同。应根据平台能力设计可灵活调整的对话,而不是强行采用一刀切的流程。