QwenCloudBRASIL
Tradução de apoio para consulta. Código e identificadores técnicos preservados. Consultar referência original ↗

Qwen-Omni eventos do servidor

Referência do servidor WebSocket

Eventos do servidor para o Qwen-Omni-Realtime API, incluindo eventos de chamada de ferramenta (chamada de função).

Referência: Multimodal em tempo real.

erro

Mensagem de erro do servidor.

{
  "event_id": "event_RoUu4T8yExPMI37GKwaOC",
  "type": "error",
  "error": {
  "type": "invalid_request_error",
  "code": "invalid_value",
  "message": "Invalid modalities: ['audio']. Supported combinations are: ['text'] and ['audio', 'text'].",
  "param": "session.modalities"
  }
}

Identificador exclusivo do evento.

Sempre error.

Detalhes do erro.

  Tipo de erro.





  Código de erro.





  Mensagem de erro.





  Parâmetro relacionado (como `session.modalities`).

sessão.criada

Primeiro evento após a conexão. Contém a configuração de sessão padrão.

{
  "event_id": "event_RdvlSpbBb2ssyBjYrDHjt",
  "type": "session.created",
  "session": {
  "object": "realtime.session",
  "model": "qwen3.8-omni-flash-realtime",
  "modalities": [
      "text",
      "audio"
  ],
  "voice": "Cherry",
  "input_audio_format": "pcm",
  "output_audio_format": "pcm",
  "input_audio_transcription": {
      "model": "qwen3-asr-flash-realtime"
  },
  "turn_detection": {
      // The value can be server_vad or semantic_vad (supported by qwen3.8-omni-flash-realtime and qwen3.5-omni-realtime models).
      "type": "server_vad",
      "threshold": 0.5,
      "prefix_padding_ms": 300,
      "silence_duration_ms": 800,
      "create_response": true,
      "interrupt_response": true
  },
  "enable_search": false,
  "search_options": {},
  "tools": [],
  "temperature": 0.8,
  "id": "sess_Ov7GOXoNXhNjlxXtOGKQS"
  }
}

Identificador exclusivo do evento.

Sempre session.created.

Configuração da sessão.

  Sempre `realtime.session`.





  Nome do modelo.





  Modalidades de saída.





  Voz para saída de áudio.





  O formato do áudio de entrada do usuário. Atualmente só suporta `pcm`. O áudio de entrada deve ser um fluxo de áudio PCM com taxa de amostragem de 16 kHz.





  O formato do áudio de saída do modelo. Atualmente só suporta `pcm`. O áudio de saída é um fluxo de áudio PCM com taxa de amostragem de 24 kHz.





  Configuração de transcrição de fala.

  

    

      Modelo de transcrição. Sempre `qwen3-asr-flash-realtime`. Este parâmetro não é configurável.
    

  






  Configuração de detecção de atividade de voz (VAD).

  

    

      Tipo VAD. Os valores válidos são `server_vad` (padrão) ou `semantic_vad`. Consulte [Eventos do cliente](/api-reference/real-time-multimodal/client-events).
    


    

      Limiar de detecção de VAD.
    


    

      Duração do silêncio (ms) antes que a fala seja considerada encerrada.
    


    

      O tempo limite de inatividade em milissegundos. Devolvido apenas em `server_vad` modo com `qwen3.5-omni-plus-realtime` ou `qwen3.5-omni-flash-realtime` modelos.
    

  






  Se deve ativar a pesquisa na web. Apoiado por Qwen3.8-Omni-Flash-Realtime e Qwen3.5-Omni-Realtime modelos.





  Opções para pesquisa na web.





  Temperatura de amostragem.

sessão.atualizada

Enviado após um sucesso session.update pedido. Em caso de erro, o servidor envia um error evento em vez disso.

{
  "event_id": "event_X1HsXS4b4uptp6yo1LgKd",
  "type": "session.updated",
  "session": {
  "id": "sess_Aih6vAcY5Ddt6jwFx1tCa",
  "object": "realtime.session",
  "model": "qwen3.8-omni-flash-realtime",
  "modalities": [
      "text",
      "audio"
  ],
  "instructions": "You are Xiao Yun, a personal assistant. Answer user questions accurately and in a friendly manner. Always respond with a helpful attitude.",
  "voice": "Cherry",
  "input_audio_format": "pcm",
  "output_audio_format": "pcm",
  "input_audio_transcription": {
      "model": "qwen3-asr-flash-realtime"
  },
  "turn_detection": {
      // The value can be server_vad or semantic_vad (supported by qwen3.8-omni-flash-realtime and qwen3.5-omni-realtime models).
      "type": "server_vad",
      "threshold": 0.1,
      "prefix_padding_ms": 500,
      "silence_duration_ms": 900,
      "create_response": true,
      "interrupt_response": true
  },
  "enable_search": true,
  "search_options": {
      "enable_source": true
  },
  "tools": [
      {
    "type": "function",
    "function": {
        "name": "get_current_weather",
        "description": "Useful for querying the weather in a specific city.",
        "parameters": {
      "type": "object",
      "properties": {
          "location": {"type": "string", "description": "The city name"}
      },
      "required": ["location"]
        }
    }
      }
  ],
  "temperature": 0.8,
  "max_response_output_token": "inf",
  "max_tokens": 16384,
  "repetition_penalty": 1.05,
  "presence_penalty": 0.0,
  "top_k": 50,
  "top_p": 1.0,
  "seed": -1
  }
}

