mirror of
https://github.com/hoshikawa2/agent_platform_oci.git
synced 2026-07-09 22:04:21 +00:00
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
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 doconfig/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
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
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
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:
{
"metadata": {
"handover_backend": "ofertas"
}
}
O Gateway chamará automaticamente o novo backend.
IC/NOC
O Gateway emite eventos de observabilidade:
IC.GLOBAL_GATEWAY_RECEIVEDIC.GLOBAL_BACKEND_SELECTEDIC.GLOBAL_BACKEND_HANDOVERIC.GLOBAL_GATEWAY_COMPLETEDNOC.005em falhasNOC.006em conclusão HTTP