助手
扣子 AI 帮助与支持
你好,我是 扣子 文档问答助手 🎉 你在阅读当前文档的过程中,无论对文档概念的解释,还是文档内容方面的疑问,都可以随时向我提问,我会全力为你解答
推荐问题
如何快速了解这个空间的核心内容?
有哪些近期更新的重点文档?
我应该从哪些文档开始阅读?
文档反馈
低代码项目
快速开始
智能体
工作流
应用
资源
发布
模型
多人协作
开发工具
Coze CLI
API 参考
鉴权
智能体和应用
工作空间
文件夹
企业/组织
会话与消息
对话
工作流
文件
智能音视频
ASR、TTS 与音色
WebSocket 语音
声纹识别
知识库
数据库
插件
变量
渠道
用量限额
账单与权益
回调
API 教程
SDK 参考
音视频
推广与变现

Realtime 下行事件

更新于: 2026-06-25 19:29:14

本文介绍扣子编程智能语音信令事件中的下行事件。

房间配置成功

  • 事件类型session.created

  • 事件说明:用户成功进房后会发送此事件。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为session.created

    data

    Object

    必选

    事件数据,包含对话的详细信息。

    data.voice_id

    String

    必选

    音色 ID。

    data.log_id

    String

    必选

    服务端日志 ID,用于查找问题。

  • 事件示例

    {
        "id": "7446668538246561800",
        "event_type": "session.created",
        "data": {
            "voice_id": "134",
            "log_id":"xxx"
        }
    }
    

房间配置更新成功

  • 事件类型session.updated
  • 事件说明:房间内的配置更新成功,返回房间内最新的配置。
  • 事件结构

参数

类型

是否必选

说明

id

String

必选

服务端生成的唯一 ID。

event_type

String

必选

固定为session.updated

data

Object

必选

事件数据,包含对话的详细信息。

data.voice_id

String

必选

音色 ID。

data.speech_rate

Integer

必选

模型回复的语速,取值范围 [-50, 100],默认为 0。-50 表示 0.5 倍速,100 表示 2 倍速。

data.loudness_rate

Integer

可选

输出音频的音量,取值范围 [-50, 100],默认为 0。-50 表示 0.5 倍音量,100 表示 2 倍音量。

data.longest_silence_ms

Integer

可选

当智能体处于长时间沉默状态时,房间将自动解散。此时间以毫秒(ms)为单位计量,默认时长为 180,000 毫秒。

data.event_subscriptions

Array

可选

订阅的下行事件的事件类型列表。

data.chat_config

Object

必选

聊天配置信息。

data.chat_config.meta_data

Map<String, String>

必选

附加信息,通常用于封装一些业务相关的字段。查看对话消息详情时,系统会透传此附加信息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。

data.chat_config.custom_variables

Map<String, String>

必选

智能体中定义的变量。在智能体 prompt 中设置变量 {{key}} 后,可以通过该参数传入变量值,同时支持 Jinja2 语法。变量名只支持英文字母和下划线。

data.chat_config.extra_params

Map<String, String>

必选

附加参数,通常用于特殊场景下指定一些必要参数供模型判断,例如指定经纬度,并询问智能体此位置的天气。自定义键值对格式,其中键(key)仅支持设置为:

  • latitude(纬度,值为纬度值,例如 39.9800718)
  • longitude(经度,值为经度值,例如 116.309314)。

data.chat_config.plugin_interrupt_mode

String

必选

端插件执行模式,可选值有 blocking / nonblocking,默认为 nonblocking

  • blocking 模式下,遇到端插件执行后,会阻塞后续的对话,直到提交端插件结果。
  • nonblocking 模式下,遇到端插件执行后,若未提交端插件结果继续对话,则端插件请求会被丢弃。

data.chat_config.allow_voice_interrupt

Boolean

可选

是否打开语音打断功能,默认为 true

data.chat_config.interrupt_config

Object

可选

语音打断配置,仅在 allow_voice_interrupt 为true时生效

data.chat_config.interrupt_config.mode

String

必选

语音打断模式,可选值有all / keyword_contains / keyword_prefix,默认为all

  • all模式下,任意内容都可以打断模型回复。
  • keyword_contains模式下,说话内容包含关键词才会打断模型回复。
  • keyword_prefix模式下,说话内容前缀匹配关键词才会打断模型回复。

data.chat_config.interrupt_config.keywords

Array

可选

关键词列表,每个关键词长度不超过8个字,最多10个关键词,仅在keyword_contains/keyword_prefix模式下生效。

data.turn_detection

Object

可选

声音检测配置。

