Files
agent_platform_oci/apps/agent_gateway/README.md
2026-06-19 22:17:09 -03:00

74 lines
1.8 KiB
Markdown

# Agent Gateway — Global Supervisor
Este serviço roteia uma mesma conversa entre vários backends de agentes independentes, todos usando o `agent_framework`.
## Papel do Gateway
```text
Frontend
Agent Gateway / Global Supervisor
Backend Contas | Backend Ofertas | Backend Suporte | ...
```
O Gateway não executa a lógica de negócio dos agentes. Ele decide **qual backend** deve receber a mensagem e encaminha a requisição para o endpoint `/gateway/message` do backend escolhido.
## Modos de roteamento
- `router`: usa regras, keywords e domínios do `config/backends.yaml`.
- `supervisor`: usa LLM para escolher o backend.
- `hybrid`: mantém o backend ativo quando a mensagem parece continuação; usa regras; chama LLM em ambiguidade.
## Como subir localmente
```bash
cd agent_gateway
cp .env.example .env
export PYTHONPATH=../agent_framework/src:.
uvicorn app.main:app --host 0.0.0.0 --port 8010 --reload
```
Suba seus backends nas portas definidas em `config/backends.yaml`.
## Teste de rota
```bash
curl -X POST http://localhost:8010/debug/route \
-H 'content-type: application/json' \
-d '{"channel":"web","payload":{"text":"Minha fatura veio alta","session_id":"s1"}}'
```
## Enviar mensagem
```bash
curl -X POST http://localhost:8010/gateway/message \
-H 'content-type: application/json' \
-d '{"channel":"web","payload":{"text":"Minha fatura veio alta","session_id":"s1"}}'
```
## Handoff entre backends
Um backend pode solicitar troca retornando no `metadata`:
```json
{
"metadata": {
"handover_backend": "ofertas"
}
}
```
O Gateway chamará automaticamente o novo backend.
## IC/NOC
O Gateway emite eventos de observabilidade:
- `IC.GLOBAL_GATEWAY_RECEIVED`
- `IC.GLOBAL_BACKEND_SELECTED`
- `IC.GLOBAL_BACKEND_HANDOVER`
- `IC.GLOBAL_GATEWAY_COMPLETED`
- `NOC.005` em falhas
- `NOC.006` em conclusão HTTP