CometChat’s iOS UI Kit iOS UI Kit (v5+) now supports AI agent chat. Integrate AI agents into your iOS app to provide intelligent conversational experiences with chat history, contextual responses.
Why this matters to iOS developers
An AI agent isn't a different kind of chat screen — it's the same one-on-one messaging UI you've already built, pointed at a different kind of user. Every time a platform lacks that primitive, you end up building a parallel "AI chat" screen: its own message list, its own way of remembering past sessions, its own resume logic. That's a second UI to maintain for a conversation that should behave like any other thread.
The iOS UI Kit closes that gap. CometChatMessageHeader, CometChatMessageList, and CometChatMessageComposer handle an agent conversation exactly like a human one. You detect the agent, route to the same components, and configure a few agent-specific behaviors — history, streaming, tools on top.
Scope: AI agents respond in one-on-one conversations today , the agent is a user, and you chat with it on the same 1:1 screen.
Key features and capabilities
Agent detection without new data models.
There's no separate "isAgent" flag to fetch and store. CometChatSDK already carries a role on every User; the UI Kit convention is to check that string for "agentic" and branch your navigation accordingly.
Chat history browsing.
CometChatAIAssistanceChatHistory lists a user's past AI conversations. It exposes onNewChatButtonClicked to start fresh and onMessageClicked to resume a previous one — both handed back to your view controller so you control navigation.
Streaming responses, tunable.
messageList.set(streamingSpeed: 50) sets how many characters per second an AI response renders at, rather than dumping the full message at once.
Suggested messages
messageComposer.set(suggestedMessages: [...]) surfaces quick-start prompts in the composer so a new conversation doesn't open on a blank field.
Custom AI tools.
messageComposer.set(aiAssistantTools:) takes a closure keyed to the current message, returning an array of AITool(name:description:) — so the tools you expose to the agent can change based on where the conversation is, not just what's globally available.
Bubble styling
AIAssistantBubbleStyle covers backgroundColor, borderWidth, borderColor, textColor, textFont, and cornerRadius, set globally via CometChatAIAssistantBubble.style or per instance.
Empty state and font control.
messageList.set(emptyStateView:) swaps in your own view for the zero-message state. And since iOS UI Kits inherit font size from the OS accessibility settings by default, textFont (or global CometChatTypography) is there if you need to override that.
What's interesting about the tech
The chat history feature doesn't invent a separate "session" concept to track past AI conversations. Resuming a past thread works by calling set(parentMessage:) on both CometChatMessageList and CometChatMessageComposer — the same parent-message plumbing the UI Kit already uses for threaded replies. Click a message in CometChatAIAssistanceChatHistory, and that message becomes the parent for a new view controller instance; the list and composer thread the conversation from there. No new persistence layer, no separate resume API — the AI history browser is a UI over a messaging primitive that already existed.
Reference links
Getting Started with iOS UI Kit
Nivedita Bharathy
Product Marketing Specialist , CometChat