data.turn_detection.type

String

可选

语音检测模式,默认为 server_vad,可选项包括:

  • server_vad:语音活动检测由扣子编程服务端完成,客户端将音频流持续发送到服务端,服务端在接收到音频后,通过服务端 VAD 检测语音的开始和结束。
  • client_vad:客户端使用自己的 VAD 检测语音的开始和结束,并将检测到的语音片段发送到服务器进行识别。
  • semantic_vad:采用语义判停的自由对话模式(此功能仅对企业旗舰版用户开放),由服务端识别语义来判断是否停止说话。

详细的检测逻辑请参见如何设置扣子的语音检测模式?

data.turn_detection.silence_duration_ms

Integer

可选

server_vad 模式下,检测语音停止的静音持续时间,单位为 ms。默认为 500ms。

data.turn_detection.semantic_vad_config

Object

可选

semantic_vad 模式下,配置判定语音停止的语义检测策略。

data.turn_detection.semantic_vad_config.silence_threshold_ms

Integer

可选

当用户暂停说话时,持续静音多久后,触发语义判停检测。单位为 ms。默认为 300ms。

data.turn_detection.semantic_vad_config.semantic_unfinished_wait_time_ms

Integer

可选

当语义检测判断该语句未结束时,持续静音多久后,扣子编程认定语音结束。单位为 ms。默认为 500ms。

data.asr_config.enable_itn

Boolean

可选

将语音转为文本时,是否开启文本规范化(ITN)处理,将识别结果转换为更符合书面表达习惯的格式以提升可读性。默认为 true
开启后,会将口语化数字转换为标准数字格式,示例:

  • 两点十五分转换为 14:15
  • 一百美元转换为 $100

data.asr_config.enable_punc

Boolean

可选

将语音转为文本时,是否给文本加上标点符号。默认为 true

data.asr_config.enable_ddc

Boolean

可选

将语音转为文本时,是否启用顺滑,默认为 true

  • true:系统在进行语音处理时,会去掉识别结果中诸如 “啊”“嗯” 等语气词,使得输出的文本语义更加流畅自然,符合正常的语言表达习惯,尤其适用于对文本质量要求较高的场景,如正式的会议记录、新闻稿件生成等。
  • false:系统不会对识别结果中的语气词进行处理,识别结果会保留原始的语气词。

data.asr_config.enable_nostream

Boolean

可选

当前是否开启二次识别模式,枚举值:

  • true:已开启二次识别模式。会实时返回逐字识别的文本;当一句话结束时,会结合整句音频进行上下文分析并重新识别,生成优化后的识别结果并返回。这种机制既能满足客户实时上屏的需求,又能确保最终结果的识别准确率。
  • false:未开启二次识别模式。仅进行一次实时识别,逐字返回文本,不会在一句话结束时重新识别分句,可能存在一定的识别误差。

data.asr_config.enable_emotion

Boolean

可选

当前是否开启说话人情绪识别功能,枚举值:

  • true:已开启情绪识别,会返回说话人的情绪标签,仅在 data.asr_config.stream_modeoutput_no_stream 时生效。
  • false:未开启情绪识别。

支持的情绪标签包括:

  • angry:表示情绪为生气
  • happy:表示情绪为开心
  • neutral:表示情绪为平静或中性
  • sad:表示情绪为悲伤
  • surprise:表示情绪为惊讶

data.asr_config.enable_gender

Boolean

可选

当前是否开启说话人性别识别功能,枚举值:

  • true:已开启性别识别,会返回说话人性别(male/female),仅在 data.asr_config.stream_modeoutput_no_stream 时生效。
  • false:未开启性别识别。

data.asr_config.sensitive_words_filter

Object

可选

当前敏感词过滤功能的配置状态,支持以下 3 种过滤方式:

  • 过滤系统敏感词,并替换为*
  • 过滤自定义敏感词,并替换为空。
  • 过滤自定义敏感词,并替换为*

data.asr_config.sensitive_words_filter.system_reserved_filter

Boolean

可选

当前是否启用系统自带敏感词过滤(匹配到的敏感词替换为*),枚举值:

  • true:已启用,系统会过滤系统自带敏感词(主要包含限制级词汇)并替换为*
  • false:未启用系统自带敏感词的过滤。

data.asr_config.sensitive_words_filter.filter_with_empty

Array

可选

自定义的需替换为空的敏感词列表。

data.asr_config.sensitive_words_filter.filter_with_signed

Array

可选

自定义的需替换为 * 的敏感词列表。

data.voice_print_config

Array

可选

声纹识别配置。

data.voice_print_config.group_id

