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.
El contrato: misiones declarativas
Sección titulada «El contrato: misiones declarativas»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.
Reglas no negociables
Sección titulada «Reglas no negociables»- Sandbox siempre. El agente opera una VM o container aislado, nunca la máquina del negocio.
- 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.
- Evidencia obligatoria. Capturas y bitácora por misión: un dato extraído por CUA carga su evidencia en la procedencia.
- Credenciales del tenant, inyectadas al sandbox al inicio y nunca en bitácoras.
- Presupuesto de pasos (
max_pasos): las misiones que se pierden se cortan.
Misiones plantilla
Sección titulada «Misiones plantilla»| Plantilla | Sistema | Para quién |
|---|---|---|
sat_cfdi_recibidos | Portal del SAT | Conciliación y respaldo fiscal |
tribunal_acuerdos | Tribunales sin API | Lupita, más allá de Búho Legal |
banca_movimientos | Banca fuera de Belvo | Confirmació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.