Rámec pro agenty

Použádek agenta je generování modulu runtime, které mění jazykový model na agenta, který může provádět práci. Řídí volání modelů a nástrojů, spravuje stav a kontext konverzace, používá zásady schválení a může agenta pokračovat v rámci vícekrokové úlohy.

Agent Framework poskytuje posudek, baterie zahrnuté v postroji pro výzkum, kódování, analýzu dat a další dlouho běžící práci. Poskytnete chatovacího klienta a přizpůsobíte jenom možnosti, které vaše aplikace potřebuje.

Architecture

Využívá existující stavební bloky agenta Framework místo definování samostatného modulu runtime agenta:

  1. Chatovací klient – připojí agenta k modelu.
  2. Kanál chatu – přidá volání funkce, injektáž zpráv, trvalost historie volání služby a volitelné komprimace.
  3. Poskytovatelé agentů a kontextů – přidejte pokyny, nástroje, paměť, stav úkolů, provozní režimy a volitelné možnosti.
  4. Middleware a dekorátory – přidejte zpracování schválení, pozorovatelnost a volitelnou ohraničenou smyčku.
  5. UX aplikace – streamuje odpovědi, zobrazuje průběh a shromažďuje vstupy, jako jsou schválení nástrojů.

Výsledný objekt zůstává normálním agentem agentaHarnessAgent: agent, který je odvozen z AIAgent .NET nebo Agent vrácený create_harness_agent v Python. Jeho relace používají stejnou relaci a abstrakci zprostředkovatele kontextu jako ostatní agenti.

Matice možností využití

Capability Chování při využití Kanonické pokyny
Vyvolání funkce Povoleno s konfigurovatelným limitem iterace pro jednotlivé požadavky. Nástroje funkcí
Trvalost historie volání služby Udržuje historii po každém volání modelu při spuštění volání nástroje. Zasedání
Stlačení Povoleno, když jsou zadány limity tokenů nebo vlastní strategie. Komprese
Sledování úkolů Ve výchozím nastavení povolena. Plánování a todos
Režimy agenta Režimy plánování a spouštění jsou ve výchozím nastavení povolené. Plánování a todos
Paměť souborů a přístup k souborům Paměť souboru relace je ve výchozím nastavení povolená; Sdílený přístup k souborům je opt-in. Zprostředkovatelé kontextu
Schválení nástroje Ve výchozím nastavení jsou povolená stojící schválení a pravidla automatického schvalování. Schválení nástroje
OpenTelemetry Pozorovatelnost agenta je ve výchozím nastavení povolená. Pozorovatelnost
Vyhledávání na webu Ve výchozím nastavení jsme přidali, kde ho vybraný chatovací klient podporuje. Vyhledávání na webu
Dovednosti agenta Ve výchozím nastavení je v .NET; povolená prostřednictvím poskytovatele nebo cest v Python. Dovednosti agenta
Agenti na pozadí Volitelné paralelní delegování pojmenovaných podřízených agentů Agenti na pozadí
Spouštění prostředí Skládá se z balíčku prostředí; Python továrna ji může automaticky připojit. Nástroje prostředí
Smyčkování Volitelné vázané opětovné vyvolání řízené vyhodnocovači nebo predikáty. Smyčka agenta

Delegování agenta na pozadí je oddělené od odpovědí na pozadí spravovaných poskytovatelem. Agenti na pozadí spouštějí podřízené agenty na delegovaných úlohách; odpovědi na pozadí se dotazují nebo obnoví jeden požadavek poskytovatele pomocí tokenu pro pokračování.

Vytvoření agenta s využitím

Balíček Microsoft.Agents.AI.Harness zveřejňuje HarnessAgent v Microsoft.Agents.AI oboru názvů. Vytvořte ho z libovolného IChatClient objektu pomocí AsHarnessAgentpříkazu , nebo přímo zkonstruujte HarnessAgent :

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);

Slouží HarnessAgentOptions k nastavení pokynů pro provoz na úrovni využití, pokynů specifických pro agenta a možností funkcí:

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 poskytuje výchozí pokyny k postroji. HarnessInstructions zobrazí se před ChatOptions.Instructions.

Přizpůsobení složení

Výchozí možnosti mají cílené možnosti, včetně DisableTodoProvidermožností , , DisableAgentModeProviderDisableFileMemory, DisableAgentSkillsProvider, DisableWebSearch, DisableToolAutoApproval, , DisableOpenTelemetrya DisableCompaction.

Přidání vlastních zprostředkovatelů kontextu pomocí AIContextProviders. Přihlaste se k přístupu k souborům pomocí FileAccessStoredelegování BackgroundAgentsna pozadí a smyčky s LoopEvaluators.

Vytvoření agenta s využitím

Továrna create_harness_agent vrátí plně nakonfigurovanou 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)

Nastavte pokyny specifické pro jednotlivé kroky na úrovni a agenta samostatně:

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 poskytuje výchozí pokyny k postroji. harness_instructions zobrazí se před agent_instructions.

Přizpůsobení složení

Zakažte výchozí nastavení s možnostmi, jako disable_todojsou , disable_modedisable_file_memory, disable_web_search, disable_tool_auto_approval, a disable_compaction.

Nahraďte předdefinované zprostředkovatele todo_provider nebo mode_providernebo a přidejte do context_providerssouboru . Dovednosti jsou opt-in prostřednictvím skills_provider nebo skills_paths; přístup k souborům, agenti na pozadí, nástroje prostředí a smyčky jsou také opt-in.

Note

create_harness_agent je vydáno. Agenti na pozadí, přístup k souborům a smyčky zůstávají experimentální a nástroje prostředí pocházejí z předběžného balíčku.agent-framework-tools

Note

Balíček Go Postroj není v současné době k dispozici. Vytvořte přímo odpovídajícího agenta Go, zprostředkovatele kontextu, komprimace a balíčky middlewaru. Aktuální podporu najdete v úložišti Agent Framework Go .

Ukázková uživatelská prostředí terminálu

Na pásu není předepisovat aplikační rozhraní. Úložiště obsahuje ukázkové terminálové aplikace, které streamují výstup, zobrazují todos a aktuální režim, výzvy ke schválení nástroje pro surface a poskytují příkazy, jako /todosje , /modea /exit.

Important

Tyto konzolové projekty jsou ukázky, které nejsou součástí architektury. Používejte je jako spustitelné příklady nebo jako výchozí bod pro vlastní prostředí terminálu.

Vstupní bod .NET jeHarnessConsole.RunAgentAsync:

using Harness.Shared.Console;

await HarnessConsole.RunAgentAsync(
    agent,
    userPrompt: "Ask me anything to get started.");

Přizpůsobte si ukázku pomocí pozorovatelů, formátovacích nástrojů, obslužných rutin příkazů a HarnessConsoleOptions. Podívejte se na ukázky .NET Použádek.

Ukázka Python používá balíček založený na console textu vedle ukázek Použádek:

from console import run_agent_async

await run_agent_async(agent)

Přizpůsobte si ukázku pomocí pozorovatelů, formátovacích prvků, příkazů a součástí uživatelského rozhraní. Podívejte se na ukázky Python Použádek.

Úložiště v současné době neobsahuje zabalenou ukázku terminálu Go Harness.

Další kroky

Zjistit více