String

可选

声纹组 ID。语音通话时,扣子编程会在该声纹组内进行查找匹配对应的声纹,当声纹匹配度高于 score 阈值,则认为是同一个人的声音。

data.voice_print_config.score

Integer

可选

声纹匹配的命中阈值,即声音匹配度的最低标准。当声音匹配度达到或超过该阈值时,扣子编程才会认定声纹匹配成功。你可以根据应用的安全性要求进行自定义设置。如果匹配了多轮声纹,扣子编程会取相似度最高的一个。
取值范围:0~100,默认值:40。

data.voice_print_config.reuse_voice_info

Boolean

可选

当本轮对话未命中任何声纹时,是否沿用历史声纹信息。默认为 false

  • true:未命中声纹时,智能体将返回上一次命中的声纹。适用于连续对话场景,当收音不好等情况导致声纹没能正确被识别时,保障对话的连贯性。
  • false:未命中声纹时,智能体返回空的声纹信息。

data.voice_processing_config

Object

可选

语音降噪配置。默认不启用降噪。

说明

仅扣子企业旗舰版支持该配置。

data.voice_processing_config.enable_ans

Boolean

可选

主动噪声抑制。自动识别并过滤掉背景环境中的各种噪音(如键盘声、空调声、街道嘈杂声),让说话者的声音更清晰。
此功能与下面的 enable_pdns(声纹降噪)只能二选一开启,不能同时使用。

data.voice_processing_config.enable_pdns

Boolean

可选

声纹降噪。专门针对特定说话人的声音进行优化,能更精准地保留目标人声。
此功能与上面的 enable_ans只能二选一开启,不能同时使用。
提供两种模式,你可以根据需要选择:

  • 自动提取:设置简单,开箱即用。默认为该模式。降噪生效稍微有延迟,服务端需要先听你说一会儿话才能提取出你的声纹特征,在此期间降噪效果可能不佳。另外,提取声纹会受到用户说话场景影响,准确性上可能会弱于主动设置。
  • 主动设置:降噪效果更精准、更快速,在对话开始时就立即生效。不过需要提前录制声纹并在 voice_print_feature_id 中设置声纹 ID。

data.voice_print_config.feature_id

String

可选

目标说话人的声纹 ID。当你选择开启 enable_pdns(声纹降噪)并希望使用主动设置模式时,需要在此处填入你提前录制好的声纹 ID。

  • 事件示例
    {
        "id": "7446668538246561890",
        "event_type": "session.update",
        "data": {
            "voice_id": "123", // 音色 ID
            "speech_rate": 0, // [-50, 100]
            "longest_silence_ms": 180000,
            "event_subscriptions": [],
            "chat_config": {
                "meta_data": {
                    "a": "123"
                },
                "custom_variables": {
                    "a": "123"
                },
                "extra_params": {
                    "a": "123"
                },
                "allow_voice_interrupt": true,
                "interrupt_config": {
                    "mode": "keyword_prefix",
                    "keyword": ["扣子"]
                },
                "plugin_interrupt_mode": "nonblocking" // 控制收到端插件执行中断信号后,没有提交端执行请求时的模型
                // 端插件的执行模型,默认不阻塞,blocking/nonblocking,阻塞的场景如果不提交端执行请求就会让语音链路一直block住
            },
            "turn_detection": {
                "type": "server_vad" // server_vad/client_vad
            },
            "asr_config": {
                "hot_words": ["扣子"],
                "enable_itn": true,
                "enable_punc": true,
                "enable_ddc": true
            } 
        }
    }
    

会话创建成功

  • 事件类型conversation.created

  • 事件说明:用户成功进房后会发送此事件,收到此事件即表明房间初始化完成。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为conversation.created

    data

    Object

    必选

    事件数据,包含对话的详细信息。

    data.conversation_id

    String

    必选

    会话 ID,整个房间的交互都会发生在此会话下。

    data.prologue

    String

    必选

    智能体的开场白。

  • 事件示例

    {
        "id": "7446668538246561891",
        "event_type": "conversation.created",
        "data": {
            "conversation_id": "123",
            "prologue": ""
        }
    }
    

