Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
4332f97
refactor: improve sdk doc
aanshisingh-cometchat Feb 17, 2026
50e60be
refactor: update the sdk doc
aanshisingh-cometchat Feb 17, 2026
2c1d788
docs(javascript-sdk): enhance authentication and key concepts documen…
PrajwalDhuleCC Feb 18, 2026
2cdcb82
docs(javascript-sdk): enhance message handling documentation with bes…
PrajwalDhuleCC Feb 18, 2026
c14b74b
docs(javascript-sdk): enhance calling and messaging documentation wit…
PrajwalDhuleCC Feb 20, 2026
a2d6928
docs(javascript-sdk): enhance documentation with best practices and t…
PrajwalDhuleCC Feb 20, 2026
2908e24
Merge branch 'main' into docs/js-sdk-improvement
PrajwalDhuleCC Mar 4, 2026
561dffb
Basic changes
hritika-cometchat Mar 9, 2026
1169d91
docs(sdk/javascript): Add message response documentation for "Send A …
PrajwalDhuleCC Mar 10, 2026
27e937e
Table Format Payload.
hritika-cometchat Mar 11, 2026
4128de3
docs(sdk): Add initial global message reference documentation and tag…
PrajwalDhuleCC Mar 13, 2026
a33f85f
docs(sdk/javascript): Add method payloads reference and update docume…
PrajwalDhuleCC Mar 16, 2026
8e3d649
Update .gitignore
swapnil-cometchat Mar 17, 2026
473ff8f
Create .mintignore
swapnil-cometchat Mar 17, 2026
de62744
Update .gitignore
swapnil-cometchat Mar 17, 2026
bd6e262
Merge branch 'main' into docs/js-sdk-agentic
swapnil-cometchat Mar 17, 2026
30144b1
updates docs
swapnil-cometchat Mar 18, 2026
55a8a50
I Integration Quick Reference
swapnil-cometchat Mar 18, 2026
201bfde
fixes
swapnil-cometchat Mar 18, 2026
053a3a0
deletes extra files
swapnil-cometchat Mar 18, 2026
b0e8a6e
SDK intialisation and Overview pages
swapnil-cometchat Mar 18, 2026
ec00ff0
Troubleshooting and Best Practices
swapnil-cometchat Mar 18, 2026
65137dc
Best Practices and Troubleshooting
swapnil-cometchat Mar 18, 2026
01ea580
Troubleshooting and error guides
swapnil-cometchat Mar 18, 2026
34dfb3a
Update docs.json
swapnil-cometchat Mar 18, 2026
17ee844
frame these pages better
swapnil-cometchat Mar 18, 2026
8e797c1
Update send-message.mdx
swapnil-cometchat Mar 18, 2026
aa7442c
Update send-message.mdx
swapnil-cometchat Mar 18, 2026
01ed70b
Update send-message.mdx
swapnil-cometchat Mar 18, 2026
90403fd
Update receive-message.mdx
swapnil-cometchat Mar 18, 2026
1f3b248
frame these better
swapnil-cometchat Mar 18, 2026
0916208
Links the references
swapnil-cometchat Mar 18, 2026
0fd5d1f
Update docs.json
swapnil-cometchat Mar 18, 2026
c3f526e
Update send-message.mdx
swapnil-cometchat Mar 18, 2026
ef2c022
updates references
swapnil-cometchat Mar 18, 2026
5eba105
calling docs - frame this better
swapnil-cometchat Mar 18, 2026
7c7c882
updates docs for Users and User Presence
swapnil-cometchat Mar 18, 2026
b4aecb1
groups - frame this better
swapnil-cometchat Mar 18, 2026
70f602d
Frame these better
swapnil-cometchat Mar 18, 2026
7387db2
minor fixes
swapnil-cometchat Mar 18, 2026
31f77c1
Update best-practices.mdx
swapnil-cometchat Mar 18, 2026
3481029
frame this better
swapnil-cometchat Mar 18, 2026
16f4a36
Update troubleshooting.mdx
swapnil-cometchat Mar 18, 2026
09c4729
Update interactive-messages.mdx
swapnil-cometchat Mar 18, 2026
d521e59
Update interactive-messages.mdx
swapnil-cometchat Mar 18, 2026
195ec6c
Update delivery-read-receipts.mdx
swapnil-cometchat Mar 18, 2026
c42d570
Update overview.mdx
swapnil-cometchat Mar 18, 2026
eaf694a
Merge branch 'main' into docs/js-sdk-agentic
swapnil-cometchat Mar 23, 2026
04c3d8f
docs(sdk/javascript): Add improved and concise reference tables and c…
PrajwalDhuleCC Mar 23, 2026
d244371
docs(sdk/javascript): Add reference links and field documentation for…
PrajwalDhuleCC Mar 23, 2026
933bc89
updates the typescript first and then javascript for examples
swapnil-cometchat Mar 25, 2026
60b6492
Revert "updates the typescript first and then javascript for examples"
swapnil-cometchat Mar 25, 2026
f9130ff
TypeScript and JavaScript - Examples
swapnil-cometchat Mar 25, 2026
789a54b
Update retrieve-users.mdx
swapnil-cometchat Mar 25, 2026
fef346b
updates navigation
swapnil-cometchat Mar 25, 2026
10c5d61
Update authentication-overview.mdx
swapnil-cometchat Mar 25, 2026
e2dd928
Update overview.mdx
swapnil-cometchat Mar 25, 2026
bda4ead
Update authentication-overview.mdx
swapnil-cometchat Mar 25, 2026
540c3e4
Update setup-sdk.mdx
swapnil-cometchat Mar 25, 2026
4fbab3f
Update authentication-overview.mdx
swapnil-cometchat Mar 25, 2026
cca23b4
docs(sdk/javascript): Update group management documentation with refe…
PrajwalDhuleCC Mar 25, 2026
01e4f08
typo fixes
swapnil-cometchat Mar 25, 2026
8751f02
docs(sdk/javascript): Add relevant fields reference tables to message…
PrajwalDhuleCC Mar 25, 2026
42dc143
docs(sdk/javascript): Remove redundant field reference tables from do…
PrajwalDhuleCC Mar 25, 2026
f58293c
Update overview.mdx
swapnil-cometchat Mar 25, 2026
2e3b1b4
Update message-filtering.mdx
swapnil-cometchat Mar 25, 2026
5121686
Update retrieve-conversations.mdx
swapnil-cometchat Mar 25, 2026
ed9adc2
Update retrieve-groups.mdx
swapnil-cometchat Mar 25, 2026
f063bd6
Update overview.mdx
swapnil-cometchat Mar 25, 2026
fed4ae1
Merge branch 'main' into docs/js-sdk-v4-agentic
swapnil-cometchat Mar 25, 2026
6648c3e
Update authentication-overview.mdx
swapnil-cometchat Mar 26, 2026
5c90b81
Update receive-message.mdx
swapnil-cometchat Mar 26, 2026
a657e7c
docs(sdk): Remove redundant Call field tables and add Reaction reference
PrajwalDhuleCC Mar 26, 2026
a38925e
Update threaded-messages.mdx
swapnil-cometchat Mar 26, 2026
de219d1
docs(sdk): Replace redundant callback tables with OngoingCallListener…
PrajwalDhuleCC Mar 26, 2026
f12dae9
Update reactions.mdx
swapnil-cometchat Mar 26, 2026
0b30f58
Update calling-overview.mdx
swapnil-cometchat Mar 26, 2026
de733f2
Update calling-setup.mdx
swapnil-cometchat Mar 26, 2026
d3616dd
AI Integration Quick Reference
swapnil-cometchat Mar 26, 2026
88a5184
updates code
swapnil-cometchat Mar 26, 2026
8aa9102
Update direct-call.mdx
swapnil-cometchat Mar 26, 2026
fde21dc
docs(sdk): Add AI Assistant and Ongoing Call listeners documentation …
PrajwalDhuleCC Mar 26, 2026
02e9de0
Update standalone-calling.mdx
swapnil-cometchat Mar 26, 2026
4bf61c5
Update recording.mdx
swapnil-cometchat Mar 26, 2026
227360e
Update virtual-background.mdx
swapnil-cometchat Mar 26, 2026
95a7152
Update video-view-customisation.mdx
swapnil-cometchat Mar 26, 2026
a491fd2
Update custom-css.mdx
swapnil-cometchat Mar 26, 2026
b386067
Update presenter-mode.mdx
swapnil-cometchat Mar 26, 2026
a2e08d3
Update call-logs.mdx
swapnil-cometchat Mar 26, 2026
67b01ae
Update session-timeout.mdx
swapnil-cometchat Mar 26, 2026
3118034
Update users-overview.mdx
swapnil-cometchat Mar 26, 2026
30dc212
Update retrieve-users.mdx
swapnil-cometchat Mar 26, 2026
d9aa004
Update user-management.mdx
swapnil-cometchat Mar 26, 2026
4e12c0a
Update block-users.mdx
swapnil-cometchat Mar 26, 2026
d5ff437
Update docs.json
swapnil-cometchat Mar 26, 2026
f29ddb9
Update docs.json
swapnil-cometchat Mar 26, 2026
d6306f4
Update groups-overview.mdx
swapnil-cometchat Mar 26, 2026
7c9f9fc
Update ai-moderation.mdx
swapnil-cometchat Mar 26, 2026
b79c200
Update docs.json
swapnil-cometchat Mar 26, 2026
cf73691
Update docs.json
swapnil-cometchat Mar 26, 2026
dc365f9
Update ai-agents.mdx
swapnil-cometchat Mar 26, 2026
9a14f4c
Update key-concepts.mdx
swapnil-cometchat Mar 26, 2026
1e9af68
Update message-structure-and-hierarchy.mdx
swapnil-cometchat Mar 26, 2026
c7b32da
Update all-real-time-listeners.mdx
swapnil-cometchat Mar 26, 2026
f4b1b6a
Update rate-limits.mdx
swapnil-cometchat Mar 26, 2026
35f5424
Update connection-status.mdx
swapnil-cometchat Mar 26, 2026
f3912e3
Update managing-web-sockets-connections-manually.mdx
swapnil-cometchat Mar 26, 2026
00d23e7
Merge branch 'docs/js-sdk-agentic' into docs/js-sdk-improvement
PrajwalDhuleCC Mar 26, 2026
fdf0c58
error codes
swapnil-cometchat Mar 26, 2026
f85379d
Update upgrading-from-v3.mdx
swapnil-cometchat Mar 26, 2026
b7be107
Revert files to match main
PrajwalDhuleCC Mar 26, 2026
6cb6f7e
Update troubleshooting.mdx
swapnil-cometchat Mar 26, 2026
3a525c0
Update ai-agents.mdx
swapnil-cometchat Mar 26, 2026
155e908
Update ai-moderation.mdx
swapnil-cometchat Mar 26, 2026
e5720ee
Merge branch 'docs/js-sdk-improvement' into docs/js-sdk-agentic
swapnil-cometchat Mar 26, 2026
55b0fbf
missing methods
swapnil-cometchat Mar 26, 2026
8774649
Update receive-message.mdx
swapnil-cometchat Mar 26, 2026
9f81082
Update receive-message.mdx
swapnil-cometchat Mar 26, 2026
cef0cc7
fixes the response objects
swapnil-cometchat Mar 26, 2026
7b5a8e8
Update retrieve-groups.mdx
swapnil-cometchat Mar 26, 2026
86fdd99
Update retrieve-conversations.mdx
swapnil-cometchat Mar 26, 2026
f0ab102
fixes issues related to docs against codebase
swapnil-cometchat Mar 26, 2026
8e54e09
CometChatException
swapnil-cometchat Mar 26, 2026
c6e359a
in-private
swapnil-cometchat Mar 26, 2026
10f69d1
adds references to all the links
swapnil-cometchat Mar 26, 2026
5552457
Update create-group.mdx
swapnil-cometchat Mar 26, 2026
c6ba2a6
Update update-group.mdx
swapnil-cometchat Mar 26, 2026
f33f7da
Update join-group.mdx
swapnil-cometchat Mar 26, 2026
0fb93ba
Update leave-group.mdx
swapnil-cometchat Mar 26, 2026
f89c658
Update delete-group.mdx
swapnil-cometchat Mar 26, 2026
88bde69
Update retrieve-groups.mdx
swapnil-cometchat Mar 26, 2026
dcffe0f
Update retrieve-group-members.mdx
swapnil-cometchat Mar 26, 2026
d69d845
Update group-add-members.mdx
swapnil-cometchat Mar 27, 2026
d329cab
minor fixes
swapnil-cometchat Mar 27, 2026
ce15ed3
Update group-kick-ban-members.mdx
swapnil-cometchat Mar 27, 2026
a671f73
Update group-change-member-scope.mdx
swapnil-cometchat Mar 27, 2026
ab07c65
Update transfer-group-ownership.mdx
swapnil-cometchat Mar 27, 2026
b303340
Update authentication-overview.mdx
swapnil-cometchat Mar 27, 2026
9cf5666
minor fixes
swapnil-cometchat Mar 27, 2026
42c3edd
Update ai-agents.mdx
swapnil-cometchat Mar 27, 2026
0f05f20
Merge branch 'docs/js-sdk-agentic' into docs/android-sdk-v4
swapnil-cometchat Mar 30, 2026
d9d3751
AI Integration Quick Reference
swapnil-cometchat Mar 30, 2026
d358535
Update overview.mdx
swapnil-cometchat Mar 30, 2026
dba811b
android SDK docs rewamp
swapnil-cometchat Mar 31, 2026
ce99ff3
android SDK docs rewamp
swapnil-cometchat Mar 31, 2026
53c036f
SDK fixes
swapnil-cometchat Mar 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
215 changes: 122 additions & 93 deletions docs.json

