atendentepro 0.6.4__py3-none-any.whl → 0.6.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atendentepro
3
- Version: 0.6.4
3
+ Version: 0.6.5
4
4
  Summary: Framework de orquestração de agentes IA com tom e estilo customizáveis. Integra documentos (RAG), APIs e bancos de dados em uma plataforma inteligente multi-agente.
5
5
  Author-email: BeMonkAI <contato@monkai.com.br>
6
6
  Maintainer-email: BeMonkAI <contato@monkai.com.br>
@@ -96,6 +96,7 @@ Plataforma que unifica múltiplos agentes especializados para resolver demandas
96
96
  - [Estilo de Comunicação](#-estilo-de-comunicação-agentstyle)
97
97
  - [Single Reply Mode](#-single-reply-mode)
98
98
  - [Filtros de Acesso](#-filtros-de-acesso-roleuser)
99
+ - [Múltiplos Agentes](#-múltiplos-agentes-multi-interview--knowledge)
99
100
  - [Tracing e Monitoramento](#-tracing-e-monitoramento)
100
101
  - [Suporte](#-suporte)
101
102
 
@@ -1039,6 +1040,142 @@ tool_access:
1039
1040
 
1040
1041
  ---
1041
1042
 
1043
+ ## 🔀 Múltiplos Agentes (Multi Interview + Knowledge)
1044
+
1045
+ O AtendentePro suporta criar **múltiplas instâncias** de Interview e Knowledge agents, cada um especializado em um domínio diferente.
1046
+
1047
+ 📂 **Exemplo completo**: [docs/examples/multi_agents/](docs/examples/multi_agents/)
1048
+
1049
+ ### Caso de Uso
1050
+
1051
+ Empresa que atende diferentes tipos de clientes:
1052
+ - **Pessoa Física (PF)**: Produtos de consumo
1053
+ - **Pessoa Jurídica (PJ)**: Soluções empresariais
1054
+
1055
+ ### Arquitetura
1056
+
1057
+ ```
1058
+ ┌─────────────────┐
1059
+ │ Triage │
1060
+ │ (entry point) │
1061
+ └────────┬────────┘
1062
+
1063
+ ┌──────────────┼──────────────┐
1064
+ │ │ │
1065
+ ▼ ▼ ▼
1066
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
1067
+ │ Interview │ │ Interview │ │ Flow │
1068
+ │ PF │ │ PJ │ │ (comum) │
1069
+ └──────┬──────┘ └──────┬──────┘ └─────────────┘
1070
+ │ │
1071
+ ▼ ▼
1072
+ ┌─────────────┐ ┌─────────────┐
1073
+ │ Knowledge │ │ Knowledge │
1074
+ │ PF │ │ PJ │
1075
+ └─────────────┘ └─────────────┘
1076
+ ```
1077
+
1078
+ ### Implementação
1079
+
1080
+ ```python
1081
+ from atendentepro import (
1082
+ create_custom_network,
1083
+ create_triage_agent,
1084
+ create_interview_agent,
1085
+ create_knowledge_agent,
1086
+ )
1087
+
1088
+ # 1. Criar agentes especializados
1089
+ interview_pf = create_interview_agent(
1090
+ interview_questions="CPF, data de nascimento, renda mensal",
1091
+ name="interview_pf", # Nome único!
1092
+ )
1093
+
1094
+ interview_pj = create_interview_agent(
1095
+ interview_questions="CNPJ, razão social, faturamento",
1096
+ name="interview_pj", # Nome único!
1097
+ )
1098
+
1099
+ knowledge_pf = create_knowledge_agent(
1100
+ knowledge_about="Produtos para consumidor final",
1101
+ name="knowledge_pf",
1102
+ single_reply=True,
1103
+ )
1104
+
1105
+ knowledge_pj = create_knowledge_agent(
1106
+ knowledge_about="Soluções empresariais B2B",
1107
+ name="knowledge_pj",
1108
+ single_reply=True,
1109
+ )
1110
+
1111
+ # 2. Criar Triage
1112
+ triage = create_triage_agent(
1113
+ keywords_text="PF: CPF, pessoal, minha conta | PJ: CNPJ, empresa, MEI",
1114
+ name="triage_agent",
1115
+ )
1116
+
1117
+ # 3. Configurar handoffs
1118
+ triage.handoffs = [interview_pf, interview_pj, knowledge_pf, knowledge_pj]
1119
+ interview_pf.handoffs = [knowledge_pf, triage]
1120
+ interview_pj.handoffs = [knowledge_pj, triage]
1121
+ knowledge_pf.handoffs = [triage]
1122
+ knowledge_pj.handoffs = [triage]
1123
+
1124
+ # 4. Criar network customizada
1125
+ network = create_custom_network(
1126
+ triage=triage,
1127
+ custom_agents={
1128
+ "interview_pf": interview_pf,
1129
+ "interview_pj": interview_pj,
1130
+ "knowledge_pf": knowledge_pf,
1131
+ "knowledge_pj": knowledge_pj,
1132
+ },
1133
+ )
1134
+ ```
1135
+
1136
+ ### Cenários de Roteamento
1137
+
1138
+ | Mensagem do Usuário | Rota |
1139
+ |---------------------|------|
1140
+ | "Quero abrir conta para mim" | Triage → Interview PF → Knowledge PF |
1141
+ | "Preciso de maquininha para minha loja" | Triage → Interview PJ → Knowledge PJ |
1142
+ | "Quanto custa o cartão gold?" | Triage → Knowledge PF (direto) |
1143
+ | "Capital de giro para empresa" | Triage → Knowledge PJ (direto) |
1144
+
1145
+ ### Padrão: 1 Interview → 2 Knowledge
1146
+
1147
+ Outro padrão comum é ter um único Interview que pode direcionar para múltiplos Knowledge:
1148
+
1149
+ ```
1150
+ ┌───────────────┐
1151
+ │ Interview │
1152
+ │ (coleta dados)│
1153
+ └───────┬───────┘
1154
+
1155
+ ┌───────┴───────┐
1156
+ ▼ ▼
1157
+ ┌───────────────┐ ┌───────────────┐
1158
+ │ Knowledge │ │ Knowledge │
1159
+ │ Produtos │ │Troubleshooting│
1160
+ └───────────────┘ └───────────────┘
1161
+ ```
1162
+
1163
+ ```python
1164
+ # Um interview que direciona para múltiplos knowledge
1165
+ interview.handoffs = [knowledge_produtos, knowledge_troubleshooting, triage]
1166
+ ```
1167
+
1168
+ 📂 **Exemplo completo**: [example_one_interview_two_knowledge.py](docs/examples/multi_agents/example_one_interview_two_knowledge.py)
1169
+
1170
+ ### Dicas
1171
+
1172
+ 1. **Nomes únicos**: Cada agente precisa de um `name` distinto
1173
+ 2. **Handoffs claros**: Configure quais agentes cada um pode chamar
1174
+ 3. **Keywords no Triage**: Inclua palavras-chave para direcionar corretamente
1175
+ 4. **single_reply**: Use em Knowledge para evitar loops
1176
+
1177
+ ---
1178
+
1042
1179
  ## 📊 Tracing e Monitoramento
1043
1180
 
1044
1181
  ### MonkAI Trace (Recomendado)
@@ -35,9 +35,9 @@ atendentepro/templates/manager.py,sha256=s2ezeyEboeMxdcb6oOADQRAm0ikB8Ru4fYC87gf
35
35
  atendentepro/utils/__init__.py,sha256=WCJ6_btsLaI6xxHXvNHNue-nKrXWTKscNZGTToQiJ8A,833
36
36
  atendentepro/utils/openai_client.py,sha256=R0ns7SU36vTgploq14-QJMTke1pPxcAXlENDeoHU0L4,4552
37
37
  atendentepro/utils/tracing.py,sha256=kpTPw1PF4rR1qq1RyBnAaPIQIJRka4RF8MfG_JrRJ7U,8486
38
- atendentepro-0.6.4.dist-info/licenses/LICENSE,sha256=TF6CdXxePoT9DXtPnCejiU5mUwWzrFzd1iyWJyoMauA,983
39
- atendentepro-0.6.4.dist-info/METADATA,sha256=hjjY6FTN3Ht4v_05KO-raxRQkZEuWAxV4ACLtWTnCEs,35702
40
- atendentepro-0.6.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
41
- atendentepro-0.6.4.dist-info/entry_points.txt,sha256=OP0upzqJF3MLS6VX-M-5BfUwx5YLJO2sJ3YBAp4e6yI,89
42
- atendentepro-0.6.4.dist-info/top_level.txt,sha256=BFasD4SMmgDUmWKlTIZ1PeuukoRBhyiMIz8umKWVCcs,13
43
- atendentepro-0.6.4.dist-info/RECORD,,
38
+ atendentepro-0.6.5.dist-info/licenses/LICENSE,sha256=TF6CdXxePoT9DXtPnCejiU5mUwWzrFzd1iyWJyoMauA,983
39
+ atendentepro-0.6.5.dist-info/METADATA,sha256=kLTh75smJ0t4HHAGVY7Bcj4XoOzKtrLWL_gcu1OvLEA,40666
40
+ atendentepro-0.6.5.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
41
+ atendentepro-0.6.5.dist-info/entry_points.txt,sha256=OP0upzqJF3MLS6VX-M-5BfUwx5YLJO2sJ3YBAp4e6yI,89
42
+ atendentepro-0.6.5.dist-info/top_level.txt,sha256=BFasD4SMmgDUmWKlTIZ1PeuukoRBhyiMIz8umKWVCcs,13
43
+ atendentepro-0.6.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5