evo-ai icon indicating copy to clipboard operation
evo-ai copied to clipboard

Sugestões

Open caioamaral opened this issue 9 months ago • 0 comments

Estou utilizando, projeto está incrível, parabéns e muito obrigado!

Ainda estou aprendendo a usar, mas senti falta de algumas coisas:

  • O Agente receber como contexto alguma informação que permita identificar com quem está falando, sem precisar receber no contexto da conversa. Por exemplo, na integração da Evolution com a Evo, poder chamar uma tool ex: 'get_customer_by_phone', já considerando pelo jid.

  • Gestão de sessão/canal de comunicação: Entendo o whatsapp como um canal "bidirecional" de conversa, ou seja, geralmente conversam duas pessoas apenas, e não mais. Então sem um mecanismo para gerenciar a quem está atribuida a conversa naquele momento pode dar problema. Imaginando o cenário usual, onde tem um agente atendendo, e ele não consegue resolver o problema, e delega para ajuda humana, mas não há mecanismo para definir que o canal agora não está mais com ele. Neste momento se o humano entrar no loop e começar a conversar, o agente vai tentar ainda se intrometer. Entendo que tem na integração da evolution a opção de parar ao detectar minha mensagem. Mas não é bem o caso, é realmente uma questão de "saber com quem está com a bola" / human-in-the-loop, pois depois disso, quando o humano entender que foi resolvido, devolveriamos a conversa ao agente para que continue o atendimento/atendimentos futuros. Parece que hoje a grande maioria dos sistemas de automação com IA foram desenhados para ficar 100% do tempo no automático, ou 0%. Mas na prática isso não é muito funcional, pois muita coisa depende de um humano auxiliando. Sei que é possível resolver isso de N formas, usando as APIs, mas uma solução nativa seria bem legal pois é um cenário que eu acredito que muitos passam.

  • Se foi utilizado o ADK, poderia pensar em uma forma de informar como os campos da Evo estão mapeados com a definição do agente. Por exemplo, achei muito bom ler a documentação oficial https://google.github.io/adk-docs/agents/llm-agents/#guiding-the-agent-instructions-instruction para entender de que forma eu devo definir o agente e as tools para ter o melhor resultado. Porém está incerto como os campos do evo (description, role, goal, instructions) são mapeados ao LlmAgent() de fato. Beleza, nada urgente tbm, dá pra ver no código.

  • Inclusão de RAG com arquivos. Para treinar um agente que vai ter conhecimento mais profundo, falta a opção de anexar arquivos. Existe outra alternativa?

  • States do ADK - Alguma forma de trabalhar com os states, e states de cada sub-agent?

Tenho algumas outras ideias, mas estou tentando aprender bem a usar antes, para saber se há outras formas de resolver. Thanks!

caioamaral avatar May 20 '25 00:05 caioamaral