Agentic AI Systems
agents · tool calling · structured outputs · persistent state · context management · human-in-the-loop
Diseño, construyo y opero sistemas de software con IA integrada: agentes, RAG, automatización, APIs e infraestructura productiva.I design, build and operate production software systems with integrated AI: agents, RAG, automation, APIs and production infrastructure.
Disponible para full-time remoto y contract internacional, idealmente remoto desde Paraguay en español o portugués, o global async. Abierto a relocación a España o Europa cuando la oportunidad lo justifique.Available for international full-time remote and contract work, ideally remote from Paraguay in Spanish or Portuguese, or global async. Open to relocation to Spain or Europe when the opportunity justifies it.
Entiendo un proceso real, lo modelo, construyo el software, integro IA, conecto herramientas y datos, agrego permisos y reglas deterministas, despliego, observo, opero, evalúo y mejoro.I understand a real process, model it, build the software, integrate AI, connect tools and data, add permissions and deterministic rules, deploy, observe, operate, evaluate and improve.
agents · tool calling · structured outputs · persistent state · context management · human-in-the-loop
BM25 / FTS5 + vector retrieval · RRF fusion · embeddings · structured chunking · grounding & evidence · gold-set evaluation · Recall@K · MRR
OCR · document intelligence · vision · grounding and citations · deterministic validation gates
REST APIs · webhooks · WhatsApp Cloud API · queues · workers · schedulers · event-driven flows
Docker · CI/CD · immutable images · healthchecks · smoke tests · rollback · backups
Cada caso resuelve un proceso real y aporta componentes reutilizables para nuevas implementaciones.Each case solves a real operating problem and contributes reusable components for new implementations.




Analiza licitaciones públicas y determina si una empresa puede presentarse, qué requisitos cumple, cuáles le faltan y qué riesgos necesita revisar, mostrando la evidencia del pliego.Analyses public tenders and determines whether a company can bid, which requirements it meets, which are missing and which risks need review, showing the evidence from the tender.
Las oportunidades, pliegos, requisitos, documentos y plazos de contratación pública requieren monitoreo y análisis continuo.Public procurement opportunities, tender documents, requirements and deadlines require continuous monitoring and analysis.
Un pliego de contratación pública llega como un ZIP anidado de PDFs escaneados, planillas y anexos. LICITEX lo desarma —parsing nativo con trazabilidad hoja/celda/párrafo, OCR local sólo donde vale la pena—, lo fragmenta con chunking estructurado y arma el corpus que va al modelo con presupuesto de contexto y cuota mínima garantizada por cada una de las 10 dimensiones del veredicto, para que ninguna quede muda.
A public tender arrives as a nested ZIP of scanned PDFs, spreadsheets and annexes. LICITEX takes it apart — native parsing with sheet/cell/paragraph traceability, local OCR only where it is worth it — fragments it with structured chunking and assembles the corpus sent to the model with a context budget and a guaranteed minimum quota for each of the 10 verdict dimensions, so none of them goes silent.
La recuperación es híbrida: BM25 léxico (SQLite FTS5) y búsqueda vectorial exacta con NumPy sobre embeddings locales, fusionadas con Reciprocal Rank Fusion, porque ninguna de las dos alcanza sola — un requisito se nombra con las palabras exactas de la norma en un documento y con un sinónimo en el siguiente. La capa se evalúa contra un gold set de pasajes etiquetados, con Recall@K y MRR, con holdout, y cada cambio se mide como regresión contra la corrida anterior para detectar pasajes críticos perdidos; retrieval y generación se evalúan por separado.
Retrieval is hybrid: lexical BM25 (SQLite FTS5) and exact vector search with NumPy over local embeddings, fused with Reciprocal Rank Fusion, because neither is enough on its own — a requirement is named with the statute's exact wording in one document and with a synonym in the next. The layer is evaluated against a gold set of labelled passages, using Recall@K and MRR with a holdout, and every change is measured as a regression against the previous run to catch lost critical passages; retrieval and generation are evaluated separately.
Después viene lo que hace que sea usable: cada cita que devuelve el modelo se verifica carácter por carácter contra el fragmento de origen. Si la cita no está literalmente en el documento, se descarta. Y el veredicto final —SÍ / SÍ, PERO / NO— no lo emite el modelo: lo calcula un motor determinista de reglas financieras, fiscales, de experiencia, personal y equipos, con el artículo de la norma citado.
Then comes what makes it usable: every citation the model returns is verified character by character against its source fragment. If the quotation is not literally in the document, it is discarded. And the final verdict — YES / YES, BUT / NO — is not issued by the model: it is computed by a deterministic engine of financial, tax, experience, staffing and equipment rules, with the statutory article cited.




