Crie uma Forward Session com base em uma Identity e um Template.
POST /api/v1/forward/sessions
O Forward compila a linha de base do Template e a sobreposição da Identity Config e cria uma Session de runtime.
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 do corpo da requisição
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
|
identity_id |
string |
Sim |
ID da Forward Identity. |
|
template_id |
string |
Sim |
ID do Forward Template. |
|
title |
string |
Não |
Título da sessão. |
|
incremental_streaming_enabled |
boolean |
Não |
Ative eventos de streaming incremental para o assistente. Padrão: |
|
metadata |
object |
Não |
Metadados de negócio. |
|
config |
object |
Não |
Substituição de configuração por sessão. Apenas campos na lista de permissões são aceitos. |
|
config.environment_variables |
object |
Não |
Pares chave-valor de variáveis de ambiente da sessão. |
|
resources |
array |
Não |
Recursos no nível da sessão, usados atualmente para montar arquivos. |
|
resources[].type |
string |
Condicionalmente obrigatório |
Tipo de recurso. Atualmente: |
|
resources[].file_id |
string |
Condicionalmente obrigatório |
ID do arquivo retornado pela Files API. |
|
resources[].mount_path |
string |
Não |
Caminho de montagem dentro do container do Agent. Omita para que o Forward gere um caminho a partir do nome do arquivo. |
Exemplo de requisição
curl -s -X POST 'https://api.qoder.com.cn/api/v1/forward/sessions' \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"identity_id": "idn_xxx",
"template_id": "tmpl_support",
"title": "Customer support session",
"incremental_streaming_enabled": true,
"metadata": {
"source": "web",
"biz_id": "ticket_123"
},
"config": {
"environment_variables": {
"API_KEY": "sk-xxx",
"REGION": "cn-hangzhou"
}
},
"resources": [
{
"type": "file",
"file_id": "file_019e6a18dc09abcd",
"mount_path": "/data/input.py"
}
]
}'
Exemplo de resposta
HTTP 200 OK
{
"id": "sess_xxx",
"type": "session",
"identity_id": "idn_xxx",
"template": {
"id": "tmpl_support",
"type": "template",
"name": "Support assistant",
"model": "ultimate",
"version": 3
},
"source_type": "api",
"status": "idle",
"title": "Customer support session",
"incremental_streaming_enabled": true,
"metadata": {
"source": "web"
},
"config": {
"environment_variables": {
"API_KEY": "sk-xxx"
}
},
"stats": {
"active_seconds": 0,
"duration_seconds": 0
},
"created_at": "2026-06-22T10:00:00Z",
"updated_at": "2026-06-22T10:00:00Z"
}
Campos da resposta
|
Campo |
Tipo |
Descrição |
|
id |
string |
ID da sessão. |
|
type |
string |
Sempre |
|
identity_id |
string |
ID da Forward Identity. |
|
template |
object |
Resumo do Template. |
|
source_type |
string |
Origem da sessão. |
|
status |
string |
|
|
incremental_streaming_enabled |
boolean |
Indica se os eventos de streaming incremental estão ativados. |
Erros
|
HTTP |
Tipo |
Código |
Condição de acionamento |
|
400 |
|
|
Corpo da requisição inválido. |
|
403 |
|
|
A Identity não tem acesso a este Template. |
|
404 |
|
|
A Identity não existe ou foi excluída. |
|
404 |
|
|
O Template não existe. |
|
409 |
|
|
A Identity está desativada. |
|
422 |
|
|
A configuração efetiva de runtime é inválida. |
|
401 |
|
|
PAT inválido ou expirado. |
Observações
O Forward define o campo
source_type, que não é aceito na requisição de criação.O parâmetro
incremental_streaming_enabledé persistido na Session durante a criação e não pode ser modificado posteriormente.Os arquivos em
resourcesjá devem ter sido carregados pela Files API.