Files
compass_backoffice/docs/RELATORIO_FRAMEWORK_NATIVE_100.md
2026-06-13 15:40:44 -03:00

3.1 KiB

Relatório da refatoração framework-native

Resultado

A versão foi refatorada para que o backoffice não execute mais grafos LangGraph legados diretamente. Os grafos originais do develop foram movidos para legacy_reference_disabled/ e deixados apenas como referência/auditoria.

Arquitetura ativa

O backend ativo usa:

  • app/main.py como camada de rotas/adapters.
  • app/workflows/backoffice_workflow_executor.py como executor de workflows de domínio sobre o runtime LangGraph do framework.
  • src/agent/nodes/* como nós de domínio.
  • src/components/clients/* como services/clients de domínio.
  • src/agent/local_prompts/* como prompts de domínio.
  • config/agents/backoffice_anatel/* como políticas de guardrails, judges e prompt policy.

Fluxo checklist ativo

framework_input_guardrails
fetch_ticket
validation
bypass_rules
cache_check
imdb_enrichment
identity_verification
speech_enrichment
knowledge_base_enrichment
canceling_analysis
tim_complaint_analysis
operator_route
reclassification_analysis
treatment_decision
siebel_sr_opening
framework_output_supervisor
framework_output_guardrails
framework_judges
framework_supervisor_review
framework_persist

Fluxo response emulator ativo

framework_input_guardrails
start_response_emulation
fetch_case
validate_actions
router
retrieve_templates
retrieve_history
generate_response
validate_response
persist_draft / approve_draft / close_case
framework_output_supervisor
framework_output_guardrails
framework_judges
framework_supervisor_review
framework_persist

Diferença em relação à versão anterior

Antes:

app/main.py registrava routers originais
rotas originais chamavam src.api.executors
executors chamavam src.agent.graphs
src.agent.graphs criava StateGraph diretamente

Agora:

app/main.py chama backoffice_runtime.execute_workflow
BackofficeWorkflowExecutor compila os workflows
os nós originais são apenas plugins de domínio
guardrails/judges/supervisor/checkpoint/telemetry entram no runtime

Limites honestos

A compilação está validada. A execução real depende das mesmas integrações externas do develop: IMDB, Siebel, Speech Analytics, TAIS KB, ABRT, Portabilidade, Autonomous DB, OCI Streaming e credenciais.

Ajuste aplicado: binding explícito dos guardrails do agente

O runtime nativo agora resolve config/agents.yaml, localiza o profile backoffice_anatel e carrega explicitamente guardrails_config_path:

config/agents/backoffice_anatel/guardrails.yaml

Com isso, os guardrails continuam sendo executados pelo framework (GuardrailPipeline e OutputSupervisor), mas a política ativa vem do backend/domínio do agente. A metadata do workflow também passa a registrar:

agent_id
 guardrails_profile
 guardrails_config_path
 active_input_rails
 active_output_rails

Assim é possível validar em telemetry/debug que o backoffice não está usando apenas config/guardrails.yaml global, mas sim a configuração completa do agente:

INPUT_SIZE, MSK, PINJ, TOX, DLEX_IN, RAGSEC, VLOOP
REVPREC, DLEX_OUT, OOS, CMP, AOFERTA