> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kosmoy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Assistants

> Learn how to create, configure, deploy and manage AI Assistants in Kosmoy Studio.

# Working with Assistants

**Assistants** are the core of Kosmoy Studio's no-code AI application development. They are AI-powered entities designed to perform specific tasks or fulfill particular business objectives.  This section guides you through creating, configuring, deploying, testing, and monitoring your Assistants.

## Assistant Concepts

* **No-Code AI:** Assistants are built using a visual, intuitive interface, requiring no coding knowledge.
* **Templates:** Kosmoy Studio provides pre-built templates to help you quickly create common types of Assistants.  Current templates include:
  * **Receptionist Assistant:**  Handles reception-related tasks (e.g., scheduling meetings). *Requires a Google or Outlook Calendar integration.*
  * **HR Engagement Analyst:** Provides insights and analysis related to human resources.
  * **Wealth Management Assistant:** Assists with financial planning and investment tasks.
  * **Personal Assistant:** A general-purpose assistant for various personal tasks.
  * **Sales Assistant:** Supports sales-related activities.
  * **Customer Support Assistant:** Helps with customer service inquiries.
* **Private vs. Public:**
  * **Private Assistants:**  Accessible only to users within your Kosmoy organization via **Kosmoy Chat**.
  * **Public Assistants:** Designed to be accessible to the general public through configured **Communication Channels** (e.g., WhatsApp via Twilio).
* **Data Channels**: Assistants can be connected to data channels.
* **Gateways**: Assistants can be connected to Gateways

## Creating an Assistant

1. **Navigate to Assistants:** From the Kosmoy Studio home page, click on the **"Apps"** menu in the left-hand navigation bar, then select **"Assistants"**.

2. **Add a New Assistant:** Click the **"+ ADD"** button located in the upper right corner of the Assistants section.

3. **Step 1: Set Assistant Properties:**
   * **Avatar:** Select an avatar for your Assistant.
   * **Name:** Give your Assistant a unique and descriptive name.
   * **Description:** Provide a brief description of your Assistant's purpose.
   * **Template:** Choose an Assistant template from the dropdown menu.

     *Note:* If you select the "Receptionist Assistant" template, you will be prompted to select a pre-configured Google or Outlook Calendar integration.
   * **Scope:** Select either "Private" or "Public" from the dropdown menu. This determines how the Assistant will be deployed and accessed.
   * **Language:** Select the primary language for your Assistant. The default is "auto," which attempts to automatically detect the language. Other options include English, Spanish, Italian, and French.

4. **Click "Next".**

5. **Step 2: Set Assistant Data Access and Memory:**
   * **Data Channel (Optional):** Select a pre-configured Data Channel from the dropdown menu to connect your Assistant to a data source.
   * **Memory:** Configure the Assistant's memory settings:
     * **Time Window:** Define the length of time (e.g., minutes, hours, days) for which messages should be kept in memory. The default is 1 day.
     * **Past Interactions:** Specify the maximum number of past interactions (question-answer pairs) to retain within the time window. The maximum is 25, and the default is 10.
   * **Conversation Logger (Optional):** Enable this feature to record assistant interactions, which is helpful to perform a QA over the AI assistant performance.
     * Select SQL database with write rights enabled
     * Conversation Breakdown Strategy: Select the amount of time needed to pass from the last message received to consider the current conversation session finalized.
     * Decide if you would like to track user data or not

6. **Click "Next".**

7. **Step 3: Set Assistant Security Parameters:** This step will be deprecated in the future.
   * **Guardrails Panel (Optional):** Enable the global toggle and select individual guardrails (Prompt Injection, Harmful Content, Toxic Language) to apply additional safety measures.  *Note:  Guardrail configuration will eventually be handled exclusively at the Gateway level.*

8. **Click "Next".**

9. **Step 4: Set Assistant Models and Prompt:**
   * **Model Panel:**
     * **Conversational Model:** Select the primary model that will power the Assistant's conversational abilities.
     * **Instructional Model:** Select the model used for instructional tasks or specific commands.

       *NOTE:* In the future the user will be prompted to select a gateway and, based on that selection, models and routers will be listed here to be selected by the user.
   * **Assistant Prompt Panel:**  Define the core instructions and personality of your Assistant:
     * **Role:** Describe the Assistant's role (e.g., "Helpful Customer Support Agent").
     * **Task:** Specify the Assistant's primary task (e.g., "Answer customer questions about products and services").
     * **Operating Principles:** Define guidelines for the Assistant's behavior (e.g., "Be polite and professional," "Provide accurate information").
     * **Attitude:** Describe the desired attitude of your assistant (e.g. "Friendly and easy-going").
     * **Welcoming Message:** Set the initial message the Assistant will use to greet users.
     * **Goodbye Message:** Set the message the Assistant will use when ending a conversation.