对话开始

  • 事件类型conversation.chat.created

  • 事件说明:创建对话的事件,表示对话开始。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为conversation.chat.created。

    data

    Object

    必选

    事件数据,包含对话的详细信息。

    data.id

    String

    必选

    对话 ID,即对话的唯一标识。

    data.conversation_id

    String

    必选

    会话 ID,即会话的唯一标识。

    data.bot_id

    String

    必选

    要进行会话聊天的智能体 ID。

    data.created_at

    Integer

    可选

    对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。

    data.last_error

    Object

    可选

    对话运行异常时,此字段中返回详细的错误信息,包括:

    • Code:错误码。Integer 类型。0 表示成功,其他值表示失败。
    • Msg:错误信息。String 类型。

    data.meta_data

    Map<String, String>

    可选

    创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。

    data.status

    String

    可选

    对话的运行状态。取值为 created,即对话已创建。

    data.usage

    Object

    可选

    对话的 Token 使用情况。

    data.usage.token_count

    Integer

    可选

    本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。

    data.usage.output_count

    Integer

    可选

    output 部分消耗的 Token 总数。

    data.usage.input_count

    Integer

    可选

    input 部分消耗的 Token 总数。

  • 事件示例

    {
      "id": "7446668538246561892",
      "event_type": "conversation.chat.created",
      "data": {
          "id": "123",
          "conversation_id": "123",
          "bot_id": "222",
          "created_at": 1710348675,
          "completed_at": null,
          "last_error": null,
          "meta_data": {},
          "status": "created",
          "usage": null
      }    
    }
    

对话处理中

  • 事件类型conversation.chat.in_progress

  • 事件说明:服务端正在处理对话。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为conversation.chat.in_progress。

    data

    Object

    必选

    事件数据,包含对话的详细信息。

    data.id

    String

    必选

    对话 ID,即对话的唯一标识。

    data.conversation_id

    String

    必选

    会话 ID,即会话的唯一标识。

    data.bot_id

    String

    必选

    要进行会话聊天的智能体 ID。

    data.created_at

    Integer

    可选

    对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。

    data.last_error

    Object

    可选

    对话运行异常时,此字段中返回详细的错误信息,包括:

    • Code:错误码。Integer 类型。0 表示成功,其他值表示失败。
    • Msg:错误信息。String 类型。

    data.meta_data

    Map<String, String>

    可选

    创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。

    data.status

    String

    可选

    对话的运行状态。取值为 in_progress,即智能体正在处理中。

    data.usage

    Object

    可选

    对话的 Token 使用情况。

    data.usage.token_count

    Integer

    可选

    本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。

    data.usage.output_count

    Integer

    可选

    output 部分消耗的 Token 总数。

    data.usage.input_count

    Integer

    可选

    input 部分消耗的 Token 总数。

  • 事件示例

    {
      "id": "7446668538246561892",
      "event_type": "conversation.chat.in_progress",
      "data": {
          "id": "123",
          "conversation_id": "123",
          "bot_id": "222",
          "created_at": 1710348675,
          "completed_at": null,
          "last_error": null,
          "meta_data": {},
          "status": "in_progress",
          "usage": null
      }
    }
    

增量消息

  • 事件类型conversation.message.delta

  • 事件说明:增量消息,通常是 type=answer 时的增量消息。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为conversation.message.delta

    data

    Object

    必选

    事件数据,包含消息的详细信息。

    data.id

    String

    必选

    Message ID,即消息的唯一标识。

    data.conversation_id

    String

    必选

    此消息所在的会话 ID。

    data.bot_id

    String

    必选

    编写此消息的智能体 ID。此参数仅在对话产生的消息中返回。

    data.chat_id

    String

    必选

    Chat ID。此参数仅在对话产生的消息中返回。

    data.meta_data

    Map<String, String>

    可选

    创建消息时的附加消息,获取消息时也会返回此附加消息。

    data.role

    String

    必选

    发送这条消息的实体。取值:user(代表该条消息内容是用户发送的)、assistant(代表该条消息内容是智能体发送的)。

    data.content

    String

    必选

    消息的内容,支持纯文本、多模态(文本、图片、文件混合输入)、卡片等多种类型的内容。

    data.content_type

    String

    必选

    消息内容的类型,取值包括:

    • text:文本。
    • object_string:多模态内容,即文本和文件的组合、文本和图片的组合。
    • card:卡片。此枚举值仅在接口响应中出现,不支持作为入参。

    data.type

    String

    必选

    消息类型。

    • question:用户输入内容。
    • answer:智能体返回给用户的消息内容,支持增量返回。如果工作流绑定了 messge 节点,可能会存在多 answer 场景,此时可以用流式返回的结束标志来判断所有 answer 完成。
    • function_call:智能体对话过程中调用函数(function call)的中间结果。
    • tool_output:调用工具 (function call)后返回的结果。
    • tool_response:调用工具 (function call)后返回的结果。
    • follow_up:如果在智能体上配置打开了用户问题建议开关,则会返回推荐问题相关的回复内容。
    • verbose:多 answer 场景下,服务端会返回一个 verbose 包,对应的 content 为 JSON 格式,content.msg_type =generate_answer_finish 代表全部 answer 回复完成。
  • 事件示例

    {
      "id": "event_1",
      "event_type": "conversation.message.delta",
      "data": {
          "id": "msg_006",
          "role": "assistant",
          "type": "answer",
          "content": "你好你好",
          "content_type": "text",
          "chat_id": "123",
          "conversation_id": "123",
          "bot_id": "222"
      }
    }
    

