# Agent A composable component for displaying AI agent configuration with model, instructions, tools, and output schema. The `Agent` component displays an interface for showing AI agent configuration details. It's designed to represent a configured agent from the AI SDK, showing the agent's model, system instructions, available tools (with expandable input schemas), and output schema. See `scripts/agent.tsx` for this example. ## Installation ```bash npx ai-elements@latest add agent ``` ## Usage with AI SDK Display an agent's configuration alongside your chat interface. Tools are displayed in an accordion where clicking the description expands to show the input schema. ```tsx title="app/page.tsx" "use client"; import { tool } from "ai"; import { z } from "zod"; import { Agent, AgentContent, AgentHeader, AgentInstructions, AgentOutput, AgentTool, AgentTools, } from "@/components/ai-elements/agent"; const webSearch = tool({ description: "Search the web for information", inputSchema: z.object({ query: z.string().describe("The search query"), }), }); const readUrl = tool({ description: "Read and parse content from a URL", inputSchema: z.object({ url: z.string().url().describe("The URL to read"), }), }); const outputSchema = `z.object({ sentiment: z.enum(['positive', 'negative', 'neutral']), score: z.number(), summary: z.string(), })`; export default function Page() { return ( Analyze the sentiment of the provided text and return a structured analysis with sentiment classification, confidence score, and summary. ); } ``` ## Features - Model badge in header - Instructions rendered as markdown - Tools displayed as accordion items with expandable input schemas - Output schema display with syntax highlighting - Composable structure for flexible layouts - Works with AI SDK `Tool` type ## Props ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `...props` | `React.ComponentProps<` | - | Any props are spread to the root div. | ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `name` | `string` | Required | The name of the agent. | | `model` | `string` | - | The model identifier (e.g. | | `...props` | `React.ComponentProps<` | - | Any other props are spread to the container div. | ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `...props` | `React.ComponentProps<` | - | Any other props are spread to the container div. | ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `children` | `string` | Required | The instruction text. | | `...props` | `React.ComponentProps<` | - | Any other props are spread to the container div. | ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `...props` | `React.ComponentProps` | - | Any other props are spread to the Accordion component. | ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `tool` | `Tool` | Required | The tool object from the AI SDK containing description and inputSchema. | | `value` | `string` | Required | Unique identifier for the accordion item. | | `...props` | `React.ComponentProps` | - | Any other props are spread to the AccordionItem component. | ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `schema` | `string` | Required | The output schema as a string (displayed with syntax highlighting). | | `...props` | `React.ComponentProps<` | - | Any other props are spread to the container div. |