Agentes IA Autónomos
Un agente = LLM + herramientas + bucle de razonamiento para completar tareas complejas.
Agente vs Chatbot
| Chatbot | Agente |
|---|
| Una respuesta | Múltiples pasos |
| Sin herramientas | Usa herramientas |
| Reactivo | Proactivo |
| Tú controlas | Él decide |
Arquitectura de un agente
┌─────────────────────────────────┐
│ AGENTE │
│ ┌─────────────────────────┐ │
│ │ Razonamiento │ │
Tarea ───→ │ │ (ReAct, CoT, ToT) │ ───→ Resultado
│ └───────────┬─────────────┘ │
│ ↓ │
│ ┌─────────────────────────┐ │
│ │ Herramientas │ │
│ │ [Web] [Code] [Files] │ │
│ └─────────────────────────┘ │
└─────────────────────────────────┘
Patrón ReAct
Thought: Necesito buscar el clima de Madrid
Action: search_weather("Madrid")
Observation: 22°C, soleado
Thought: Ya tengo la info
Action: respond("El clima en Madrid es 22°C...")
Herramientas comunes
| Herramienta | Uso |
|---|
| web_search | Buscar información |
| read_file | Leer documentos |
| write_file | Crear archivos |
| run_code | Ejecutar Python |
| ask_user | Pedir clarificación |
Agente básico con OpenAI
tools = [
{
"type": "function",
"function": {
"name": "search",
"description": "Search the web",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string"}
}
}
}
}
]
# Loop del agente
while True:
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools
)
if response.choices[0].finish_reason == "tool_calls":
# Ejecutar herramienta
tool_call = response.choices[0].message.tool_calls[0]
result = execute_tool(tool_call)
messages.append({"role": "tool", "content": result})
else:
# Respuesta final
break
Frameworks de agentes
| Framework | Enfoque |
|---|
| LangChain | Chains y agents |
| LangGraph | Grafos de estado |
| CrewAI | Multi-agente |
| AutoGen | Conversación |
| Claude Code | Coding agent |
🏦 Caso Real: Agente para Conciliación Bancaria
Los agentes brillan en tareas financieras que requieren múltiples pasos y decisiones.
Ejemplo: Agente de Conciliación
tools = [
{"name": "fetch_bank_transactions", "description": "Obtener transacciones del banco"},
{"name": "fetch_internal_records", "description": "Obtener registros internos"},
{"name": "compare_records", "description": "Comparar y encontrar diferencias"},
{"name": "generate_report", "description": "Crear reporte de conciliación"},
{"name": "flag_discrepancy", "description": "Marcar discrepancia para revisión"},
]
# El agente decide qué hacer
system_prompt = """
Eres un agente de conciliación bancaria. Tu trabajo:
1. Obtener transacciones del banco (últimas 24h)
2. Obtener registros internos del mismo período
3. Comparar y encontrar discrepancias
4. Si hay diferencias > $100, marcar para revisión humana
5. Generar reporte final
Sé meticuloso. Un error aquí cuesta dinero real.
"""
Flujo del Agente
Tarea: "Concilia las transacciones de ayer"
↓
Thought: Primero obtengo las transacciones del banco
Action: fetch_bank_transactions("2024-01-15")
Observation: 847 transacciones, total $1,234,567
↓
Thought: Ahora los registros internos
Action: fetch_internal_records("2024-01-15")
Observation: 845 transacciones, total $1,234,123
↓
Thought: Hay diferencia. Comparo en detalle
Action: compare_records(bank, internal)
Observation: 2 transacciones faltantes, diferencia $444
↓
Thought: Diferencia > $100, marco para revisión
Action: flag_discrepancy({amount: 444, txns: [...]})
↓
Action: generate_report() → ✅ Reporte enviado
Otros casos de uso en Fintech
| Caso | Herramientas | Valor |
|---|
| Análisis de riesgo | APIs de credit bureau, calculadoras | Decisión de crédito automatizada |
| Detección de fraude | Bases de datos, reglas, ML | Bloqueo en tiempo real |
| Onboarding KYC | OCR, verificación, bases PEP | Proceso de horas → minutos |
| Soporte al cliente | CRM, knowledge base | Resolución sin humanos |
💡 Los agentes son ideales cuando la tarea tiene múltiples pasos y requiere decisiones intermedias.
Practica
→ Agente IA Autónomo