SSD Nodes Learn Hosting plans →
Guías Matt ConnorPor Matt Connor · Actualizado 2026-08-27

Qué es un agent harness y cómo funciona

Un agent harness rodea al modelo con bucles, herramientas, permisos, estado de sesión y directorio de trabajo. Conozca en qué se diferencia de un modelo y un framework.

Qué es un agent harness

Un agent harness es el programa que se ejecuta alrededor de un modelo de lenguaje y lo convierte en un agente. Contiene el bucle que sigue llamando al modelo, las definiciones de las herramientas que el modelo puede usar, las reglas de permisos que determinan cuáles de esas llamadas se ejecutan realmente, el estado de la sesión que se conserva entre turnos y el directorio de trabajo donde se realizan las tareas. El modelo se puede sustituir dentro del harness.

La última frase es la que debe recordar. Un modelo por sí solo responde a una pregunta y se olvida de usted. Un harness pregunta al modelo qué debe hacer a continuación, ejecuta el comando que el modelo solicita, le devuelve el resultado y vuelve a preguntar. Esa repetición es lo que se quiere decir con «agente». Si la terminología relacionada aún no está clara, la diferencia entre un agente de IA, un LLM y un asistente aclara los términos antes de elegir una herramienta.

El harness no es el modelo

Se confunden porque los proveedores los distribuyen bajo una misma marca.

dsh y DeepSeek son productos distintos. DeepSeek Harness, publicado en github.com/deepseek-ai/deepseek-harness el 13 de agosto de 2026 con licencia MIT, es un programa de Node que se instala en una máquina. Los modelos de DeepSeek son pesos servidos mediante una API (interfaz de programación de aplicaciones). Apunte dsh a un modelo de otro proveedor y seguirá funcionando, porque el harness sólo necesita algo que acepte mensajes y devuelva llamadas a herramientas.

Claude Code y Claude forman el mismo par. Claude Code es un harness: un programa de terminal con un bucle, un sistema de permisos y herramientas para archivos y shell. Claude es la familia de modelos que llama de forma predeterminada. Codex y Gemini CLI se dividen de la misma manera.

Esta es la prueba que lo resuelve siempre. Instale un harness. Llame a un modelo. Si el elemento tiene una versión en el disco y un archivo de configuración en el directorio personal, es un harness. Si es una cadena dentro de ese archivo de configuración, como deepseek-chat, es el modelo.

Qué hace realmente el bucle

Una iteración del bucle del arnés funciona así. Léalo despacio, porque casi todas las diferencias entre arneses se encuentran dentro de estos cinco pasos.

  1. El arnés envía al modelo la conversación hasta ese momento y una lista de definiciones de herramientas.
  2. El modelo responde con texto o solicita llamar a una de esas herramientas.
  3. El arnés comprueba esa solicitud según sus reglas de permisos y la ejecuta o se detiene para pedirle confirmación.
  4. El arnés ejecuta la herramienta, captura la salida y el código de salida, y trunca la salida si es muy larga.
  5. El arnés añade ese resultado a la conversación y vuelve al paso 1.

El paso 3 es donde más se diferencian los arneses en el uso diario. Un arnés que pide confirmación antes de cada comando es seguro y agotador. Un arnés que nunca pide confirmación acabará ejecutando un comando destructivo sobre una ruta que el modelo interpretó mal. Todo arnés serio ofrece ahora una configuración intermedia: una lista de permitidos con comandos que se ejecutan sin preguntar y una solicitud de confirmación para todo lo demás.

El paso 1 concentra el resto de las diferencias. El arnés también escribe el prompt del sistema que acompaña a cada una de esas solicitudes. Claude Code le permite controlar directamente ese ajuste, porque un estilo de salida modifica el prompt del sistema que envía y, por tanto, cambia cada respuesta recibida. La conversación crece en cada iteración y el modelo tiene una ventana de contexto fija. Por eso, el arnés debe decidir qué descartar, qué resumir y qué escribir en un archivo para leerlo más adelante. Esa decisión explica en gran medida que dos arneses que usan el mismo modelo produzcan trabajos de distinta calidad. Si esos cinco pasos todavía parecen abstractos, la solución es escribir una vez un bucle rudimentario propio. Eso es exactamente lo que una ruta gradual para aprender sobre agentes de IA le hace construir al principio.

La mayoría de los arneses conecta ahora herramientas externas mediante MCP (model context protocol), un método estándar para exponer una herramienta a cualquier arnés compatible. Así, una sola integración puede llegar a varios arneses. Ejecutar servidores MCP en un VPS cubre esa parte. La búsqueda web suele ser la primera herramienta que se añade. Conectar el agente a su propia instancia de SearXNG mantiene las consultas fuera de terceros y deja claro que cada página que el agente lee después es una entrada no confiable que llega dentro del bucle.

