返回顶部
a

ai-elementsAI元素组件

Vercel AI Elements for workflow UI components. Use when building chat interfaces, displaying tool execution, showing reasoning/thinking, or creating job queues. Triggers on ai-elements, Queue, Confirmation, Tool, Reasoning, Shimmer, Loader, Message, Conversation, PromptInput.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.0
安全检测
已通过
101
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

ai-elements

AI Elements

AI Elements 是一个全面的 React 组件库,用于构建 AI 驱动的用户界面。该库提供了 30 多个专门为聊天界面、工具执行可视化、推理显示和工作流管理设计的组件。

安装

通过 shadcn 注册表安装:

bash
npx shadcn@latest add https://ai-elements.vercel.app/r/[component-name]

导入模式:组件从单个文件导入,而非批量导出:

tsx
// 正确 - 从特定文件导入
import { Conversation } from @/components/ai-elements/conversation;
import { Message } from @/components/ai-elements/message;
import { PromptInput } from @/components/ai-elements/prompt-input;

// 错误 - 没有批量导出
import { Conversation, Message } from @/components/ai-elements;

组件分类

对话组件

用于显示聊天式界面的组件,支持消息、附件和自动滚动行为。
  • - Conversation:具有自动滚动功能的容器
  • Message:基于角色样式化的单个消息显示
  • MessageAttachment:文件和图片附件
  • MessageBranch:备选回复导航

详见 references/conversation.md

提示输入组件

高级文本输入组件,支持文件附件、拖放、语音输入和状态管理。
  • - PromptInput:带文件处理功能的表单容器
  • PromptInputTextarea:自动扩展的文本区域
  • PromptInputSubmit:状态感知的提交按钮
  • PromptInputAttachments:文件附件显示
  • PromptInputProvider:全局状态管理

详见 references/prompt-input.md

工作流组件

用于显示任务队列、工具执行和审批工作流的组件。
  • - Queue:任务队列容器
  • QueueItem:带状态的单个队列项
  • Tool:带可折叠状态的工具执行显示
  • Confirmation:审批工作流组件
  • Reasoning:可折叠的思考/推理显示

详见 references/workflow.md

可视化组件

基于 ReactFlow 的工作流可视化和自定义节点类型组件。
  • - Canvas:带航空特定默认设置的 ReactFlow 封装
  • Node:带连接点的自定义节点组件
  • Edge:临时和动画边缘类型
  • Controls、Panel、Toolbar:导航和控制元素

详见 references/visualization.md

与 shadcn/ui 集成

AI Elements 构建于 shadcn/ui 之上,并与其主题系统无缝集成:

  • - 使用 shadcn/ui 的设计令牌(颜色、间距、排版)
  • 通过 CSS 变量支持亮/暗模式
  • 与 shadcn/ui 组件兼容(Button、Card、Collapsible 等)
  • 遵循 shadcn/ui 的组件组合模式

关键设计模式

组件组合

AI Elements 采用组合优先的方法,较大的组件由较小的原语构建:

tsx






基于上下文的状态管理

许多组件使用 React Context 进行状态管理:
  • - PromptInputProvider 用于全局输入状态
  • MessageBranch 用于备选回复导航
  • Confirmation 用于审批工作流状态
  • Reasoning 用于可折叠思考状态

受控与非受控

组件支持受控和非受控模式:

tsx
// 非受控(自管理状态)

// 受控(外部状态)


工具状态机

Tool 组件遵循 Vercel AI SDK 的状态机:

  1. 1. input-streaming:正在接收参数
  2. input-available:准备执行
  3. approval-requested:等待用户批准(SDK v6)
  4. approval-responded:用户已响应(SDK v6)
  5. output-available:执行完成
  6. output-error:执行失败
  7. output-denied:批准被拒绝

队列模式

队列组件支持层级组织:

tsx



} />





Task description




自动滚动行为

Conversation 组件使用 use-stick-to-bottom 钩子实现智能自动滚动:

  • - 新消息到达时自动滚动到底部
  • 用户向上滚动时暂停自动滚动
  • 不在底部时提供滚动到底部按钮
  • 支持平滑和即时滚动模式

