Claude-skill-registry conversational-ai-flow
Эксперт conversational AI. Используй для chatbot flows, dialog design, NLU intents и conversational UX.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/conversational-ai-flow" ~/.claude/skills/majiayu000-claude-skill-registry-conversational-ai-flow && rm -rf "$T"
manifest:
skills/data/conversational-ai-flow/SKILL.mdsource content
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
- Мониторьте реальные разговоры для улучшения