Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Harness erweitert einen Chat-Client um die Infrastruktur, die ein Agent benötigt, um lange, mehrstufige Aufgaben zu bearbeiten — Planungs-/Ausführungsmodi, eine To-do-Liste für die Planung, Kontextkomprimierung, Dateispeicherfunktion, Dateizugriff und Tool-Genehmigung mit „Nicht erneut fragen“. Anstatt diese Komponenten selbst zusammenzustellen, erstellen Sie einen Harness-Agenten und erhalten sie direkt einsatzbereit mitgeliefert.
Erstellen Sie mit der IChatClient-Erweiterungsmethode einen Harness-Agent aus einem beliebigen AsHarnessAgent. Da ein Harness Aufgaben über viele Schritte hinweg interaktiv abarbeitet, steuern Sie es in der Regel über eine Konversationsschleife: Behalten Sie ein AgentSession bei, damit der Harness-Zustand (Plan, To-dos und Verlauf) über die Gesprächsrunden hinweg erhalten bleibt, lesen Sie die nächste Anweisung des Benutzers, und streamen Sie die Ausgabe des Agenten, während sie erzeugt wird.
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();
}
Das Harness übernimmt für Sie die Planung, die Nachverfolgung von Aufgaben und die persistente Speicherung des Verlaufs über die gesamte Unterhaltung hinweg. Eine voll ausgestattete Konsole — mit Aufforderungen zur Tool-Genehmigung, Todo-/Modus-Rendering und Schrägstrichbefehlen — finden Sie in der Beispiel-Terminal-UX.
Tip
Sehen Sie sich die .NET-Harness-Beispiele für vollständig ausführbare Anwendungen an.
Erstellen Sie mit der Factory create_harness_agent einen Harness-Agent. Da ein Harness Aufgaben interaktiv über viele Schritte hinweg bearbeitet, steuern Sie es in der Regel über eine Konversationsschleife: Behalten Sie eine Sitzung bei, damit der Zustand des Harness (Plan, Todos und Verlauf) über mehrere Gesprächswechsel hinweg erhalten bleibt, lesen Sie die nächste Anweisung des Benutzers, und streamen Sie die Ausgabe des Agenten, während sie erzeugt wird.
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()
Das Harness übernimmt für Sie die Planung, die Nachverfolgung von Aufgaben und die persistente Speicherung des Verlaufs über die gesamte Unterhaltung hinweg. Eine voll ausgestattete Konsole — mit Aufforderungen zur Tool-Genehmigung, Todo-/Modus-Rendering und Schrägstrichbefehlen — finden Sie in der Beispiel-Terminal-UX.
Tip
Sehen Sie sich die Python-Harness-Beispiele für vollständig ausführbare Anwendungen an.
Note
Unterstützung für Agent-Gurtzeuge wird in Kürze verfügbar sein. Den neuesten Status finden Sie im Agent Framework Go-Repository .
Nächste Schritte
Gehen Sie tiefer:
- Agent-Harnesses — Kompaktierung, Schleifen, Shell und die UX des Beispielterminals
- Agent-Fähigkeiten - progressives Laden von Fähigkeiten aus dem Dateisystem