mirror of
https://github.com/hoshikawa2/first_contas.git
synced 2026-07-09 10:14:20 +00:00
60 lines
2.8 KiB
Markdown
60 lines
2.8 KiB
Markdown
# Agent Contas FIRST migrado para agent_framework_oci
|
|
|
|
Este backend foi gerado a partir do `agent_template_backend` e remodelado para executar o `agent_contas_first` com máximo uso das capacidades nativas do `agent_framework_oci`.
|
|
|
|
## Decisões principais
|
|
|
|
- **Não foi portada a camada própria de workflow/guardrails/judges/RAG do legado** para evitar duplicação e regras paralelas.
|
|
- O agente específico ficou concentrado em `app/agents/contas_agent.py`.
|
|
- O fluxo LangGraph fica em `app/workflows/agent_graph.py` e usa componentes do framework para input guardrails, router, agente, output supervisor, output guardrails, judges, supervisor review e persistência.
|
|
- O MCP é chamado somente via `agent_framework.mcp.tool_router` através do `AgentRuntimeMixin.execute_tools_for_intent()`.
|
|
- Identity e BusinessContext são resolvidos em `app/main.py` com `IdentityResolver` e `BusinessContext` do framework.
|
|
- RAG é consumido via `RagService` do framework usando namespace `contas_first`.
|
|
- Eventos IC/NOC/GRL são emitidos no workflow e no agente, sem criar uma camada de observabilidade paralela.
|
|
|
|
## Arquivos principais
|
|
|
|
- `app/agents/contas_agent.py`: comportamento de domínio, seleção declarativa de intents/tools, uso de memória, RAG, MCP e LLM cache do framework.
|
|
- `app/workflows/agent_graph.py`: pipeline LangGraph corporativo.
|
|
- `config/agents.yaml`: registra somente `contas_first`.
|
|
- `config/routing.yaml`: intents de fatura, pagamento, segunda via, contestação, plano e VAS.
|
|
- `config/agents/contas_first/guardrails.yaml`: ativa MSK, VLOOP, PINJ, DLEX_IN, REVPREC, DLEX_OUT e RAGSEC no framework.
|
|
- `config/tools.yaml`: catálogo MCP telecom com cache por `args_schema`.
|
|
- `config/mcp_parameter_mapping.yaml`: mapeamento canônico BusinessContext -> argumentos MCP.
|
|
- `config/identity.yaml`: aliases de msisdn, invoice_id, asset_id, ura_call_id e session.
|
|
- `legacy_reference/`: workflows originais guardados apenas como referência de rastreabilidade.
|
|
|
|
## Como rodar
|
|
|
|
```bash
|
|
cd agent_contas_migrated
|
|
python -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
|
```
|
|
|
|
Exemplo:
|
|
|
|
```bash
|
|
curl -X POST http://localhost:8000/gateway/message \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{
|
|
"channel":"web",
|
|
"agent_id":"contas_first",
|
|
"tenant_id":"default",
|
|
"payload":{
|
|
"text":"quero entender minha fatura",
|
|
"session_id":"sess-contas-001",
|
|
"user_id":"11999999999",
|
|
"msisdn":"11999999999",
|
|
"invoice_id":"INV-EXEMPLO-001",
|
|
"ura_call_id":"URA-001"
|
|
}
|
|
}'
|
|
```
|
|
|
|
## Observações
|
|
|
|
O pacote não altera o `agent_framework_oci`; ele consome suas APIs nativas. Caso o framework esteja instalado em modo editable, rode com `PYTHONPATH` apontando para o `src` do framework ou instale o pacote via `pip install -e ../agent_framework_oci`.
|