Ir al contenido

CUA: integrar lo que no tiene API

La realidad de la PyME mexicana incluye sistemas sin API utilizable: el portal del SAT, la banca empresarial de la mayoría de los bancos, ERPs de escritorio, portales de tribunales estatales. Las plataformas globales se detienen donde se acaba el API; aiuda usa Computer Use Agents (CUA): si un humano puede operarlo en pantalla, un agente también.

Una misión dice qué extraer, no cómo hacer clic (core/aiuda_core/cua/mission.py):

Mission(
objetivo="Consulta los CFDI recibidos del mes y extrae folio, emisor, monto y fecha",
sistema="Portal del SAT",
url_inicio="https://portalcfdi.facturaelectronica.sat.gob.mx/",
datos_a_extraer={"cfdis": "lista de objetos {folio, emisor, monto, fecha}"},
)

El runner (core/aiuda_core/cua/runner.py) la ejecuta sobre el stack open source de cua: un sandbox (Computer) y un agente con computer-use de Claude (ComputerAgent). El import es perezoso: el core no depende de cua para instalarse.

  1. Sandbox siempre. El agente opera una VM o container aislado, nunca la máquina del negocio.
  2. Solo lectura por defecto. Escribir (capturar un pago, llenar un formulario) es opt-in por misión y entra por el mismo outbox de write-back.
  3. Evidencia obligatoria. Capturas y bitácora por misión: un dato extraído por CUA carga su evidencia en la procedencia.
  4. Credenciales del tenant, inyectadas al sandbox al inicio y nunca en bitácoras.
  5. Presupuesto de pasos (max_pasos): las misiones que se pierden se cortan.
PlantillaSistemaPara quién
sat_cfdi_recibidosPortal del SATConciliación y respaldo fiscal
tribunal_acuerdosTribunales sin APILupita, más allá de Búho Legal
banca_movimientosBanca fuera de BelvoConfirmación de pagos

Por costo y latencia, las misiones CUA son programadas (corridas nocturnas), no interactivas. El diseño completo vive en docs/CUA.md del repositorio.