Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un harness envuelve un cliente de chat con la estructura que un agente necesita para llevar a cabo tareas largas de varios pasos: modos de planificación y ejecución, una lista de tareas pendientes sobre la que planificar, compactación de contexto, memoria de archivos, acceso a archivos y aprobación de herramientas sin necesidad de volver a preguntar. En lugar de montar esas piezas tú mismo, creas un agente de harness y las obtienes listas para usar.
Crea un agente de harness a partir de cualquier IChatClient con el método de extensión AsHarnessAgent. Dado que un harness administra las tareas de forma interactiva a lo largo de numerosos pasos, lo habitual es controlarlo mediante un bucle de conversación: mantener un AgentSession para que el estado del harness (plan, tareas pendientes e historial) se conserve entre turnos, leer la siguiente instrucción del usuario y transmitir la salida del agente a medida que se genera.
using System;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
// chatClient is any IChatClient implementation (Foundry, Azure OpenAI, OpenAI, Anthropic, ...).
AIAgent agent = chatClient.AsHarnessAgent();
// A session carries the harness state (plan, todos, history) across turns.
AgentSession session = await agent.CreateSessionAsync();
Console.WriteLine("Harness agent ready. Type 'exit' to quit.");
while (true)
{
Console.Write("> ");
string? input = Console.ReadLine();
if (string.IsNullOrWhiteSpace(input) || input.Equals("exit", StringComparison.OrdinalIgnoreCase))
{
break;
}
// Stream this turn's output as the harness plans and works through the request.
await foreach (var update in agent.RunStreamingAsync(input, session))
{
Console.Write(update);
}
Console.WriteLine();
}
El harness se encarga de la planificación, el seguimiento de las tareas pendientes y la persistencia del historial por ti a lo largo de toda la conversación. Para ver una consola con todas las funciones —con mensajes de solicitud de aprobación de herramientas, visualización de tareas pendientes y modos, y comandos con barra— consulta la experiencia de usuario de terminal de ejemplo.
Tip
Consulte los ejemplos de .NET para ver aplicaciones completas listas para ejecutar.
Crea un agente de harness con la create_harness_agentfábrica. Dado que un harness trabaja con tareas de forma interactiva a lo largo de muchos pasos, normalmente se controla desde un bucle de conversación: mantén una sesión para que el estado del harness (plan, tareas pendientes e historial) se mantenga entre turnos, lee la siguiente instrucción del usuario y transmite la salida del agente a medida que se genera.
from agent_framework import create_harness_agent
from agent_framework.openai import OpenAIChatClient
agent = create_harness_agent(
OpenAIChatClient(model="gpt-4o"),
)
# A session carries the harness state (plan, todos, history) across turns.
session = agent.create_session()
print("Harness agent ready. Type 'exit' to quit.")
while True:
user_input = input("> ")
if user_input.strip().lower() in {"exit", "quit"}:
break
# Stream this turn's output as the harness plans and works through the request.
async for chunk in agent.run(user_input, session=session, stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
El harness se encarga de la planificación, el seguimiento de las tareas pendientes y la persistencia del historial por ti a lo largo de toda la conversación. Para ver una consola con todas las funciones —con mensajes de solicitud de aprobación de herramientas, visualización de tareas pendientes y modos, y comandos con barra— consulta la experiencia de usuario de terminal de ejemplo.
Tip
Consulte los ejemplos de arnés de Python para obtener aplicaciones ejecutables completas.
Note
La compatibilidad con Go para los harnesses de agentes estará disponible próximamente. Consulte el repositorio de Agent Framework Go para obtener el estado más reciente.
Pasos siguientes
Vaya más profundamente:
- Harnesses de agentes — compactación, bucles, shell y la interfaz de usuario de la terminal de ejemplo
- Habilidades del agente — cargar progresivamente las habilidades desde el sistema de archivos