mirror of
https://github.com/hoshikawa2/compass_backoffice.git
synced 2026-07-09 13:54:20 +00:00
111 lines
3.0 KiB
Markdown
111 lines
3.0 KiB
Markdown
# 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_native_runtime.py` como 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
|
|
|
|
```text
|
|
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
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
app/main.py registrava routers originais
|
|
rotas originais chamavam src.api.executors
|
|
executors chamavam src.agent.graphs
|
|
src.agent.graphs criava StateGraph diretamente
|
|
```
|
|
|
|
Agora:
|
|
|
|
```text
|
|
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`:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
INPUT_SIZE, MSK, PINJ, TOX, DLEX_IN, RAGSEC, VLOOP
|
|
REVPREC, DLEX_OUT, OOS, CMP, AOFERTA
|
|
```
|