文件附件处理

PromptInput 提供全面的文件处理功能:

  • - 拖放支持(本地或全局)
  • 粘贴图片/文件支持
  • 文件类型验证(accept 属性)
  • 文件大小限制(maxFileSize 属性)
  • 最大文件数量(maxFiles 属性)
  • 图片预览,文件图标
  • 提交时自动将 blob URL 转换为 data URL

语音输入

PromptInputSpeechButton 使用 Web Speech API 进行语音输入:

  • - 基于浏览器的语音识别
  • 连续识别模式
  • 支持中间结果
  • 自动将文本插入文本区域
  • 录制期间的视觉反馈

推理自动折叠

Reasoning 组件提供自动折叠行为:

  • - 流式传输开始时自动打开
  • 流式传输结束后 1 秒关闭
  • 以秒为单位跟踪思考时长
  • 流式传输期间显示带闪烁效果的思考中...
  • 完成时显示思考了 N 秒

TypeScript 类型

所有组件都使用 TypeScript 进行完整类型定义:

typescript
import type { ToolUIPart, FileUIPart, UIMessage } from ai;

type ToolProps = ComponentProps;
type QueueItemProps = ComponentProps

  • ;
    type MessageAttachmentProps = HTMLAttributes & {
    data: FileUIPart;
    onRemove?: () => void;
    };

    常见用例

    聊天界面

    组合 Conversation、Message 和 PromptInput 构建完整的聊天 UI:

    tsx
    import { Conversation, ConversationContent, ConversationScrollButton } from @/components/ai-elements/conversation;
    import { Message, MessageContent, MessageResponse } from @/components/ai-elements/message;
    import {
    PromptInput,
    PromptInputTextarea,
    PromptInputFooter,
    PromptInputTools,
    PromptInputButton,
    PromptInputSubmit
    } from @/components/ai-elements/prompt-input;




    {messages.map(msg => (


    {msg.content}


    ))}






    attachments.openFileDialog()}>






    工具执行显示

    显示带有可展开详情的工具执行:

    tsx
    import { Tool, ToolHeader, ToolContent, ToolInput, ToolOutput } from @/components/ai-elements/tool;

    {toolInvocations.map(tool => (

    title={tool.toolName}
    type={tool-call-${tool.toolName}}
    state={tool.state}
    />


    {tool.result && (

    )}


    ))}

    审批工作流

    在执行操作前请求用户确认:

    tsx
    import {
    Confirmation,
    ConfirmationTitle,
    ConfirmationRequest,
    ConfirmationActions,
    ConfirmationAction,
    ConfirmationAccepted,
    ConfirmationRejected
    } from @/components/ai-elements/confirmation;

  • 标签

    skill ai

    通过对话安装

    该技能支持在以下平台通过对话安装:

    OpenClaw WorkBuddy QClaw Kimi Claude

    方式一:安装 SkillHub 和技能

    帮我安装 SkillHub 和 ai-elements-1775982676 技能

    方式二:设置 SkillHub 为优先技能安装源

    设置 SkillHub 为我的优先技能安装源,然后帮我安装 ai-elements-1775982676 技能

    通过命令行安装

    skillhub install ai-elements-1775982676

    下载

    ⬇ 下载 ai-elements v1.1.0(免费)

    文件大小: 21.06 KB | 发布时间: 2026-4-13 09:13

    v1.1.0 最新 2026-4-13 09:13
    **Expanded component library, enhanced documentation, and improved workflow patterns for building AI interfaces.**

    - Introduced a comprehensive SKILL.md covering 30+ components for chat, workflow, and visualization interfaces.
    - Detailed installation, import patterns, and integration with shadcn/ui.
    - Documented new component categories: Conversation, PromptInput, Workflow, and Visualization.
    - Added examples for component usage, composition patterns, and state management (context, controlled/uncontrolled).
    - Described Queue, Tool state machine, auto-scroll, file attachment, speech input, and reasoning components’ behaviors with usage details.

    Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

    Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

    p2p_official_large
    返回顶部