Arnés de agentes frente a framework de agentes

Esta pregunta aparece cada vez que surge un arnés nuevo, y las respuestas no coinciden, en parte porque los proveedores tampoco coinciden. Esta es la versión que se mantiene válida.

Un framework es una biblioteca que se importa. Usted escribe el bucle, decide cuándo llamar al modelo y gestiona los resultados de las herramientas. LangChain es el ejemplo conocido: proporciona bloques de construcción y usted ensambla el agente en el código.

Un arnés es un programa que se ejecuta. El bucle ya está escrito, las herramientas ya existen y el modelo de permisos ya tiene una configuración predeterminada. Obtiene un agente funcional con el primer comando y lo configura a partir de ahí.

La prueba de instalación suele resolver la cuestión. Si lo instala y después escribe código, es un framework. Si lo instala y después interactúa con él, es un arnés.

La frontera es realmente objeto de debate, y la evidencia más clara está en la propia documentación de LangChain. En agosto de 2026 describe Deep Agents como un framework «opinionated, batteries-included» creado sobre LangGraph, mientras que el repositorio langchain-ai/deepagents se denomina a sí mismo «the batteries-included agent harness». Ambas descripciones son válidas. Deep Agents es un SDK de Python (kit de desarrollo de software) que se importa, por lo que la prueba de instalación lo clasifica como biblioteca, y ofrece suficiente comportamiento predeterminado para que se use como un arnés. Microsoft lanzó un arnés y agentes alojados con disponibilidad general en agosto de 2026, lo que demuestra que la palabra es ahora una categoría de producto y no sólo jerga.

Por tanto, formule la pregunta que predice mejor su carga de trabajo. Si usted escribe el bucle, es responsable de él: de los reintentos, del recorte del contexto, de las solicitudes de permisos y del registro de lo ocurrido. Si el bucle ya viene incluido, hereda las respuestas de otra persona para todos esos aspectos. Esto permite empezar mucho más rápido, pero dificulta los cambios posteriores.

En qué se diferencia un harness de una ventana de chat

Una ventana de chat y un harness muestran la salida del modelo. La diferencia es en qué equipo se realiza el trabajo. En una ventana de chat, cualquier código que ejecute el modelo se ejecuta dentro del sandbox del proveedor, sobre los archivos que usted cargó, y desaparece cuando termina la sesión. Un harness ejecuta herramientas en el equipo donde lo inició, con la cuenta del usuario que lo inició, sobre sus archivos reales y con sus credenciales reales disponibles en el entorno.

Estas dos frases resumen toda la ventaja y todo el riesgo. El agente puede realizar finalmente el trabajo. El agente también puede eliminarlo.

Los harnesses que realmente se están ejecutando

Esta lista está fechada el 19 de agosto de 2026 a propósito. La categoría cambia cada semana y cualquier recopilación queda obsoleta rápidamente.

  • Claude Code y Codex son harnesses de los proveedores. Funcionan principalmente en el terminal, están vinculados de forma predeterminada a los modelos de su propio proveedor y ofrecen la gestión de permisos más completa. Comparación de Claude Code, Cursor, Codex y Copilot los analiza en detalle.
  • DeepSeek Harness (dsh) usa la licencia MIT y se basa en una idea: todo es un plugin, por lo que los modelos, las herramientas, las sesiones, los sandboxes y la interfaz de usuario son piezas intercambiables. Cada plugin que instala se ejecuta con los permisos del propio agente. Por eso, comprobar a qué puede acceder un plugin de dsh antes de añadirlo es más importante aquí que en un harness con un conjunto de herramientas fijo. Tenía aproximadamente 166,800 estrellas en GitHub el 19 de agosto de 2026, seis días después de su publicación.
  • Hermes, de Nous Research, es un agente autónomo general, no una herramienta de programación. Se publicó con licencia MIT en febrero de 2026 y guarda sus memorias y habilidades en una base de datos SQLite local de su propia máquina. Alojar Hermes en un VPS explica el procedimiento.
  • Omnigent es un meta-harness: controla otros harnesses, incluidos Claude Code y Codex, mediante una sola API con sesiones compartidas, límites de gasto y un sandbox a nivel del sistema operativo. Omnigent como harness multiagente explica qué ventajas ofrece.
  • OneCLI es un harness aislado orientado a equipos. Se basa en una puerta de enlace que inserta credenciales reales en las solicitudes salientes, de modo que el agente sólo ve claves de marcador de posición.

Tres de ellos aparecen con suficiente frecuencia en la misma lista de opciones como para que valga la pena leer DeepSeek Harness, Claude Code y Omnigent comparados sobre el acoplamiento al modelo, la licencia, la madurez y lo que cada uno necesita para ejecutarse en un servidor.

