Design conversational AI chatbots including intent recognition, slot filling, dialogue flow, and response generation. Use this skill when the user needs to build a chatbot, design conversation flows, implement intent classification, or improve chatbot accuracy — even if they say 'build a chatbot', 'our bot doesn't understand users', 'design a FAQ bot', or 'improve our chatbot's responses'.
Scanned 5/27/2026
Install via CLI
openskills install asgard-ai-platform/skills---
name: "cs-chatbot-design"
description: "Design conversational AI chatbots including intent recognition, slot filling, dialogue flow, and response generation. Use this skill when the user needs to build a chatbot, design conversation flows, implement intent classification, or improve chatbot accuracy — even if they say 'build a chatbot', 'our bot doesn't understand users', 'design a FAQ bot', or 'improve our chatbot's responses'."
metadata:
category: "WP-06 Agent通訊+客服"
tags: ["chatbot", "conversational-ai", "nlu", "dialogue"]
---
# Chatbot Design
## Framework
```
IRON LAW: Intent First, Response Second
A chatbot must UNDERSTAND what the user wants (intent) before crafting
a response. Building response templates without intent classification
produces a keyword-matching FAQ, not a chatbot.
Flow: User message → Intent classification → Slot extraction → Response
```
### Core NLU Pipeline
| Stage | What It Does | Example |
|-------|-------------|---------|
| **Intent Classification** | Identify what the user wants to do | "What time do you close?" → intent: `check_hours` |
| **Entity/Slot Extraction** | Extract key information from the message | "Book a table for 4 on Friday" → slots: {party_size: 4, date: Friday} |
| **Dialogue Management** | Decide the next action (ask for missing info, confirm, execute) | Missing slot `time` → ask "What time would you like?" |
| **Response Generation** | Produce the reply | "I've booked a table for 4 on Friday at 7pm. See you then!" |
### Intent Design
- **Start with 10-15 core intents** covering 80% of user queries
- Each intent needs 10-20 training examples (varied phrasings)
- Include a `fallback` intent for unrecognized inputs
- Group related intents: `order_status`, `order_cancel`, `order_modify` under "Order Management"
### Dialogue Flow Patterns
| Pattern | When to Use | Example |
|---------|-----------|---------|
| **Single-turn** | Simple Q&A, no context needed | "What are your hours?" → respond immediately |
| **Multi-turn (slot filling)** | Need multiple pieces of info | "Book a table" → ask party size → ask date → ask time → confirm |
| **Branching** | Different paths based on user's answer | "Do you have an account?" → Yes: login flow / No: registration flow |
| **Confirmation** | Before executing actions | "I'll cancel order #12345. Is that correct?" |
| **Handoff** | Bot can't handle the request | "Let me connect you with a human agent" |
### Response Design Principles
1. **Acknowledge first**: "Got it, you want to check your order status."
2. **Be concise**: Answer the question, then stop. Don't add unnecessary information.
3. **Offer next steps**: "Is there anything else I can help with?" or suggest related actions.
4. **Use quick replies/buttons**: Reduce typing, guide the conversation.
5. **Personality**: Define a consistent tone (friendly, professional, casual) and stick to it.
### Metrics
| Metric | Definition | Target |
|--------|-----------|--------|
| **Intent accuracy** | % correctly classified intents | > 85% |
| **Containment rate** | % resolved without human handoff | > 60-70% |
| **CSAT** | Customer satisfaction score | > 4.0/5 |
| **Fallback rate** | % triggering fallback/unknown intent | < 15% |
| **Resolution time** | Average time to resolve | < 2 minutes |
## Output Format
```markdown
# Chatbot Design: {Use Case}
## Intent Catalog
| Intent | Description | Example Utterances | Priority |
|--------|-----------|-------------------|---------|
| {intent} | {what it means} | "{example 1}", "{example 2}" | H/M/L |
## Dialogue Flows
### {Flow Name}
1. User: {trigger utterance}
2. Bot: {response + slot question if needed}
3. User: {provides info}
4. Bot: {confirmation or action}
## Fallback Strategy
- After 1 miss: rephrase + suggest options
- After 2 misses: offer human handoff
## Metrics Targets
| Metric | Target |
|--------|--------|
| Intent accuracy | > {X%} |
| Containment | > {X%} |
```
## Gotchas
- **Users don't follow your flow**: People type in unexpected ways, change topics mid-conversation, and give incomplete information. Design for messiness, not just the happy path.
- **Fallback is your most important intent**: A good fallback ("I'm not sure I understood. Did you mean X, Y, or Z?") is better than a bad guess.
- **LLM-powered bots still need guardrails**: Using GPT/Claude for response generation? Add intent classification as a first layer to route and constrain, preventing hallucination and off-topic responses.
- **Test with real users, not team members**: Your team knows how the bot works and phrases things "correctly." Real users don't. Test with 10+ real users before launch.
- **Conversation logs are gold**: Review conversation logs weekly. Failed conversations reveal missing intents, confusing flows, and training data gaps.
## References
- For NLU training data best practices, see `references/nlu-training.md`
- For LINE/Messenger platform integration, see the ecom-conversational skill
No comments yet. Be the first to comment!