@assistant-ui/next

中文文档
0.0.25发布于 2026/10/09MITTypeScriptES Module构建来源已验证近 30 天下载 3.5万

Next.js 助理-ui的集成:与Aui () 配置包和"使用基因"指令编译器,将一个工具的策略,只执行服务器,并且只执行客户端在一文件中渲染.

中文使用文档
文档目录4 节
  1. 为什么
  2. 撰写
  3. 连接到 Next.js
  4. 许可证

@ assistant- ui/ ext

Next.js 助教的整合: withAui() 配置包装和 用于编辑器 "use generative" 指令。 粘合一个工具 计划, (中文(简体) ), 仅限服务器 execute,以及 只有客户端 render 在一个文件中; 编译器 每个建构目标都发出不同的模块,所以每一边只加载它所需要的.

见 SPEC.md 高频 完全设计.

为什么

"use client" 整个模块,所以它不能保持一个工具的 zod schema 可读 在保留服务器时 render 在客户端。 还有后端 execute 持有不可到达浏览器捆绑的密件( DB 手柄, API 密钥) . "use generative" 将每个财产都引导到正确的地方.

每个工具 必须 声明 execute,然后将默认导出包入 defineToolkit({ ... }) (两者都强制执行——否则编译器出错). 你个 不要声明工具的种类: 编译器 推断 它从 execute 财务报告和审定财务报表 写入 type 字段返回输出.

你如何写作 execute类型运行在哪里
execute 带有 "use client" 指令frontend客户端
execute (陈述)backend服务器( e)server-only 警卫)
execute: humanTool()human- (UI提供结果)

一个平地 execute 默认情况下只为服务器 —— 您只能在浏览器中运行一个 选择与 "use client"所以秘密不能因为疏忽而泄露.

撰写

"use generative";
import { z } from "zod";
import { defineToolkit } from "@assistant-ui/react";
import { db } from "@/db"; // server-only
import { Chart } from "@/ui/chart"; // client-only

export default defineToolkit({
  weather: {
    description: "Show the weather for a city.",
    parameters: z.object({ city: z.string() }),
    execute: async ({ city }) => db.weather.get(city), // backend → stays on the server
    render: (props) => <Chart data={props} />, // stays on the client
  },
});

服务器构建保存 parameters + 键 execute (警卫员) import "server-only"标记 type: "backend")和下降数 render 财务报告和审定财务报表 @/ui/chart。 。 。 . 客户端构建保留 parameters + 键 render (单位:千美元) "use client")和下降数 execute 财务报告和审定财务报表 @/dbA级 frontend 工具标记其 execute 与 "use client"数字 :

execute: async ({ city }) => {
  "use client";
  return navigator.geolocation /* … runs in the browser, kept client-side */;
},

连接到 Next.js

包装你的配置。 探测器由 "use generative" 指令 - 有 没有 文件名公约;没有指令的模块通过未触及.

// next.config.ts
import { withAui } from "@assistant-ui/next";

export default withAui({
  /* your Next config */
});

withAui 将装载器应用到您的 TS/ TSX 。 限制文件数量 扫描,缩小光圈: withAui(config, { rules: ["*.generative.tsx"] })。 。 。 .

导入模块 赤线 从两边开始——装填器将其重写为外表 解决每层右建置( 没有查询, 没有每个文件配置) :

// a client component → resolves to the client build (schema + render)
import toolkit from "@/lib/chat.generative";

// a route handler (react-server layer) → resolves to the server build (schema + execute)
import toolkit from "@/lib/chat.generative";

使用 AI SDK 将服务器构建转换为 a ToolSet (见 AISDKToolkit 内 @assistant-ui/ai-sdk) (中文(简体) ).

验证于下16.2.6 (Turbopack). Turbopack 向装载器致敬 "use client",但每个资源路径编译一个输出——因此服务器构建 由它自己选择 ?generative-env=server 查询而不是构建层. 清除 .next 在修改加载器后(Turbopacks缓存加载器输出).

许可证

麻省理工学院

版本与发布记录

@assistant-ui/next 共发布 23 个版本,首次发布于 2026/05/31;过去 12 个月发布了 23 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.25latest2026/10/0929 天前
0.0.242026/10/061 个月前
0.0.232026/09/241 个月前
0.0.222026/09/181 个月前
0.0.212026/09/151 个月前
0.0.202026/09/111 个月前

关于 @assistant-ui/next 的常见问题

@assistant-ui/next 是什么?

Next.js 助理-ui的集成:与Aui () 配置包和"使用基因"指令编译器,将一个工具的策略,只执行服务器,并且只执行客户端在一文件中渲染.

如何安装 @assistant-ui/next?

在项目目录运行 npm install @assistant-ui/next,或使用 pnpm add / yarn add / bun add。

@assistant-ui/next 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@assistant-ui/next 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@assistant-ui/next 可以商用吗?

@assistant-ui/next 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@assistant-ui/next 的下载量有多少?

根据 npm 官方下载统计,@assistant-ui/next 在 2026/10/07 – 2026/11/05 这 30 天内被下载 35,484 次,日均约 1,183 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@assistant-ui/next 还在维护吗?

最新版本 0.0.25 发布于 2026/10/09(29 天前);至今共发布 23 个版本,其中过去 12 个月发布了 23 个;首次发布于 2026/05/31。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。