Files
eveai_docs/docs/Specialists/specialists_introduction.md
2025-12-11 14:43:16 +01:00

4.6 KiB

id, title, description, sidebar_label, sidebar_position
id title description sidebar_label sidebar_position
specialists Understanding Specialists - Introduction Learn how specialists use Evie's Library to execute specific tasks Specialists Intro 1

Understanding Specialists - Introduction

Overview

Specialists are powerful components in Evie's ecosystem that perform specific activities using information from Evie's Library. Think of specialists as expert assistants, each trained for particular tasks - from answering questions to filling templates or providing specialized support.

How Specialists Work

Every specialist follows a structured approach:

  1. Information Gathering: Using one or more retrievers, specialists search Evie's Library for relevant information
  2. Information Processing: Retrieved information is processed according to the specialist's specific algorithm
  3. Task Execution: The specialist performs its designated task using:
    • Retrieved information
    • Its configuration settings
    • Provided arguments
flowchart TD
    A[User Request] --> B[Specialist]
    B --> C{Process Arguments}
    C --> D[Evaluate Specialist Arguments]
    D --> E[Push Arguments to Retrievers]
    E --> F[Search Library using Retrievers]
    F --> G[Combine Retrieved Information]
    G --> H[Execute Specialist Algorithm]
    H --> I[Return Results]
    
    style A fill:#9c2d66,stroke:#333,stroke-width:2px
    style B fill:#423372,stroke:#333,stroke-width:2px
    style I fill:#9c2d66,stroke:#333,stroke-width:2px

Key Components

The relationship between specialists and other components is shown in this diagram:

classDiagram
    class Specialist {
        +id: Integer
        +name: String
        +description: Text
        +type: String
        +configuration: JSON
        +arguments: JSON
        +results: JSON
    }
    
    class Retriever {
        +id: Integer
        +name: String
        +catalog_id: Integer
        +type: String
        +configuration: JSON
    }
    
    Specialist "*" -- "*" Retriever : uses
    note for Specialist "Each specialist can use multiple retrievers"
    note for Retriever "Each retriever can be used by multiple specialists"

Sessions and Interactions

Each specialist operates within sessions, managing interactions as shown here:

classDiagram
    class ChatSession {
        +id: Integer
        +session_id: String
        +session_start: DateTime
        +session_end: DateTime
    }
    
    class Interaction {
        +id: Integer
        +chat_session_id: Integer
        +specialist_id: Integer
        +specialist_arguments: JSON
        +specialist_results: JSON
        +question_at: DateTime
        +answer_at: DateTime
    }
    
    class Specialist {
        +id: Integer
        +name: String
        +type: String
    }
    
    ChatSession "1" -- "*" Interaction
    Specialist "1" -- "*" Interaction

Working with Specialists

Configuration & Arguments

Specialists use three key data structures:

  1. Configuration

    • Fixed parameters that remain constant during all interactions
    • Defines core behavior settings (e.g., inference parameters)
    • Set during specialist creation
  2. Arguments

    • Variable parameters passed during each interaction
    • Can change between interactions within a session
    • Example: questions or specific task parameters
  3. Results

    • Output structure returned after each interaction
    • Contains the specialist's response or task output
    • Format depends on specialist type

Sessions

  • Each session is dedicated to one specialist
  • Sessions maintain context across multiple interactions
  • Session boundaries are specialist-specific
    • For Q&A specialists: typically aligned with client communication sessions
    • For task-based specialists: may be bound by task completion

Argument Inheritance

Specialists implement an intelligent argument inheritance mechanism:

  1. Arguments can be defined at both specialist and retriever levels
  2. When argument names match:
    • Specialist arguments take precedence
    • Retriever-specific values can override this if explicitly set
  3. This allows for:
    • Consistent argument handling across retrievers
    • Flexibility when needed for specific retrievers

Current Specialist Types

Currently, the main specialist type is the RAG (Retrieval-Augmented Generation) Specialist, focused on question-answering using library content. Additional specialist types are being developed for:

  • Sales support
  • Template filling
  • Specialized customer support
  • Document analysis
  • And more...

Detailed documentation for each specialist type is available in their respective sections.