Agentes Autonomos en Software¶
Proposito¶
Que son los agentes autonomos, como funcionan, y como podrian aplicarse en el desarrollo de software y en productos como el sistema de turnos medicos.
1. Que es un Agente Autonomo¶
Un agente autonomo es un sistema que: 1. Recibe un objetivo (no instrucciones paso a paso). 2. Planifica como alcanzar el objetivo. 3. Ejecuta acciones usando herramientas (APIs, BD, navegador, etc.). 4. Observa resultados de cada accion. 5. Ajusta su plan basandose en los resultados. 6. Itera hasta completar el objetivo o pedir ayuda.
Objetivo -> [Planificar] -> [Ejecutar] -> [Observar] -> Objetivo cumplido?
^ | |
| | No -> volver a planificar
+------------------------------+ Si -> fin
Diferencia con un chatbot¶
| Chatbot | Agente |
|---|---|
| Responde preguntas | Completa tareas |
| Un turno de conversacion | Multiples pasos autonomos |
| No ejecuta acciones | Ejecuta acciones reales |
| Necesita instrucciones especificas | Recibe un objetivo de alto nivel |
2. Anatomia de un Agente¶
+---------------------------+
| AGENTE |
| |
| +-------------------+ |
| | LLM (cerebro) | |
| +-------------------+ |
| | |
| +-------------------+ |
| | Memoria | |
| | - Corta (contexto) | |
| | - Larga (BD/docs) | |
| +-------------------+ |
| | |
| +-------------------+ |
| | Herramientas | |
| | - APIs | |
| | - Base de datos | |
| | - File system | |
| | - Navegador | |
| +-------------------+ |
| | |
| +-------------------+ |
| | Guardrails | |
| | - Limites | |
| | - Aprobacion humana| |
| | - Presupuesto | |
| +-------------------+ |
+---------------------------+
3. Agentes en Desarrollo de Software¶
Agente de Code Review¶
Objetivo: "Revisa este PR y comenta los issues de seguridad y performance"
Plan del agente:
1. Leer el diff del PR
2. Para cada archivo cambiado:
a. Entender el contexto (leer archivos relacionados)
b. Buscar patterns de seguridad (OWASP)
c. Buscar patterns de performance (N+1, queries sin indice)
3. Generar comentarios en las lineas relevantes
4. Publicar review en GitHub
Agente de Debugging¶
Objetivo: "El test test_booking_cancellation falla. Arreglalo."
Plan del agente:
1. Correr el test y capturar el error
2. Leer el test para entender que espera
3. Leer el codigo bajo test
4. Identificar la discrepancia
5. Proponer un fix
6. Aplicar el fix
7. Correr el test de nuevo
8. Si pasa: commit. Si no: volver al paso 4.
Agente de Deployment Monitor¶
Objetivo: "Monitorea el deploy y haz rollback si hay problemas"
Plan del agente:
1. Observar metricas post-deploy (error rate, latencia)
2. Si error rate > 5%: ejecutar rollback automatico
3. Si latencia p95 > 2s por 5 min: alertar al equipo
4. Si todo normal por 30 min: confirmar deploy exitoso
4. Agentes para el Sistema de Turnos Medicos¶
Agente de Triaje (futuro)¶
Objetivo: Evaluar los sintomas del paciente y dirigirlo a la especialidad correcta.
Herramientas:
- searchSpecialties(): busca especialidades
- getUrgencyGuidelines(): guias de urgencia
- searchDoctors(specialty, urgency): busca medicos con disponibilidad
Flujo:
1. Paciente describe sintomas: "Me duele el pecho cuando camino"
2. Agente identifica: posible cardio, urgencia media-alta
3. Agente busca cardiologos con disponibilidad esta semana
4. Agente presenta opciones al paciente
5. Paciente elige, agente crea la reserva
Guardrails:
- NUNCA dar diagnostico ("podria ser X" no "tienes X")
- Si detecta emergencia -> "Llama al 107 o ve a urgencias"
- Siempre confirmar con el paciente antes de reservar
Agente de Recordatorios Inteligentes (futuro)¶
Objetivo: Enviar recordatorios personalizados para reducir no-shows.
Herramientas:
- getUpcomingBookings(): turnos de las proximas 48h
- getPatientHistory(): historial de no-shows del paciente
- sendReminder(patientId, message, channel): enviar recordatorio
Flujo:
1. 48h antes: enviar primer recordatorio por email
2. 24h antes: si el paciente tiene historial de no-show, enviar SMS
3. 2h antes: enviar push notification
4. Personalizar mensaje segun contexto: "Recuerda llevar los estudios"
5. Riesgos y Mitigaciones¶
| Riesgo | Descripcion | Mitigacion |
|---|---|---|
| Loop infinito | El agente itera sin progreso | Max iteraciones (10-20), timeout |
| Acciones destructivas | El agente borra datos o causa dano | Approval humano para acciones criticas |
| Costo descontrolado | El agente hace cientos de llamadas al LLM | Presupuesto maximo por ejecucion |
| Alucinacion en accion | El agente toma acciones basadas en datos inventados | Verificar datos antes de actuar |
| Seguridad | El agente accede a datos que no deberia | Permisos por herramienta, sandboxing |
Principio de "Least Authority"¶
El agente solo tiene acceso a las herramientas que necesita. Un agente de recordatorios no necesita acceso a cancelar turnos.
6. Como Empezar¶
Nivel 1: Script con LLM¶
Un script que usa un LLM para una tarea especifica (no es un agente, pero es el primer paso).
Nivel 2: Agente simple (loop + tools)¶
Un loop que ejecuta herramientas y evalua resultados. Claude Agent SDK, LangChain, o implementacion custom.
Nivel 3: Agente con planificacion¶
El agente genera un plan, lo ejecuta, y lo ajusta. Requiere mas sofisticacion.
Nivel 4: Multi-agente¶
Multiples agentes especializados que colaboran. Un agente de triaje pasa al agente de reservas.
Checklist de Completitud¶
- Definicion de agente autonomo
- Anatomia de un agente
- Ejemplos en desarrollo de software
- Ejemplos en el dominio de turnos medicos
- Riesgos y mitigaciones
- Path de adopcion progresiva
- Revisada por otro ingeniero
Archivos relacionados¶
- ai-native-development.md - Desarrollo AI-native
- llm-integration-patterns.md - Patrones de integracion
- emerging-tech-radar.md - Radar tecnologico