消息已完成

  • 事件类型conversation.message.completed
  • 事件说明:消息已完成(用户或智能体)。此时事件中带有所有 message.delta 的拼接结果,且每个消息均为 completed 状态。
  • 事件结构

参数

类型

是否必选

说明

id

string

必选

服务端生成的唯一 ID

event_type

string

必选

固定为conversation.message.completed

data

Object

必选

事件数据,包含消息的详细信息

data.id

string

必选

Message ID,即消息的唯一标识

data.conversation_id

string

必选

此消息所在的会话 ID

data.bot_id

string

必选

编写此消息的智能体ID。此参数仅在对话产生的消息中返回

data.chat_id

string

必选

Chat ID。此参数仅在对话产生的消息中返回

data.meta_data

map<string,string>

必选

创建消息时的附加消息,获取消息时也会返回此附加消息

data.role

string

必选

发送这条消息的实体。取值:user(代表该条消息内容是用户发送的)、assistant(代表该条消息内容是智能体发送的)

data.content

string

必选

消息的内容,支持纯文本、多模态(文本、图片、文件混合输入)、卡片等多种类型的内容

data.content_type

String

必选

消息内容的类型,取值包括:

  • text:文本。
  • object_string:多模态内容,即文本和文件的组合、文本和图片的组合。
  • card:卡片。此枚举值仅在接口响应中出现,不支持作为入参。

data.type

String

必选

消息类型。

  • question:用户输入内容。
  • answer:智能体返回给用户的消息内容,支持增量返回。如果工作流绑定了 messge 节点,可能会存在多 answer 场景,此时可以用流式返回的结束标志来判断所有 answer 完成。
  • function_call:智能体对话过程中调用函数(function call)的中间结果。
  • tool_output:调用工具 (function call)后返回的结果。
  • tool_response:调用工具 (function call)后返回的结果。
  • follow_up:如果在智能体上配置打开了用户问题建议开关,则会返回推荐问题相关的回复内容。
  • verbose:多 answer 场景下,服务端会返回一个 verbose 包,对应的 content 为 JSON 格式,content.msg_type =generate_answer_finish 代表全部 answer 回复完成。
  • 事件示例:
{
  "id": "event_1",
  "event_type": "conversation.message.completed",
  "data": {
    "id": "msg_002",
    "role": "assistant",
    "type": "function_call",
    "content": "{\"name\":\"toutiaosousuo-search\",\"arguments\":{\"cursor\":0,\"input_query\":\"今天的体育新闻\",\"plugin_id\":7281192623887548473,\"api_id\":7288907006982012986,\"plugin_type\":1}}",
    "content_type": "text",
    "chat_id": "123",
    "conversation_id": "123",
    "bot_id": "222"
  }
}

对话完成

  • 事件类型conversation.chat.completed
  • 事件说明:表示对话已完成。
  • 事件结构

参数

类型

是否必选

说明

id

String

必选

服务端生成的唯一 ID。

event_type

String

必选

固定为conversation.chat.completed

data

Object

必选

事件数据,包含对话的详细信息。

data.id

String

必选

对话 ID,即对话的唯一标识。

data.conversation_id

String

必选

会话 ID,即会话的唯一标识。

data.bot_id

String

必选

要进行会话聊天的智能体 ID。

data.created_at

Integer

可选

对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。

data.completed_at

Integer

可选

对话结束的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。

data.last_error

Object

可选

对话运行异常时,此字段中返回详细的错误信息,包括:

  • Code:错误码。Integer 类型。0 表示成功,其他值表示失败。
  • Msg:错误信息。String 类型。

data.meta_data

Map<String, String>

可选

创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。

data.status

String

可选

对话的运行状态。取值为 completed,即智能体已完成处理,本次对话结束。

data.usage

Object

可选

对话的 Token 使用情况。

data.usage.token_count

Integer

可选

本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。

data.usage.output_count

Integer

可选

output 部分消耗的 Token 总数。

data.usage.input_count

Integer

可选

