Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Otoczka wyposaża klienta czatu w infrastrukturę, której agent potrzebuje do realizacji długich, wieloetapowych zadań — tryby planowania i wykonywania, listę zadań do planowania, kompaktowanie kontekstu, pamięć opartą na plikach, dostęp do plików oraz zatwierdzanie narzędzi bez ponownego pytania. Zamiast samodzielnie składać te elementy, tworzysz agenta uprzęży i wyprowadzasz je z pudełka.
Utwórz agenta testowego z dowolnego obiektu IChatClient za pomocą metody rozszerzającej AsHarnessAgent. Ponieważ mechanizm interaktywnie realizuje zadania w wielu krokach, zwykle steruje się nim z poziomu pętli konwersacji: zachowaj AgentSession, aby stan mechanizmu (plan, lista zadań i historia) utrzymywał się między turami, odczytaj kolejną instrukcję użytkownika i strumieniuj dane wyjściowe agenta w miarę ich generowania.
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();
}
Mechanizm obsługuje planowanie, śledzenie listy zadań i trwałe przechowywanie historii w trakcie całej rozmowy. Aby skorzystać z pełnej konsoli — z monitami o zatwierdzenie użycia narzędzi, renderowaniem listy zadań i trybów oraz poleceniami z ukośnikiem — zobacz przykładowy interfejs terminala.
Wskazówka
Zobacz przykłady środowiska testowego .NET, aby zapoznać się z kompletnymi, gotowymi do uruchomienia aplikacjami.
Utwórz agenta harness za pomocą fabryki create_harness_agent. Ponieważ mechanizm ten realizuje zadania interaktywnie w wielu krokach, zazwyczaj steruje się nim z poziomu pętli konwersacyjnej: utrzymuj sesję, aby stan mechanizmu (plan, lista zadań i historia) był zachowywany między turami, odczytuj kolejną instrukcję użytkownika i strumieniowo przekazuj dane wyjściowe agenta w miarę ich generowania.
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()
Mechanizm obsługuje planowanie, śledzenie listy zadań i trwałe przechowywanie historii w trakcie całej rozmowy. Aby skorzystać z pełnej konsoli — z monitami o zatwierdzenie użycia narzędzi, renderowaniem listy zadań i trybów oraz poleceniami z ukośnikiem — zobacz przykładowy interfejs terminala.
Wskazówka
Zobacz przykłady harnessu Pythona, aby zapoznać się z kompletnymi aplikacjami gotowymi do uruchomienia.
Note
Obsługa uprzęży agentów będzie dostępna wkrótce. Aktualny status znajdziesz w repozytorium Agent Framework dla Go.
Następne kroki
Głębiej:
- Wykorzystanie agentów — kompaktowanie, pętla, powłoka i przykładowy interfejs użytkownika terminalu
- Umiejętności agenta — stopniowe ładowanie umiejętności z systemu plików