Ajustes conforme relatorio de testes 2026-08-27

This commit is contained in:
2026-08-29 09:53:32 -03:00
parent 0ecff719b7
commit 88e1f070d7
791 changed files with 27040 additions and 29038 deletions

View File

@@ -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.