10. **Click "Review":** Review all the Assistant's configuration details.

11. **Click "Create":** Create the Assistant.

## Assistant Cards

The Assistants section displays each created Assistant as a card.  Each card shows:

* **Assistant Avatar:** The selected avatar for the Assistant will be displayed as the card background.
* **Assistant Name:** The name you assigned to the Assistant.
* **Description:** The description you provided for the Assistant.
* **Scope Icon:**
  * **Globe Icon:** Indicates a Public Assistant.
  * **Person Icon:** Indicates a Private Assistant.
* **Deployment Status:**
  * **Rocket Icon (no background):**  Indicates the Assistant is *not* deployed. Hovering over this icon will reveal a white background, indicating it's clickable.
  * **Rocket Icon (with background):**  Indicates that the assistant *is* deployed (Future Enhancement).
* **Test/Insights Icon:**
  * **Multi-panel Icon: If undeployed, clicking this icon initiates the Assistant Test creation workflow within the Quality Assurance section.**
  * **Check Mark Icon: If deployed, clicking this icon navigates you to the Assistant's dashboard within the Insights section.**
* **Edit Icon (Pencil):** Click this icon to update the Assistant's configuration (only if the Assistant is *not* deployed).
* **Delete Icon (Trash Bin):** Click this icon to remove the Assistant (only if the Assistant is *not* deployed).

## Managing Assistants

### Updating an Assistant

You can update *all* configuration parameters of an Assistant **only if it is not deployed**. If the assistant *is* deployed, you will not be able to edit its parameters.

1. **Navigate to Assistants:** Go to **"Apps"** > **"Assistants"**.
2. **Locate the Assistant Card:** Find the card for the Assistant you want to update.
3. **Click the Edit (Pencil) Icon:** This will open the update dialog.
4. **Modify Assistant Parameters:** Update the Assistant's configuration as needed.
5. **Click "Save":** Save the changes.

**If you attempt to edit a deployed Assistant, a warning banner will be displayed, preventing modifications.**

### Removing an Assistant

You can remove an Assistant if it's no longer needed.  **However, you cannot delete a deployed Assistant.**

1. **Navigate to Assistants:** Go to **"Apps"** > **"Assistants"**.
2. **Locate the Assistant Card:** Find the card for the Assistant you want to remove.
3. **Click the Delete (Trash Bin) Icon:** This will trigger a confirmation prompt.

**If you attempt to delete a deployed Assistant, a modal will appear, preventing the deletion and explaining that the Assistant is in use.**

4. **Confirm Deletion:** Confirm that you want to delete the Assistant.

**Warning:** Deleting an Assistant is a permanent action and cannot be undone.

## Deploying Assistants

The deployment process differs depending on whether you are deploying a Private or Public Assistant.

### Deploying Private Assistants

1. **Locate the Assistant Card:** Find the card for the *undeployed* Private Assistant you want to deploy.
2. **Click the Rocket Icon:** This initiates the deployment process.
3. **Select Target Users:**  Select the specific Kosmoy users (within your tenant) who should have access to this Assistant in Kosmoy Chat.
4. **"Review" and "Deploy"**

Once deployed, the selected users will see the Assistant listed in their Kosmoy Chat interface, allowing them to interact with it directly.

### Deploying Public Assistants

1. **Locate the Assistant Card:** Find the card for the *undeployed* Public Assistant you want to deploy.
2. **Click the Rocket Icon:** This initiates the deployment process.
3. **Select Communication Channel:** Choose a pre-configured Communication Channel from the dropdown menu. Currently, WhatsApp (via Twilio) is supported.
4. **"Review" and "Deploy"**

**Prerequisites:**

* You must have a **Communication Channel** configured. See the **[Managing Communication Channels](/kosmoy-studio/comm-channels)** section for details.

## Testing Assistants

Before deploying your Assistants, it's highly recommended to thoroughly test them using the **Assistant Tests** feature in the **Quality Assurance** section. This allows you to interact with your Assistant in a controlled environment and refine its configuration. See **[Assistant Tests](/kosmoy-studio/quality-assurance/assistant-tests)** for more details.

## Monitoring Assistants

After deploying your assistant, you would probably like to track its performance. See **[Dashboard](/kosmoy-studio/insights/dashboard)** for more details.