Large diffs are not rendered by default.

236 changes: 136 additions & 100 deletions sdk/android/additional-message-filtering.mdx

Large diffs are not rendered by default.

6 changes: 0 additions & 6 deletions sdk/android/advanced-overview.mdx

This file was deleted.

362 changes: 358 additions & 4 deletions sdk/android/ai-agents.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,33 @@
---
title: "AI Agents"
sidebarTitle: "AI Agents"
description: "Integrate AI-powered agents for intelligent, automated interactions in the Android SDK"
---

# AI Agents Overview
<Accordion title="AI Integration Quick Reference">

```kotlin
// Listen for real-time AI events
CometChat.addAIAssistantListener("LISTENER_ID", object : CometChat.AIAssistantListener() {
override fun onAIAssistantEventReceived(event: AIAssistantBaseEvent) {
// Handle run start, tool calls, text streaming, run finished
}
})

// Listen for persisted agentic messages
CometChat.addMessageListener("LISTENER_ID", object : CometChat.MessageListener() {
override fun onAIAssistantMessageReceived(message: AIAssistantMessage) { }
override fun onAIToolResultReceived(message: AIToolResultMessage) { }
override fun onAIToolArgumentsReceived(message: AIToolArgumentMessage) { }
})
```
</Accordion>

AI Agents enable intelligent, automated interactions within your application. They can process user messages, trigger tools, and respond with contextually relevant information. For a broader introduction, see the [AI Agents section](/ai-agents).

