Ajustes conforme relatorio de testes 2026-08-27
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Correção: precedência de parâmetros sobre semantic intent shift
|
||||
|
||||
## Problema
|
||||
|
||||
Durante uma transação ativa em `COLLECTING_PARAMETERS`, o roteador executava o
|
||||
`semantic_classifier` de mudança de intenção **antes** da extração dos parâmetros
|
||||
quando `ENABLE_LLM_ROUTER=true`. Com isso, respostas referenciais válidas, como
|
||||
`"a de quatorze e noventa e nove"`, podiam ser roubadas por outra intent
|
||||
semanticamente plausível antes de o contrato da transação tentar consumi-las.
|
||||
|
||||
## Regra restaurada
|
||||
|
||||
A ordem agora é:
|
||||
|
||||
1. `AWAITING_CONFIRMATION`: confirmação explícita continua com precedência absoluta.
|
||||
2. `COLLECTING_PARAMETERS`: tentar primeiro extrair pelo menos um parâmetro pendente.
|
||||
3. Se algum parâmetro for consumido, manter a transação e **não** executar intent shift.
|
||||
4. Somente quando nenhum parâmetro for consumido, avaliar `semantic_classifier` para
|
||||
`CONTINUE`/`SHIFT`.
|
||||
5. Um novo objetivo explícito continua podendo mudar a intenção, desde que o extrator
|
||||
corretamente não o converta em parâmetro da transação anterior.
|
||||
|
||||
## Resolução contextual
|
||||
|
||||
O extrator do roteador agora recebe um contexto conversacional recente e limitado,
|
||||
apenas como auxílio não-autoritativo para resolver referências. Exemplo: se o histórico
|
||||
recente contém `Tamboro Mensal = R$ 14,99`, a fala `"a de 14,99"` pode produzir o
|
||||
candidato `subject=Tamboro Mensal`. A validação/pre-validation da transação continua
|
||||
sendo responsável por provar a entidade contra evidência de backend/MCP antes da
|
||||
confirmação ou execução.
|
||||
|
||||
## Arquivo principal alterado
|
||||
|
||||
- `agent_framework_oci/libs/agent_framework/src/agent_framework/routing/enterprise_router.py`
|
||||
|
||||
## Testes
|
||||
|
||||
Foram atualizados/adicionados testes em:
|
||||
|
||||
- `agent_framework_oci/tests/test_transaction_parameter_llm_precedence.py`
|
||||
|
||||
Validação executada:
|
||||
|
||||
- 8/8 testes do arquivo de precedência passaram.
|
||||
- 81/81 testes combinados de transaction routing, state interruption, contextual reentry,
|
||||
expected input semantic classifier e route stickiness passaram.
|
||||
Reference in New Issue
Block a user