跳转到正文
OrbZ核心概念助手状态

助手状态

state 选择五种动效之一。状态传达视觉意图,不会开启麦克风、调用模型或播放音频。

状态视觉意图典型应用信号
idle平静且可用已准备好下一次交互
listening专注接收正在采集输入
thinking集中处理请求或工具链正在执行
speaking有活力的语音式运动正在播放合成或流式音频
asleep安静、暗淡的休息助手不可用或有意休眠

设置状态

使用 HTML 属性:

<orb-z state="listening"></orb-z>

或更新对应的 JavaScript 属性:

import "@neongate-ai/orbz/browser"; import type { OrbzElement } from "@neongate-ai/orbz"; const orb = document.querySelector<OrbzElement>("orb-z"); if (orb) { orb.state = "thinking"; }

React 与 Next.js 在导入浏览器入口后渲染相同原生标签:

import "@neongate-ai/orbz/browser"; import type { OrbzState } from "@neongate-ai/orbz"; export function AssistantPresence({ state }: { state: OrbzState }) { return <orb-z state={state} />; }

更改 state 会用新状态动效替换当前动画。若存在 paused,Orbz 渲染新状态并保持暂停。

在 Orbz 外维护领域状态

真实助手的状态多于视觉球体所需:请求权限、重连、等待工具、错误恢复或被中断。应在应用中维护这些领域状态,并映射到最接近的视觉意图。

type SessionPhase = | "booting" | "ready" | "capturing" | "transcribing" | "requesting" | "playing" | "offline" | "failed"; const visualState = { booting: "idle", ready: "idle", capturing: "listening", transcribing: "thinking", requesting: "thinking", playing: "speaking", offline: "asleep", failed: "idle", } as const;

错误详情应显示在真实文字或控件中。只改变颜色或动效不足以解释故障。

无效或缺失值

默认状态是 idle。移除 state,或通过无类型运行时代码赋不支持的值,会归一化回 idle。TypeScript 使用者可导入 OrbzState 或 ORBZ_STATES 防止无效值。

import { ORBZ_STATES, type OrbzState } from "@neongate-ai/orbz"; function setState(state: OrbzState) { // state is one of the five documented values } for (const state of ORBZ_STATES) { console.log(state); }

状态还必须可被感知

动效是呈现,不是播报。当状态变化与用户有关时,应为球体搭配可见状态文字和实时区域:

<div role="status" aria-live="polite"> <orb-z state="thinking"></orb-z> <span>Assistant is thinking</span> </div>

无论动画被减少、暂停、不支持或不可见,此模式仍能传达含义。继续阅读动效与无障碍。

最近更新于