前端开发
在 React/React Native/Ink 中构建…
面对 assistant-ui 的高层、跨领域或架构问题,需要选择包、选择 runtime 或理解 elements/primitives/aui client/runtime/adapters 分层与消息模型时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 React/React Native特定
解决思路
- 始终查阅 https://www.assistant-ui.com/llms.txt 获取最新 API。
- 需要架构细节时,阅读 ./references/architecture.md,了解 layers、aui client、数据流、消息模型。
- 需要包清单时,阅读 ./references/packages.md,了解每个已发布包及何时安装。
- 按五层架构理解 assistant-ui:Elements(样式化,复制到 components/assistant-ui/)和 Primitives(无样式,@assistant-ui/react);aui client(useAui、useAuiState、useAuiEvent、AuiIf,作用域由 AuiConfig 通过 AssistantRuntimeProvider 或 AuiProvider 提供,底层是 @assistant-ui/store on @assistant-ui/tap);Runtime(AssistantRuntime → ThreadRuntime → MessageRuntime,@assistant-ui/core,框架无关);Adapters 和 backends(AI SDK、LangGraph、LangChain、ADK、A2A、AG-UI、Eve、OpenCode、Pi、自定义、Assistant Cloud)。
- 快速搭建聊天 UI:运行 npx assistant-ui@latest create,然后使用 thread element。
- 需要完全控制标记:使用 Primitives(ThreadPrimitive、ComposerPrimitive、MessagePrimitive)。
- 已有 AI 后端:接入 runtime adapter(AI SDK、LangGraph、LangChain、ADK、A2A、AG-UI、Eve、OpenCode)或 useLocalRuntime。
- 需要带 UI 的工具:使用 "use generative" toolkits、tool UI、generative UI。
- 多线程应用:使用 thread list elements 加 Assistant Cloud 或自己的 adapter。
- 应用内 Copilot:使用 instructions、context、visible components、interactables。
- 移动或终端:使用 @assistant-ui/react-native、@assistant-ui/react-ink。
- 选择 runtime 时,若使用 Vercel AI SDK,则从 @assistant-ui/ai-sdk 导入 useChatRuntime(推荐)。
- 若使用 LangGraph server,则使用 useLangGraphRuntime(@assistant-ui/react-langgraph)。
- 若使用 LangChain / LangGraph useStream,则使用 useStreamRuntime(@assistant-ui/react-langchain)。
- 若使用 Google ADK,则使用 useAdkRuntime(@assistant-ui/react-google-adk)。
- 若使用 A2A 协议,则使用 useA2ARuntime(@assistant-ui/react-a2a)。
- 若使用 AG-UI 协议,则使用 useAgUiRuntime(@assistant-ui/react-ag-ui)。
- 若使用 Eve agents,则使用 useEveAgentRuntime(@assistant-ui/eve)。
- 若使用 OpenCode,则使用 useOpenCodeRuntime(@assistant-ui/react-opencode)。
- 若使用 Claude Managed Agents,则使用 useExternalStoreRuntime + useRemoteThreadListRuntime。
- 若状态已在 Redux/Zustand/自己的 store 中,则使用 useExternalStoreRuntime。
- 若自定义端点使用 Assistant Transport,则使用 useAssistantTransportRuntime。
- 若对接任何其他自定义 API,则使用 useLocalRuntime 搭配 ChatModelAdapter。
- 安装核心包:@assistant-ui/react 提供 Primitives、hooks、runtimes、provider;@assistant-ui/ai-sdk 提供 AI SDK v7 集成(useChatRuntime、AssistantChatTransport、AISDKToolkit、frontendTools);@assistant-ui/core 提供框架无关 runtime;@assistant-ui/store 提供 AuiConfig、AuiProvider、useAui 状态层;@assistant-ui/react-markdown 提供 MarkdownTextPrimitive;assistant-stream 提供流协议、编码器、可恢复流;assistant-cloud 提供 Assistant Cloud 客户端;assistant-ui 提供 CLI(create、init、add、update、upgrade、doctor、mcp、agent)。
- 兼容旧安装:@assistant-ui/react-ai-sdk 重导出 @assistant-ui/ai-sdk;新代码从 @assistant-ui/ai-sdk 导入。
- 使用样式化组件:它们不是包;运行 npx assistant-ui@latest add thread 会复制到 components/assistant-ui/elements/。
- 快速开始:在客户端组件中从 @assistant-ui/react 导入 AssistantRuntimeProvider,从 @assistant-ui/ai-sdk 导入 useChatRuntime,从 @/components/assistant-ui/elements/thread.aui 导入 Thread;创建 const runtime = useChatRuntime();用 <AssistantRuntimeProvider runtime={runtime}><Thread /></AssistantRuntimeProvider> 包裹。
- 默认 useChatRuntime() 通过 AssistantChatTransport 向 /api/chat 发送请求,并转发前端工具和系统指令;传入 new AssistantChatTransport({ api }) 修改端点。
- 状态访问:从 @assistant-ui/react 导入 useAui、useAuiState、useAuiEvent;aui 上的作用域访问器是属性,scope 上的方法保留括号;selector 每个返回一个 primitive 或稳定引用。
- 执行操作:aui.thread.append({ role: "user", content: [{ type: "text", text: "Hi" }] }); aui.thread.cancelRun(); aui.thread.composer().send(); aui.threads.switchToNewThread();
- 读取状态:const messages = useAuiState((s) => s.thread.messages); const isRunning = useAuiState((s) => s.thread.isRunning);
- 监听事件:useAuiEvent("threads.selectionChanged", ({ threadId, previousThreadId }) => {});
- 提供作用域:用 AuiConfig 声明 tools、suggestions、interactables、MCP managers 等,并传给 provider;useAui() 不带参数。
- 配置示例:const config = AuiConfig({ tools: Tools({ toolkit }), suggestions: Suggestions(["What can you do?", "Summarize this page"]) }); 将 config 传给 AssistantRuntimeProvider。
- 嵌套作用域使用 <AuiProvider extends={useAui()} config={config}>;隔离根使用 extends={null}。
- 针对具体领域,路由到对应兄弟技能:setup、elements、primitives、runtime、tools、generative-ui、streaming、cloud、thread-list、copilots、markdown、react-mcp、observability、react-native、ink、update。
- 当前版本线:@assistant-ui/react 0.15.x,AI SDK v7 通过 @assistant-ui/ai-sdk;按此版本线选择 API。
适用边界 · 注意事项
- 具体领域问题(setup、elements、primitives、runtime、tools、generative-ui、streaming、cloud、thread-list、copilots、markdown、react-mcp、observability、react-native、ink、update)应使用对应兄弟技能,而不是仅依赖此总览。
- 项目不使用 React、React Native 或 Ink,或无法安装 npm 包/assistant-ui CLI 时,不适用。
- 只需要底层流协议而不使用 assistant-ui 的组件、runtime 或 store 时,应直接看 assistant-stream,而不是此总览。