Skip to main content

Dialog Agents

Build conversational experiences with intent-based orchestration.

Overview

Dialog Agents provide a structured approach to conversation design using DialogGPT—an orchestration engine that manages conversational flows autonomously. Unlike fully agentic apps, dialog agents use predefined intents and flows while leveraging LLMs for natural language understanding.

DialogGPT

DialogGPT is the orchestration engine that powers dialog agents. It:
  • Detects user intents without extensive training data
  • Manages multi-intent conversations
  • Handles ambiguity through clarification
  • Generates contextually appropriate responses

How It Works

Three-Phase Processing

┌─────────────────────────────────────────────────────────────────┐
│                      Phase 1: Input Processing                   │
├─────────────────────────────────────────────────────────────────┤
│  • Analyze user input and conversation history                  │
│  • Retrieve relevant chunks from dialog/FAQ embeddings          │
│  • Use RAG to identify potential intents                        │
└───────────────────────────────────┬─────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│                    Phase 2: Intent Identification                │
├─────────────────────────────────────────────────────────────────┤
│  • Use LLM to identify intents from retrieved chunks            │
│  • Resolve ambiguities through clarification                    │
│  • Determine execution order for multi-intent scenarios         │
│  • Select fulfillment strategy                                  │
└───────────────────────────────────┬─────────────────────────────┘


┌─────────────────────────────────────────────────────────────────┐
│                     Phase 3: Flow Management                     │
├─────────────────────────────────────────────────────────────────┤
│  • Trigger resolved intents                                     │
│  • Execute dialog tasks and FAQ responses                       │
│  • Generate system responses                                    │
│  • Manage sequential or parallel multi-intent flows             │
└─────────────────────────────────────────────────────────────────┘

Key Capabilities

Intent Detection

Uses RAG and LLMs to accurately identify intents without requiring extensive training data.
User: "I want to check my balance and also transfer some money"

Detected Intents:
├── check_balance (confidence: 0.95)
└── transfer_money (confidence: 0.92)

Execution Order: Sequential

Multi-Intent Handling

Process multiple intents within a single query: Sequential: Intents executed one after another
check_balance → show_balance → transfer_money → confirm_transfer
Parallel: Independent intents processed simultaneously
┌─ check_balance ─────┐
│                     ├─→ combined_response
└─ get_recent_activity┘

Ambiguity Resolution

Handle unclear intents through real-time clarification:
User: "I need to make a change"

Agent: "I can help with that. Would you like to:
        • Change your account settings
        • Change a recent order
        • Change your payment method"

Conversational Nuance

Naturally handle:
  • Pauses and hesitation
  • Repetitions and corrections
  • Conversation restarts
  • Topic switches

Dialog vs Agentic Apps

AspectDialog AgentsAgentic Apps
StructureIntent-based flowsAutonomous reasoning
TrainingDialog definitionsAgent instructions
FlexibilityPredefined pathsDynamic decisions
Best forStructured tasksOpen-ended problems

When to Use Dialog Agents

  • Tasks with well-defined conversation paths
  • FAQ-style interactions
  • Form-filling and data collection
  • Guided processes with clear steps

When to Use Agentic Apps

  • Complex, open-ended requests
  • Tasks requiring multi-step reasoning
  • Dynamic tool selection
  • Situations where paths aren’t predetermined

Building Dialog Agents

Define Intents

intents:
  - name: check_balance
    description: User wants to check their account balance
    examples:
      - "What's my balance?"
      - "How much money do I have?"
      - "Show me my account balance"

  - name: transfer_money
    description: User wants to transfer money between accounts
    examples:
      - "Transfer $100 to savings"
      - "Move money to my other account"
      - "I want to send money"
    slots:
      - name: amount
        type: currency
        required: true
      - name: destination
        type: account
        required: true

Create Flows

flows:
  check_balance:
    - step: fetch_balance
      action: call_api
      endpoint: /accounts/balance

    - step: respond
      action: say
      message: "Your current balance is {{balance}}"

  transfer_money:
    - step: confirm_amount
      action: ask
      message: "How much would you like to transfer?"
      slot: amount

    - step: confirm_destination
      action: ask
      message: "Which account should I transfer to?"
      slot: destination

    - step: execute_transfer
      action: call_api
      endpoint: /transfers
      body:
        amount: "{{amount}}"
        to: "{{destination}}"

    - step: confirm
      action: say
      message: "Done! I've transferred {{amount}} to {{destination}}"

Configure FAQs

faqs:
  - question: "What are your hours?"
    answer: "We're open Monday-Friday, 9am-5pm EST."

  - question: "How do I reset my password?"
    answer: "You can reset your password at account.example.com/reset"

  - question: "What's your return policy?"
    answer: "Items can be returned within 30 days of purchase."

Model Configuration

DialogGPT supports multiple model types:
Model TypeUse Case
Commercial (OpenAI, Anthropic)Production deployments
XO GPTKore.ai’s optimized models
CustomFine-tuned models

Integration with Agentic Apps

Dialog agents can work alongside agentic apps:
hybrid_configuration:
  # Use dialog agent for structured flows
  dialog_intents:
    - check_balance
    - transfer_money
    - view_transactions

  # Hand off to agentic app for complex requests
  agentic_handoff:
    - complex_financial_advice
    - troubleshooting
    - general_questions