input 部分消耗的 Token 总数。

  • 事件示例
{
  "id": "event_1",
  "event_type": "conversation.chat.completed",
  "data": {
      "id": "123",
      "chat_id": "123",
      "conversation_id": "123",
      "bot_id": "222",
      "created_at": 1710348675,
      "completed_at": 1710348675,
      "last_error": null,
      "meta_data": {},
      "status": "completed",
      "usage": {
          "token_count": 3397,
          "output_tokens": 1173,
          "input_tokens": 2224
      }
  }   
}

端插件请求

  • 事件类型:conversation.chat.requires_action
  • 事件说明:对话中断,需要使用方上报工具的执行结果。
  • 事件结构

参数

类型

是否必选

说明

id

String

必选

服务端生成的唯一 ID。

event_type

String

必选

固定为conversation.chat.requires_action

data

Object

必选

事件数据,包含对话的详细信息。

data.id

String

必选

对话 ID,即对话的唯一标识。

data.conversation_id

String

必选

会话 ID,即会话的唯一标识。

data.bot_id

String

必选

要进行会话聊天的智能体 ID。

data.created_at

Integer

可选

对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。

data.completed_at

Integer

可选

对话完成的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。

data.last_error

Object

可选

对话运行异常时,此字段中返回详细的错误信息,包括:

  • Code:错误码。Integer 类型。0 表示成功,其他值表示失败。
  • Msg:错误信息。String 类型。

data.meta_data

Map<String, String>

可选

创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。

data.status

String

可选

对话的运行状态。取值为 created,即对话已创建。

data.usage

Object

可选

对话的 Token 使用情况。

data.usage.token_count

Integer

可选

本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。

data.usage.output_count

Integer

可选

output 部分消耗的 Token 总数。

data.usage.input_count

Integer

可选

input 部分消耗的 Token 总数。

data.required_action

Object

可选

需要执行的额外操作。

data.required_action.type

String

可选

额外操作的类型,枚举值为 submit_tool_outputs

data.required_action.submit_tool_outputs

Object

可选

需要提交的结果详情,通过提交接口上传,并可以继续聊天。

data.required_action.submit_tool_outputs.tool_outputs

Array

可选

具体上报信息详情。

data.required_action.submit_tool_outputs.tool_outputs[].id

String

可选

上报运行结果的 ID。

data.required_action.submit_tool_outputs.tool_outputs[].type

String

可选

工具类型,枚举值包括:

  • function: 端插件中断,需要通过上行事件提交端插件执行结果信令来提交执行结果。
  • reply_message: 问答中断,只需要继续正常对话。

data.required_action.submit_tool_outputs.tool_outputs[].function

Object

可选

执行方法 function 的定义。

data.required_action.submit_tool_outputs.tool_outputs[].function.name

String

可选

方法名。

data.required_action.submit_tool_outputs.tool_outputs[].function.arguments

String

可选

方法参数。

  • 事件示例
    {
        "id": "7446668538246561821",
        "event_type": "conversation.chat.requires_action",
        "data": {
            "id": "7434369946098090003",
            "conversation_id": "7434368393420996671",
            "bot_id": "7379165428687536166",
            "created_at": 1730949143,
            "completed_at": 1730949146,
            "last_error": {
                "code": 0,
                "msg": ""
            },
            "status": "requires_action",
            "usage": {
                "token_count": 0,
                "output_count": 0,
                "input_count": 0
            },
            "required_action": {
                "type": "submit_tool_outputs",
                "submit_tool_outputs": {
                    "tool_calls": [
                        {
                            "id": "BUJJS0JKQ0dHR0VeFkNCQF5HEEZBXhJFEUJeEhFCRkESSktDREISSUI=",
                            "type": "function",
                            "function": {
                                "name": "get_current_temperature",
                                "arguments":"{\'location\":\'深圳\'}"
                            },
                            "require_info": null
                        }
                    ]
                }
            },
            "section_id": "7434368393420996671"
        }
    } 
    

对话失败

  • 事件类型conversation.chat.failed
  • 事件说明:此事件用于标识对话失败。
  • 事件结构

参数

类型

是否必选

说明

id

String

必选

服务端生成的唯一 ID。

event_type

String

必选

固定为conversation.chat.failed

data

Object

必选

事件数据,包含对话的详细信息。

data.id

String

必选

对话 ID,即对话的唯一标识。

data.conversation_id

String

必选

会话 ID,即会话的唯一标识。

data.bot_id

String

必选

要进行会话聊天的智能体 ID。

data.created_at

Integer

可选

对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。

data.failed_at

Integer

可选

对话失败的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。

data.last_error

Object

可选