> **Note:**
> Currently, an Agent only responds to **Text Messages**.
<Note>
Currently, an Agent only responds to **Text Messages**.
</Note>

## Agent Run Lifecycle and Message Flow

Expand Down Expand Up @@ -130,4 +150,338 @@ These events are received via the **`MessageListener`** after the run completes.

```
</Tab>
</Tabs>
</Tabs>


## Agentic Message Payload Structures

<Accordion title="AIAssistantMessage Object">

The `AIAssistantMessage` object contains the AI assistant's response:

| Parameter | Type | Description |
|-----------|------|-------------|
| `id` | long | Unique message identifier |
| `muid` | String | Developer-defined message ID |
| `sender` | [User](#user-object-ai) | User who sent the message |
| `receiver` | AppEntity | Message receiver ([User](#user-object-ai) or Group) |
| `receiverUid` | String | Receiver's unique identifier |
| `type` | String | Message type. Value: `"assistant"` |
| `receiverType` | String | Type of receiver. Values: `"user"`, `"group"` |
| `category` | String | Message category. Value: `"agentic"` |
| `sentAt` | long | Unix timestamp when sent |
| `deliveredAt` | long | Unix timestamp when delivered |
| `readAt` | long | Unix timestamp when read |
| `metadata` | JSONObject | Custom message metadata |
| `readByMeAt` | long | When logged-in user read message |
| `deliveredToMeAt` | long | When delivered to logged-in user |
| `deletedAt` | long | Unix timestamp when deleted (0 if not deleted) |
| `editedAt` | long | Unix timestamp when edited (0 if not edited) |
| `deletedBy` | String | UID of user who deleted (null if not deleted) |
| `editedBy` | String | UID of user who edited (null if not edited) |
| `updatedAt` | long | Unix timestamp of last update |
| `conversationId` | String | Associated conversation ID |
| `runId` | long | AI run identifier |
| `threadId` | String | AI thread identifier |
| `text` | String | AI response text |
| `tags` | Array\<String\> | Message tags |

**Sample AIAssistantMessage Object:**

```json
{
"id": 12345,
"muid": "msg_abc123",
"sender": {
"uid": "user_123",
"name": "John Doe",
"avatar": "https://example.com/avatar.png",
"status": "online",
"role": "default"
},
"receiver": {
"uid": "user_456",
"name": "Jane Smith"
},
"receiverUid": "user_456",
"type": "assistant",
"receiverType": "user",
"category": "agentic",
"sentAt": 1699900000,
"deliveredAt": 1699900001,
"readAt": 1699900002,
"metadata": {"priority": "high"},
"readByMeAt": 1699900002,
"deliveredToMeAt": 1699900001,
"deletedAt": 0,
"editedAt": 0,
"deletedBy": null,
"editedBy": null,
"updatedAt": 1699900000,
"conversationId": "user_123_user_456",
"runId": 98765,
"threadId": "thread_abc",
"text": "Here's the answer...",
"tags": ["ai-response"]
}
```

</Accordion>

<Accordion title="AIToolArgumentMessage Object">

The `AIToolArgumentMessage` object contains the arguments passed to a tool:

| Parameter | Type | Description |
|-----------|------|-------------|
| `id` | long | Unique message identifier |
| `muid` | String | Developer-defined message ID |
| `sender` | [User](#user-object-ai) | User who sent the message |
| `receiver` | AppEntity | Message receiver ([User](#user-object-ai) or Group) |
| `receiverUid` | String | Receiver's unique identifier |
| `type` | String | Message type. Value: `"tool_arguments"` |
| `receiverType` | String | Type of receiver. Values: `"user"`, `"group"` |
| `category` | String | Message category. Value: `"agentic"` |
| `sentAt` | long | Unix timestamp when sent |
| `deliveredAt` | long | Unix timestamp when delivered |
| `readAt` | long | Unix timestamp when read |
| `metadata` | JSONObject | Custom message metadata |
| `readByMeAt` | long | When logged-in user read message |
| `deliveredToMeAt` | long | When delivered to logged-in user |
| `deletedAt` | long | Unix timestamp when deleted (0 if not deleted) |
| `editedAt` | long | Unix timestamp when edited (0 if not edited) |
| `deletedBy` | String | UID of user who deleted (null if not deleted) |
| `editedBy` | String | UID of user who edited (null if not edited) |
| `updatedAt` | long | Unix timestamp of last update |
| `conversationId` | String | Associated conversation ID |
| `runId` | long | AI run identifier |
| `threadId` | String | AI thread identifier |
| `toolCalls` | Array\<[AIToolCall](#aitoolcall-object)\> | List of tool calls |
| `tags` | Array\<String\> | Message tags |

**Sample AIToolArgumentMessage Object:**

```json
{
"id": 12346,
"muid": "msg_tool_arg_123",
"sender": {
"uid": "user_123",
"name": "John Doe",
"avatar": "https://example.com/avatar.png",
"status": "online",
"role": "default"
},
"receiver": {
"uid": "user_456",
"name": "Jane Smith"
},
"receiverUid": "user_456",
"type": "tool_arguments",
"receiverType": "user",
"category": "agentic",
"sentAt": 1699900000,
"deliveredAt": 1699900001,
"readAt": 1699900002,
"metadata": {"priority": "high"},
"readByMeAt": 1699900002,
"deliveredToMeAt": 1699900001,
"deletedAt": 0,
"editedAt": 0,
"deletedBy": null,
"editedBy": null,
"updatedAt": 1699900000,
"conversationId": "user_123_user_456",
"runId": 98765,
"threadId": "thread_abc",
"toolCalls": [
{
"id": "call_abc123",
"name": "search_flights",
"arguments": {"origin": "NYC", "destination": "LA"}
}
],
"tags": ["tool-arguments"]
}
```

</Accordion>

<Accordion title="AIToolResultMessage Object">

The `AIToolResultMessage` object contains the result from a tool execution:

| Parameter | Type | Description |
|-----------|------|-------------|
| `id` | long | Unique message identifier |
| `muid` | String | Developer-defined message ID |
| `sender` | [User](#user-object-ai) | User who sent the message |
| `receiver` | AppEntity | Message receiver ([User](#user-object-ai) or Group) |
| `receiverUid` | String | Receiver's unique identifier |
| `type` | String | Message type. Value: `"tool_result"` |
| `receiverType` | String | Type of receiver. Values: `"user"`, `"group"` |
| `category` | String | Message category. Value: `"agentic"` |
| `sentAt` | long | Unix timestamp when sent |
| `deliveredAt` | long | Unix timestamp when delivered |
| `readAt` | long | Unix timestamp when read |
| `metadata` | JSONObject | Custom message metadata |
| `readByMeAt` | long | When logged-in user read message |
| `deliveredToMeAt` | long | When delivered to logged-in user |
| `deletedAt` | long | Unix timestamp when deleted (0 if not deleted) |
| `editedAt` | long | Unix timestamp when edited (0 if not edited) |
| `deletedBy` | String | UID of user who deleted (null if not deleted) |
| `editedBy` | String | UID of user who edited (null if not edited) |
| `updatedAt` | long | Unix timestamp of last update |
| `conversationId` | String | Associated conversation ID |
| `runId` | long | AI run identifier |
| `threadId` | String | AI thread identifier |
| `text` | String | Tool result text |
| `toolCallId` | String | ID of the tool call that produced this result |
| `tags` | Array\<String\> | Message tags |

**Sample AIToolResultMessage Object:**

```json
{
"id": 12347,
"muid": "msg_tool_result_123",
"sender": {
"uid": "user_123",
"name": "John Doe",
"avatar": "https://example.com/avatar.png",
"status": "online",
"role": "default"
},
"receiver": {
"uid": "user_456",
"name": "Jane Smith"
},
"receiverUid": "user_456",
"type": "tool_result",
"receiverType": "user",
"category": "agentic",
"sentAt": 1699900000,
"deliveredAt": 1699900001,
"readAt": 1699900002,
"metadata": {"priority": "high"},
"readByMeAt": 1699900002,
"deliveredToMeAt": 1699900001,
"deletedAt": 0,
"editedAt": 0,
"deletedBy": null,
"editedBy": null,
"updatedAt": 1699900000,
"conversationId": "user_123_user_456",
"runId": 98765,
"threadId": "thread_abc",
"text": "Flight found: NYC to LA...",
"toolCallId": "call_abc123",
"tags": ["tool-result"]
}
```

</Accordion>

<Accordion title="AIToolCall Object">

The `AIToolCall` object represents a single tool invocation:

| Parameter | Type | Description |
|-----------|------|-------------|
| `id` | String | Unique identifier for the tool call |
| `name` | String | Name of the tool being called |
| `arguments` | JSONObject | Arguments passed to the tool |

**Sample AIToolCall Object:**

```json
{
"id": "call_abc123",
"name": "search_flights",
"arguments": {
"origin": "NYC",
"destination": "LA",
"date": "2024-01-15"
}
}
```

</Accordion>

<Accordion title="User Object (AI)">

The nested `User` object in `sender` contains:

| Parameter | Type | Description |
|-----------|------|-------------|
| `uid` | String | Unique identifier of the user |
| `name` | String | Display name of the user |
| `avatar` | String | URL to user's profile picture |
| `link` | String | URL to user's profile page |
| `role` | String | User role for access control |
| `metadata` | JSONObject | Custom data set by developer |
| `status` | String | User online status. Values: `"online"`, `"offline"` |
| `statusMessage` | String | Custom status message |
| `lastActiveAt` | long | Unix timestamp of last activity |
| `hasBlockedMe` | boolean | Whether this user has blocked the logged-in user |
| `blockedByMe` | boolean | Whether the logged-in user has blocked this user |
| `tags` | Array\<String\> | List of tags for user identification |
| `deactivatedAt` | long | Unix timestamp when user was deactivated (0 if active) |

**Sample User Object:**

```json
{
"uid": "user_123",
"name": "John Doe",
"avatar": "https://example.com/avatar.png",
"link": "https://example.com/profile/user_123",
"role": "default",
"metadata": {"department": "engineering"},
"status": "online",
"statusMessage": "Available",
"lastActiveAt": 1699900000,
"hasBlockedMe": false,
"blockedByMe": false,
"tags": ["premium"],
"deactivatedAt": 0
}
```

</Accordion>

## Best Practices

<AccordionGroup>
<Accordion title="Always Remove AI Listeners">
Remove AI assistant and message listeners in `onDestroy()` or `onPause()` to prevent memory leaks. Use unique listener IDs to manage multiple listeners effectively.
</Accordion>
<Accordion title="Handle Streaming Content Progressively">
Use `Text Message Content` events to render AI responses incrementally as they arrive. This provides a better user experience than waiting for the complete response.
</Accordion>
<Accordion title="Display Tool Call Information">
Show users when the agent is invoking tools (e.g., "Searching for flights...") using `Tool Call Start` and `Tool Call End` events. This provides transparency about agent actions.
</Accordion>
<Accordion title="Store Agentic Messages for History">
Persist `AIAssistantMessage`, `AIToolResultMessage`, and `AIToolArgumentMessage` objects locally to display conversation history when users return to the chat.
</Accordion>
</AccordionGroup>

---

## Next Steps

<CardGroup cols={2}>
<Card title="AI Agents Overview" icon="robot" href="/ai-agents">
Learn about AI agent capabilities and configuration
</Card>
<Card title="Send Message" icon="paper-plane" href="/sdk/android/send-message">
Send text messages to AI agents to trigger runs
</Card>
<Card title="Receive Messages" icon="envelope" href="/sdk/android/receive-messages">
Handle incoming messages including AI responses
</Card>
<Card title="Dashboard" icon="gauge" href="https://app.cometchat.com">
Configure and manage AI agents in the CometChat Dashboard
</Card>
</CardGroup>
10 changes: 8 additions & 2 deletions sdk/android/ai-chatbots-overview.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
---
title: "AI"
title: "AI Chatbots"
sidebarTitle: "AI Chatbots"
description: "Implement custom AI chatbots for automated conversations in your Android application"
url: "/ai-chatbots/overview"
---
---

AI Chatbots enable automated conversations within your application. They can process user messages and respond with contextually relevant information. For a broader introduction, see the [AI Chatbots section](/ai-chatbots).

For message payload structures (AIAssistantMessage, AIToolArgumentMessage, AIToolResultMessage), see the [AI Agents](/sdk/android/ai-agents#agentic-message-payload-structures) page.
Loading