AgentSkillsCN

agent-ui

ui.inference.sh 提供的 React/Next.js 电池式代理组件。 内置运行时、工具、流式处理、审批流程与各类小部件。 功能特性:即插即用代理、人机协同、客户端工具、表单填写。 适用场景:构建 AI 聊天界面、代理式 UI、SaaS 助手、智能助理。 触发器:代理组件、代理 UI、聊天代理、ShadCN 代理、React 代理、 代理式 UI、AI 助理 UI、Copilot UI、推理 UI、人机协同

SKILL.md
--- frontmatter
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

bash
# 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)

typescript
// app/api/inference/proxy/route.ts
import { route } from '@inferencesh/sdk/proxy/nextjs';
export const { GET, POST, PUT } = route;

2. Environment Variable

bash
# .env.local
INFERENCE_API_KEY=inf_...

3. Use the Component

tsx
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

FeatureDescription
Runtime includedNo backend logic needed
Tool lifecyclePending, progress, approval, results
Human-in-the-loopBuilt-in approval flows
WidgetsDeclarative JSON UI from agent responses
StreamingReal-time token streaming
Client-side toolsTools that run in the browser

Client-Side Tools Example

tsx
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

PropTypeDescription
proxyUrlstringAPI proxy endpoint
namestringAgent name (optional)
configAgentConfigAgent configuration
allowFilesbooleanEnable file uploads
allowImagesbooleanEnable image uploads

Related Skills

bash
# Chat UI building blocks
npx skills add inference-sh/agent-skills@chat-ui

# Declarative widgets from JSON
npx skills add inference-sh/agent-skills@widgets-ui

# Tool lifecycle UI
npx skills add inference-sh/agent-skills@tools-ui

Documentation

Component docs: ui.inference.sh/blocks/agent