😶 El problema de la amnesia
Recuerda el módulo 6.2: una tarea programada abre una sesión nueva en cada ejecución: un empleado nuevo cada día, sin recordar el día anterior. Esto es excelente para la confiabilidad (nadie arrastra malentendidos de una ejecución a otra), pero crea un problema real: ¿y si la tarea necesita ¿saber qué ya hizo? «Manda un resumen solo de las noticias nuevas desde ayer» no funciona si el agente no sabe qué mandó ayer.
La tentación obvia es pedirle al agente que «recuerde» todo, pero no guarda nada entre ejecuciones por cuenta propia; cada sesión nace y muere en blanco. La solución no es darle memoria a la sesión (ese es el loop, del módulo 6.3, y caduca rápido), sino darle memoria al disco: un archivo pequeño que sobrevive de una ejecución a otra, y que la tarea lee al principio y vuelve a escribir al final.
💡 Concepto principal
- •La sesión no recuerda por sí sola: necesita un lugar fuera de ella para guardar lo esencial.
- •Ese lugar es un archivo simple en el disco, no la «cabeza» del agente.
📄 El archivo de estado
¿Eres nuevo aquí? Uno archivo de estado es un archivo de texto pequeño, dedicado a una sola tarea programada, que guarda solo lo importante para la próxima vez: la última fecha verificada, el último elemento procesado, un contador; nunca todo el historial. Es la «ficha» de la tarea, no su diario.
En la práctica: al comienzo de cada ejecución, la tarea programada abre este archivo y lee lo que contiene. Decide qué hacer en función de eso. Al final, reescribe el archivo completo con la información actualizada, sobrescribiendo lo anterior en vez de sumarlo. Por eso nunca crece: el contenido de hoy reemplaza al de ayer.
🔍 Por dentro
- Qué guardar: solo lo mínimo para decidir el siguiente paso (una fecha, un id, un número).
- Qué NO guardar: texto completo de lo que ya se hizo, historial de todas las ejecuciones, cosas «que podrían ser útiles algún día».
ultima_verificacao: 2026-08-04T07:00:00
ultimo_id_processado: 4821
proxima_acao: nenhuma pendencia
📈 Por qué no usar un registro infinito
La otra tentación es ir sumando una línea por cada ejecución: un log (registro cronológico de todo lo que pasó). Parece más seguro (“nada se pierde”), pero en la práctica se vuelve un problema: el archivo crece sin parar, cuesta más y tarda más en releerse en cada ejecución, y después de algunos meses nadie — ni siquiera el agente — consigue encontrar lo importante entre miles de líneas.
Leyenda: la línea rosa sube sin parar — el log suma una línea en cada ejecución y nunca se reduce. La línea cian se mantiene recta y baja — el archivo de estado se sobrescribe, no se acumula, así que siempre conserva el mismo tamaño pequeño.
✓ Archivo de estado
- ✓Tamaño siempre pequeño — reescrito, no sumado
- ✓Rápido y barato de leer en cada ejecución
- ✓Fácil de entender de un vistazo, incluso para ti
✗ Registro infinito
- ✗Crece para siempre, sin límite natural
- ✗Cada ejecución se vuelve más lenta y costosa de releer
- ✗Después de meses, se convierte en ruido: nadie encuentra lo que importa
🔄 El ciclo del archivo de estado, paso a paso
Este es el diagrama central del módulo: cómo una ejecución se conecta con la siguiente, sin una sesión activa ni registro; solo un archivo pequeño que pasa la posta.
Leyenda: seis pasos en círculo —inicio, leer el estado, decidir, ejecutar, volver a escribir el estado, fin— y la flecha punteada muestra que la siguiente ejecución programada vuelve al paso 1, ahora leyendo el estado que dejó lista la ejecución anterior.
🔍 Por dentro
El paso que más gente olvida es el 5 (reescribir). Si la tarea se ejecuta pero no actualiza el estado, la siguiente ejecución leerá información vieja y repetirá trabajo ya hecho — es el error más común del tema 6.
⚙️ Crea tu rutina que aprende
Vamos a crear una tarea programada que use exactamente el ciclo del tema 4. Pídele al agente que configure
ambos lados: la tarea en sí y el archivo de estado que lee y vuelve a escribir. Ajusta lo que esté
entre <isto voce troca>.
Crear una tarea programada que lea un archivo de estado al inicio, decida en función de él, se ejecute y reescriba el estado al final, sin un registro creciente.
Crie uma tarefa agendada que roda <todo dia às 7h> e faz o seguinte:
1. Leia o arquivo <caminho/do/status.txt>. Se ele ainda não existir, crie um
com valores iniciais vazios.
2. Com base no que estiver nesse arquivo, decida o que precisa ser feito
agora: <descreva a regra de decisão, ex: "só processar itens novos
desde a última_verificacao">.
3. Execute <a tarefa em si, ex: "verificar novidades e me enviar um
resumo">.
4. No final, reescreva o arquivo <status.txt> inteiro (não acrescente
linhas) com os valores atualizados: data desta execução e o que for
necessário pra próxima decisão.
Nunca deixe o arquivo de status crescer — ele deve ter sempre o mesmo
tamanho pequeno, com só os campos essenciais.
Cómo verificar: después de la primera ejecución, abre el archivo de estado y comprueba si los valores cambiaron. Ejecuta (o espera) la siguiente ejecución y confirma que actuó de forma diferente a la primera: señal de que realmente leyó y usó lo que la anterior dejó escrito.
💡 Consejo práctico
Empieza con un formato de archivo muy sencillo (pocas líneas, tipo «clave: valor»). Un formato demasiado complicado es otra forma de ocultar un bug —cuanto más sencillo sea el estado, más fácil te resultará comprobar que es correcto, sin depender solo del agente.
⚠️ Errores comunes
Tres formas de arruinar una rutina que aprende, todas fáciles de evitar una vez que sabes reconocerlas :
Leyenda: cada barra representa el trabajo realizado en esa ejecución. Disminuyen porque la rutina, guiada por el estado, se enfoca solo en lo nuevo: no vuelve a procesar lo que ya hizo antes.
✗ No hacer
- ✗Olvidar reescribir el estado al final (la tarea nunca «avanza»)
- ✗Dejar que el archivo crezca (que se convierta en un registro oculto dentro del «estado»)
- ✗Guardar demasiada información "por si acaso"
✓ Hacer
- ✓Dejar la reescritura del estado como último paso obligatorio de la tarea
- ✓Sobrescribir todo el archivo, nunca agregar líneas
- ✓Guardar solo lo mínimo para tomar la siguiente decisión
✅ Lista de verificación antes de publicar la rutina
- •¿La tarea lee el archivo de estado ANTES de decidir qué hacer?
- •¿Reescribe (no añade contenido al) archivo al final, siempre?
- •¿El archivo guarda solo lo esencial, no un historial completo?
Verificación rápida (opcional): ¿por qué el archivo de estado no crece con el tiempo?