name: agent-ui
description: "Batteries-included agent component for React/Next.js from ui.inference.sh. One component with runtime, tools, streaming, approvals, and widgets built in. Capabilities: drop-in agent, human-in-the-loop, client-side tools, form filling. Use for: building AI chat interfaces, agentic UIs, SaaS copilots, assistants. Triggers: agent component, agent ui, chat agent, shadcn agent, react agent," agentic ui, ai assistant ui, copilot ui, inference ui, human in the loop
Agent Component
Batteries-included agent component from ui.inference.sh.
Quick Start
# Install the agent component
npx shadcn@latest add https://ui.inference.sh/r/agent.json
# Add the SDK for the proxy route
npm install @inferencesh/sdk
Setup
1. API Proxy Route (Next.js)
// app/api/inference/proxy/route.ts
import { route } from '@inferencesh/sdk/proxy/nextjs';
export const { GET, POST, PUT } = route;
2. Environment Variable
# .env.local
INFERENCE_API_KEY=inf_...
3. Use the Component
import { Agent } from "@/registry/blocks/agent/agent"
export default function Page() {
return (
<Agent
proxyUrl="/api/inference/proxy"
agentConfig={{
core_app: { ref: 'openrouter/claude-haiku-45@0fkg6xwb' },
description: 'a helpful ai assistant',
system_prompt: 'you are helpful.',
}}
/>
)
}
Features
| Feature |
Description |
| Runtime included |
No backend logic needed |
| Tool lifecycle |
Pending, progress, approval, results |
| Human-in-the-loop |
Built-in approval flows |
| Widgets |
Declarative JSON UI from agent responses |
| Streaming |
Real-time token streaming |
| Client-side tools |
Tools that run in the browser |
Client-Side Tools Example
import { Agent } from "@/registry/blocks/agent/agent"
import { createScopedTools } from "./blocks/agent/lib/client-tools"
const formRef = useRef<HTMLFormElement>(null)
const scopedTools = createScopedTools(formRef)
<Agent
proxyUrl="/api/inference/proxy"
config={{
core_app: { ref: 'openrouter/claude-haiku-45@0fkg6xwb' },
tools: scopedTools,
system_prompt: 'You can fill forms using scan_ui and fill_field tools.',
}}
/>
Props
| Prop |
Type |
Description |
proxyUrl |
string |
API proxy endpoint |
name |
string |
Agent name (optional) |
config |
AgentConfig |
Agent configuration |
allowFiles |
boolean |
Enable file uploads |
allowImages |
boolean |
Enable image uploads |
Related Skills
# Chat UI building blocks
npx skills add inference-sh/skills@chat-ui
# Declarative widgets from JSON
npx skills add inference-sh/skills@widgets-ui
# Tool lifecycle UI
npx skills add inference-sh/skills@tools-ui
Documentation
Component docs: ui.inference.sh/blocks/agent
1---2name: agent-ui3description: Batteries-included agent component from ui.inference.sh.4---5
6---
7name: agent-ui
8description: "Batteries-included agent component for React/Next.js from ui.inference.sh. One component with runtime, tools, streaming, approvals, and widgets built in. Capabilities: drop-in agent, human-in-the-loop, client-side tools, form filling. Use for: building AI chat interfaces, agentic UIs, SaaS copilots, assistants. Triggers: agent component, agent ui, chat agent, shadcn agent, react agent," agentic ui, ai assistant ui, copilot ui, inference ui, human in the loop
9---
10
11# Agent Component
12
13Batteries-included agent component from [ui.inference.sh](https://ui.inference.sh).
14
15
16
17## Quick Start
18
19```bash
20# Install the agent component
21npx shadcn@latest add https://ui.inference.sh/r/agent.json
22
23# Add the SDK for the proxy route
24npm install @inferencesh/sdk
25```
26
27## Setup
28
29### 1. API Proxy Route (Next.js)
30
31```typescript
32// app/api/inference/proxy/route.ts
33import { route } from '@inferencesh/sdk/proxy/nextjs';
34export const { GET, POST, PUT } = route;
35```
36
37### 2. Environment Variable
38
39```bash
40# .env.local
41INFERENCE_API_KEY=inf_...
42```
43
44### 3. Use the Component
45
46```tsx
47import { Agent } from "@/registry/blocks/agent/agent"
48
49export default function Page() {
50 return (
51 <Agent
52 proxyUrl="/api/inference/proxy"
53 agentConfig={{
54 core_app: { ref: 'openrouter/claude-haiku-45@0fkg6xwb' },
55 description: 'a helpful ai assistant',
56 system_prompt: 'you are helpful.',
57 }}
58 />
59 )
60}
61```
62
63## Features
64
65| Feature | Description |
66|---------|-------------|
67| Runtime included | No backend logic needed |
68| Tool lifecycle | Pending, progress, approval, results |
69| Human-in-the-loop | Built-in approval flows |
70| Widgets | Declarative JSON UI from agent responses |
71| Streaming | Real-time token streaming |
72| Client-side tools | Tools that run in the browser |
73
74## Client-Side Tools Example
75
76```tsx
77import { Agent } from "@/registry/blocks/agent/agent"
78import { createScopedTools } from "./blocks/agent/lib/client-tools"
79
80const formRef = useRef<HTMLFormElement>(null)
81const scopedTools = createScopedTools(formRef)
82
83<Agent
84 proxyUrl="/api/inference/proxy"
85 config={{
86 core_app: { ref: 'openrouter/claude-haiku-45@0fkg6xwb' },
87 tools: scopedTools,
88 system_prompt: 'You can fill forms using scan_ui and fill_field tools.',
89 }}
90/>
91```
92
93## Props
94
95| Prop | Type | Description |
96|------|------|-------------|
97| `proxyUrl` | string | API proxy endpoint |
98| `name` | string | Agent name (optional) |
99| `config` | AgentConfig | Agent configuration |
100| `allowFiles` | boolean | Enable file uploads |
101| `allowImages` | boolean | Enable image uploads |
102
103## Related Skills
104
105```bash
106# Chat UI building blocks
107npx skills add inference-sh/skills@chat-ui
108
109# Declarative widgets from JSON
110npx skills add inference-sh/skills@widgets-ui
111
112# Tool lifecycle UI
113npx skills add inference-sh/skills@tools-ui
114```
115
116## Documentation
117
118- [Agents Overview](https://inference.sh/docs/agents/overview) - Building AI agents
119- [Agent SDK](https://inference.sh/docs/api/agent/overview) - Programmatic agent control
120- [Human-in-the-Loop](https://inference.sh/docs/runtime/human-in-the-loop) - Approval flows
121- [Agents That Generate UI](https://inference.sh/blog/ux/generative-ui) - Building generative UIs
122- [Agent UX Patterns](https://inference.sh/blog/ux/agent-ux-patterns) - Best practices
123
124Component docs: [ui.inference.sh/blocks/agent](https://ui.inference.sh/blocks/agent)