SuperAPI AI 工具集

iblai-vibe-agent-voice

智能体与模型

查看项目

更新于 10-15 22:16

技能介绍

用途:在 Next.js 应用中挂载智能体设置的 Voice 标签页,用于选择智能体朗读聊天回复所用的语音,并配置实时语音通话。该标签页属于 agent-settings 系列(access、api、datasets、disclaimers、embed、history、llm、memory、prompts、safety、settings、tools、voice),每个标签页是独立技能,共用 AgentSettingsProvider 包装器。

主要能力:Voice 子标签提供语音源卡片(Browser 使用听者本机设备、无需设置;OpenAI;Google),选择 OpenAI 或 Google 后出现“Select a voice”触发器与可搜索、可试听的语音选择器(如 OpenAI 的 Alloy、Ash、Coral、Echo、Fable、Nova、Onyx、Sage、Shimmer),并有 Save voice 按钮。Voice instructions 为自由文本风格提示,含编辑弹窗、复制、信息提示、0/1000 字符计数与示例预设。Voice call 子标签配置通话风格(Live conversation / Step-by-step)、口语语言、AI 提供商与通话所用语音,含 Reset 与 Save changes。

使用方式:先完成认证(/iblai-auth),配置 MCP 服务器与技能(.mcp.json 中的 @iblai/mcp),用 AgentSettingsProvider 在布局层包裹路由,并在 Settings 标签页 -> Capabilities 的“Voice & calls”下开启 Enable voice calls,否则通话功能无效。需向用户索取真实 mentorId(智能体 UUID),不可编造。检查项目根目录 iblai.env 中的 PLATFORM、DOMAIN、TOKEN;缺失时提示下载模板:curl -o iblai.env https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/iblai.env。在 app/(app)/agents/[mentorId]/voice/page.tsx 中从 @iblai/iblai-js/web-containers/next 导入并渲染 AgentVoiceTab,无需 props,它通过 useAgentSettings() 读取 tenantKey、mentorId、username 并自行获取与保存。可用 defaultSubTab="callConfig" 深链到通话子标签,用 renderPromptContent 以 Markdown 渲染屏幕共享提示,用 labels 覆盖文案(AGENT_VOICE_TAB_LABELS、VoiceTabLabels)。可用 MCP 工具 get_component_info("AgentVoiceTab")、get_component_info("AgentSettingsProvider") 定制。完成后必须运行 /iblai-ops-test,并执行 pnpm build、pnpm test,启动 pnpm dev 后用 npx playwright screenshot 截图验证。

限制:Browser 源无 API 语音与选择器;OpenAI 与 Google 需选择语音。voice_instructions 会转发给 TTS 提供商,OpenAI 作为语音指令、Google 作为合成提示,其他源(含 Browser)忽略;留空使用提供商默认;设置指令会使 OpenAI 切换到更贵且支持指令的语音模型;1000 字符上限为 UI 限制。语音仅在本次会话选择时才随保存发送,未改动则保留服务端原值;Voice instructions 同样“缺失即保留”,清空发送空字符串。Redux store 需包含 mentorReducer 与 mentorMiddleware;initializeDataLayer() 为 5 参数(v1.2+);@reduxjs/toolkit 通过 next.config.ts 的 webpack 别名去重;需安装 peer 依赖 sonner 与 @iblai/iblai-web-mentor(pnpm add sonner @iblai/iblai-web-mentor)。品牌规范见 BRAND.md。