Identificador exclusivo do evento.

Sempre session.updated.

Configuração da sessão.

  Temperatura de amostragem.





  Modalidades de saída.





  Voz para saída de áudio.





  Instruções do sistema para o modelo.





  O formato do áudio de entrada do usuário. Atualmente só suporta `pcm`. O áudio de entrada deve ser um fluxo de áudio PCM com taxa de amostragem de 16 kHz.





  O formato do áudio de saída do modelo. Atualmente só suporta `pcm`. O áudio de saída é um fluxo de áudio PCM com taxa de amostragem de 24 kHz.





  Configuração de transcrição de fala.

  

    

      Modelo de transcrição. Sempre `qwen3-asr-flash-realtime`. Este parâmetro não é configurável.
    

  






  Configuração do VAD.

  

    

      Tipo VAD. Os valores válidos são `server_vad` (padrão) ou `semantic_vad`. Consulte [Eventos do cliente](/api-reference/real-time-multimodal/client-events).
    


    

      Limiar de detecção de VAD.
    


    

      Duração do silêncio (ms) antes que a fala seja considerada encerrada.
    


    

      O tempo limite de inatividade em milissegundos. Devolvido apenas em `server_vad` modo com `qwen3.5-omni-plus-realtime` ou `qwen3.5-omni-flash-realtime` modelos.
    

  






  Se deve ativar a pesquisa na web. Apoiado por Qwen3.8-Omni-Flash-Realtime e Qwen3.5-Omni-Realtime modelos.





  Opções de pesquisa na web.





  Uma lista de definições de ferramentas. Ao configurar ferramentas, o modelo pode decidir se deseja chamar uma ferramenta com base na entrada do usuário.

  

    

      Sempre `function`.
    


    

      O nome da função da ferramenta personalizada, como `get_current_weather`.
    


    

      Uma descrição da finalidade da função da ferramenta. O modelo usa isso para decidir se deve usar a ferramenta.
    


    

      Uma descrição dos parâmetros de entrada da função da ferramenta.

      

        

          Sempre `object`.
        


        

          Descreve o nome, o tipo de dados e a descrição de cada parâmetro de entrada.
        


        

          Especifica quais parâmetros de entrada são necessários.
        

      

    

  






  Limiar de probabilidade de amostragem de núcleo.





  Número de principais candidatos para amostragem.





  Máximo de tokens na resposta.





  Penalidade por sequências repetidas.





  Penalidade por conteúdo repetido.





  Semente para resultados reproduzíveis.

input_audio_buffer.speech_started

Enviado no modo VAD quando a fala começa no buffer de áudio.

Também pode ser acionado sempre que o áudio é adicionado ao buffer antes que a fala seja detectada.

{
  "event_id": "event_Pvp8nEhsQuGCQbFJ9x58n",
  "type": "input_audio_buffer.speech_started",
  "audio_start_ms": 3647,
  "item_id": "item_YbAiGvK2H7YaS34o4R6Ba"
}

Identificador exclusivo do evento.

Sempre input_audio_buffer.speech_started.

Milissegundos desde o início da entrada de áudio até a primeira fala detectada.

ID do item da mensagem do usuário, criado quando a fala é interrompida. Este item anexa a entrada do usuário ao histórico de conversação para inferência.

input_audio_buffer.speech_stopped

Enviado no modo VAD quando a fala termina no buffer de áudio. O servidor também envia conversation.item.created para criar o item de mensagem do usuário.

{
  "event_id": "event_UhQiqNVRsgUiq4KUS5Xb5",
  "type": "input_audio_buffer.speech_stopped",
  "audio_end_ms": 4453,
  "item_id": "item_YbAiGvK2H7YaS34o4R6Ba"
}

Identificador exclusivo do evento.

Sempre input_audio_buffer.speech_stopped.

Milissegundos desde o início da sessão até o final da fala.

ID do item da mensagem do usuário (será criado).

entrada_audio_buffer.comprometido

Enviado quando o buffer de áudio de entrada é confirmado.

{
  "event_id": "event_Iy6sUzL1nmdFgshFYxJEz",
  "type": "input_audio_buffer.committed",
  "item_id": "item_YbAiGvK2H7YaS34o4R6Ba"
}

Identificador exclusivo do evento.

Sempre input_audio_buffer.committed.

ID do item da mensagem do usuário (será criado).

entrada_audio_buffer.cleared

Enviado após o cliente enviar input_audio_buffer.clear.

{
  "event_id": "event_RoUu4T8yExPMI37GKwaOC",
  "type": "input_audio_buffer.cleared"
}

Identificador exclusivo do evento.

Sempre input_audio_buffer.cleared.

conversa.item.criado

Enviado quando um item de conversa é criado.

