conversational-ai-flow

dengineproblem's avatarfrom dengineproblem

Эксперт conversational AI. Используй для chatbot flows, dialog design, NLU intents и conversational UX.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 4, 2026

When & Why to Use This Skill

This Claude skill is a specialized expert in Conversational AI architecture, focusing on the end-to-end design of chatbot flows, NLU intent structures, and conversational UX. It provides technical frameworks for state management, intent-based routing, and sophisticated error recovery, enabling developers to build resilient and intuitive dialogue systems.

Use Cases

  • Designing complex multi-turn dialogue flows for customer service bots and virtual assistants.
  • Implementing intent-based routing and automated slot-filling logic to streamline user data collection.
  • Developing robust error recovery strategies and fallback mechanisms to handle ambiguous user inputs gracefully.
  • Architecting state management systems that maintain context and conversation history across long interactions.
  • Optimizing conversational UX through contextual response generation and multimodal rich-media components.
  • Monitoring and improving bot performance using flow metrics like completion rates and abandonment point analysis.
nameconversational-ai-flow
descriptionЭксперт conversational AI. Используй для chatbot flows, dialog design, NLU intents и conversational UX.

Conversational AI Flow Expert

Эксперт по проектированию и реализации потоков разговорного ИИ.

Основные принципы дизайна

Управление состоянием

class ConversationState:
    def __init__(self):
        self.current_intent = None
        self.entities = {}
        self.conversation_history = []
        self.flow_position = "start"
        self.confidence_threshold = 0.7

    def update_context(self, user_input, intent, entities):
        self.conversation_history.append({
            "user_input": user_input,
            "intent": intent,
            "entities": entities
        })
        self.entities.update(entities)
        self.current_intent = intent

Паттерны архитектуры потоков

Маршрутизация на основе намерений

flows:
  booking_flow:
    entry_conditions:
      - intent: "book_appointment"
    steps:
      - name: "collect_datetime"
        prompt: "When would you like to schedule?"
        validation: "datetime_validator"
      - name: "confirm_booking"
        prompt: "Confirm booking on {datetime}?"
        actions: ["create_booking", "send_confirmation"]

  fallback_flow:
    triggers: ["low_confidence", "unknown_intent"]
    strategy: "clarification_questions"

Паттерн заполнения слотов

def slot_filling_handler(state, required_slots):
    missing_slots = [s for s in required_slots if s not in state.entities]

    if missing_slots:
        return generate_slot_prompt(missing_slots[0], state)

    return proceed_to_next_step(state)

Обработка ошибок и восстановление

Прогрессивное раскрытие

class ErrorRecovery:
    def handle_misunderstanding(self, state, attempt_count):
        strategies = {
            1: "I didn't quite catch that. Could you rephrase?",
            2: "Let me try differently. Are you looking to: [options]?",
            3: "Let me connect you with a human agent."
        }
        return strategies.get(attempt_count, strategies[3])

Генерация ответов

Контекстуальные шаблоны

class ResponseGenerator:
    templates = {
        "confirmation": [
            "Got it! {summary}. Is that correct?",
            "Let me confirm: {summary}. Does this look right?"
        ],
        "progress": [
            "Great! We've got {completed}. Next, {next_step}.",
            "Perfect! Just need {remaining} and we're done."
        ]
    }

Мультимодальные ответы

{
  "response_type": "rich",
  "text": "Here are your options:",
  "components": [
    {
      "type": "quick_replies",
      "options": [
        {"title": "Schedule Appointment", "payload": "intent:book"},
        {"title": "Check Status", "payload": "intent:status"}
      ]
    }
  ]
}

Аналитика и оптимизация

def track_flow_metrics(conversation_id, metrics):
    return {
        "completion_rate": metrics.completed / metrics.started,
        "average_turns": metrics.total_turns / metrics.conversations,
        "fallback_rate": metrics.fallbacks / metrics.total_turns,
        "abandonment_points": identify_drop_off_points(conversation_id)
    }

Лучшие практики

  • Определите четкую личность и тон бота
  • Предвосхищайте потребности пользователей
  • Используйте резюме для длинных диалогов
  • Тестируйте все пути и edge cases
  • Мониторьте реальные разговоры для улучшения