对话运行异常时,此字段中返回详细的错误信息,包括:Code:错误码。Integer 类型。0 表示成功,其他值表示失败。Msg:错误信息。String 类型。

data.meta_data

Map<String, String>

可选

创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。

data.status

String

可选

对话的运行状态。取值为 failed,即对话失败。

data.usage

Object

可选

对话的 Token 使用情况。

data.usage.token_count

Integer

可选

本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。

data.usage.output_count

Integer

可选

output 部分消耗的 Token 总数。

data.usage.input_count

Integer

可选

input 部分消耗的 Token 总数。

  • 事件示例
{
  "id": "event_1",
  "event_type": "conversation.chat.failed",
  "data": {
      "id": "123",
      "chat_id": "123",
      "conversation_id": "123",
      "bot_id": "222",
      "created_at": 1710348675,
      "failed_at": 1710348675,
      "last_error": {
          "code": 1,
          "msg": "发生异常"
      },
      "meta_data": {},
      "status": "failed",
      "usage": {
          "token_count": 3397,
          "output_tokens": 1173,
          "input_tokens": 2224
      }
  }   
}

用户开始说话

  • 事件类型audio.user.speech_started

  • 事件说明:此事件表示服务端识别到用户正在说话。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为audio.user.speech_started

  • 事件示例

    {
      "id": "event_1",
      "event_type": "audio.user.speech_started",
      "data": {}
    }
    

用户结束说话

  • 事件类型audio.user.speech_stopped
  • 事件说明:此事件表示服务端识别到用户已停止说话。
  • 事件结构

参数

类型

是否必选

说明

id

String

必选

服务端生成的唯一 ID。

event_type

String

必选

固定为audio.user.speech_stopped

  • 事件示例
{
  "id": "event_1",
  "event_type": "audio.user.speech_stopped",
  "data": {}
}

智能体开始说话

  • 事件类型audio.agent.speech_started

  • 事件说明:此事件表示智能体正在说话。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为audio.agent.speech_started

  • 事件示例

    {
      "id": "event_1",
      "event_type": "audio.agent.speech_started",
      "data": {}
    }
    

智能体结束说话

  • 事件类型audio.agent.speech_stopped

  • 事件说明:此事件表示智能体已停止说话。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为audio.agent.speech_stopped

  • 事件示例

    {
      "id": "event_1",
      "event_type": "audio.agent.speech_stopped",
      "data": {}
    }
    

安抚配置更新成功

  • 事件类型session.pre_answer.updated

  • 事件说明:房间内的安抚配置更新成功,返回房间内最新的安抚配置。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为 session.pre_answer.updated

    data

    Object

    必选

    事件数据,包含安抚策略的详细信息。

    data.pre_answer

    Object

    必选

    安抚策略配置。

    data.pre_answer.type

    String

    必选

    安抚策略类型,可选类型有:

    • none:取消安抚策略,默认值。
    • audio:根据用户上传的音频文件作为安抚语。
    • text:根据用户输入的文本生成安抚语。
    • bot:指定另一个智能体作为安抚语的生成载体。

    data.pre_answer.file_id

    String

    可选

    仅在 audio 模式下生效,用户需要先通过上传文件接口上传一个音频文件,传入该接口返回的 file_id。当前仅支持 wav/mp3 音频文件。

    data.pre_answer.pre_answer_list

    Array

    可选

    仅在 text 模式下生效,用户可以输入一批文本,会在触发安抚策略时随机选取一段文本作为安抚语播放。

    data.pre_answer.bot_id

    String

    可选

    仅在 bot 模式下生效,ASR 识别的文本会同时请求这个 BotID,并将该智能体回复的内容作为安抚语。传入的智能体必须是属于当前用户的智能体。该策略会消耗额外的 Token。

    data.trigger

    Object

    可选

    安抚策略的触发配置。

    data.trigger.type

    String

    必选

    安抚策略的触发类型,可选类型有:

    • mandatory:必定触发安抚策略,默认值。
    • time-trigger:一段时间后模型没有生成回复,就会触发安抚策略。
    • event-driven:模型触发 function call 就会触发安抚策略。

    data.trigger.time_after

    Integer

    可选

    仅在 time-trigger 模式下生效,指定在等待多长时间后触发安抚策略,单位为 ms,取值范围 [0, 3000],默认值为 1500ms。

  • 事件示例

    {
      "id": "event_1",
      "event_type": "session.pre_answer.updated",
      "data": {
          "pre_answer": {
              "type": "bot",
              "file_id": "",
              "pre_answer_list": [""],
              "bot_id": "23452423"
          },
          "trigger": {
              "type": "mandatory",
              "time_after": 1500
          }
      }
    }
    

