Use HeroUI Agent's hosted model catalog and validation helpers.
HeroUI Agent accepts only models in its hosted allowlist. Use composer.defaultModel to choose the initial model and composer.modelPicker to let end users change it.
<HeroUIAgent
getAuthToken={getAuthToken}
composer={{defaultModel: "google/gemini-3.7-flash", modelPicker: true}}
agentId={process.env.NEXT_PUBLIC_HEROUI_AGENT_ID!}
/>| ID | Label | Provider | Tier |
|---|---|---|---|
moonshotai/Kimi-K3 | Kimi K3 | Moonshot AI | Light |
openai/gpt-5.6-luna | GPT-5.6 Luna | OpenAI | Light |
openai/gpt-5.6-terra | GPT-5.6 Terra | OpenAI | Codegen |
openai/gpt-5.6-sol | GPT-5.6 Sol | OpenAI | Complex |
google/gemini-3.7-flash | Gemini 3.7 Flash | Light | |
anthropic/claude-sonnet-5 | Claude Sonnet 5 | Anthropic | Codegen |
anthropic/claude-opus-4.8 | Claude Opus 4.8 | Anthropic | Complex |
google/gemini-3.5-flash and google/gemini-3.6-flash were retired in favor
of Gemini 3.7 Flash. Both resolve to google/gemini-3.7-flash, so a pinned
legacy defaultModel keeps working without a code change.
| Export | Description |
|---|---|
AGENT_MODEL_IDS | Readonly array of accepted model IDs. |
AGENT_MODEL_OPTIONS | Model metadata for labels, providers, descriptions, and tiers. |
DEFAULT_AGENT_PICKER_MODEL_ID | Model initially selected by the optional picker. |
isAgentModelId(value) | Type guard for untrusted model IDs. |
getAgentModelTier(modelId) | Return light, codegen, or complex; unknown IDs fall back to light. |
import {AGENT_MODEL_OPTIONS, isAgentModelId} from "@heroui/agent";
const selected = new URLSearchParams(location.search).get("model");
if (isAgentModelId(selected)) {
// selected is AgentModelId
}