Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett ramverk omsluter en chattklient med den struktur som en agent behöver för att arbeta sig igenom långa uppgifter i flera steg – planerings- och körlägen, en att göra-lista att planera utifrån, kontextkomprimering, filminne, filåtkomst och verktygsgodkännande av typen ”fråga inte igen”. Istället för att montera dessa bitar själv skapar du en seleagent och får ut dem ur lådan.
Skapa en seleagent från valfri IChatClient med AsHarnessAgent tilläggsmetoden. Eftersom en harness arbetar sig igenom uppgifter interaktivt över många steg styr du den vanligtvis via en konversationsloop: behåll ett AgentSession så att harnessens tillstånd (plan, att göra-listor och historik) bevaras mellan turerna, läs användarens nästa instruktion och strömma agentens utdata allt eftersom den genereras.
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();
}
Ramverket hanterar planering, uppföljning av att göra-punkter och historiklagring åt dig under hela konversationen. För en fullfjädrad konsol – med verktygsgodkännandepromptar, rendering av att göra-listor och lägen samt snedstreckskommandon – se exempelterminalens användarupplevelse.
Tip
Se exempel på test harness för .NET för kompletta, körbara program.
Skapa en seleagent med create_harness_agent fabriken. Eftersom ett ramverk arbetar sig igenom uppgifter interaktivt i många steg styr du det vanligtvis via en konversationsloop: behåll en session så att ramverkets tillstånd (plan, att göra-lista och historik) bevaras mellan turerna, läs användarens nästa instruktion och strömma agentens utdata allteftersom de genereras.
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()
Ramverket hanterar planering, uppföljning av att göra-punkter och historiklagring åt dig under hela konversationen. För en fullfjädrad konsol – med verktygsgodkännandepromptar, rendering av att göra-listor och lägen samt snedstreckskommandon – se exempelterminalens användarupplevelse.
Tip
Se exempel på Python-harness för fullständiga körbara applikationer.
Note
Stöd för agent-ramverk i Go kommer snart. Se Agent Framework Go-lagringsplatsen för den senaste statusen.
Nästa steg
Gå djupare:
- Agentselar – komprimering, loopning, gränssnitt och exempelterminalens UX
- Agentfärdigheter — läs in färdigheter gradvis från filsystemet