Converse com o Calendário do Gmail
O objetivo é automatizar a gestão de eventos e tarefas no Google Calendar e no Gmail. Permite aos utilizadores interagir com estas aplicações de forma conversacional, simplificando o agendamento e as consultas.
Chat com Gmail e Calendar
🧩 Visão Geral
Este fluxo permite que usuários gerenciem Gmail e Google Calendar através de conversas em linguagem natural. Um agente conversacional recebe a solicitação do usuário, identifica se a ação requerida é do Gmail ou do Calendar e executa as chamadas correspondentes à API do Google. A resposta final é retornada como uma mensagem de chat, possibilitando agendamento, recuperação de eventos e gerenciamento de emails sem interação manual.
⚙️ Funcionalidades Principais
- Interface conversacional para consultas sobre eventos do calendário e emails em linguagem natural.
- Seleção automática de ferramenta: o agente decide se deve ler, criar ou atualizar eventos ou mensagens.
- Integração com Google Calendar para recuperar, criar ou modificar eventos.
- Integração com Gmail para ler, responder e rotular mensagens.
- Raciocínio com IA usando o modelo Gemini para gerar respostas e lógica de invocação de ferramentas.
- Formatação de datas ISO 8601 para todas as operações do calendário.
- Gerenciamento seguro de credenciais através das credenciais da API do Google para Gmail e Calendar.
🔄 Etapas do Fluxo
| Nome do Componente | Papel no Fluxo | Entradas Principais | Saídas Principais |
|---|---|---|---|
| Chat Input | Coleta a consulta em linguagem natural e anexos opcionais do usuário. | Mensagem de texto (ex.: “Dime todos los eventos entre los días 3 y 10 de octubre del 2025”), arquivos opcionais, identificadores de conversa. | Mensagem contendo a entrada do usuário. |
| Gemini | Modelo de linguagem que processa a consulta e pode solicitar uso de ferramentas. | Texto de entrada (consulta do usuário). | Texto (resposta do modelo ou instrução para ferramenta). |
| Langgraph React Agent (Chat Bot) | Orquestra a conversa, alimenta o modelo Gemini, interpreta saídas das ferramentas e produz a resposta final. | Mensagem do usuário, modelo Gemini, ferramenta Gmail, ferramenta Calendar. | Mensagem (resposta final do chat). |
| Gmail Message Component | Executa ações no Gmail como recuperar mensagens, responder ou rotular. | Tipo de operação (ex.: “Get”), consulta, identificadores de mailbox, corpo do email, etc. | Data (mensagens recuperadas ou confirmação da ação). |
| Google Calendar Component | Realiza operações no calendário: criar, atualizar, recuperar ou deletar eventos. | Tipo de operação (ex.: “Get”), intervalo de datas, detalhes do evento, lista de participantes. | Data (detalhes do evento ou confirmação da ação). |
| Chat Output | Exibe a resposta do agente para o usuário no playground. | Texto (resposta do agente). | Mensagem de chat exibida. |
A sequência de interações segue as conexões do diagrama do fluxo:
- Chat Input → Langgraph React Agent – a consulta do usuário se torna a entrada inicial do agente.
- Gemini → Langgraph React Agent – o LLM processa a consulta.
- Langgraph React Agent → Ferramentas Gmail / Calendar – o agente invoca a ferramenta adequada, se necessário.
- Ferramentas → Langgraph React Agent – os resultados das ferramentas são retornados.
- Langgraph React Agent → Chat Output – a resposta final é exibida.
🧠 Observações
- O fluxo requer credenciais válidas da API do Google com escopos Gmail e Calendar.
- O modelo Gemini é identificado pela chave
gemini-2.5-pro; outros modelos podem ser selecionados na configuração do agente. - Eventos do Calendar usam o formato ISO 8601 (
YYYY‑MM‑DDTHH:MM:SSpara eventos com horário,YYYY‑MM‑DDpara eventos de dia inteiro). - O system prompt do agente instrui o modelo a usar ISO 8601 e tratar datas como objetos
datetime, não strings. - A seleção da ferramenta é dinâmica: o agente decide chamar Gmail ou Calendar com base no conteúdo da consulta.
- Caso o modelo Gemini não suporte chamadas de ferramenta, o agente pode recorrer a uma estratégia de resposta simplificada.
- O estado da conversa é mantido pelos parâmetros
conversation_idesession_id, permitindo interações de múltiplos turnos.
Este documento fornece uma visão funcional e objetiva do fluxo, destacando a finalidade e a interação de cada componente sem expor detalhes internos de configuração.