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.
En agentsel är körningsställningen som omvandlar en språkmodell till en agent som kan utföra arbete. Den driver modell- och verktygsanrop, hanterar konversationstillstånd och kontext, tillämpar godkännandeprinciper och kan hålla agenten igång med en uppgift i flera steg.
Agent Framework tillhandahåller en åsiktsbaserad, batteribaserad sele för forskning, kodning, dataanalys och annat långvarigt arbete. Du tillhandahåller en chattklient och anpassar endast de funktioner som programmet behöver.
Architecture
Harness består av befintliga Agent Framework-byggstenar i stället för att definiera en separat agentkörning:
- Chattklient – ansluter agenten till en modell.
- Chattpipeline – lägger till funktionsanrop, meddelandeinmatning, per tjänst-anropshistorikpersistence och valfri komprimering.
- Agent- och kontextproviders – lägg till instruktioner, verktyg, minne, att göra-tillstånd, driftlägen och valfria funktioner.
- Mellanprogram och dekoratörer – lägg till godkännandehantering, observerbarhet och valfri begränsad loopning.
- Program-UX – strömmar svar, visar förlopp och samlar in indata, till exempel godkännanden av verktyg.
Det resulterande objektet är fortfarande en normal Agent Framework-agent: en HarnessAgent som härleds från AIAgent i .NET eller som Agent returneras av create_harness_agent i Python. Sessionerna använder samma sessions- och kontextproviderabstraktioner som andra agenter.
Kapacitetsmatris för utnyttja
| Capability | Selebeteende | Kanonisk vägledning |
|---|---|---|
| Funktionsanrop | Aktiverad med en konfigurerbar iterationsgräns per begäran. | Funktionsverktyg |
| Per service-anropshistorik beständighet | Bevarar historiken efter varje modellanrop i en verktygsanropskörning. | Sessioner |
| Kompaktion | Aktiverad när tokenbegränsningar eller en anpassad strategi anges. | Komprimering |
| Att göra-spårning | Aktiverad som standard. | Planering och todos |
| Agentlägen | Planera och köra lägen är aktiverade som standard. | Planering och todos |
| Filminne och filåtkomst | Sessionsfilminne är aktiverat som standard. delad filåtkomst är opt-in. | Kontextprovidrar |
| Godkännande av verktyg | Stående godkännanden och regler för automatiskt godkännande är aktiverade som standard. | Godkännande av verktyg |
| OpenTelemetry | Agentobservabilitet är aktiverat som standard. | Observerbarhet |
| Webbsökning | Har lagts till som standard där den valda chattklienten stöder den. | Webbsökning |
| Agentkunskaper | Aktiverad som standard i .NET; anmäl dig via en provider eller sökvägar i Python. | Agentkunskaper |
| Bakgrundsagenter | Valfri parallell delegering till namngivna underordnade agenter. | Bakgrundsagenter |
| Shell-körning | Sammansatt från shell-paketet; Python fabriken kan kabelansluta den automatiskt. | Shell-verktyg |
| Looping | Valfritt begränsat återanrop som drivs av utvärderare eller predikat. | Agentlooping |
Bakgrundsagentdelegering är separat från providerhanterade bakgrundssvar. Bakgrundsagenter kör underordnade agenter för delegerade uppgifter. bakgrundssvar avsöka eller återuppta en providerbegäran med hjälp av en fortsättningstoken.
Skapa en seleagent
Paketet Microsoft.Agents.AI.Harness exponeras HarnessAgent i Microsoft.Agents.AI namnområdet. Skapa en från valfri IChatClient med AsHarnessAgent, eller skapa HarnessAgent direkt:
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
AIAgent agent = chatClient.AsHarnessAgent();
AgentResponse response = await agent.RunAsync("Plan a weekend trip to Seattle.");
Console.WriteLine(response.Text);
Använd HarnessAgentOptions för att ange driftvägledning på selenivå, agentspecifika instruktioner och funktionsalternativ:
AIAgent agent = chatClient.AsHarnessAgent(new HarnessAgentOptions
{
Name = "research-agent",
HarnessInstructions = "Use tools deliberately and report verified results.",
ChatOptions = new ChatOptions
{
Instructions = "You are a research assistant focused on academic sources.",
},
MaxContextWindowTokens = 128_000,
MaxOutputTokens = 16_384,
});
HarnessAgent.DefaultInstructions tillhandahåller standardriktlinjerna för sele.
HarnessInstructions visas före ChatOptions.Instructions.
Anpassa kompositionen
Standardfunktionerna har målalternativ, inklusive DisableTodoProvider, DisableAgentModeProvider, DisableFileMemory, DisableAgentSkillsProvider, DisableWebSearch, DisableToolAutoApproval, DisableOpenTelemetryoch DisableCompaction.
Lägg till anpassade kontextprovidrar med AIContextProviders. Anmäl dig till filåtkomst med FileAccessStore, bakgrundsdelegering med BackgroundAgentsoch loopning med LoopEvaluators.
Skapa en seleagent
Fabriken create_harness_agent returnerar en fullständigt konfigurerad Agent:
from agent_framework import create_harness_agent
from agent_framework.openai import OpenAIChatClient
agent = create_harness_agent(
client=OpenAIChatClient(model="gpt-4o"),
)
session = agent.create_session()
response = await agent.run("Plan a weekend trip to Seattle.", session=session)
print(response.text)
Ange selenivå och agentspecifika instruktioner separat:
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,
)
DEFAULT_HARNESS_INSTRUCTIONS tillhandahåller standardriktlinjerna för sele.
harness_instructions visas före agent_instructions.
Anpassa kompositionen
Inaktivera standardvärden med alternativ som disable_todo, disable_mode, disable_file_memory, disable_web_search, disable_tool_auto_approvaloch disable_compaction.
Ersätt inbyggda leverantörer med todo_provider eller mode_provideroch lägg till providers med context_providers. Färdigheter är opt-in through skills_provider eller skills_paths; filåtkomst, bakgrundsagenter, gränssnittsverktyg och loopning är också opt-in.
Anmärkning
create_harness_agent släpps. Bakgrundsagenter, filåtkomst och loopning är fortfarande experimentella, och shell-verktygen kommer från förhandsversionspaketet agent-framework-tools .
Anmärkning
En paketerad Go-sele är inte tillgänglig för närvarande. Skapa motsvarande Go-agent-, kontextprovider-, komprimerings- och mellanprogramspaket direkt. Se Agent Framework Go-lagringsplatsen för aktuell support.
Exempel på terminal-UX
Selen förskriver inte något programgränssnitt. Lagringsplatsen innehåller exempelterminalprogram som strömmar utdata, visar todos och det aktuella läget, frågor om godkännande av ytverktyg och tillhandahåller kommandon som /todos, /modeoch /exit.
Important
Dessa konsolprojekt är exempel, inte levererade ramverkskomponenter. Använd dem som körbara exempel eller som utgångspunkt för din egen terminalupplevelse.
Den .NET exempelinmatningspunkten är HarnessConsole.RunAgentAsync:
using Harness.Shared.Console;
await HarnessConsole.RunAgentAsync(
agent,
userPrompt: "Ask me anything to get started.");
Anpassa exemplet med observatörer, verktygsformaterare, kommandohanterare och HarnessConsoleOptions. Se .NET Exempel på utnyttja.
I det Python exemplet används det textbaserade console paketet bredvid Sele-exemplen:
from console import run_agent_async
await run_agent_async(agent)
Anpassa exemplet med observatörer, formaterare, kommandon och gränssnittskomponenter. Se Python Exempel på utnyttja.
Lagringsplatsen innehåller för närvarande inte något paketerat Go Harness-terminalexempel.