Digitaliza el control de obras y servicios de campo y usa un supervisor de IA para cruzar partes, fotografías, avance y documentación, detectando faltantes, inconsistencias y desvíos.Digitises the control of construction sites and field services, and uses an AI supervisor to cross-check reports, photos, progress and documentation, catching what is missing, inconsistent or off track.
Software construido desde la experiencia operativa de CQ Ingeniería para supervisar obras, personal, evidencia y costos desde campo.Software built from CQ Ingeniería's operating experience to supervise construction sites, workforce, evidence and costs from the field.
El sistema de partes, fotos y costos corre desde abril de 2026. Encima vive el Supervisor IA: un agente multimodal que lee por visión cada foto que carga el encargado, la cruza contra el parte del día, la planilla de precios, el certificado y los datos estructurados de la obra, sostiene el caso abierto entre jornadas y pregunta por WhatsApp lo que falta. Hay una persona en el circuito: el encargado responde con evidencia, el caso se reevalúa con esa respuesta, y lo que no se resuelve escala al dueño.
The daily-report, photo and cost system has been running since April 2026. On top of it lives the AI Supervisor: a multimodal agent that reads every foreman photo with vision, cross-checks it against the daily report, the bill of quantities, the certificate and the site’s structured data, keeps the case open across days and asks over WhatsApp for what is missing. There is a person in the loop: the foreman answers with evidence, the case is re-evaluated with that answer, and whatever is not resolved escalates to the owner.
No es un chatbot al costado: trabaja dentro del sistema operativo real de la obra. 18 reglas determinísticas detectan lo que se puede saber con SQL —y siguen funcionando con el modelo caído—; el modelo sólo entra donde hace falta interpretar.
It is not a chatbot bolted on the side: it works inside the real operating system of the site. 18 deterministic rules detect everything SQL can answer — and keep working with the model down; the model only steps in where interpretation is needed.



Centraliza la operación de una agencia de viajes y eventos: pasajeros, bodas y viajes, conversaciones por WhatsApp, seguimiento y automatización de tareas repetitivas.Runs a travel and events agency in one place: passengers, weddings and trips, WhatsApp conversations, follow-up and automation of repetitive work.
Una agencia que gestiona bodas y viajes grupales necesita unificar CRM, pasajeros, pagos, documentos y comunicación.A travel agency managing weddings and group travel needs to unify CRM, passengers, payments, documents and communication.
SaaS multi-inquilino en producción continua que centraliza eventos, invitados, pasajeros, pagos y la operación del equipo, sobre la API oficial de WhatsApp Business Cloud de Meta — no una librería no oficial.
Multi-tenant SaaS in continuous production centralizing events, guests, passengers, payments and team operations, on Meta's official WhatsApp Business Cloud API — not an unofficial library.
La parte difícil no es mandar un mensaje, es mandar miles sin quemar la línea: mensaje canario antes de cada tanda, ritmo adaptativo que se frena solo ante rechazos, cupo de cuenta en ventana móvil de 24 h que falla cerrado, deduplicación por índice único y recuperación idempotente si el proceso se cae a mitad de una tanda.
The hard part is not sending one message, it is sending thousands without burning the line: a canary message before every batch, adaptive pacing that slows itself on rejections, a 24-hour rolling account quota that fails closed, deduplication by unique index and idempotent recovery if the process dies mid-batch.


