Files
agent_platform_oci/Tuning-Performance/Domain_Requested_RAG

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:

{
  "requires_rag": true,
  "rag_queries": [
    "Como cancelar o serviço Paramount+ no parceiro? Procedimento oficial de cancelamento."
  ]
}

Fluxo

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().