Saltar al contenido principal

11 · Agentes y AI Engineering

Agentes de código: harness y skills

Claude Code, Codex, OpenCode y compañía; archivos de instrucciones, skills, subagentes y hooks, y cómo manejar varios harness desde un sistema.

13 minCaso de estudio: docket (se abre en una ventana nueva) · Tack (se abre en una ventana nueva)

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

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.