El inicio rápido de dsh consiste en un solo comando. Ejecutarlo una vez es la forma más rápida de ver qué es un harness. Necesita Node.js en la máquina.

npx @deepseek-ai/dsh web

Esto inicia la interfaz web (interfaz de usuario) en http://127.0.0.1:3080. Lea el README antes de depender de él, porque dsh se describe como una versión preliminar para desarrolladores y afirma claramente que habrá cambios incompatibles. Si el primer comando falla directamente o descarga una compilación que no esperaba, fijar una versión exacta de dsh y vaciar la caché de npx suele permitir continuar. Ejecutar DeepSeek Harness en un VPS explica la instalación en el servidor, y por qué esa dirección empieza por 127.0.0.1 explica el valor predeterminado de loopback.

Los routers se sitúan por encima del harness

Un router de modelos es un proxy local entre el harness y la API del proveedor. Claude Code Router es el ejemplo habitual: se enlaza a 127.0.0.1:3456 de forma predeterminada, acepta las solicitudes que Claude Code habría enviado a su propio proveedor y las reenvía al proveedor que haya configurado. El harness no sabe que se ha producido ningún cambio.

Los routers existen porque el modelo se puede sustituir, por lo que demuestran bien el punto principal de este artículo. También concentran el riesgo, porque el proxy ve todos los prompts y almacena todas las claves de los proveedores. Trátelo como infraestructura, no como una comodidad. Dónde guarda un harness sus claves de API y la configuración de modelos es el mismo problema, pero en la capa inferior.

Qué cambia cuando el harness se ejecuta en un VPS

Cuatro aspectos cambian cuando el harness pasa del portátil a un servidor que alquila.

Sigue ejecutándose al cerrar la tapa. Una tarea larga continúa durante el trayecto y aunque se agote la batería. Iníciela dentro de tmux y sepárese de la sesión:

tmux new -s agent
# start the harness, then press Ctrl-b and then d to detach
tmux attach -t agent

Para cualquier tarea que deba volver a iniciarse después de un reinicio, un servicio de usuario es mejor que una sesión de terminal:

loginctl enable-linger $USER
systemctl --user status my-agent.service

loginctl enable-linger es la parte que suele omitirse. Sin esto, systemd detiene los servicios del usuario en cuanto se cierra la última sesión SSH (secure shell), por lo que el agente muere al cerrar la sesión y no se muestra ningún error. Ejecutar dsh sin interfaz bajo systemd incluye el archivo de unidad. Cuando una sesión ya está activa en ese servidor, iniciar una segunda no supone ningún coste adicional, y dos sesiones de Claude Code en el mismo equipo pueden enviarse mensajes, de modo que la sesión que inició esta mañana puede asignar una tarea a la otra sin que tenga que retransmitirla manualmente.

Contiene sus claves. La clave del proveedor ahora se encuentra en un archivo de configuración de ese servidor. Compruebe quién puede leerlo:

ls -l ~/.config

Cualquier proceso que se ejecute con su usuario puede leer ese archivo. Esto incluye al agente y a cualquier proceso que el agente decida ejecutar.

Puede acceder a sus otras máquinas. Un VPS en la misma red privada que los demás equipos proporciona al agente una ruta hacia ellos. Ese es precisamente el objetivo, pero también define el alcance de un posible incidente.

Es accesible desde cualquier lugar. La mayoría de los harnesses exponen una interfaz web y, por un motivo, la mayoría la enlaza a loopback. Compruebe la configuración:

ss -tlnp | grep 3080

127.0.0.1:3080 significa que sólo el propio servidor puede conectarse. 0.0.0.0:3080 significa que puede conectarse cualquiera que encuentre la dirección. Acceda a una interfaz de loopback mediante un túnel SSH en lugar de cambiar la dirección de enlace:

ssh -N -L 3080:127.0.0.1:3080 you@your-server

Después, abra http://127.0.0.1:3080 en el navegador del portátil. El tráfico circula dentro de la sesión SSH, por lo que no se expone nada nuevo a Internet.

Todas esas propiedades constituyen también el argumento de seguridad

Vuelva a leer las cuatro propiedades desde el punto de vista de un atacante.

Se ejecuta sin supervisión, por lo que nadie observa el momento en que el modelo interpreta mal una ruta. Contiene sus claves, por lo que un solo archivo de configuración legible da acceso a toda su cuenta del proveedor. Puede acceder a sus otras máquinas, por lo que una inyección de instrucciones, es decir, instrucciones ocultas en una página web o en un archivo que lee el agente, ahora tiene una ruta hasta el host de la base de datos. Se puede acceder a él desde cualquier lugar, por lo que una interfaz web enlazada a 0.0.0.0 sin contraseña es un shell en Internet público.

