3.0 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.pycomo camada de rotas/adapters.app/workflows/backoffice_native_runtime.pycomo runtime de workflows 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
BackofficeNativeRuntime 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