Chat Widget
Embed a fully-featured chat into your React app in minutes. The chat connects to your Ensemble agent with real-time streaming and supports custom widgets.
Secure by Design
Authentication flows through JWT tokens. Your agent's API keys, third-party credentials, and secrets never touch the browser. Users authenticate with your existing auth system.
Real-Time Streaming
Responses stream token-by-token as the agent generates them. Users see the AI "thinking" in real-time, not waiting for complete responses.
Custom Widgets
Your agent can render any React component inside the chat. Show product cards, data tables, interactive maps, booking forms—whatever your use case needs. You define the schema, the AI populates it, and your component renders it.
API Enrichment
Widgets can fetch additional data from tools before rendering. The LLM generates a widget payload, the server calls your configured tools to enrich it, and your component receives both. Perfect for real-time data like inventory levels, distances, or pricing that shouldn't be hallucinated. This also reduces token cost and latency since the LLM doesn't need to generate this data.
Voice & Speech
Optional text-to-speech for agent responses and speech-to-text for user input. Build voice-enabled assistants without additional infrastructure.
Built-in Feedback
Thumbs up/down on every response. Collect user sentiment to improve your agents over time.