Resumen
En el episodio 195, Rodolfo y los participantes del chat explican qué es Harness Engineering: la evolución del prompt engineering y del context engineering, en la que además de darle contexto a un LLM se define qué puede hacer y cómo. El arnés se compone de tools, skills, validadores, memoria, workspaces, proveedores, modelos, loops, un skill registry y observabilidad. Su valor principal es la consistencia: se ejecutan scripts fijos en lugar de dejar que el modelo improvise, y se ponen restricciones de seguridad, por ejemplo vetar un `DROP TABLE` o no leer archivos `.env`. Rodolfo muestra cómo generó con Claude, en unos 10 minutos, un harness de juguete en Python y shell que usa Ollama por defecto. Aclara que es un punto de partida y no una solución de producción. En la conversación también se discute el costo creciente en tokens, la disyuntiva entre pagar US$2.000 por una solución rápida o desarrollar con modelos open source, la productividad y los meses de licencia en las empresas, y la privacidad de los datos. Se anuncia que la próxima semana se hará un proyecto de ciencia de datos con "vibe coding" usando Codex.
Capítulos
- 00:00IntroPresentación del episodio 195 sobre Harness Engineering, una técnica con unos 6 meses de nombre propio para poner barreras y lineamientos a un LLM y lograr resultados más consistentes. Se anuncia que habrá teoría y luego código de ejemplo.
- 01:37De prompts a harnessSe contrasta prompt engineering (todo dentro de un prompt, para tareas simples), context engineering (el modelo busca memoria, archivos, RAG) y harness engineering (además controla qué puede hacer y cómo, con estructuras fijas y scripts).
- 03:56Por qué se llama harness"Harness" significa arnés: pone seguridad y restricciones al modelo y le permite acciones solo de cierta manera. Rodolfo dice que armó el ejemplo en unos 10 minutos con Claude y que el harness abarca al context engineering pero es más específico.
- 07:08Conceptos clave del arnésSe listan skills, tools, memory y loops. El agente razona y a veces actúa. Rodolfo preparó la presentación y el código con el harness de Claude y una skill propia para crear clases con formato consistente; las skills se editan y el resultado cambia de forma consistente.
- 09:19Tools y terminalLas tools son scripts (Python, shell, Go) que permiten interactuar con la terminal, internet (HTTP, web scraping) o el sistema de archivos. El LLM decide qué comando mandar, pero cómo se manda lo define un script fijo.
- 11:36Determinismo y parámetrosSe discute si el LLM pasa bien los parámetros a las tools. Rodolfo explica que la generación del texto sigue siendo estocástica, pero que los modelos actuales aciertan en torno al 90–99 % de las veces; se mencionan los hooks de Claude Code con expresiones regulares.
- 14:42Validadores y seguridadUn validador (otro agente o regla) revisa el output antes de ejecutar la tool; si falla se itera o se abandona. Se menciona la filtración del código de Claude Code como referencia, y que Anthropic y OpenAI ya implementan esto.
- 17:10Skills y capas empresaUna skill es un documento de texto (Markdown, JSON) con descripción e instrucciones, útil para tareas repetibles como presentaciones PowerPoint. Se propone usar capas de harness: proveedor, empresa y área, con skills específicas. También se habla de MCP, permisos (evitar `sudo`) y de validar queries SQL con expresiones regulares para vetar `DROP TABLE`.
- 24:44Memoria y workspacesSe explican threads, turnos, límite de iteraciones, y memoria de corto y largo plazo en archivos Markdown guardados en S3, disco local o RAM. Se propone un workspace por usuario con varios threads, y archivos como memoria del usuario, del thread y un `TODO.md`.
- 28:23Providers y modelosEl harness puede usar varios proveedores (Anthropic, OpenAI, Groq, Ollama). En el ejemplo se usa Ollama por defecto porque es gratis. El modelo (por ejemplo Opus 4.6 u Opus 4.5) es otra capa de elección.
- 30:46Razonar actuar observarEl ciclo es razonar, decidir si actuar con una tool o skill, ejecutar y observar el resultado. La observabilidad (logs, trazas) es la misma que se aplica a servidores. Se lo describe como "crear un agente de forma seria", apto para producción con más confianza que un prompt o un RAG.
- 34:00Skill registry y permisosEl skill registry guarda solo descripción y metadatos (tags) de cada skill para no gastar tokens cargándolas todas. Los tags pueden incluir roles de Microsoft Entra (antes Azure AD) para restringir qué skills ve cada grupo o equipo.
- 37:42Pausa y teaser del códigoRodolfo anuncia la pausa y avisa que en la segunda parte mostrará el código de ejemplo, hecho con Claude en unos 10 minutos, aclarando que funcionó pero no necesariamente bien ni completo.
- 38:59Licencias y sueldosRecordatorio de suscripciones en Twitch y bromas sobre pagar las APIs del canal y la licencia Pro/Max de Anthropic.
- 39:47MemesSe comenta un post de LinkedIn sobre almorzar en 4 minutos y 37 segundos y usar el tiempo ahorrado. Se genera un debate sobre si el tiempo que ahorra la IA debe retornar a la empresa.
- 43:25Harness y costos tokensUn meme sobre el costo creciente: el harness requiere más tokens (validadores, etc.) y aunque el precio por token baja, la cuenta final sube.
- 44:28IA end to end negocioSe anticipa que soluciones en la nube construirán una aplicación completa por un precio fijo (por ejemplo US$2.000), lo que obliga a tener claro el negocio y los clientes.
- 46:02Pagar vs open sourceSe compara pagar US$2.000 por una solución en 30 minutos con desarrollar durante dos semanas con un modelo open source local de 96 GB, según el costo por hora y la competencia. Se recomienda canal de Aníbal.
- 47:08Raid y primeros clientesRodolfo sostiene que con cero clientes lo primero es conseguirlos, incluso con algo manual. Cada uno expone su postura de riesgo-beneficio; Mati pagaría US$2.000 pero no US$100.000.
- 49:54Productividad y mercadoDiscusión sobre cómo la productividad ganada con IA se reparte entre trabajadores y empresas. Se plantea que la presión del mercado y la competencia obligan a trabajar más, y se habla de startups con presión de inversión.
- 53:29Auditar por outputSe debate cómo medir la productividad: el resultado (output) habla por cada persona, y se discute pedir mejoras de tiempo o de sueldo a cambio de uso eficiente de IA.
- 56:33Tokens y encodingPregunta del chat sobre por qué se consume el doble de tokens. Rodolfo responde que el encoding es solo la traducción de palabras a vectores y que influyen el prompt, las restricciones del sistema, el modelo y capas internas del proveedor.
- 58:22Claude para PowerPointExperiencia de un participante con Claude integrado en PowerPoint y una skill propia: resultados mejores de lo esperado pero lento y con alto consumo de tokens; usa Opus 4.8 para presentaciones y Sonnet para programar. Se sugiere un episodio sobre Codex.
- 01:00:13Proyectos y memoria ClaudeDemostración de la web de Claude: los proyectos permiten varios chats con memoria compartida, instrucciones fijas y archivos de ejemplo. Rodolfo muestra uno para su libro de apoyo al curso de proyecto de ciencia de datos de la Universidad de Chile.
- 01:03:32Skills y scripts útilesSe muestra la sección de skills de Claude, con el skill creator y una skill propia para crear clases de encoders, con assets, templates y un script que empaqueta todo en un zip.
- 01:04:51Generando el harness zipRodolfo repasa el prompt que dio a Claude: no encontró la skill de plan, pidió un harness en Python y shell con secciones para skills y tools (al menos una de terminal), y pidió generar por partes. Claude produjo un plan y luego un ZIP descargable.
- 01:08:15Privacidad y paranoiaSe discute si las versiones gratuitas y personales entrenan con los datos del usuario. Rodolfo guarda sus notas en un repo privado de GitHub encriptado por desconfianza.
- 01:09:57Modelos locales y agentesRodolfo comenta que usa Gemma 4 localmente (comparable a un GPT-3.5) por privacidad.
- 01:10:25OpenCloth y agentes localesSe menciona el agente local de PewDiePie y la posibilidad de un episodio comparándolo con OpenClaw; funciona con GPU propia y sin enviar datos.
- 01:11:09Estructura del repo y loopSe presenta la estructura del repositorio de ejemplo (skills, tools, memoria, proveedor). Un participante resume que un loop es iterar hasta cumplir un objetivo, similar al `/goal` de Codex.
- 01:12:55Setup y proveedor OllamaEl script de setup verifica la versión de Python, crea el entorno virtual, instala dependencias y comprueba Ollama. Se usa un `.env` basado en `.env.example` y un script de shell que lanza `main.py` como punto de entrada.
- 01:15:16Clase Simple Agent y comandos`main.py` instancia `SimpleAgent`, cuyos métodos incluyen recordar, resetear, estado y `run`. Hay comandos especiales como salir, config y reset. El ejemplo funciona pero aún no tiene acceso a archivos.
- 01:18:23Skills y consistenciaEn el ejemplo las skills son archivos `.py` (traducir, resumir) que heredan de `BaseSkill`; también se explica cómo una skill puede ser una carpeta con assets, templates, CSS y scripts. Rodolfo insiste en que el beneficio es la consistencia.
- 01:22:07Tools y seguridad de secretosRodolfo revisa la carpeta de tools (terminal, lectura de archivos con tipos permitidos) y señala que el modelo permitió leer `.env`. Recomienda no poner contraseñas dentro del proyecto.
- 01:23:27Memoria y max iterationsSe ve que la memoria no funciona del todo bien: el loop va de 1 a 10 y no está sincronizado con los mensajes del usuario. Se cambia el máximo de iteraciones a 15 y se descubre que el valor estaba en el config.
- 01:24:22Modelos locales y costosCon Llama 3.2 corriendo local, se conversa sobre Gemma 4 en 10 GB de GPU, notebooks con 128 GB de memoria unificada, el costo para empresas con miles de empleados y el uso de Claude Mythos que consumió el 70 % de una cuenta Max en una hora y veinte.
- 01:30:51De juguete a producciónSe enfatiza que el harness puede robustecerse con tests, skill registry y autenticación. Un ejemplo es una skill de análisis exploratorio con los primeros 2000 registros de una tabla. Se menciona la prompt injection y un meme sobre "prompt y rezar".
- 01:34:15Comparación con Pydantic AIFrente a Pydantic AI y las funciones del SDK de hace años, Rodolfo opina que el estado actual es más pulido y simple, y que las decisiones de arquitectura las debe tomar un humano. Cita que Claude tiene hasta una skill solo para extensiones de VS Code.
- 01:37:09Cierre y anuncio próxima semanaAgradecimientos, el código se puede pedir por Discord, y se anuncia que la próxima semana se hará vibe coding de un proyecto de data science con Codex en vez de Claude.