Docs / Architect Labs / Lab 11

Lab 11 — Sessions & Checkpoints

Aprende a usar sesiones para guardar el estado de ejecución de Architect, reanudar tareas interrumpidas por budget o fallos, y hacer rollback a checkpoints seguros.

Setup

Nivel: Intermedio

Duración estimada: 25 minutos. Features: sessions, checkpoints, resume.

bash
mkdir -p ~/architect-labs/lab-11 && cd ~/architect-labs/lab-11
git init && mkdir -p src tests

src/inventory.py

python
class Inventory:
    def __init__(self):
        self.products = {}

    def add_product(self, sku, name, price, stock):
        self.products[sku] = {"name": name, "price": price, "stock": stock}

.architect.yaml

yaml
llm:
  model: openai/gpt-4.1
  api_base: http://localhost:4000/v1
  api_key_env: LITELLM_API_KEY

sessions:
  auto_save: true
  cleanup_after_days: 7
bash
git add -A && git commit -m "initial"

Ejercicio 1: Sesión con auto-save

bash
architect run "Expande src/inventory.py con métodos: remove_product, \
  update_stock, get_product, search_by_name, get_low_stock(threshold). \
  Añade tests completos." \
  --config .architect.yaml \
  --confirm-mode yolo

Después de ejecutar, lista las sesiones guardadas:

bash
architect sessions
# Muestra ID, timestamp, status, task

Consejo

Con auto_save: true, cada ejecución guarda su estado automáticamente. Esto permite reanudar ejecuciones interrumpidas sin perder progreso.

Ejercicio 2: Checkpoints en pipeline

Crea un pipeline con checkpoints:

pipelines/inventory-expand.yaml

yaml
name: inventory-expansion
steps:
  - name: add-search
    agent: build
    task: >
      Añade a src/inventory.py:
      - search_products(query) que busque por nombre
      - filter_by_price(min_price, max_price)
      Añade tests para estas funciones.
    checkpoint: true

  - name: add-reporting
    agent: build
    task: >
      Añade a src/inventory.py:
      - get_total_value() que calcule el valor total del inventario
      - get_report() que genere un resumen con totales
      Añade tests para estas funciones.
    checkpoint: true

  - name: add-export
    agent: build
    task: >
      Añade a src/inventory.py:
      - export_csv(filepath) que exporte el inventario a CSV
      - import_csv(filepath) que importe desde CSV
      Añade tests para estas funciones.
    checkpoint: true
bash
architect pipeline pipelines/inventory-expand.yaml \
  --config .architect.yaml \
  --confirm-mode yolo

Verifica los checkpoints:

bash
# Los checkpoints son git commits con tag especial
git log --oneline | head -10
# Deberías ver commits tipo: architect:checkpoint:step-1

Ejercicio 3: Rollback a checkpoint

Si el step 3 (export) introdujo un bug:

bash
# Listar checkpoints
git log --oneline --grep="architect:checkpoint"

# Rollback al checkpoint del step 2
git log --oneline --grep="architect:checkpoint:step-2"
# Copia el hash del commit
git reset --hard <HASH_DEL_CHECKPOINT_STEP_2>

# Verificar que estamos en el estado post-step-2
pytest tests/ -v

Importante

git reset --hard descarta todos los cambios posteriores al checkpoint. Úsalo solo cuando estés seguro de que quieres descartar el trabajo posterior.

Ejercicio 4: Resume de sesión interrumpida

Simula una interrupción con budget bajo:

bash
architect run "Genera 5 módulos auxiliares para inventory: \
  validators.py, formatters.py, exporters.py, importers.py, analytics.py. \
  Cada uno con al menos 3 funciones y tests." \
  --config .architect.yaml \
  --confirm-mode yolo \
  --budget 0.05
# Se detendrá por budget

# Ver la sesión guardada
architect sessions
# Copiar el SESSION_ID

# Reanudar la sesión
architect resume <SESSION_ID> \
  --budget 0.20

Consejo

Al reanudar, Architect retoma desde donde se quedó con todo el contexto previo. Puedes aumentar el budget para que tenga suficiente margen para completar.

Ejercicio 5: Limpiar sesiones antiguas

bash
# Ver todas las sesiones
architect sessions

# Limpiar sesiones de más de 1 día
architect cleanup --older-than 1

Resumen

ConceptoDescripción
sessions.auto_saveGuarda estado automáticamente
architect sessionsLista sesiones guardadas
architect resume IDReanuda una sesión interrumpida
checkpoint: trueCrea git commit checkpoint en ese step
architect cleanupLimpia sesiones antiguas
Rollbackgit reset --hard al commit del checkpoint

Siguiente lab

Lab 12: Code Rules Deep Dive — Patrones bloqueados y warnings en el código.

END OF DOCUMENT

¿Necesitas más? Volver a la Librería →