安抚已生成

  • 事件类型conversation.chat.pre_answer

  • 事件说明:此事件表明触发了安抚策略。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为 conversation.chat.pre_answer

    data

    Object

    必选

    事件数据,包含安抚语的详细信息。

    data.content

    String

    可选

    安抚语的内容。若选择 audio 安抚策略,则该字段为空。

    data.usage

    Object

    可选

    本次安抚语消耗的 Token 信息,仅在使用 bot 安抚策略时展示该字段。

    data.usage.token_count

    Integer

    可选

    本次安抚语消耗的 Token 总数,包括 input 和 output 部分的消耗。

    data.usage.output_count

    Integer

    可选

    output 部分消耗的 Token 总数。

    data.usage.input_count

    Integer

    可选

    input 部分消耗的 Token 总数。

  • 事件示例

    {
      "id": "event_1",
      "event_type": "conversation.chat.pre_answer",
      "data": {
          "content": "",
          "usage": {
              "token_count": 0,
              "output_tokens": 0,
              "input_tokens": 0
          }
      }
    }
    

用户语音识别字幕

  • 事件类型conversation.audio_transcript.delta

  • 事件说明:用户语音识别的中间值,每次返回都是全量文本。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为conversation.audio_transcript.delta

    data

    Object

    必选

    事件数据,包含语音识别的中间值。

    data.content

    String

    必选

    语音识别的中间值。

  • 事件示例

    {
      "id": "event_1",
      "event_type": "conversation.audio_transcript.delta",
      "data": {
          "content": "今天的"
      }
    }
    

更新房间模式成功

  • 事件类型mode.updated
  • 事件说明:房间模式更新成功,返回最新的房间模式设置。
  • 事件结构

参数

类型

是否必选

说明

id

String

必选

服务端生成的唯一 ID。

event_type

String

必选

固定为 mode.updated

data

Object

必选

事件数据,包含房间模式和对话设置。

data.mode

String

必选

房间模式。
默认为 chat,即对话模式,跟智能体进行聊天。

data.mode.chat

Object

可选

对话模式下的设置,仅当 modechat 时生效。

data.mode.chat.user_language

String

可选

用户说话的语种,默认为 common。选项包括:

  • common:大模型语音识别,支持中英文、上海话、闽南语,四川、陕西、粤语识别。
  • 英语:en-US
  • 日语:ja-JP
  • 印尼语:id-ID
  • 西班牙语:es-MX
  • 葡萄牙语:pt-BR
  • 德语:de-DE
  • 法语:fr-FR
  • 韩语:ko-KR
  • 菲律宾语:fil-PH
  • 马来语:ms-MY
  • 泰语:th-TH
  • 阿拉伯语:ar-SA
  • 事件示例
{
    "id": "",
    "event_type": "mode.updated",
    "data": {
        "mode": "chat",
        "chat": {
            "user_language": "common"
        }
    }
}

用户开始说话

  • 事件类型input_audio_buffer.started

  • 事件说明:表示服务端成功处理用户开始说话事件。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    string

    必选

    服务端生成的唯一 ID。

    event_type

    string

    必选

    固定为 input_audio_buffer.started。

  • 事件示例:

    {
        "id": "7446668538246561827",
        "event_type": "input_audio_buffer.start",
        "data": {}
    }
    

用户结束说话

  • 事件类型input_audio_buffer.completed

  • 事件说明:表示服务端成功处理用户结束说话事件。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    string

    必选

    服务端生成的唯一 ID。

    event_type

    string

    必选

    固定为 input_audio_buffer.completed。

  • 事件示例:

    {
        "id": "7446668538246561827",
        "event_type": "input_audio_buffer.completed",
        "data": {}
    }
    

发生错误

  • 事件类型error

  • 事件说明:对话过程中的错误事件。

  • 事件结构

    参数

    类型

    是否必选

    说明

    id

    String

    必选

    服务端生成的唯一 ID。

    event_type

    String

    必选

    固定为error

    data

    Object

    必选

    事件数据,包含错误的详细信息。

    data.code

    Integer

    必选

    错误码。错误码列表请参见Realtime 事件错误码

    data.msg

    String

    必选

    错误信息。

    data.detail

    Object

    必选

    错误的详细信息。

    data.detail.logid

    String

    必选

    服务端日志 ID。

  • 事件示例

    {
      "id": "event_1",
      "event_type": "error",
      "data": {
          "code": 1,
          "msg": "发生异常",
          "detail": {
              "logid": ""
          }
      }
    }