Saltar a contenido

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