Un modelo que escribe código no edita tu repositorio por sí solo. Entre ambos hay un programa que lee el proyecto, arma el contexto, ejecuta comandos, pide permisos y guarda la sesión: el del .
Para un equipo, la pregunta práctica no es cuál tiene el mejor modelo, sino cómo configurarlos, cómo automatizarlos sin una persona delante y cómo evitar que el proceso quede atado a uno solo.
Qué es un harness de código
El concepto general está en Tool calling y harness.
El panorama
Los productos cambian rápido; lo durable es dónde corren, si su código es abierto y si te atan a un proveedor (verificado en septiembre de 2026):
| Producto | Dónde corre | Código abierto | Modelos |
|---|---|---|---|
| Claude Code (Anthropic) | terminal, IDE, escritorio, web | no, licencia comercial | familia Claude |
| Codex CLI (OpenAI) | terminal; también IDE y nube | sí, Apache-2.0 | OpenAI; proveedores configurables |
| Gemini CLI (Google) | terminal | sí, Apache-2.0 | Gemini |
| OpenCode | terminal, IDE, escritorio | sí, MIT | varios proveedores |
| Cursor | editor propio | no | varios proveedores |
| Copilot coding agent (GitHub) | nube, sobre GitHub Actions | no | los que ofrece GitHub |
| Aider | terminal | sí, Apache-2.0 | varios proveedores |
| Cline | extensión de VS Code | sí, Apache-2.0 | varios proveedores |
Los SDKs dan el bucle como biblioteca: el Claude Agent SDK expone el bucle y las herramientas de Claude Code, y el OpenAI Agents SDK es un framework general de . Ambos tienen licencia MIT.
Instrucciones, skills y las demás piezas
Las primitivas de extensión se parecen entre productos:
| Primitiva | Qué es | Cuándo entra al contexto | Quién la activa |
|---|---|---|---|
| Archivo de instrucciones | Markdown con reglas del repo | siempre, al iniciar | el harness |
| Skill | carpeta con SKILL.md y recursos |
descripción siempre; cuerpo al usarla | el modelo o la persona |
| Servidor MCP | proceso que publica herramientas | sus esquemas, al conectarse | el modelo |
| Subagente | otro bucle con contexto propio | solo vuelve su resultado | el modelo o la persona |
| Hook | comando en un evento del ciclo de vida | lo que el comando imprima | el harness, siempre |
| Slash command o plugin | invocación explícita o paquete de piezas | al invocarlo | la persona |
Archivos de instrucciones
es un formato abierto: un Markdown en la raíz del repositorio con lo que un agente necesita saber para trabajar en él (comandos, convenciones, restricciones). Lo leen Codex, Cursor, Gemini CLI, Copilot y otros, y desde fines de 2025 lo custodia la Agentic AI Foundation de la Linux Foundation, junto con . Claude Code lee CLAUDE.md; su documentación sugiere que ese archivo importe @AGENTS.md para tener una sola fuente.
Estas instrucciones son contexto, no control. La documentación de Claude Code lo aclara: para bloquear una acción se usan permisos o .
Skills
Una es una carpeta con un SKILL.md (frontmatter con name y description, más instrucciones) y, opcionalmente, scripts y referencias. Usa (progressive disclosure): al iniciar, el agente carga solo nombre y descripción; lee el cuerpo cuando la tarea coincide, y las referencias solo si las necesita. Anthropic creó el formato y lo publicó como estándar abierto (agentskills.io); lo adoptan, entre otros, Codex, Gemini CLI, OpenCode, Cursor y GitHub Copilot.
release-notes/
SKILL.md # name, description, steps
references/
style.md # read only when needed
scripts/
collect_prs.sh # run; only its output enters context
Regla práctica: lo que aplica siempre, al archivo de instrucciones; un procedimiento para ciertas tareas, a una skill; lo que debe cumplirse sin excepción, a un hook o un permiso.
Modo headless
Para automatizar, el harness corre sin terminal y sale con un resultado legible por máquina. Claude Code usa claude -p con --output-format stream-json; Codex usa codex exec --json, que por defecto corre en un de solo lectura; Gemini CLI también tiene modo no interactivo.
Sin nadie delante, nadie responde "¿permito este comando?": decide de antemano qué está permitido y si lo demás se deniega, detiene la ejecución o espera una aprobación fuera de banda.
Varios harness detrás de una interfaz
Si tu plataforma lanza agentes de código, cada harness debe implementar una interfaz tuya. Nuestros productos toman caminos opuestos.
La lección: un harness cerrado decide por su cuenta qué hacer con tu política, y eso no se arregla desde afuera.
Riesgos frecuentes
Y nunca corras en con permisos amplios fuera de un sandbox (Sandboxing y seguridad de agentes).
Para CTOs
La decisión es estandarizar en un harness o mantenerte agnóstico.
- Estandarizar simplifica soporte, licencias, capacitación y auditoría, y aprovecha funciones propias (hooks, plugins, controles administrados). A cambio, dependes del ritmo, precios y modelos de un proveedor.
- Ser agnóstico cuesta más: AGENTS.md como fuente única, skills en formato abierto, hooks por herramienta y, si automatizas, un adaptador probado por harness.
- Un término medio: un harness por defecto, instrucciones y skills en formatos abiertos, y la automatización detrás de una interfaz que declare qué garantiza cada harness.
Fuentes
- AGENTS.md y Linux Foundation: Agentic AI Foundation
- Agent Skills: especificación abierta
- Anthropic: Agent Skills y seguridad
- Claude Code: skills, CLAUDE.md y modo programático
- Codex: modo no interactivo
- Gemini CLI
- GitHub Blog: agente de código de Copilot
Para llevar
- Un harness de código es bucle, herramientas, permisos y contexto alrededor de un modelo.
- Las instrucciones son contexto, no control: lo obligatorio va en permisos, hooks o sandbox.
- Las skills cargan su contenido por etapas; úsalas para procedimientos y audítalas como software.
- Para automatizar, usa el modo headless y decide de antemano qué pasa con cada permiso.
- Si integras varios harness, ponlos detrás de una interfaz que declare lo que cada uno garantiza.
Comprueba lo aprendido
¿Por qué una regla crítica no debería vivir solo en AGENTS.md?
Porque el archivo entra al contexto como texto que el modelo intenta seguir, no como una restricción. Una acción que no debe ocurrir se bloquea con permisos, hooks o aislamiento.
¿Qué carga un agente de una skill al iniciar la sesión?
Solo su nombre y descripción. El cuerpo de SKILL.md se lee cuando la tarea coincide, y las referencias o scripts solo si hacen falta.
¿Qué harness lanza Tack en el commit citado y qué declara su adaptador de Claude Code sobre la cancelación?
Claude Code y Codex. El adaptador de Claude Code declara la cancelación como Advisory, porque un subproceso lanzado por su herramienta Bash puede quedar en otra sesión que la señal final no alcanza.