Los agentes de código modernos son mayormente harness, no modelo. Este repositorio te guía por cada capa de ese harness — wrappers de proveedor, presupuestos de contexto, memoria, herramientas, MCP, subagentes — como una secuencia de pequeñas lecciones con código ejecutable. Lee el markdown. Edita el código. Mira girar el bucle.
Cambia el modelo en cualquier agente de código popular y la mayoría de su carácter se mantiene. La personalidad, los modos de fallo, la forma de recuperarse — todo eso vive en el harness: el bucle, los prompts, la superficie de herramientas, las reglas de presupuesto. La ingeniería de harness es la disciplina de diseñar ese andamiaje deliberadamente, no de copiarlo de un tutorial.
Un agente de código funcional en Go — streaming, uso de herramientas, edición de archivos, un cliente MCP, subagentes, prompt caching y una TUI real al final.
Un sistema de producción. El objetivo es ver cada cable. Cambiamos robustez por legibilidad — cada archivo está pensado para leerse de principio a fin.
Este es el sistema que construirás, pieza por pieza. Pasa el ratón sobre cualquier nodo para enfocarlo — cada caja se asocia con una lección, un archivo y unas pocas cientos de líneas de código.
Cada lección es un archivo markdown en /follow_along que recorre una parte del harness que ya vive en el repo. El código es la versión final — las lecciones explican cómo se construyó cada pieza y por qué. Lee en orden para el tour completo, o salta al capítulo que necesites.
Cuando ya hayas leído las lecciones y quieras añadir tu propia pieza, estas guías te dan el paso a paso — qué archivo crear, qué interfaz implementar, qué cambia en main.go. Cada una asume que ya conoces el por qué; aquí solo está el cómo.
read_file, preguntar una vez por comando de shell, denegar escrituras fuera del directorio de trabajo.git diff.Cada ejercicio es una tarea autocontenida que se apoya en los puntos de extensión existentes — Provider, Tool, Compaction, Memory, Subagente. No hay solución canónica; el valor está en las decisiones que tomes en el camino.
memory.Store y demostrar que el resto del harness no nota la diferencia.RenderTranscript actual en una interfaz Renderer con múltiples implementaciones, y añadir un comando /export.# 1. clona el repo git clone https://github.com/betta-tech/byo-coding-agent && cd byo-coding-agent # 2. pon una clave de proveedor (cualquiera vale) export ANTHROPIC_API_KEY="sk-ant-..." # 3. corre el harness go run .
¿Nuevo en la ingeniería de harness? Empieza en §00 — qué y por qué, después abre 00-introduction y avanza.