New features: Domain_Requested_LLM_Composition, Domain_Requested_RAG, Offline_Workflow_Regression, Pause_Resume_Workflow, Voice_Interruption_Replay, Workflow_Error_Recovery, Durable Idempotency, Workflow_Pause_Resume, Dynamic_Transaction_States, Post_Finalization_Replay, Retrieval_Tool_Guardrails

This commit is contained in:
2026-08-19 09:25:38 -03:00
parent 23d32bbcfc
commit 560e79d21b
89 changed files with 6261 additions and 864 deletions

View File

@@ -0,0 +1,51 @@
# Domain-Requested RAG
## Objetivo
Permitir que uma tool/workflow de domínio declare que o resultado MCP **não é suficiente** para produzir a resposta final e que o agente deve recuperar conhecimento usando o `RagService` oficial do `agent_framework_oci`.
O domínio não instancia banco vetorial, embeddings, LLM ou cliente RAG. Ele apenas devolve no resultado:
```json
{
"requires_rag": true,
"rag_queries": [
"Como cancelar o serviço Paramount+ no parceiro? Procedimento oficial de cancelamento."
]
}
```
## Fluxo
```text
Workflow/tool de domínio
|
| requires_rag + rag_queries
v
AgentRuntimeMixin
|
+-- impede direct MCP answer
+-- ignora SKIP_RAG_WHEN_MCP_SUFFICIENT para este resultado
+-- usa rag_query/rag_queries como query override
v
RagService
v
Vector/Graph store configurado no framework
v
LLM do agente com MCP evidence + RAG evidence
```
## Regras
1. `requires_rag=false` ou ausente mantém o comportamento padrão.
2. `SKIP_RAG_WHEN_MCP_SUFFICIENT=true` continua válido para tools normais.
3. Quando `requires_rag=true`, o framework não usa `build_direct_mcp_answer()`.
4. `rag_query` aceita uma query; `rag_queries` aceita várias queries, preservadas e deduplicadas em ordem.
5. O domínio nunca executa `RagService` diretamente.
6. Guardrails de retrieval (`RAGSEC`, `RET_REL` etc.) continuam executando normalmente sobre o contexto recuperado.
## Exemplo Contas
No fluxo VAS Estratégico, após o cliente rejeitar a explicação e pedir cancelamento, a action devolve queries específicas por parceiro. O `VasAgent` usa o `RagService` do framework para recuperar o procedimento oficial e compor a resposta.
Isso substitui o comportamento legado em que o backend Contas possuía uma busca RAG própria dentro de `vas_strategic()`.