En las herramientas de programación con IA, agente, skill y harness suelen aparecer juntos, pero no nombran la misma pieza. Separarlos ayuda a entender qué estás configurando y qué parte del flujo puede cambiar entre productos.
No hay una arquitectura única detrás de estos términos. Aquí los uso como un mapa conceptual para desarrollo de software y señalo cuándo una descripción corresponde a una implementación documentada por un proveedor.
El agente no es solo el modelo
Un modelo de lenguaje procesa el contexto que recibe y genera una respuesta. Un agente de programación es un sistema que usa un modelo para avanzar en una tarea, posiblemente en varios pasos y con herramientas: puede inspeccionar archivos, pedir una ejecución, recibir su resultado y decidir qué hacer después.
La frontera exacta depende de cómo cada producto organiza sus componentes; agente y harness son distinciones útiles, no necesariamente módulos independientes. OpenAI describe su Agents API como un entorno donde un agente incluye modelo, instrucciones, herramientas y servidores MCP disponibles. Microsoft, al describir VS Code, llama harness a la capa que conecta el modelo con el contexto y las herramientas y coordina el ciclo del agente. Son maneras compatibles de describir responsabilidades, pero no establecen una frontera universal entre componentes (OpenAI: Agents API overview; Microsoft: Understand agent harnesses).
Por eso, decir «el modelo hizo el cambio» puede ocultar varias responsabilidades: el modelo produjo decisiones y solicitudes, mientras que la lectura del repositorio, la ejecución de herramientas y la aplicación de modificaciones corresponden a capacidades que, según el producto, pueden formar parte del agente, del harness o de otros componentes.
Una skill empaqueta una forma de hacer algo
En el uso cotidiano, skill significa habilidad profesional: por ejemplo, saber depurar una aplicación. En ciertos sistemas de agentes, Agent Skill tiene un sentido técnico: un paquete reutilizable de instrucciones y, opcionalmente, archivos de apoyo para una tarea o proceso.
En la implementación documentada por OpenAI, una skill tiene un manifiesto SKILL.md con instrucciones y puede incluir referencias, scripts o assets. El sistema puede exponer su nombre y descripción para que el modelo decida si corresponde usarla; tenerla disponible no implica necesariamente que se aplique en cada sesión. La forma de cargarla también varía entre modos y APIs (OpenAI: Skills).
La idea útil es que una skill puede convertir un procedimiento recurrente —por ejemplo, cómo revisar una migración— en material reutilizable. No es por sí sola el modelo, el agente completo ni una garantía de que el procedimiento se ejecute correctamente. El formato SKILL.md descrito arriba corresponde a la implementación de OpenAI; otros productos pueden usar la misma etiqueta con formatos o mecanismos distintos.
El harness coordina el ciclo de trabajo
En la documentación de VS Code, un agent harness es la capa de software que ejecuta una sesión: prepara contexto e instrucciones para el modelo, coordina las llamadas a herramientas, aplica las reglas de permisos y conserva el estado de la sesión mientras el trabajo avanza. El modelo puede pedir una herramienta; el harness encamina esa solicitud, devuelve el resultado y permite que el ciclo continúe. Esta separación describe responsabilidades: una arquitectura puede agruparlas de otra manera.
OpenAI usa el término para describir su harness de Codex administrado en Agents API: el servicio gestiona sesiones, orquestación, compactación del contexto y recuperación, mientras la aplicación configura herramientas y entorno de ejecución. Es un ejemplo concreto, no un contrato que todos los proveedores deban implementar igual (OpenAI: Agents API overview; Microsoft: Understand agent harnesses).
En términos prácticos, el harness responde preguntas como: ¿quién prepara cada turno?, ¿cómo vuelve el resultado de una herramienta al modelo?, ¿dónde se conserva el estado?, ¿qué acciones requieren aprobación? Según la arquitectura, varias de esas funciones pueden estar repartidas entre la aplicación, el servicio del proveedor y el entorno donde corre el código. La guía de VS Code muestra también que harness, modelo, rol del agente y entorno de ejecución son opciones relacionadas, pero distintas (Microsoft: Choose and use an agent harness).
Un ejemplo: corregir una validación
Imagina que pides corregir la validación de un formulario y añadir una prueba para el caso vacío. En un flujo posible:
- El modelo interpreta la petición junto con el contexto que recibió y decide qué archivos investigar o qué acción solicitar.
- El agente organiza el trabajo alrededor de la tarea: examina el problema, solicita operaciones y evalúa los resultados para continuar o terminar.
- El harness mantiene el ciclo de la sesión, prepara el contexto, encamina las solicitudes de herramientas y devuelve sus resultados. También puede aplicar permisos y registrar el estado, según el producto.
- Las herramientas permiten realizar operaciones concretas: buscar en el repositorio, leer o editar archivos y ejecutar la prueba. No son la skill ni el modelo.
- Una skill, si existe y resulta pertinente, podría aportar las instrucciones y referencias del proyecto para añadir pruebas. No es obligatoria para esta tarea.
En ese mismo flujo, un archivo AGENTS.md puede aportar instrucciones generales del repositorio, como convenciones de código o comandos habituales. Eso no lo convierte automáticamente en una skill: las instrucciones de proyecto describen el contexto y las reglas que deben considerarse; una skill suele empaquetar un procedimiento reutilizable con su propia organización y mecanismo de descubrimiento. Tampoco es el harness, que coordina la sesión y las interacciones con herramientas. Los detalles de precedencia y carga dependen de cada agente. Para un ejemplo práctico de AGENTS.md y trabajo en un repositorio, consulta el artículo sobre Codex CLI.
Este ejemplo es un modelo explicativo para separar responsabilidades, no una arquitectura ni una secuencia universal. Un producto puede reunirlas en los mismos componentes, omitir skills o distribuir la orquestación de otra manera.
Qué comparar y qué no asumir
Como conceptos, es útil distinguir entre el modelo que procesa contexto y produce respuestas, el sistema agente que trabaja para una tarea, las herramientas que ofrecen acciones y el harness que coordina el ciclo. Una skill puede añadir instrucciones y recursos especializados a ese conjunto.
Los nombres de funciones, formatos de skills, métodos de descubrimiento, persistencia de sesiones, permisos y ejecución son decisiones de implementación. OpenAI, por ejemplo, describe sus propios runtimes y skills; VS Code documenta harnesses con capacidades y configuraciones que varían. Que ambos usen una palabra común no demuestra que compartan todos sus mecanismos. Conviene leer la documentación del producto concreto antes de trasladar una expectativa de un ecosistema a otro.
¿Qué capa necesitas cambiar?
Si el razonamiento o la latencia no son los esperados, revisa el modelo, pero también el contexto, las instrucciones, las herramientas disponibles y cómo se coordina el flujo. Si necesitas acciones sobre el repositorio, mira las herramientas y los permisos. Si no encaja el flujo completo —contexto, llamadas, aprobaciones o continuidad de sesión—, examina el harness. Para reutilizar un procedimiento especializado, evalúa una skill; para compartir convenciones del equipo, revisa las instrucciones de proyecto y cómo las lee tu herramienta.
No hace falta que cada flujo tenga todas estas piezas ni que una herramienta las presente por separado. Identificar qué responsabilidad falta es más útil que elegir una etiqueta o buscar un ganador universal.