Confirma ou rejeita uma operação pendente em uma sessão do agente ApsaraDB do Alibaba Cloud.
Descrição da operação
Esta operação responde a solicitações de confirmação de operação iniciadas pelo assistente de IA do ApsaraDB durante uma sessão. Não é usada para criar sessões.
Fluxo de chamada
Inicie um chat com o assistente de IA do ApsaraDB, salve o ID da sessão para a rodada atual e leia continuamente o fluxo de resposta do chat.
Após receber um evento em que toolName é humanConfirm em ui_function_call, leia o ID de confirmação pendente em argsText.confirmation_id. Use o ID da sessão do evento para SessionId. Não use call_id ou query_id no lugar de ConfirmationId.
Exiba a operação pendente e seus parâmetros para o usuário e envie esta solicitação dentro do limite de tempo de confirmação. Approved=true indica que você concorda em continuar a execução. Approved=false indica que a chamada de ferramenta atual é cancelada, mas a sessão inteira não é encerrada. Omita ToolArgs na versão atual.
Mantenha o fluxo de resposta do chat original aberto e continue lendo as respostas ou erros subsequentes até que a resposta da rodada atual termine. Você também pode chamar DescribeYaoChiAgentChatRecords para consultar as mensagens da sessão salvas posteriormente.
Limites
Você deve usar a mesma identidade do chamador e o mesmo ID de sessão que foram usados para iniciar a solicitação de confirmação.
O tempo limite de confirmação padrão é de 120 segundos, sujeito à configuração do servidor. A chamada de ferramenta é cancelada automaticamente após um tempo limite. Uma aprovação tardia não pode ser usada para retomar a execução cancelada.
Não encerre o fluxo de chat original antes de enviar a confirmação e não inicie uma nova rodada de chat para retomar a chamada de ferramenta. A desconexão do fluxo de chat original pode fazer com que a tarefa atual seja cancelada.
Envie uma decisão para o mesmo ConfirmationId apenas uma vez. Não use cartões de confirmação históricos como solicitações reproduzíveis. Se o registro de confirmação for inválido ou limpo, a solicitação poderá retornar Forbidden.Confirm ao ser enviada.
Esta operação processa apenas identificadores de confirmação UUID em eventos humanConfirm e não é usada para recuperação de interrupção em outros protocolos de interação.
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
hdm:CreateYaoChiAgentConfirm |
get |
*All Resource
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| ConfirmationId |
string |
Sim |
O identificador exclusivo da operação pendente. Use o confirmation_id retornado pelo evento de confirmação de operação na sessão do agente ApsaraDB. Não o gere você mesmo. O valor é um UUID de 36 caracteres com hifens, no formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. |
123e4567-e89b-42d3-a456-426614174000 |
| Approved |
boolean |
Sim |
Especifica se a execução da operação pendente deve ser aprovada. Valores válidos:
Este parâmetro é obrigatório. Uma rejeição também é uma resposta de confirmação válida e não indica uma falha na chamada de API. |
true |
| SessionId |
string |
Sim |
O ID da sessão do agente ApsaraDB à qual a operação pendente pertence. Deve ser o mesmo SessionId usado ao criar a sessão e iniciar o chat, e deve corresponder à sessão à qual o ConfirmationId pertence. O formato é um UUID de 36 caracteres com hifens. |
a1b2c3d4-e5f6-4789-abcd-0123456789ab |
| ToolArgs |
string |
Não |
Os parâmetros personalizados da ferramenta. O exemplo mostra a estrutura de parâmetros da ferramenta para modificar descrições de instâncias. O ID e a descrição da instância são dessensibilizados e fornecidos apenas para referência de formato. A versão atual não oferece suporte à modificação de parâmetros de ferramenta por meio desta operação. Omita este parâmetro nas chamadas reais e não passe uma string vazia ou uma string JSON. Ao aprovar a execução, os parâmetros originais da ferramenta gerados pelo assistente são usados. |
{"db-instance-id":"rm-bp1xxxxxxxxxxxxxx","db-instance-description":"example-description","region":"cn-hangzhou"} |
Restrições de parâmetros
ConfirmationId, SessionId e Approved são obrigatórios.
ConfirmationId e SessionId devem ser UUIDs de 36 caracteres com hifens. Os exemplos são fornecidos apenas para demonstrar o formato. Nas chamadas reais, use o ConfirmationId retornado pelo evento de confirmação e o SessionId real usado para a sessão correspondente.
A identidade do chamador é determinada pela autenticação da solicitação. Você não pode especificar outras identidades de usuário por meio de parâmetros de solicitação.
A versão atual não oferece suporte a ToolArgs. Omita este parâmetro. Passar uma string vazia ou uma string JSON pode fazer com que a solicitação falhe.
O campo approved no evento de confirmação é um status de exibição de string, não o parâmetro booleano Approved desta operação. Passe explicitamente true ou false.
Exemplo de aprovação
A seguir está um exemplo de parâmetros de negócios. Os parâmetros de solicitação comuns são passados de acordo com as especificações de chamada da OpenAPI.
{
"ConfirmationId": "123e4567-e89b-42d3-a456-426614174000",
"Approved": true,
"SessionId": "a1b2c3d4-e5f6-4789-abcd-0123456789ab"
}
Para rejeitar a execução, defina Approved como false e ainda passe o ConfirmationId e o SessionId originais.
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
Esquema da resposta. |
||
| RequestId |
string |
O identificador exclusivo da solicitação, usado para solução de problemas e rastreamento de logs. |
B6D17591-B48B-4D31-9CD6-9B9796B23456 |
| Status |
string |
A string de status. O valor de exemplo success refere-se ao status de sucesso externo da resposta de callback de confirmação downstream e é fornecido apenas para demonstração de formato. Não significa que o campo Status da operação atual realmente retorne este valor. Na versão atual, este campo pode estar vazio ou não ser retornado. Não confie neste campo para determinar se a execução foi aprovada ou se a ferramenta foi executada com sucesso. |
success |
| ConfirmationId |
string |
O identificador de operação para a confirmação enviada, que é o mesmo que o parâmetro de solicitação ConfirmationId. |
123e4567-e89b-42d3-a456-426614174000 |
| Approved |
boolean |
A decisão de confirmação enviada nesta solicitação, que é a mesma que o parâmetro de solicitação Approved. Um valor true indica que a execução foi aprovada, e false indica que a execução foi rejeitada. Não indica se a operação da ferramenta foi executada com sucesso. |
true |
| ToolArgsReceived |
boolean |
Especifica se os parâmetros personalizados da ferramenta foram recebidos. Um valor true indica que parâmetros não nulos foram fornecidos, e false indica que nenhum parâmetro foi fornecido. Não indica se os parâmetros foram aplicados ou se a ferramenta foi executada com sucesso. Na versão atual, omita o parâmetro de solicitação ToolArgs, e este campo normalmente retorna false. |
false |
Uma chamada de API bem-sucedida indica apenas que o serviço processou o callback de confirmação. Não indica que a execução da ferramenta foi concluída ou bem-sucedida. Approved reflete a decisão da solicitação atual e não é o status de execução da ferramenta. O reflexo de uma solicitação repetida ou tardia não prova que a decisão realmente entrou em vigor. Continue lendo os resultados de processamento subsequentes no fluxo de chat original.
Atualmente, Status não possui valores de status válidos e pode estar vazio ou não ser retornado. Não há enumerações confiáveis de sucesso, aceito ou confirmado. Nas chamadas atuais, omita ToolArgs, e ToolArgsReceived normalmente é false.
Exemplo de resposta de sucesso
{
"RequestId": "B6D17591-B48B-4D31-9CD6-9B9796B23456",
"ConfirmationId": "123e4567-e89b-42d3-a456-426614174000",
"Approved": true,
"ToolArgsReceived": false
}
Rejeitar a execução também é um callback de confirmação bem-sucedido, que retorna Approved=false. O exemplo omite o Status não atribuído.
Erros comuns
| Código de status HTTP | Código de erro | Descrição |
| 400 | InvalidParameters.Format | Um parâmetro obrigatório está ausente, ou o formato do UUID ou o tipo de parâmetro é inválido. Verifique a mensagem retornada e os parâmetros da solicitação. |
| 403 | Forbidden.Confirm | A identidade do chamador atual ou a sessão não corresponde à solicitação de confirmação, ou o registro de confirmação não existe, é inválido ou foi limpo. |
| 503 | ServiceUnavailable | O serviço está indisponível ou o processamento da solicitação falha. Passar uma string ToolArgs na versão atual também pode acionar este erro. Omita este parâmetro. |
Um tempo limite de confirmação é refletido como um resultado de cancelamento no fluxo de chat original e não é um código de erro 408 independente para esta operação.
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "B6D17591-B48B-4D31-9CD6-9B9796B23456",
"Status": "success",
"ConfirmationId": "123e4567-e89b-42d3-a456-426614174000",
"Approved": true,
"ToolArgsReceived": false
}
Códigos de erro
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.