Orquesta la producción audiovisual con IA desde recursos, guion y escenas hasta voz, imagen, video, render, QA y control de costos.Orchestrates AI video production from resources, script and scenes to voice, image, video, render, QA and cost control.
Investigación, guion, escenas, imágenes, video, voz, versiones, proveedores, costos y renders son difíciles de controlar cuando quedan dispersos entre herramientas.Research, scripts, scenes, images, video, voice, versions, providers, costs and renders become difficult to control when scattered across separate tools.
TRAMIA organiza el pipeline completo desde investigación y guion por bloques hasta escenas, generación de imágenes y video, voz, revisión humana, versiones, trabajos, proveedores, costos y render final.
TRAMIA manages the complete pipeline from research and block-based scripting to scenes, image and video generation, voice, human review, versioning, jobs, providers, cost tracking and final rendering.
Cada escena mantiene contexto, recursos asociados, intentos y estado de aprobación. Los proveedores de IA son componentes reemplazables: un ruteo por reglas elige proveedor según la operación, y agregar uno nuevo no toca el pipeline. Hay un proveedor más en evaluación hoy, todavía no integrado.
Each scene keeps its context, related assets, generation attempts and approval state. AI providers are replaceable components: a rule-based router picks the provider per operation, and adding a new one does not touch the pipeline. One further provider is under evaluation today, not yet integrated.
El control de calidad no lo decide un modelo solo: en los hechos técnicos —duración, códec, canales, silencio— manda ffprobe, y la comparación contra la referencia se hace a ciegas, sin decirle al juez cuál es el candidato.
Quality control is not left to a model alone: on technical facts — duration, codec, channels, silence — ffprobe wins, and comparison against the reference is done blind, without telling the judge which one is the candidate.


Vigila las entradas operativas, las clasifica con IA y deriva o alerta lo importante para que nada se pierda entre el volumen.Watches operational inputs, classifies them with AI and routes or alerts on what matters so nothing gets lost in the volume.
Entradas operativas importantes pueden perderse entre volumen, ruido y criterios inconsistentes.Important operational inputs can be lost among volume, noise and inconsistent criteria.
Sistema de monitoreo que clasifica entradas con IA, aplica reglas de fallback, permite revisión humana, enruta casos, dispara alertas y conserva trazabilidad para auditoría.Monitoring system that classifies inputs with AI, applies fallback rules, supports human review, routes cases, triggers alerts and preserves an auditable trail.

