本文分别介绍在低负载(WebSocket)和高质量(RTC)集成方案中,如何通过客户端 API 在会话维度配置和更新硬件对话智能体的配置。会话配置决定了智能体在当前会话中的行为,包括语音识别(ASR)、大模型(LLM)、语音合成(TTS)以及打断策略等。
硬件对话智能体支持在会话的不同阶段对参数进行配置和更新,以满足不同业务场景的需求。
说明
目前仅低负载方案(WebSocket)支持会话配置动态更新。
在建立会话连接并开始第一轮对话时,通过 volc_start 接口设置初始会话参数(包含音频 codec、config、agentconfig)。
配置示例
在 volc_opt_t 结构体中,通过 params 字段传入 JSON 格式的配置参数。详细参数说明,请参见更新智能体 AibotUpdate。
{ "event_id": "event_456", "type": "session.update", "session": { "object": "realtime.session", "Config": { "ASRConfig": { "Provider": "volcano", "ProviderParams": { "ApiResourceId": "volc.bigasr.sauc.duration", "Mode": "bigmodel" }, "VADConfig": { "AIVAD": true }, "TurnDetectionMode": 0 }, "LLMConfig": { "Mode": "CozeBot", "CozeBotConfig": { "Url": "https://api.coze.cn", "BotId": "75739535xxxxx478720", "APIKey": "saXXXXXXXXRPne", "Parameters": { "deviceID": "xxxxxx" } } }, "TTSConfig": { "Provider": "volcano_bidirection", "ProviderParams": { "ResourceId": "volc.service_type.10029", "audio": { "voice_type": "zh_female_yuanqinvyou_moon_bigtts" } } }, "SubtitleConfig": { "DisableRTSSubtitle": true }, "InterruptMode": 0 }, "agent_config": { "WelcomeMessage": "我是你的AI助手,有什么需要我为您效劳的吗?", "Burst": { "Enable": true, "BufferSize": 5000, "Interval": 10 }, "AnsMode": 3 }, "input_audio_format": "g711_alaw", "output_audio_format": "g711_alaw" } }
会话开始后,可通过 volc_update 接口动态修改部分会话参数,无需重启会话。
说明
变更后的配置不影响当前智能体回复,而是影响下一次回复。
通过 config_json 传入 JSON 格式的新的会话参数。目前支持动态修改的参数结构如下:
Config (基础配置) ├── LLMConfig (大模型配置) │ ├── SystemMessages (系统提示词) │ ├── UserPrompts (用户提示词) │ ├── Tools (Function Calling 工具) │ └── VisionConfig (视觉理解配置) ├── TTSConfig (语音合成配置) │ ├── Provider (语音合成服务) │ ├── ProviderParams (服务参数,支持音色 voice_type、语速 speed_ratio 等) │ └── IgnoreBracketText (括号内容过滤配置) └── InterruptMode (语音打断模式,0:开启,1:关闭)
具体参数说明,请参见更新智能体 AibotUpdate。
参数 | 场景 | 配置方式 |
|---|---|---|
| 动态调整智能体的角色设定、回复风格,或注入特定的对话背景信息。 |
|
| 根据业务需求开启、更新或关闭 Function Calling 工具列表。 |
|
| 在对话过程中根据需要动态管理视觉理解能力。 |
|
| 切换语音合成服务、音色,或实时调整语速、音量等表现。 |
|
| 过滤 LLM 返回内容中的括号文字(如情绪标记、动作描写)再进行语音合成,使对话更自然。 |
|
| 灵活开启或关闭语音打断功能(如播报重要通知时临时关闭)。 |
|
使用场景示例
场景 1:更新系统提示词
例如,在会话过程中动态调整智能体的角色设定或回复风格。
{ "event_id": "event_123", "type": "session.update", "session": { "Config": { "LLMConfig": { "SystemMessages": [ "你是一个性格幽默的旅游助手,善于推荐当地美食。" ] } } } }
场景 2:切换 TTS 音色
例如,根据用户偏好将语音切换为特定音色。
{ "event_id": "event_456", "type": "session.update", "session": { "Config": { "TTSConfig": { "Provider": "volcano_bidirection", "ProviderParams": { "audio": { "voice_type": "zh_male_taocheng_uranus_bigtts" } } } } } }
场景 3:修改打断模式
例如,在播报重要通知时临时关闭语音打断功能,确保信息完整传递。
{ "event_id": "event_789", "type": "session.update", "session": { "Config": { "InterruptMode": 1 } } }
高质量方案的会话初始化配置分为“引擎初始化”和“会话启动”两个阶段。
使用 volc_create 创建引擎实例,并配置 RTC 连接参数,如设置会话音频 codec。
配置示例
通过 config_json 参数传入如下 JSON 配置。
{ "ver": 1, "iot": { "instance_id": "******", "product_key": "******", "product_secret": "******", "device_name": "device_name" }, "rtc": { "log_level": 3, "audio": { "publish": true, "subscribe": true, "codec": 3 }, "video": { "publish": false, "subscribe": false, "codec": 1 }, "params": [ "{\"audio\":{\"codec\":{\"internal\":{\"enable\":1}}}}" ] } }
使用 volc_start 启动会话,并配置智能体参数(包含 Config、AgentConfig)。
配置示例
在 volc_opt_t 结构体中,通过 params 字段传入 JSON 格式的配置参数。详细参数说明,请参见更新智能体 AibotUpdate。
{ "Config": { "ASRConfig": { "Provider": "volcano", "ProviderParams": { "ApiResourceId": "volc.bigasr.sauc.duration", "Mode": "bigmodel" }, "VADConfig": { "AIVAD": true }, "TurnDetectionMode": 0 }, "LLMConfig": { "Mode": "CozeBot", "CozeBotConfig": { "Url": "https://api.coze.cn", "BotId": "75739535xxxxx478720", "APIKey": "saXXXXXXXXRPne", "Parameters": { "deviceID": "xxxxxx" } } }, "TTSConfig": { "Provider": "volcano_bidirection", "ProviderParams": { "ResourceId": "volc.service_type.10029", "audio": { "voice_type": "zh_female_yuanqinvyou_moon_bigtts" } } }, "SubtitleConfig": { "DisableRTSSubtitle": true }, "InterruptMode": 0 }, "AgentConfig": { "WelcomeMessage": "我是你的AI助手,有什么需要我为您效劳的吗?", "Burst": { "Enable": true, "BufferSize": 1000, "Interval": 10 }, "AnsMode": 3 } }