Grave eventos de entrada do usuário ou do sistema em uma Forward Session.
Cabeçalhos da requisição
|
Cabeçalho |
Obrigatório |
Descrição |
|
Authorization |
Sim |
|
|
Content-Type |
Sim |
|
|
Idempotency-Key |
Não |
Chave de idempotência opcional para requisições com efeitos colaterais. |
Parâmetros de caminho
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
|
string |
Sim |
ID da sessão. |
Corpo da requisição
|
Campo |
Tipo |
Obrigatório |
Descrição |
|
events |
array |
Sim |
Array de objetos de evento |
|
events[].type |
string |
Sim |
Tipo do evento |
|
events[].content |
string \ |
array |
Depende do tipo |
|
events[].content[].type |
string |
Sim |
Tipo do bloco de conteúdo, por exemplo, text |
|
events[].content[].text |
string |
Sim |
Conteúdo de texto |
O campo content aceita dois formatos:
Abreviado: string simples "content": "conteúdo de texto"
Completo: array de blocos de conteúdo "content": [{"type": "text", "text": "conteúdo de texto"}]
Use o formato abreviado para mensagens de texto simples. Use o formato completo ao enviar conteúdo multimídia, como imagens.
Tipos de evento compatíveis
|
type |
Descrição |
Campos obrigatórios |
|
user.message |
Envio de mensagem pelo usuário |
content |
|
user.interrupt |
Interrupção da execução do Agent pelo usuário |
- |
|
user.tool_confirmation |
Autorização de chamada de ferramenta pelo Agent |
tool_use_id, decision (approve ou deny) |
|
user.custom_tool_result |
Retorno do resultado de execução de ferramenta personalizada |
tool_use_id, content |
|
user.define_outcome |
Definição do resultado esperado pelo usuário |
content |
Exemplo de requisição
curl -s -X POST 'https://api.qoder.com.cn/api/v1/forward/sessions/sess_xxx/events' \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"events": [
{
"type": "user.message",
"content": [
{
"type": "text",
"text": "Continue the analysis."
}
],
"file_attachments": []
}
]
}'
Exemplo de resposta
HTTP 200 OK
{
"data": [
{
"id": "evt_xxx",
"type": "user.message",
"session_id": "sess_xxx",
"content": [
{
"type": "text",
"text": "Continue the analysis."
}
],
"processed_at": "2026-06-22T11:00:00Z"
}
]
}
Campos da resposta
|
Campo |
Tipo |
Descrição |
|
|
array |
Array de objetos Event criados, filtrados conforme as regras de Forward. |
Erros
|
HTTP |
Tipo |
Código |
Condição |
|
400 |
|
|
Tipo ou campos do evento inválidos. |
|
404 |
|
|
Sessão inexistente. |
|
409 |
|
|
Sessão arquivada. |
|
409 |
|
|
Estado atual do turno impede início de novo turno. |
|
404 |
|
|
Nenhuma ação pendente correspondente à confirmação ou resultado da ferramenta. |
|
409 |
|
|
Ação pendente já resolvida. |
|
401 |
|
|
PAT inválido ou expirado. |
Observações
Os tipos permitidos incluem
user.message,user.interrupt,user.tool_confirmation,user.tool_result,user.custom_tool_result,user.define_outcomeesystem.message.Apenas um evento
system.messageé permitido por requisição, e deve ser o último evento.A resposta não retorna o JSON bruto do evento de runtime.