{
  "event_id": "event_JEfkrr9gO3Ny7Xcv9bGVd",
  "type": "conversation.item.created",
  "item": {
  "id": "item_YbAiGvK2H7YaS34o4R6Ba",
  "object": "realtime.item",
  "type": "message",
  "status": "in_progress",
  "role": "assistant",
  "content": [
      {
    "type": "input_audio"
      }
  ]
  }
}
// Tool calling scenario
{
  "event_id": "event_S1hkaIQgcuQD8OEdOpGHQ",
  "type": "conversation.item.created",
  "item": {
  "id": "item_FEG9qJGNkPcdf4et3p7BV",
  "object": "realtime.item",
  "type": "function_call",
  "status": "in_progress",
  "call_id": "call_bc0a7fb7235840f69ecfe4",
  "name": "get_current_weather",
  "arguments": ""
  }
}

Identificador exclusivo do evento.

Sempre conversation.item.created.

Item de conversa.

  ID de item exclusivo.





  Sempre `realtime.item`.





  O tipo de item de conversa inclui `message` e `function_call`. Qwen3.8-Omni-Flash-Realtime também retorna `mcp_list_tools`, `mcp_call`e `mcp_approval_request`; veja [itens MCP](#mcp-items).





  Estado do item.





  Função da mensagem.





  Conteúdo da mensagem. Retornou quando `type` é `message`.





  Nome da função. Retornou quando `type` é `function_call`.





  ID exclusivo da invocação da função. Retornou quando `type` é `function_call`.





  Argumentos de chamada de função como uma string JSON. Retornou quando `type` é `function_call`.

conversa.item.input_audio_transcription.delta

Quando a transcrição de áudio de entrada está habilitada, esse evento é enviado frequentemente enquanto o usuário está falando. Ele fornece resultados de transcrição intermediários em tempo real. Concatenar text + stash para obter a visualização da frase mais completa a qualquer momento.

{
  "event_id": "event_C7jzoeSFuiwOZS6tR14yx",
  "type": "conversation.item.input_audio_transcription.delta",
  "item_id": "item_ThVYhLHOdeXb4bBSvzSFF",
  "content_index": 0,
  "text": "",
  "stash": "How is the weather today?",
  "language": "en",
  "emotion": "neutral",
  "obfuscation": "ABEXGYmxdmc97u"
}

Identificador exclusivo do evento.

Sempre conversation.item.input_audio_transcription.delta.

O ID do item de conversa associado.

O índice da parte do conteúdo que contém o áudio.

O prefixo de texto confirmado. Esta parte da frase atual foi confirmada pelo modelo e não será alterada.

O sufixo do texto preliminar. Esta minuta temporária segue a parcela confirmada e poderá ser revisada pelo modelo.

O idioma detectado do áudio reconhecido.

A emoção detectada do áudio reconhecido. Valores válidos: neutral, happy, sad, angry, surprised, disgusted, fearful.

Exemplo: como os campos de texto e de esconderijo trabalham juntos.

Suponha que o usuário diga: “O tempo está bom hoje, ensolarado e quente”.

Tempo Discurso do usuário texto esconderijo Exibir (texto + estoque)
T1 "O tempo..." "" "The weather" O clima
T2 "...é legal..." "" "The weather is nice" O tempo está bom
T3 "...hoje," "The weather" " is nice today," O tempo está bom hoje,
T4 (breve pausa) "The weather is nice today, " "" O tempo está bom hoje,
T5 "ensolarado..." "The weather is nice today, " "sunny" O tempo está bom hoje, ensolarado
T6 "...e quente." "The weather is nice today, " "sunny and warm." O tempo está bom hoje, ensolarado e quente.
T7 (para) - - Usar conversation.item.input_audio_transcription.completed como resultado final.

conversa.item.input_audio_transcription.completed

Enviado após o áudio ser armazenado em buffer e transcrito. A transcrição usa um modelo separado (qwen3-asr-flash-realtime).

O texto transcrito pode diferir do texto processado por Qwen-Omni-Realtime. Trate-o como uma referência.

{
  "event_id": "event_FrrZcxiDfTB9LD9p4pVng",
  "type": "conversation.item.input_audio_transcription.completed",
  "item_id": "item_YbAiGvK2H7YaS34o4R6Ba",
  "content_index": 0,
  "transcript": "Hello."
}

Identificador exclusivo do evento.

Sempre conversation.item.input_audio_transcription.completed.

ID do item da mensagem do usuário.

Fixado em 0.

Texto transcrito.

conversa.item.input_audio_transcription.failed

Enviado quando a transcrição de áudio de entrada falha (se habilitada). Separado do error evento.

{
  "type": "conversation.item.input_audio_transcription.failed",
  "item_id": "<item_id>",
  "content_index": 0,
  "error": {
  "code": "<code>",
  "message": "<message>",
  "param": "<param>"
  }
}

Identificador exclusivo do evento.

Sempre conversation.item.input_audio_transcription.failed.

ID do item da mensagem do usuário.

Fixado em 0.

Detalhes do erro.

  Código de erro.





  Mensagem de erro.





  Parâmetro relacionado.

resposta.criada

Enviado quando o modelo começa a gerar uma resposta.

{
  "event_id": "event_XuDavMzQN3KKepqGu3KRh",
  "type": "response.created",
  "response": {
  "id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "object": "realtime.response",
  "conversation_id": "conv_FjJaccpnvwHNo9cPVuzGc",
  "status": "in_progress",
  "modalities": [
      "text",
      "audio"
  ],
  "voice": "Cherry",
  "output_audio_format": "pcm",
  "output": []
  }
}

Identificador exclusivo do evento.

Sempre response.created.

Objeto de resposta.

  ID de resposta exclusivo.





  ID da sessão.





  Sempre `realtime.response`.





  Estado da resposta: `completed`, `failed`, `in_progress`, ou `incomplete`.





  Modalidades de resposta.





  Voz para saída de áudio.





  Vazio para este evento.

resposta.concluído

Enviado após a conclusão da geração da resposta. O response O objeto contém todos os itens de saída, exceto dados de áudio brutos.

{
  "event_id": "event_CSaxRRYLvbrfexDXAEuDG",
  "type": "response.done",
  "response": {
  "id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "object": "realtime.response",
  "conversation_id": "conv_FjJaccpnvwHNo9cPVuzGc",
  "status": "completed",
  "modalities": [
      "text",
      "audio"
  ],
  "voice": "Cherry",
  "output_audio_format": "pcm",
  "output": [
      {
    "id": "item_Ls6MtCUWO7LM4E59QziNv",
    "object": "realtime.item",
    "type": "message",
    "status": "completed",
    "role": "assistant",
    "content": [
          {
      "type": "audio",
      "transcript": "Hello! How can I help you?"
          }
    ]
      }
  ],
  "usage": {
      "total_tokens": 377,
      "input_tokens": 336,
      "output_tokens": 41,
      "input_tokens_details": {
    "text_tokens": 228,
    "audio_tokens": 108
      },
      "output_tokens_details": {
    "text_tokens": 9,
    "audio_tokens": 32
      },
      "plugins": {
    "search": {
        "count": 1,
        "strategy": "agent"
    }
      }
  }
  }
}
// Tool calling scenario
{
  "event_id": "event_T1EFAJp43X2DWtDRmxTtx",
  "type": "response.done",
  "response": {
  "id": "resp_TucN5QgymL5MA8vkJvFlS",
  "object": "realtime.response",
  "conversation_id": "conv_SEDZESRlefT8WvLSmEn6E",
  "status": "completed",
  "modalities": ["text", "audio"],
  "voice": "Ethan",
  "output_audio_format": "pcm",
  "output": [
      {
    "id": "item_FEG9qJGNkPcdf4et3p7BV",
    "object": "realtime.item",
    "type": "function_call",
    "status": "completed",
    "call_id": "call_bc0a7fb7235840f69ecfe4",
    "name": "get_current_weather",
    "arguments": " {\"location\": \"Hangzhou\"}"
      }
  ],
  "usage": {
      "total_tokens": 567,
      "input_tokens": 524,
      "output_tokens": 43,
      "input_tokens_details": {
    "text_tokens": 487,
    "audio_tokens": 37
      },
      "output_tokens_details": {
    "text_tokens": 43
      }
  }
  }
}

Identificador exclusivo do evento.

Sempre response.done.

Objeto de resposta.

  ID de resposta exclusivo.





  ID da sessão.





  Sempre `realtime.response`.





  Estado da resposta.





  Modalidades de resposta.





  Voz para saída de áudio.





  Saída de resposta.

  

    

      ID do item de saída.
    


    

      Tipo de item de saída. Os valores incluem `message` e `function_call`. Qwen3.8-Omni-Flash-Realtime também suporta [`mcp_call`](#mcp-items).
    


    

      Tipo de objeto de item de saída. Sempre `realtime.item`.
    


    

      Status do item de saída.
    


    

      Função do item de saída.
    


    

      Conteúdo do item de saída. Devolvido somente quando `type` é `message`.

      

        

          Tipo de conteúdo: `text` para texto simples, `audio` para saída de áudio.
        


        

          Conteúdo de texto.
        


        

          Transcrição do áudio.
        

      

    


    

      Nome da função. Retornou quando `type` é `function_call`.
    


    

      ID exclusivo da invocação da função. Retornou quando `type` é `function_call`.
    


    

      Argumentos completos para a chamada de função como uma string JSON. Retornou quando `type` é `function_call`.
    

  






  Uso de token para esta resposta.

  

    

      Número total de tokens usados.
    


    

      Número de tokens de entrada.
    


    

      Número de tokens de saída.
    


    

      Detalhamento do token de entrada, incluindo `text_tokens` e `audio_tokens`.
    


    

      Detalhamento do token de saída, incluindo `text_tokens` e `audio_tokens`.
    


    

      Métricas de uso do plug-in. Retornado quando pesquisa na web (`enable_search`) está habilitado.

      

        

          Pesquise dados de medição.

          

            

              Número de pesquisas.
            


            

              Estratégia de pesquisa.

resposta.texto.delta

Enviado quando a modalidade de saída é somente texto e o modelo gera um bloco de texto.

{
  "delta": "Hello",
  "event_id": "event_TH49MauuPmRo1RGaMSlP7",
  "type": "response.text.delta",
  "response_id": "resp_PrRSvPVpnCExdUOGHHLuP",
  "item_id": "item_L8IRm9kRXFpxoOjDqDC96",
  "output_index": 0,
  "content_index": 0
}

Identificador exclusivo do evento.

Sempre response.text.delta.

Pedaço de texto incremental.

ID de resposta.

ID do item da mensagem. Use isto para associar itens da mesma mensagem.

Índice de item de saída. Fixado em 0.

Índice da parte do conteúdo. Fixado em 0.

resposta.texto.done

Enviado quando a saída somente texto termina de ser gerada.

Também enviado quando a resposta é interrompida, incompleta ou cancelada.

{
  "event_id": "event_B1lIeE2Nac33zn5V7h2mm",
  "type": "response.text.done",
  "response_id": "resp_B1lIdtjF4Noqpn5NOjznj",
  "item_id": "item_B1lIdJsAJlJiFs8ztWpJt",
  "output_index": 0,
  "content_index": 0,
  "text": "How can I assist you today?"
}

Identificador exclusivo do evento.

Sempre response.text.done.

ID de resposta.

ID do item da mensagem.

Índice de item de saída.

Índice da parte do conteúdo.

Saída de texto completa.

resposta.audio.delta

Enviado quando a modalidade de saída inclui áudio e o modelo gera um pedaço de áudio.

{
  "event_id": "event_B1osWMZBtrEQbiIwW0qHQ",
  "type": "response.audio.delta",
  "response_id": "resp_P79OOMs8LnrXVpiIHUCKR",
  "item_id": "item_OFaPGtzfWCPyGzxnuEX9i",
  "output_index": 0,
  "content_index": 0,
  "delta": "{base64 audio}"
}

Identificador exclusivo do evento.

Sempre response.audio.delta.

ID de resposta.

ID do item da mensagem.

Índice de item de saída.

Índice da parte do conteúdo.

Pedaço de áudio codificado em Base64.

resposta.audio.done

Enviado quando a saída de áudio termina de ser gerada.

Também enviado quando a resposta é interrompida, incompleta ou cancelada.

{
  "event_id": "event_Le1TDl7VfyHQxl47DtGxI",
  "type": "response.audio.done",
  "response_id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "item_id": "item_Ls6MtCUWO7LM4E59QziNv",
  "output_index": 0,
  "content_index": 0
}

Identificador exclusivo do evento.

Sempre response.audio.done.

ID de resposta.

ID do item da mensagem.

Índice de item de saída.

Índice da parte do conteúdo.

resposta.audio_transcript.delta

Enviado quando a modalidade de saída inclui áudio e o modelo gera um pedaço de transcrição.

{
  "event_id": "event_BksW7fOwnyavZdDxIzZYM",
  "type": "response.audio_transcript.delta",
  "response_id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "item_id": "item_Ls6MtCUWO7LM4E59QziNv",
  "output_index": 0,
  "content_index": 0,
  "delta": "Is there anything"
}

Identificador exclusivo do evento.

Sempre response.audio_transcript.delta.

ID de resposta.

ID do item da mensagem.

Índice de item de saída.

Índice da parte do conteúdo.

Texto de transcrição incremental.

resposta.audio_transcript.done

Enviado quando a transcrição do áudio termina de ser gerada.

{
  "event_id": "event_X49tL2WerT4WjxcmH16lS",
  "type": "response.audio_transcript.done",
  "response_id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "item_id": "item_Ls6MtCUWO7LM4E59QziNv",
  "output_index": 0,
  "content_index": 0,
  "transcript": "Hello! Is there anything I can help you with?"
}

Identificador exclusivo do evento.

Sempre response.audio_transcript.done.

ID de resposta.

ID do item da mensagem.

Índice de item de saída.

Índice da parte do conteúdo.

Transcrição completa.

resposta.function_call_arguments.delta

Quando o modelo gera a sequência de argumentos para uma chamada de função em streaming, o servidor envia esse evento para cada novo segmento. Concatene o delta campos em ordem. O conteúdo completo é fornecido na próxima response.function_call_arguments.done evento.

{
  "event_id": "event_SlKoJyEbPEqLq14DSM1u5",
  "type": "response.function_call_arguments.delta",
  "response_id": "resp_JnTOsWXlFhKcFohZbtfz6",
  "item_id": "item_Rhcms7CauTNsQprV5S4Hr",
  "output_index": 0,
  "call_id": "call_2be200f4cafe419b9530dd",
  "delta": " {\"location\": \"Beijing\"}"
}

Identificador exclusivo do evento.

Sempre response.function_call_arguments.delta.

ID de resposta.

ID do item da mensagem.

Índice de item de saída.

ID exclusivo para esta invocação de função. Consistente com o done evento no mesmo turno.

Novo segmento da sequência de argumentos. Concatene segmentos em ordem.

resposta.function_call_arguments.done

Indica que os argumentos da chamada de função foram totalmente gerados. O arguments campo contém a string completa do argumento. Após receber este evento, analise os argumentos e chame a função da ferramenta local. Utilize o completo arguments deste evento, não o concatenado delta resultado.

{
  "event_id": "event_X6suLyuL5agdH7r6koesM",
  "type": "response.function_call_arguments.done",
  "response_id": "resp_JnTOsWXlFhKcFohZbtfz6",
  "item_id": "item_Rhcms7CauTNsQprV5S4Hr",
  "output_index": 0,
  "name": "get_current_weather",
  "call_id": "call_2be200f4cafe419b9530dd",
  "arguments": " {\"location\": \"Beijing\"}"
}

Identificador exclusivo do evento.

Sempre response.function_call_arguments.done.

ID de resposta.

ID do item da mensagem.

Índice de item de saída.

ID exclusivo para esta invocação de função.

Nome da função que foi chamada.

Argumentos completos para a invocação da função, normalmente uma string JSON.

resposta.output_item.added

Enviado quando um novo item é criado durante a geração de resposta. O tipo de item pode ser message ou function_call; Qwen3.8-Omni-Flash-Realtime também suporta mcp_call.

{
  "event_id": "event_DsCO341DEVtiATtCB6BUY",
  "type": "response.output_item.added",
  "response_id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "output_index": 0,
  "item": {
  "id": "item_Ls6MtCUWO7LM4E59QziNv",
  "object": "realtime.item",
  "type": "message",
  "status": "in_progress",
  "role": "assistant",
  "content": []
  }
}
// Tool calling scenario
{
  "event_id": "event_HXmKt5pGoiRtXx7Hq7zpN",
  "type": "response.output_item.added",
  "response_id": "resp_TucN5QgymL5MA8vkJvFlS",
  "output_index": 0,
  "item": {
  "id": "item_FEG9qJGNkPcdf4et3p7BV",
  "object": "realtime.item",
  "type": "function_call",
  "status": "in_progress",
  "call_id": "call_bc0a7fb7235840f69ecfe4",
  "name": "get_current_weather",
  "arguments": ""
  }
}

Identificador exclusivo do evento.

Sempre response.output_item.added.

ID de resposta.

Índice de item de saída.

Item de saída.

  ID exclusivo do item de saída.





  Sempre `realtime.item`.





  Tipo de item de saída. Os valores incluem `message` e `function_call`. Qwen3.8-Omni-Flash-Realtime também suporta [`mcp_call`](#mcp-items).





  Status do item de saída.





  Função do remetente.





  Conteúdo da mensagem. Retornou quando `type` é `message`.





  Nome da função. Retornou quando `type` é `function_call`.





  ID exclusivo da invocação da função. Retornou quando `type` é `function_call`.





  Argumentos de chamada de função como uma string JSON. Retornou quando `type` é `function_call`. Inicialmente uma string vazia em um `added` evento.

resposta.output_item.done

Enviado quando um item de saída é concluído.

{
  "event_id": "event_MEu5nlLw1LsOguHiehIP8",
  "type": "response.output_item.done",
  "response_id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "output_index": 0,
  "item": {
  "id": "item_Ls6MtCUWO7LM4E59QziNv",
  "object": "realtime.item",
  "type": "message",
  "status": "completed",
  "role": "assistant",
  "content": [
      {
    "type": "audio",
    "text": "Hello! How can I help you?"
      }
  ]
  }
}
// Tool calling scenario
{
  "event_id": "event_FHspdfAnCyjuME3mmAwSY",
  "type": "response.output_item.done",
  "response_id": "resp_TucN5QgymL5MA8vkJvFlS",
  "output_index": 0,
  "item": {
  "id": "item_FEG9qJGNkPcdf4et3p7BV",
  "object": "realtime.item",
  "type": "function_call",
  "status": "completed",
  "call_id": "call_bc0a7fb7235840f69ecfe4",
  "name": "get_current_weather",
  "arguments": " {\"location\": \"Hangzhou\"}"
  }
}

Identificador exclusivo do evento.

Sempre response.output_item.done.

ID de resposta.

Índice de item de saída.

Item de saída.

  ID exclusivo do item de saída.





  Sempre `realtime.item`.





  Tipo de item de saída. Os valores incluem `message` e `function_call`. Qwen3.8-Omni-Flash-Realtime também suporta [`mcp_call`](#mcp-items).





  Status do item de saída.





  Função do remetente.





  Conteúdo da mensagem. Retornou quando `type` é `message`.





  Nome da função. Retornou quando `type` é `function_call`.





  ID exclusivo da invocação da função. Retornou quando `type` é `function_call`.





  Argumentos completos para a chamada de função como uma string JSON. Retornou quando `type` é `function_call`.

resposta.content_part.added

Enviado quando uma nova parte de conteúdo é incluída em uma mensagem do assistente durante a geração de resposta.

{
  "event_id": "event_AVBOmrgY3C8bjlRajfSUT",
  "type": "response.content_part.added",
  "response_id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "item_id": "item_Ls6MtCUWO7LM4E59QziNv",
  "output_index": 0,
  "content_index": 0,
  "part": {
  "type": "audio",
  "text": ""
  }
}

Identificador exclusivo do evento.

Sempre response.content_part.added.

ID de resposta.

ID do item da mensagem.

Índice de item de saída. Fixado em 0.

Índice da parte do conteúdo. Fixado em 0.

Parte de conteúdo.

  Tipo de conteúdo.





  Conteúdo de texto.

resposta.content_part.done

Enviado quando uma parte do conteúdo de uma mensagem do assistente termina o streaming.

{
  "event_id": "event_Il8HD19v58Qr5IBkw7LtN",
  "type": "response.content_part.done",
  "response_id": "resp_HaVOPdbmX6vifiV5pAfJY",
  "item_id": "item_Ls6MtCUWO7LM4E59QziNv",
  "output_index": 0,
  "content_index": 0,
  "part": {
  "type": "audio",
  "text": "Hello! Is there anything I can help you with?"
  }
}

Identificador exclusivo do evento.

Sempre response.content_part.done.

ID de resposta.

ID do item da mensagem.

Índice de item de saída. Fixado em 0.

Índice da parte do conteúdo. Fixado em 0.

Parte de conteúdo.

  Tipo de conteúdo.





  Conteúdo de texto.

eventos MCP

Esta seção descreve eventos e campos WebSocket para qwen3.8-omni-flash-realtime. Outros eventos e campos base usam o protocolo comum documentado acima. Os campos obrigatórios são obrigatórios quando o objeto que os contém está presente. IDs são strings opacas; não confie em seus comprimentos, prefixos ou regras de geração. arguments e output são strings cujo conteúdo requer análise JSON. Conexões, descobertas e chamadas MCP estão sujeitas a cotas e tempos limite de serviço.

mcp_list_tools.*

Tipo de evento Quando emitido
mcp_list_tools.in_progress A descoberta de ferramenta é iniciada para um servidor MCP.
mcp_list_tools.completed A descoberta é bem-sucedida e allowed_tools a filtragem é concluída.
mcp_list_tools.failed A descoberta falha, atinge o tempo limite ou excede os limites de serviço.

Todos os três exigem campos de string event_id (ID de evento exclusivo), type (tipo de evento acima) e item_id (associado mcp_list_tools artigo). in_progress pode chegar antes session.updated. Para completed e failed, conversation.item.created contendo a lista de ferramentas final ou o erro chega primeiro, seguido pelo evento de status com o mesmo item_id.

{
  "event_id": "opaque_event_id",
  "type": "mcp_list_tools.completed",
  "item_id": "opaque_item_id"
}

resposta.mcp_call_arguments.delta

Campo Tipo Obrigatório Significado
event_id corda Sim ID de evento exclusivo.
type corda Sim response.mcp_call_arguments.delta
response_id corda Sim ID de resposta dos pais.
item_id corda Sim Atual mcp_call ID do item.
output_index inteiro Sim Índice baseado em zero na matriz de saída de resposta pai.
delta corda Sim Fragmento incremental de string JSON; concatenar na ordem do evento.
obfuscation corda Não String de ofuscação opcional; ignore ao montar e analisar argumentos.
{
  "event_id": "opaque_event_id",
  "type": "response.mcp_call_arguments.delta",
  "response_id": "opaque_response_id",
  "item_id": "opaque_item_id",
  "output_index": 0,
  "delta": "{\"city\":\"杭",
  "obfuscation": "opaque-value"
}

resposta.mcp_call_arguments.done

Requer event_id, type, response_ide item_id (cordas), output_index (número inteiro, mesmo significado acima), e arguments (corda). type é response.mcp_call_arguments.done. arguments contém os argumentos completos codificados em JSON e é oficial.

{
  "event_id": "opaque_event_id",
  "type": "response.mcp_call_arguments.done",
  "response_id": "opaque_response_id",
  "item_id": "opaque_item_id",
  "output_index": 0,
  "arguments": "{\"city\":\"杭州\"}"
}

resposta.mcp_call.*

Tipo de evento Quando emitido
response.mcp_call.in_progress Os argumentos estão completos e a aprovação foi concedida ou é desnecessária; a chamada MCP é iniciada.
response.mcp_call.completed A chamada MCP foi bem-sucedida.
response.mcp_call.failed Erro comercial de conexão, protocolo ou ferramenta; rejeição de aprovação ou tempo limite; tempo limite da chamada; ou cancelamento.

Todos os três exigem event_id, typee item_id (cordas) e output_index (inteiro). item_id identifica o atual mcp_call; output_index é o seu índice na matriz de saída Response pai.

{
  "event_id": "opaque_event_id",
  "type": "response.mcp_call.in_progress",
  "item_id": "opaque_item_id",
  "output_index": 0
}

Itens de conversa do MCP

Esses objetos são tipos de item campo em eventos, aplicável a Qwen3.8-Omni-Flash-Realtime.

item mcp_list_tools

Retornado como conversation.item.created.item.

Campo Tipo Obrigatório Significado
item.id corda Sim ID exclusivo do item da lista de ferramentas, evento de descoberta correspondente item_id.
item.type corda Sim mcp_list_tools
item.server_label corda Sim Rótulo do servidor MCP configurado.
item.tools matriz de objetos Sim Definições de ferramentas validadas e filtradas; vazio em caso de falha.
item.error objeto Não Erro de descoberta; veja o erro MCP abaixo.

Cada ferramenta requer name (string, nome original da ferramenta MCP, 1-64 letras/dígitos/sublinhados/pontos/hífens) e input_schema (objeto, mapeado do MCP inputSchema, com raiz type="object"). Os campos opcionais são description (string do servidor) e annotations (objeto, MCP ToolAnnotations).

Campos do esquema JSON padrão, incluindo properties, required, additionalProperties, $defs, oneOf, anyOfe allOf são preservados e encaminhados. O serviço não executa validação semântica completa do esquema JSON; o servidor MCP valida os argumentos reais.

{
  "event_id": "opaque_event_id",
  "type": "conversation.item.created",
  "item": {
    "id": "opaque_item_id",
    "type": "mcp_list_tools",
    "server_label": "amap",
    "tools": [
      {
        "name": "maps_weather",
        "description": "查询天气",
        "input_schema": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "城市名"
            }
          },
          "required": ["city"]
        }
      }
    ]
  }
}

Item mcp_call inicial

Quando o modelo seleciona uma ferramenta MCP, este item aparece em response.output_item.added.item e também pode aparecer em conversation.item.created.item. Todos os campos abaixo são strings obrigatórias.

Campo Significado
item.id ID exclusivo do item de chamada.
item.object realtime.item
item.type mcp_call
item.status Inicialmente in_progress.
item.call_id ID exclusivo de chamada de ferramenta.
item.server_label Servidor realmente usado para esta chamada.
item.name Nome original da ferramenta.
item.arguments Geralmente vazio inicialmente; usar arguments.done e o item final para argumentos completos.
{
  "event_id": "opaque_event_id",
  "type": "response.output_item.added",
  "response_id": "opaque_response_id",
  "output_index": 0,
  "item": {
    "id": "opaque_item_id",
    "object": "realtime.item",
    "type": "mcp_call",
    "status": "in_progress",
    "call_id": "opaque_call_id",
    "server_label": "amap",
    "name": "maps_weather",
    "arguments": ""
  }
}

mcp_approval_item de solicitação

Devolvido em conversation.item.created. O evento requer campos de string event_id, type (conversation.item.created), response_id (Resposta dos pais), item_id (ID de aprovação, igual a item.id) e previous_item_id (o mcp_call item que está sendo revisado), mais o item objeto.

Todos os campos de item são strings obrigatórias: id (copiar inalterado na resposta de aprovação approval_request_id), type (mcp_approval_request), server_label, name, arguments (argumentos completos codificados em JSON) e call_id (ID de chamada de ferramenta).

{
  "event_id": "opaque_event_id",
  "type": "conversation.item.created",
  "response_id": "opaque_response_id",
  "item_id": "opaque_approval_id",
  "previous_item_id": "opaque_item_id",
  "item": {
    "id": "opaque_approval_id",
    "type": "mcp_approval_request",
    "server_label": "amap",
    "name": "maps_weather",
    "arguments": "{\"city\":\"杭州\"}",
    "call_id": "opaque_call_id"
  }
}

Item final mcp_call

Depois que uma chamada atinge um estado terminal, o item aparece em response.output_item.done.item e no pai final response.done.response.output instantâneo.

Campo Tipo Obrigatório Significado
item.id corda Sim ID exclusivo do item de chamada.
item.type corda Sim mcp_call
item.status corda Sim completed ou failed.
item.call_id corda Sim ID de chamada de ferramenta.
item.server_label corda Sim Servidor realmente usado.
item.name corda Sim Nome original da ferramenta.
item.arguments corda Sim Argumentos completos codificados em JSON.
item.output corda Não MCP serializado tools/call.result objeto; também pode aparecer em algumas falhas.
item.error objeto Não Erro de chamada; Veja abaixo.

Chamada bem-sucedida:

{
  "event_id": "opaque_event_id",
  "type": "response.output_item.done",
  "response_id": "opaque_response_id",
  "output_index": 0,
  "item": {
    "id": "opaque_item_id",
    "type": "mcp_call",
    "status": "completed",
    "call_id": "opaque_call_id",
    "server_label": "amap",
    "name": "maps_weather",
    "arguments": "{\"city\":\"杭州\"}",
    "output": "{\"content\":[{\"type\":\"text\",\"text\":\"...\"}],\"isError\":false}"
  }
}

Chamada falhada:

{
  "event_id": "opaque_event_id",
  "type": "response.output_item.done",
  "response_id": "opaque_response_id",
  "output_index": 0,
  "item": {
    "id": "opaque_item_id",
    "type": "mcp_call",
    "status": "failed",
    "call_id": "opaque_call_id",
    "server_label": "amap",
    "name": "maps_weather",
    "arguments": "{\"city\":\"杭州\"}",
    "error": {
      "type": "tool_execution_error",
      "message": "MCP tool call failed (call_timeout)."
    }
  }
}

Erro MCP

O objeto de erro requer campos de string type (fixado em tool_execution_error) e message (uma descrição de erro segura para o cliente que exclui corpos de resposta upstream confidenciais). Se o servidor MCP retornar isError=true, a chamada final tem status="failed" e pode incluir tanto o original output e uma estrutura error.

Veja Qwen-Omni-Realtime.