La solución es poco llamativa en todos los casos y siempre es la misma. Dé al agente su propia cuenta de usuario sin privilegios en lugar de la suya:

sudo adduser --disabled-password --gecos "" agent

Mantenga la interfaz web en loopback y acceda a ella mediante SSH. Dé al agente las credenciales más restringidas que aún le permitan completar el trabajo; mantener los secretos fuera de los agentes de IA explica cómo hacerlo correctamente. Para cualquier proceso que se ejecute mientras no lo supervisa, una máquina desechable es mejor que una configurada con cuidado: ejecutar agentes de programación en una VM desechable y ejecutar Claude Code de forma segura en un VPS siguen ese enfoque.

¿Necesitas un harness para agentes?

Si trabajas con una pregunta cada vez, basta con una ventana de chat y un harness sólo añade un bucle que tienes que supervisar. Un harness empieza a resultar útil cuando una tarea requiere muchos pasos sobre archivos reales o cuando tiene que seguir trabajando mientras duermes.

La mayoría de esta categoría es reciente. dsh indica que está en fase de vista previa para desarrolladores en su propio README a fecha de agosto de 2026, y el resto evoluciona con suficiente rapidez como para que un archivo de configuración escrito hoy necesite cambios el próximo mes. Por eso conviene mantener la configuración pequeña y reproducible, y documentar los cambios realizados. La misma moderación resulta útil dentro del bucle, donde una skill que orienta al agente hacia el cambio mínimo que funciona deja un diff que realmente puedes leer al final de una ejecución sin supervisión. Empieza con un harness en un servidor, asígnale un trabajo y una clave con permisos limitados, y amplía su acceso sólo después de que ese primer trabajo haya funcionado sin incidentes durante una semana. Los agentes autoalojados que merece la pena ejecutar hoy son un punto de partida razonable para elegir el primero.

FAQ

¿Qué es un agente de ejecución en términos sencillos?

Es el programa que rodea al modelo. El modelo genera texto y solicita el uso de herramientas. El agente de ejecución mantiene el bucle que sigue haciendo peticiones, ejecuta las herramientas solicitadas por el modelo, aplica las reglas sobre qué herramientas pueden ejecutarse sin permiso y conserva el estado de la sesión y los archivos entre turnos. Si cambia el modelo y el agente de ejecución sigue funcionando, esa es la señal más clara de que son componentes separados.

¿Claude Code es un modelo o un agente de ejecución?

Claude Code es un agente de ejecución. Es un programa de terminal con un bucle, un sistema de permisos y herramientas integradas para archivos y shell. Claude es la familia de modelos que utiliza de forma predeterminada. La misma separación se aplica a DeepSeek Harness (dsh), que es un programa de Node que se instala, y a los modelos de DeepSeek, que se ofrecen mediante una API. Se instala un agente de ejecución en una máquina. El modelo se invoca a través de la red.

¿Cuál es la diferencia entre un agente de ejecución y un framework de agentes?

Un framework es una biblioteca que se importa y contra la que se escribe código. Por tanto, usted controla el bucle, los reintentos y la gestión del contexto. Un agente de ejecución es un programa que se ejecuta. Todas esas funciones ya vienen incluidas y se configuran en lugar de programarlas. En la práctica, la distinción no siempre es clara: Deep Agents de LangChain es un SDK que se puede importar y cuyo propio repositorio denomina agente de ejecución con todo incluido, a fecha de agosto de 2026. Pregúntese si va a escribir el bucle usted mismo. La respuesta determina qué término encaja en su situación.

¿Necesito un VPS para ejecutar un agente de ejecución?

No. Todos los agentes de ejecución mencionados aquí funcionan en un portátil. Un servidor cambia cuatro aspectos: el agente sigue ejecutándose cuando cierra la tapa, mantiene sus claves en una máquina que está siempre encendida, puede acceder a sus otros servidores y usted puede volver a la misma sesión desde cualquier dispositivo. Cada uno de esos aspectos también implica una consideración de seguridad. Por tanto, asigne al agente su propia cuenta de usuario y mantenga cualquier interfaz web enlazada a 127.0.0.1.

¿Puedo usar otro modelo dentro del mismo agente de ejecución?

Normalmente sí. Esa es la propiedad que define a un agente de ejecución. La mayoría acepta un nombre de modelo y una URL base en su configuración. Por tanto, apuntarlo a otro proveedor requiere editar la configuración, no reescribir el programa. Si un agente de ejecución no lo permite, un router local como Claude Code Router se coloca entre el agente de ejecución y el proveedor y traduce las solicitudes. De forma predeterminada, se enlaza a 127.0.0.1:3456. Tenga cuidado con ese proxy, porque ve todas las solicitudes y conserva todas las claves.