SuperAPI AI 工具集

iblai-agent-chat

智能体与模型

查看项目

更新于 10-15 22:16

技能介绍

用途:把 ibl.ai 的完整智能体聊天界面接入 Next.js 应用。使用 @iblai/iblai-js/web-containers/next 提供的 Chat React 组件,组件在进程内渲染(非 iframe),与宿主应用共享 Redux store、providers 和认证会话。注意:这是本文档所述的进程内 Chat 组件,与模板中旧版全屏 <mentor-ai> web-component ChatWidget 不同。不要给 SDK Chat 组件添加自定义样式、颜色或 CSS 覆盖,除非用户明确要求否则不要实现深色模式。

前置条件:需先完成认证设置(/iblai-auth),应用已有可用的 store、providers 与 SSO 回调路由,并能读取 axd token、username、tenants;需要一个 agent/mentor ID(UUID),可在 https://mentorai.iblai.app 创建。SDK 最低版本:@iblai/iblai-js ^1.10.3、@iblai/web-containers 1.6.14、@iblai/web-utils 1.6.9、@iblai/data-layer 1.5.7。写代码前先做导出检查:grep -qE "declare function Chat\b|type ChatConfig" node_modules/@iblai/web-containers/dist/next/index.d.ts。注意 SDK 的 .d.ts 不完整且有时误导,遇到不匹配应以实际打包文件 node_modules/@iblai/web-containers/dist/next/index.esm.js 为准。

主要能力与接线:需配置 .env.local 中的运行时环境变量(如 NEXT_PUBLIC_BASE_WS_URL、NEXT_PUBLIC_AUTH_URL、NEXT_PUBLIC_DM_URL 等);安装依赖时一并安装 @iblai/data-layer、@iblai/web-containers、@iblai/web-utils、@iblai/agent-ai、react-paginate、livekit-client、@livekit/components-react、@livekit/components-styles、@tauri-apps/plugin-os、@tauri-apps/api(均为构建期必需,缺失会导致 Module not found 硬错误);在 providers/index.tsx 中用 ServiceWorkerProvider 包裹 Auth/Tenant/Mentor providers,并在 SSO 登录路由传 skip;提供 public/sw.js;子路径挂载需在 next.config 配置 Service-Worker-Allowed 头并把 reactStrictMode 设为 false;在 store/index.ts 注册 chat、chatInput、chatSliceShared、files、rbac、subscription、topBanner 等 reducer(键名固定不可改,老项目需重命名宿主自身冲突 slice);创建 app/agents/[mentorId]/chat-new/page.tsx 渲染 <Chat>,并用 Suspense 包裹。

重要限制:<Chat> 无 sessionId prop,也不读 URL 会话参数;会话存于 localStorage(useCachedSessionId 的 { [mentorId]: sessionId }),仅在挂载时读取一次,因此必须在挂载前预置(恢复)或清除(新会话),并对 <Chat> 以 mentor/session/new 作为 key。挂载纪律:绝不要在 <Chat> 周围有条件地交换子树,唯一合法的重挂载是有意的会话/新会话 key 变更。老项目还需处理 store 键冲突与已知问题(如 SDK 提示词画廊拆卸 bug 需宿主恢复)。恢复/启动会话的示例代码在资料中未完整提供。