Automatiza la búsqueda, evaluación, preparación y seguimiento de oportunidades laborales y freelance, manteniendo gates deterministas antes de cualquier acción.Automates finding, evaluating, preparing and following up job and freelance opportunities, keeping deterministic gates before any action.
Las oportunidades provenientes de múltiples fuentes necesitan normalización, deduplicación, priorización y seguimiento consistente.Opportunities from multiple sources require normalization, deduplication, prioritization and consistent follow-up.
Pipeline interno de ingesta multi-fuente, procesamiento, clasificación y scoring, con deduplicación, workflows de oportunidad, automatización y seguimiento. No expone reglas privadas ni información de terceros.Internal pipeline for multi-source ingestion, processing, classification and scoring, with deduplication, opportunity workflows, automation and follow-up. Private rules and third-party information remain protected.
La IA interpreta la realidad, razona sobre la información y propone acciones. El software mantiene la autoridad: valida, aplica reglas, controla permisos, protege estados críticos y decide qué puede ejecutarse. No son chatbots — son agentes que trabajan dentro de sistemas que ya existían.AI interprets reality, reasons over the information and proposes actions. The software keeps the authority: it validates, applies rules, controls permissions, protects critical state and decides what is allowed to run. These are not chatbots — they are agents working inside systems that already existed.
Lee el pliego, cruza cada requisito contra el perfil de la empresa y devuelve SÍ / SÍ,PERO / NO. El veredicto no lo emite el modelo: lo fija una función determinista sobre la tabla de requisitos.Reads the tender documents, cross-checks every requirement against the company profile and returns YES / YES,BUT / NO. The verdict is not issued by the model: a deterministic function over the requirements table sets it.
4.266 citas verificadas contra la fuente · nunca se dispara solo4,266 citations verified against the source · it never self-triggers
Ver el caso técnicoSee the technical caseInspecciona dos veces por jornada: mira por visión las fotos del encargado, las cruza con el parte y la planilla, pregunta lo que falta y espera la respuesta. Preguntar tiene costo: un portón determinista de cinco salidas decide si vale la pena molestar a alguien.Inspects twice a day: reads the foreman photos with vision, cross-checks them against the daily report and the bill of quantities, asks what is missing and waits for the answer. Asking has a cost: a deterministic gate with five outcomes decides whether it is worth bothering anyone.
2.643 llamadas de modelo en 15 días por USD 14,68 · 99 decisiones del portón, 36 frenadas2,643 model calls in 15 days for USD 14.68 · 99 gate decisions, 36 held back
Ver el caso técnicoSee the technical caseEl modelo propone y nada de lo que sigue depende de él: un validador determinista firma, riesgo tiene veto y sólo el ejecutor tiene la clave. El proceso que llama al modelo no puede alcanzar el exchange — no está prohibido, está impedido por permisos.The model proposes and nothing downstream depends on it: a deterministic validator signs, risk holds veto power and only the executor has the key. The process that calls the model cannot reach the exchange — it is not forbidden, it is made impossible by permissions.
7 usuarios de sistema · 10 roles PostgreSQL · 591 pruebas7 system users · 10 PostgreSQL roles · 591 tests
Ver el caso técnicoSee the technical caseCorre solo, disparado por el scheduler. Consulta 104 fuentes públicas de ATS por corrida y descarta la enorme mayoría con filtros deterministas antes de invocar al modelo. El envío nunca es automático: exige una aprobación humana de un solo uso, atada al hash del CV y del formulario.Runs on its own, triggered by the scheduler. Queries 104 public ATS sources per run and discards the vast majority with deterministic filters before invoking the model. Submission is never automatic: it requires a single-use human approval bound to the CV and form hash.
2.043 decisiones de modelo registradas · 1.583 intervenciones humanas · 13 timers activos2,043 recorded model decisions · 1,583 human interventions · 13 active timers
Cuatro agentes acotados a su módulo trabajan sobre expedientes, órdenes y plazos. Lo interesante no es lo que pueden hacer, sino lo que no: cinco tablas llevan un trigger de PostgreSQL que lanza una excepción si quien registra la decisión es un agente. No es una convención de código que alguien pueda olvidar; es el motor de la base diciendo que no.Four agents scoped to their own module work over case files, orders and deadlines. What matters is not what they can do, but what they cannot: five tables carry a PostgreSQL trigger that raises an exception if the one recording the decision is an agent. It is not a code convention someone can forget; it is the database engine saying no.
28.684 filas de auditoría · entorno de demostración, sin institución en producción28,684 audit rows · demonstration environment, no institution in production
Ver el sistemaSee the systemUn agente LLM en Node.js sin una sola dependencia, escrito para mostrar el patrón completo: herramientas acotadas, esquema cerrado, evidencia en tres estados —MET / FAILED / UNKNOWN, y un UNKNOWN no autoriza nada—, portón determinista, escalamiento humano, reintentos con backoff e idempotencia por argumentos.An LLM agent in Node.js with zero dependencies, written to show the whole pattern: scoped tools, closed schema, evidence in three states — MET / FAILED / UNKNOWN, and an UNKNOWN authorises nothing — a deterministic gate, human escalation, retries with backoff and idempotency by caller arguments.
1.594 líneas · 56 pruebas · CI en Node 18/20/22 y la suite en Docker sin red1,594 lines · 56 tests · CI on Node 18/20/22 and the suite in Docker with no network
Ver en GitHub ↗View on GitHub ↗Estado: desplegada con 12 instituciones en entorno de demostración. Ninguna institución la usa todavía en producción real.Status: deployed with 12 institutions in a demonstration environment. No institution is using it in real production yet.
Plataforma GovTech multi-institucional: motor de trámites con estados y plazos, expedientes, órdenes, evidencia documental, roles y 4 agentes internos acotados a su módulo. Aislamiento por inquilino forzado en la base con RLS sobre 56 tablas, 97 reglas de autorización y 28.684 filas de auditoría.Multi-institutional GovTech platform: a workflow engine with states and deadlines, case files, orders, documentary evidence, roles and 4 internal agents scoped to their own module. Tenant isolation enforced in the database with RLS across 56 tables, 97 authorization rules and 28,684 audit rows.
La autoridad es humana y la base lo hace cumplir. Cinco tablas llevan un trigger de PostgreSQL que lanza una excepción si quien registra la decisión es un agente. No es una convención de código: es el motor de la base diciendo que no.Authority is human and the database enforces it. Five tables carry a PostgreSQL trigger that raises an exception if the one recording the decision is an agent. It is not a code convention: it is the database engine saying no.
10 procesos systemd separados por responsabilidad y por identidad: 7 usuarios de sistema y 10 roles PostgreSQL con permisos por esquema. El proceso que llama al modelo no tiene credenciales de ejecución.10 systemd processes separated by responsibility and identity: 7 system users and 10 PostgreSQL roles with per-schema grants. The process that calls the model holds no execution credentials.
591 pruebas sobre 24.155 líneas · despliegue controlado.591 tests over 24,155 lines · controlled deployment.



