⚙️ Como Criar um Agente de IA com ChatGPT e Python (Passo a Passo)
Atualizado em novembro de 2025 — Tutorial prático com código e dicas de deploy
Agentes de IA permitem automatizar tarefas complexas: buscar informações, analisar dados, redigir respostas e integrar serviços. Neste guia, você vai criar um agente simples em Python usando a API da OpenAI (Chat completions) e evoluir para memória, ferramentas e deploy básico.
🧠 O que é um agente de IA?
Um agente é mais que um chatbot: ele tem objetivo, contexto e pode executar ações. Ex.: resumir um PDF, organizar tarefas ou responder e-mails com tom profissional.
🧰 Pré-requisitos
- Python 3.10+ instalado
- Conta e chave de API da OpenAI (defina como variável de ambiente)
- Bibliotecas:
requests(ou o SDK oficial)
# Mac/Linux
export OPENAI_API_KEY="SUA_CHAVE_AQUI"
# Windows (PowerShell)
setx OPENAI_API_KEY "SUA_CHAVE_AQUI"
🚀 Passo 1 — Criar um agente básico (Chat Completions)
Exemplo mínimo usando requests para evitar dependências. Substitua SUA_CHAVE_AQUI por sua variável de ambiente.
import os, requests
API_KEY = os.getenv("OPENAI_API_KEY")
URL = "https://api.openai.com/v1/chat/completions"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
system_prompt = "Você é um assistente técnico que explica IA de forma clara e objetiva."
user_input = "Explique, em até 5 linhas, o que é aprendizado de máquina."
payload = {
"model": "gpt-4o-mini",
"messages": [
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_input}
],
"temperature": 0.4
}
resp = requests.post(URL, headers=headers, json=payload, timeout=60)
resp.raise_for_status()
print(resp.json()["choices"][0]["message"]["content"])
🧩 Passo 2 — Dando “memória” curta ao agente
Persista o histórico recente para manter contexto entre mensagens:
class SimpleAgent:
def __init__(self, system="Você é um assistente útil sobre IA.", model="gpt-4o-mini"):
self.model = model
self.history = [{"role":"system","content":system}]
def ask(self, query):
self.history.append({"role":"user","content":query})
payload = {"model": self.model, "messages": self.history, "temperature": 0.5}
r = requests.post("https://api.openai.com/v1/chat/completions",
headers={"Authorization": f"Bearer {os.getenv('OPENAI_API_KEY')}",
"Content-Type":"application/json"},
json=payload, timeout=60)
r.raise_for_status()
msg = r.json()["choices"][0]["message"]["content"]
self.history.append({"role":"assistant","content":msg})
return msg
agent = SimpleAgent()
print(agent.ask("Liste 3 casos de uso práticos de IA para produtividade."))
print(agent.ask("Agora detalhe o primeiro caso em 4 bullet points."))
🔧 Passo 3 — “Ferramentas”: chamando código externo (ex.: busca local)
Simule uma ferramenta: se o usuário pedir “ler_arquivo: caminho.txt”, o agente chama uma função Python e retorna o conteúdo.
def tool_read_file(path):
try:
with open(path, "r", encoding="utf-8") as f:
return f.read()[:3000] # limita o tamanho
except Exception as e:
return f"Erro ao ler arquivo: {e}"
def routed_response(query):
if query.startswith("ler_arquivo:"):
path = query.split(":",1)[1].strip()
return f"<CONTEUDO_ARQUIVO>\n{tool_read_file(path)}\n</CONTEUDO_ARQUIVO>"
else:
return None
def ask_with_tools(agent, query):
tool_result = routed_response(query)
if tool_result:
query = f"O usuário pediu para ler um arquivo e o conteúdo é:\n{tool_result}\nResuma em 5 bullet points."
return agent.ask(query)
print(ask_with_tools(agent, "ler_arquivo: notas/projeto.txt"))
🌐 Passo 4 — Deploy simples com Flask (API HTTP)
Exponha seu agente como endpoint para integrar com front-ends, Zapier ou no-code.
from flask import Flask, request, jsonify
app = Flask(__name__)
agent_api = SimpleAgent()
@app.post("/chat")
def chat():
data = request.get_json(force=True)
answer = ask_with_tools(agent_api, data.get("message",""))
return jsonify({"reply": answer})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000, debug=False)
🛡️ Boas práticas e custos
- Não exponha sua chave no front-end. Use variável de ambiente no servidor.
- Defina
timeoute trateraise_for_status()para erros de rede/API. - Monitore uso e custos por requisição no painel da API.
- Armazene logs com responsabilidade (LGPD). Redija política de privacidade.
🧭 Próximos passos
- Adicionar “memória longa” em banco (ex.: SQLite, Postgres) com resumo de histórico.
- Integrar ferramentas reais: Google Drive, Notion, Slack, e-mails.
- Criar front-end com Streamlit/Next.js para interface amigável.
🎯 Conclusão
Você criou um agente básico em Python, adicionou memória, rotas para ferramentas e expôs uma API. A partir daqui, evolua para agentes especializados em tarefas do seu negócio.
CTA: Quer acelerar? Veja nosso guia de cursos recomendados de IA e Python ou confira as ferramentas aprovadas pelo CodificaIA.
Transparência: podemos receber comissão por links de afiliado. Isso não altera sua experiência.

