Pinguy Learning
Temario · lección 12 de 74
0Empieza aquí
1Por qué fallan los agentes
2Qué es un harness
3Patrones de agentes
4Herramientas
5Ingeniería de contexto
6El repositorio como memoria
7Tareas largas
8Alcance y “hecho” de verdad
9Observabilidad y estado limpio
10Loops y grafos
11Harness reales
12Proyecto final
Qué es un harness· 7 min de lectura

Arquitectura por capas (Microsoft)

En 30 segundos

El arnés de Microsoft Agent Framework no inventa un agente nuevo: apila piezas existentes (cliente, canalización, proveedores, middleware, interfaz) y deja activar o quitar funcionalidades.

Un kit de montaje, no un coche cerrado

Hasta ahora viste el harness como concepto. Aquí lo ves en una implementación real. Microsoft Agent Framework lo ofrece como una estructura con opiniones y «baterías incluidas» para investigación, programación, análisis de datos y otros trabajos largos. Lo importante: no define un entorno de ejecución independiente. Se compone con piezas que el framework ya tiene.

Las cinco capas

CapaQué aporta
1. Cliente de chatConecta el agente con un modelo
2. Canalización de chatInvocación de funciones, inyección de mensajes, historial por llamada y compactación opcional
3. Proveedores de agentes y de contextoInstrucciones por sesión, herramientas, memoria, tareas pendientes, modos y funcionalidades opcionales
4. Middleware y decoradoresAprobaciones, observabilidad y repetición acotada opcional
5. Experiencia de usuario de la aplicaciónMuestra respuestas en tiempo real, el progreso y recoge entradas como aprobaciones

El resultado sigue siendo un agente normal del framework. En .NET es un HarnessAgent; en Python, el Agent que devuelve create_harness_agent; en Go, una configuración de proveedor. Sus sesiones usan las mismas abstracciones que otros agentes.

La matriz de funcionalidades

La documentación lista qué trae por defecto. Algunas, traducidas a conceptos del curso:

FuncionalidadEstado por defecto
Invocación de funciones (herramientas)Activa, con límite de iteraciones
Compactación (resumir el historial)Se activa si das límites de tokens
Tareas pendientes (todos)Activas
Modos de planificación y ejecuciónActivos
Memoria de archivos de sesiónActiva
Aprobación de herramientasActiva, con reglas de aprobación automática
Observabilidad (OpenTelemetry)Activa
Búsqueda webActiva si el cliente la admite
Agentes en segundo plano, shell, bucleOpcionales

Algunas piezas, como los agentes en segundo plano o la ejecución en bucle, se describen como experimentales.

Composición personalizable

Cada funcionalidad por defecto se puede apagar con una opción. Por ejemplo, en Python existen disable_todo, disable_file_memory, disable_web_search o disable_compaction. También puedes añadir proveedores de contexto propios o activar el acceso a archivos.

Un ejemplo mínimo

Este es el ejemplo de Python de la documentación, con instrucciones separadas por nivel:

agent = create_harness_agent(
    client=client,
    name="research-agent",
    harness_instructions="Use tools deliberately and report verified results.",
    agent_instructions="You are a research assistant focused on academic sources.",
    max_context_window_tokens=128_000,
    max_output_tokens=16_384,
)

Las harness_instructions (reglas de entorno) aparecen antes que las agent_instructions (el papel concreto). Y los límites de tokens son el espacio de trabajo que vimos en la lección del LLM.

Lo que te llevas

No hace falta programar en .NET, Python o Go para entender la lección: un harness serio se compone de capas intercambiables, trae valores por defecto sensatos (aprobaciones, observabilidad, tareas pendientes) y te deja ajustar solo lo que tu aplicación necesita. Además, es solo un motor: el propio ejemplo de la fuente aclara que las aplicaciones de terminal del repositorio son ejemplos, no componentes finales.

Comprueba lo aprendido

¿Qué es lo que define el arnés de Microsoft Agent Framework respecto a un agente normal del framework?

Según la documentación, el harness se compone de bloques existentes (cliente, canalización, proveedores, middleware) y el resultado sigue siendo un agente normal.

Fuentes: Microsoft Agent Framework, Arnés de agente

¡Hecho! Pinguy crece.Siguiente: Workflows vs agentes →