useExternalStoreRuntime 适配器连接到 useStream。
工作原理
- 使用
useStream进行流式传输 —— 连接到你的智能体并获取响应式消息、加载状态和提交/取消回调 - 使用
useExternalStoreRuntime适配 —— 通过将BaseMessage[]转换为ThreadMessageLike[],将stream.messages桥接到 assistant-ui 的运行时格式 - 提供运行时 —— 用
AssistantRuntimeProvider包裹你的 UI 并渲染任意 assistant-ui 线程组件
安装
连接 useStream
useExternalStoreRuntime 适配器将 stream.messages 桥接到 assistant-ui 运行时。将其传递给 AssistantRuntimeProvider 并渲染任意线程组件:
转换消息
toThreadMessages 将 LangChain BaseMessage[] 映射到 assistant-ui 期望的 ThreadMessageLike[] 格式。处理每种消息类型——human、AI 和 tool——并转换内容块、工具调用和推理 Token:
自定义线程 UI
<Thread /> 提供完整的默认线程 UI,包括消息列表、编辑器和滚动管理。通过覆盖组件插槽来自定义各个部分:
最佳实践
- **缓存消息转换:**将
toThreadMessages(stream.messages)包裹在useMemo中,避免每次渲染都重新运行转换 - **处理附件:**使用
CompositeAttachmentAdapter配合SimpleImageAttachmentAdapter处理图片上传;使用自定义适配器扩展文件支持 - **使用分支功能:**assistant-ui 通过
MessageBranch内置了消息分支支持;编辑消息即可从该点重新生成 - **线程持久化:**使用
fetchStateHistory: true和reconnectOnMount: true的useStream让 assistant-ui 在页面加载时访问完整的线程历史
将这些文档连接到 Claude、VSCode 等工具,通过 MCP 获取实时答案。