Motor financiero en producción con datos reales: 514 lotes, 397 contratos, 17.418 cuotas con vencimientos de 2014 a 2039, mora, intereses, reajustes, refinanciación y reversión de pagos auditada.Production financial engine on real data: 514 lots, 397 contracts, 17,418 instalments with due dates from 2014 to 2039, arrears, interest, repricing, refinancing and audited payment reversal.

Cheques, préstamos, vencimientos y alertas para la operación administrativa real.Checks, loans, due dates and alerts for real administrative operations.

Padrón de 11.848 personas cargado y geolocalizado por compañía, barrio y sector, con pipeline de tickets, mapas de calor y tablero en vivo para coordinar equipos en campo.A register of 11,848 people loaded and geolocated by district, neighbourhood and sector, with a ticket pipeline, heat maps and a live dashboard to coordinate field teams.
Estado: construido y desplegado; sin actividad de campo desde junio de 2026.Status: built and deployed; no field activity since June 2026.

Caso técnico 24/7 de APIs, workers, trazabilidad, controles de riesgo y monitoreo.24/7 technical case involving APIs, workers, traceability, risk controls and monitoring.

Sistemas MQL5/MT5, backtesting y comparación de estrategias con datos propios.MQL5/MT5 systems, backtesting and strategy comparison using first-party data.
Infraestructura especializada adicional: motores de riesgo, ejecución por API, backtesting y automatización financiera.Additional specialized infrastructure: risk engines, API execution, backtesting and financial automation.
No entrego un repositorio y me voy. Estos sistemas corren 24/7 sobre infraestructura que administro, con la misma cadena de entrega para todos.I do not hand over a repository and leave. These systems run 24/7 on infrastructure I administer, with the same delivery chain for all of them.
Lo que no afirmo: no tengo experiencia productiva con Kubernetes, Terraform, Prometheus, Grafana, OpenTelemetry ni con AWS o GCP; de Azure, sólo Container Instances y Container Registry (no AKS, Functions, Container Apps ni Azure ML). Los problemas que esas herramientas resuelven —orquestación, estado declarativo, observabilidad, recuperación— los resolví con otra arquitectura, y eso prefiero decirlo antes de una entrevista y no durante.What I do not claim: I have no production experience with Kubernetes, Terraform, Prometheus, Grafana, OpenTelemetry or with AWS or GCP; on Azure, only Container Instances and Container Registry (no AKS, Functions, Container Apps or Azure ML). The problems those tools solve — orchestration, declarative state, observability, recovery — I solved with a different architecture, and I would rather say so before an interview than during one.
Orquesto los flujos con lo que el proceso necesita: schedulers y timers para lo que corre solo, colas con workers para lo que no puede perderse, y webhooks para lo que llega de afuera. Todo con APIs, Python o Node.js y su base de datos.I orchestrate workflows with whatever the process needs: schedulers and timers for what runs on its own, queues with workers for what cannot be lost, and webhooks for what arrives from outside. All of it with APIs, Python or Node.js and its database.
Esta lista es lo que usé en producción, no lo que leí. Si tu stack nombra una herramienta equivalente que no está acá —otro orquestador, otro registro, otra base vectorial—, conozco el patrón de fondo y resolví el mismo problema de producción con otra arquitectura.This list is what I have run in production, not what I have read about. If your stack names an equivalent tool that is not here — another orchestrator, another registry, another vector store — I understand the underlying pattern and have solved the equivalent production problem with a different architecture.
Empiezo por el proceso de negocio, no por la herramienta.I start with the business process, not the tool.
Busco trabajar con equipos que estén haciendo exactamente eso. Si ya tenés un prototipo que funciona en una demo y no en la realidad, ese es el problema que sé resolver.I am looking to work with teams doing exactly that. If you already have a prototype that works in a demo and not in reality, that is the problem I know how to solve.
Hola, soy el asistente virtual de Carlos Cruz: una IA, no Carlos. Puedo contarte sobre su experiencia, sus proyectos y su forma de resolver problemas, con la información pública de este portafolio. Si me preguntás algo que no sé, te lo digo. No acuerdo tarifas, disponibilidad ni compromisos: eso lo conversás con él.Hi, I am Carlos Cruz’s virtual assistant: an AI, not Carlos. I can tell you about his experience, his projects and how he solves problems, using the public information in this portfolio. If I don’t know something, I will say so. I don’t agree on rates, availability or commitments: please discuss those with him.
Lo que escribís y, si activás el micrófono, tu voz pasan por este servidor hacia Gemini Live (Google), que genera la respuesta hablada y su transcripción. Este sitio no graba audio ni guarda la conversación: la transcripción vive sólo en esta pestaña y desaparece al cerrarla. Para limitar el uso se cuenta cuántas conversaciones inicia cada conexión, con un identificador cifrado que cambia cada día; no se guarda tu dirección IP. Google procesa el contenido según las condiciones de su API. No compartas datos personales ni confidenciales. El asistente no tiene acceso a bases privadas, servidores ni herramientas, y no puede ejecutar acciones.What you type and, if you turn on the microphone, your voice go through this server to Gemini Live (Google), which generates the spoken answer and its transcript. This site does not record audio or store the conversation: the transcript lives only in this tab and disappears when you close it. To limit usage, the server counts how many conversations each connection starts, with an encrypted identifier that changes daily; your IP address is not stored. Google processes the content under its API terms. Please do not share personal or confidential data. The assistant has no access to private databases, servers or tools, and cannot take actions.
Hasta 5 minutos por conversación · micrófono opcional · voz sintética. Las respuestas pueden contener errores: para decisiones, confirmá con Carlos.Up to 5 minutes per conversation · optional microphone · synthetic voice. Answers may contain mistakes: confirm with Carlos before deciding.