> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-v6-beta2-flutter-uikit.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# AI Integration Quick Reference

> Quick reference for AI features in the CometChat JavaScript SDK: AI Agents, AI Moderation, and AI User Copilot.

<Accordion title="AI Integration Quick Reference">
  | Field           | Value                                                                                   |
  | --------------- | --------------------------------------------------------------------------------------- |
  | Package         | `@cometchat/chat-sdk-javascript`                                                        |
  | AI Features     | AI Agents, AI Moderation, AI User Copilot                                               |
  | Activation      | Enable from [CometChat Dashboard](https://app.cometchat.com)                            |
  | Prerequisites   | `CometChat.init()` + `CometChat.login()` completed                                      |
  | AI Agents       | Real-time streaming via `AIAssistantListener`, persisted messages via `MessageListener` |
  | AI Moderation   | Automatic content moderation with `PENDING` → `APPROVED` / `DISAPPROVED` flow           |
  | AI User Copilot | Smart Replies, Conversation Starter, Conversation Summary (Dashboard-enabled)           |
</Accordion>

## Overview

CometChat provides three AI-powered features to enhance your chat application:

| Feature                                                   | Description                                                      | Use Case                                        |
| --------------------------------------------------------- | ---------------------------------------------------------------- | ----------------------------------------------- |
| [AI Agents](/sdk/javascript/ai-agents)                    | Intelligent automated conversations with real-time streaming     | Chatbots, virtual assistants, automated support |
| [AI Moderation](/sdk/javascript/ai-moderation)            | Automatic content moderation for text, image, and video messages | Safety, compliance, content filtering           |
| [AI User Copilot](/fundamentals/ai-user-copilot/overview) | Smart replies, conversation starters, and summaries              | Enhanced user experience, productivity          |

## AI Features Summary

### AI Agents

AI Agents enable intelligent, automated interactions. They process user messages, trigger tools, and respond with contextually relevant information.

**Key Points:**

* Agents only respond to text messages
* Real-time events via `AIAssistantListener`
* Persisted messages via `MessageListener`
* Event flow: Run Start → Tool Call(s) → Text Message Stream → Run Finished

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    const listnerId: string = "unique_listener_id";

    // Adding the AIAssistantListener for real-time events
    CometChat.addAIAssistantListener(listnerId, {
      onAIAssistantEventReceived: (message: CometChat.AIAssistantBaseEvent) => {
        console.log("AIAssistant event received successfully", message);
      }
    });

    // Adding the MessageListener for persisted agentic messages
    CometChat.addMessageListener(listnerId, {
      onAIAssistantMessageReceived: (message: CometChat.AIAssistantMessage) => {
        console.log("AI Assistant message received successfully", message);
      },
      onAIToolResultReceived: (message: CometChat.AIToolResultMessage) => {
        console.log("AI Tool result message received successfully", message);
      },
      onAIToolArgumentsReceived: (message: CometChat.AIToolArgumentMessage) => {
        console.log("AI Tool argument message received successfully", message);
      },
    });

    // Cleanup - always remove listeners when done
    CometChat.removeAIAssistantListener(listnerId);
    CometChat.removeMessageListener(listnerId);
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    const listnerId = "unique_listener_id";

    // Adding the AIAssistantListener for real-time events
    CometChat.addAIAssistantListener(listnerId, {
      onAIAssistantEventReceived: (message) => {
        console.log("AIAssistant event received successfully", message);
      }
    });

    // Adding the MessageListener for persisted agentic messages
    CometChat.addMessageListener(listnerId, {
      onAIAssistantMessageReceived: (message) => {
        console.log("AI Assistant message received successfully", message);
      },
      onAIToolResultReceived: (message) => {
        console.log("AI Tool result message received successfully", message);
      },
      onAIToolArgumentsReceived: (message) => {
        console.log("AI Tool argument message received successfully", message);
      },
    });

    // Cleanup - always remove listeners when done
    CometChat.removeAIAssistantListener(listnerId);
    CometChat.removeMessageListener(listnerId);
    ```
  </Tab>
</Tabs>

### AI Moderation

AI Moderation automatically reviews messages for inappropriate content in real-time.

**Key Points:**

* Supports Text, Image, and Video messages only
* Moderation statuses: `PENDING` → `APPROVED` or `DISAPPROVED`
* Enable and configure rules in the CometChat Dashboard

<Tabs>
  <Tab title="TypeScript">
    ```typescript theme={null}
    // Send message and check initial moderation status
    const textMessage = new CometChat.TextMessage(
      receiverUID,
      "Hello, how are you?",
      CometChat.RECEIVER_TYPE.USER
    );

    CometChat.sendMessage(textMessage).then(
      (message: CometChat.TextMessage) => {
        const status: string = message.getModerationStatus();
        
        if (status === CometChat.ModerationStatus.PENDING) {
          console.log("Message is under moderation review");
        }
      },
      (error: CometChat.CometChatException) => {
        console.log("Message sending failed:", error);
      }
    );

    // Listen for moderation results
    const listenerID: string = "MODERATION_LISTENER";

    CometChat.addMessageListener(
      listenerID,
      new CometChat.MessageListener({
        onMessageModerated: (message: CometChat.BaseMessage) => {
          const status: string = message.getModerationStatus();
          const messageId: number = message.getId();

          switch (status) {
            case CometChat.ModerationStatus.APPROVED:
              console.log(`Message ${messageId} approved`);
              break;
            case CometChat.ModerationStatus.DISAPPROVED:
              console.log(`Message ${messageId} blocked`);
              break;
          }
        }
      })
    );
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    // Send message and check initial moderation status
    const textMessage = new CometChat.TextMessage(
      receiverUID,
      "Hello, how are you?",
      CometChat.RECEIVER_TYPE.USER
    );

    CometChat.sendMessage(textMessage).then(
      (message) => {
        const status = message.getModerationStatus();
        
        if (status === CometChat.ModerationStatus.PENDING) {
          console.log("Message is under moderation review");
        }
      },
      (error) => {
        console.log("Message sending failed:", error);
      }
    );

    // Listen for moderation results
    const listenerID = "MODERATION_LISTENER";

    CometChat.addMessageListener(
      listenerID,
      new CometChat.MessageListener({
        onMessageModerated: (message) => {
          const status = message.getModerationStatus();
          const messageId = message.getId();

          switch (status) {
            case CometChat.ModerationStatus.APPROVED:
              console.log(`Message ${messageId} approved`);
              break;
            case CometChat.ModerationStatus.DISAPPROVED:
              console.log(`Message ${messageId} blocked`);
              break;
          }
        }
      })
    );
    ```
  </Tab>
</Tabs>

### AI User Copilot

AI User Copilot provides smart features that enhance user productivity. These features are enabled in the Dashboard and auto-integrate with UI Kits.

| Feature              | Description                              | Documentation                                                    |
| -------------------- | ---------------------------------------- | ---------------------------------------------------------------- |
| Conversation Starter | AI-generated opening lines for new chats | [Learn more](/fundamentals/ai-user-copilot/conversation-starter) |
| Smart Replies        | AI-generated response suggestions        | [Learn more](/fundamentals/ai-user-copilot/smart-replies)        |
| Conversation Summary | AI-generated recap of long conversations | [Learn more](/fundamentals/ai-user-copilot/conversation-summary) |

## Configuration Options

### AI Agents Configuration

| Parameter                      | Type       | Description                               |
| ------------------------------ | ---------- | ----------------------------------------- |
| `listenerId`                   | `string`   | Unique identifier for the listener        |
| `onAIAssistantEventReceived`   | `function` | Callback for real-time streaming events   |
| `onAIAssistantMessageReceived` | `function` | Callback for persisted assistant messages |
| `onAIToolResultReceived`       | `function` | Callback for tool execution results       |
| `onAIToolArgumentsReceived`    | `function` | Callback for tool arguments               |

### AI Moderation Configuration

| Parameter            | Type       | Description                                  |
| -------------------- | ---------- | -------------------------------------------- |
| `listenerID`         | `string`   | Unique identifier for the listener           |
| `onMessageModerated` | `function` | Callback when moderation result is available |

### Moderation Status Values

| Status      | Enum                                     | Description                |
| ----------- | ---------------------------------------- | -------------------------- |
| Pending     | `CometChat.ModerationStatus.PENDING`     | Message is being processed |
| Approved    | `CometChat.ModerationStatus.APPROVED`    | Message passed moderation  |
| Disapproved | `CometChat.ModerationStatus.DISAPPROVED` | Message was blocked        |

## Next Steps

<CardGroup cols={2}>
  <Card title="AI Agents" icon="robot" href="/sdk/javascript/ai-agents">
    Full documentation for AI Agents integration
  </Card>

  <Card title="AI Moderation" icon="shield-check" href="/sdk/javascript/ai-moderation">
    Complete AI Moderation implementation guide
  </Card>

  <Card title="AI User Copilot" icon="wand-magic-sparkles" href="/fundamentals/ai-user-copilot/overview">
    Smart Replies, Conversation Starter, and Summary
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/sdk/javascript/troubleshooting">
    Common issues and fixes
  </Card>
</CardGroup>
