Este tutorial parte do princípio que você já sabe o básico de Python e APIs REST. Vamos construir um agente autônomo de qualificação de leads que recebe mensagens, consulta um CRM, classifica o lead e dispara ações — sem depender de um humano em cada etapa.
Publicidade
Todo agente começa por um processo, não por código. Escreva em texto puro:
Publicidade
Esse documento é o seu contrato de comportamento — ele evita que o agente "invente" fluxos.
Não comece com um ecossistema monolítico. Use:
# estrutura do projeto
agent/
├── main.py # ponto de entrada
├── graph.py # fluxo do agente
├── tools.py # conexões MCP / APIs
├── memory.py # memória curta
├── prompts.py # prompts do sistema
└── config.py # variáveis de ambiente
A "mágica" do agente autônomo é o function calling: o LLM decide quando chamar uma função, com quais argumentos. Veja um exemplo mínimo:
from openai import OpenAI
import os
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
TOOLS = [
{
"type": "function",
"function": {
"name": "classify_lead",
"description": "Classifica um lead como quente, morno ou frio",
"parameters": {
"type": "object",
"properties": {
"name": {"type": "string"},
"interest": {"type": "string"},
"budget": {"type": "number"},
"temperature": {"type": "string"}
},
"required": ["name", "interest", "budget"]
}
}
}
]
def run_agent(message: str):
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": message}],
tools=TOOLS,
tool_choice="auto"
)
return response.choices[0].message
Esse trecho já permite que o modelo analise a mensagem do usuário e decida se deve classificar o lead — sem você escrever regras if/else.
O MCP padroniza como o agente "vê" APIs. Abaixo, um exemplo de servidor MCP simplificado para WhatsApp:
# tools/mcp_server.py
from mcp.server import Server
from mcp.types import Tool, TextContent
app = Server("praia-whatsapp")
@app.call_tool()
async def send_whatsapp(name: str, phone: str, text: str):
"""Envia mensagem de WhatsApp via API"""
# Aqui entra a integração com provedor (Twilio, Zenvia, etc.)
payload = {
"to": phone,
"type": "text",
"text": {"body": text}
}
# response = requests.post(API_URL, json=payload, headers=HEADERS)
return [TextContent(type="text", text=f"Enviado para {name}")]
if __name__ == "__main__":
app.run()
Empacote o agente em container e exponha via API mínima:
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Monitore três métricas essenciais:
Use logs estruturados (JSON) e um painel simples (Grafana ou até um dashboard Streamlit) para visualizar o fluxo em tempo real.
Para acompanhar o repositório com o código final do agente:
github.com/praiadigital/hermes-agents-exampleVeja também:
Aviso legal: Este conteúdo tem caráter informativo e não constitui assessoria jurídica, contábil ou imobiliária. Dados e projeções dependem de contexto de mercado. Consulte profissional habilitado para decisões específicas.