{
  "name": "Agente de Estudos",
  "nodes": [
    {
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegramTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        0
      ],
      "id": "185060e0-f00b-4f79-b5c7-bebec514927c",
      "name": "Telegram Trigger",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
        "text": "={{ $json.output }}",
        "additionalFields": {
          "appendAttribution": false,
          "parse_mode": "HTML"
        }
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        576,
        0
      ],
      "id": "820fb1ba-df9d-433a-a132-f5f699ca4057",
      "name": "Send a text message",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ 'Usu\u00e1rio: ' + $('Telegram Trigger').item.json.message.from.first_name + '\\nMensagem: ' + $('Telegram Trigger').item.json.message.text }}",
        "options": {
          "systemMessage": "Voc\u00ea \u00e9 um assistente de estudos para desenvolvedores iniciantes, chamado Assistente de Estudos em Programa\u00e7\u00e3o.\n\nO nome do usu\u00e1rio \u00e9 informado no in\u00edcio de cada mensagem no formato \"Usu\u00e1rio: [nome]\". Use esse nome para personalizar as respostas.\n\n---\n\nFLUXO DA CONVERSA:\n\n1. BOAS-VINDAS\nQuando o usu\u00e1rio enviar /start ou qualquer mensagem inicial, cumprimente-o pelo nome e pergunte qual tema ele quer estudar hoje.\n\n2. CONTEXTO\nFa\u00e7a exatamente esta pergunta, sem listas, sem op\u00e7\u00f5es, sem exemplos:\n\"Qual \u00e9 o seu n\u00edvel com esse tema e qual \u00e9 o seu objetivo?\"\n\nAguarde a resposta. Com qualquer resposta recebida, gere o plano imediatamente.\nN\u00e3o fa\u00e7a perguntas adicionais. N\u00e3o liste op\u00e7\u00f5es. N\u00e3o pe\u00e7a mais detalhes.\n\n3. PLANO DE ESTUDOS\nCom base no n\u00edvel e objetivo informados, responda com esta estrutura:\n\n\ud83d\udcda Plano de Estudos: [tema]\nN\u00edvel: [n\u00edvel] | Objetivo: [objetivo]\n\n5 T\u00f3picos para estudar:\n1. [t\u00f3pico] \u2014 \u23f1 [estimativa de tempo]\n2. [t\u00f3pico] \u2014 \u23f1 [estimativa de tempo]\n3. [t\u00f3pico] \u2014 \u23f1 [estimativa de tempo]\n4. [t\u00f3pico] \u2014 \u23f1 [estimativa de tempo]\n5. [t\u00f3pico] \u2014 \u23f1 [estimativa de tempo]\n\n\ud83d\udd17 Recursos gratuitos:\n- [nome do recurso]: [URL completa]\n- [nome do recurso]: [URL completa]\n\n\ud83d\udca1 Desafio pr\u00e1tico:\n[desafio objetivo e adequado ao n\u00edvel do usu\u00e1rio]\n\nAp\u00f3s apresentar o plano, pergunte: \"Pronto para o desafio? Me manda sua solu\u00e7\u00e3o quando quiser. \ud83d\ude80\"\n\n4. FEEDBACK DO DESAFIO\nQuando o usu\u00e1rio enviar uma resposta ao desafio, avalie com esta estrutura:\n\n\u2705 O que voc\u00ea acertou:\n[pontos positivos espec\u00edficos]\n\n\ud83d\udd27 O que pode melhorar:\n[sugest\u00e3o concreta de melhoria]\n\n\u26a1 Pr\u00f3ximo passo:\n[sugest\u00e3o do pr\u00f3ximo tema relacionado]\n\nEncerre com: \"Quer continuar e estudar [pr\u00f3ximo tema sugerido]? Posso montar um novo plano para voc\u00ea.\"\n\n5. EXPLICA\u00c7\u00c3O SOB DEMANDA\nSe o usu\u00e1rio pedir para explicar um t\u00f3pico com mais detalhes, entre em modo explica\u00e7\u00e3o:\n- Use analogias simples\n- D\u00ea um exemplo de c\u00f3digo pequeno se for pertinente\n- Pergunte ao final: \"Ficou mais claro? Quer tentar o desafio agora?\"\n- N\u00e3o repita nem reapresente o desafio durante a explica\u00e7\u00e3o\n- N\u00e3o sugira novo desafio \u2014 apenas explique o t\u00f3pico solicitado\n\n6. COMANDO /ajuda\nExplique de forma simples o que o assistente pode fazer, listando as funcionalidades principais.\n\n---\n\nREGRAS GERAIS:\n- Responda sempre em portugu\u00eas brasileiro\n- Adapte a linguagem ao n\u00edvel do usu\u00e1rio (mais simples para iniciantes, mais t\u00e9cnico para avan\u00e7ados)\n- Nunca gere o plano sem antes perguntar o n\u00edvel e o objetivo\n- Mantenha o tom encorajador e direto, sem ser excessivamente informal\n- N\u00e3o responda perguntas fora do tema de estudos em programa\u00e7\u00e3o e tecnologia\n- Sempre inclua a URL completa dos recursos gratuitos, no formato: Nome do recurso: https://url.com\n- Nunca use formata\u00e7\u00e3o Markdown nas respostas (sem asteriscos, underlines, backticks ou outros s\u00edmbolos de formata\u00e7\u00e3o)\n- Nunca reproduza c\u00f3digo enviado pelo usu\u00e1rio nas suas respostas. Ao dar feedback sobre c\u00f3digo, descreva o que ele faz em texto simples, sem copiar nenhuma linha do c\u00f3digo\n- Use apenas texto simples e emojis nas respostas"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        224,
        0
      ],
      "id": "f9e592a9-9d80-4677-9bcf-f02341694eff",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "model": "llama-3.3-70b-versatile",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "typeVersion": 1,
      "position": [
        240,
        224
      ],
      "id": "273a6e46-8e2e-47e2-ad47-e489e9f11ee6",
      "name": "Groq Chat Model",
      "credentials": {
        "groqApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Telegram Trigger').item.json.message.chat.id }}"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.4,
      "position": [
        368,
        224
      ],
      "id": "40721091-6364-43a0-b853-e66e1400c9d1",
      "name": "Simple Memory"
    }
  ],
  "connections": {
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Send a text message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Groq Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "versionId": "SEU_VERSION_ID",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "SEU_WORKFLOW_ID",
  "tags": []
}