Rámec pro agenty

Rámec agenta je běhová infrastruktura, která proměňuje jazykový model v agenta, jenž může vykonávat úlohy. Řídí volání modelů a nástrojů, spravuje stav a kontext konverzace, uplatňuje schvalovací zásady a může udržovat agenta v postupu při plnění vícekrokového úkolu.

Agent Framework nabízí komplexně vybavené prostředí s jasně danými konvencemi pro výzkum, programování, analýzu dat a další dlouhotrvající úlohy. Poskytnete chatovacího klienta a přizpůsobíte jenom možnosti, které vaše aplikace potřebuje.

Architecture

Harness skládá existující stavební prvky Agent Framework namísto definování samostatného běhového prostředí agenta:

  1. Chatovací klient – připojí agenta k modelu.
  2. Kanál konverzace — přidává vyvolání funkce, vkládání zpráv, trvalé uchovávání historie pro každé volání služby a volitelnou kompakci.
  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řidat zpracování schvalování, observabilitu a volitelné omezené opakování.
  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á běžným agentem frameworku Agent Framework: HarnessAgent, který je v .NET odvozený z AIAgent, nebo Agent vrácený funkcí create_harness_agent v Pythonu. Jeho relace používají stejné abstrakce session a context provider jako ostatní agenti.

Matice možností využití

Schopnost Chování při využití Kanonické pokyny
Vyvolání funkce Povoleno s konfigurovatelným limitem iterace pro jednotlivé požadavky. Nástroje funkcí
Uchovávání historie pro jednotlivá volání služby Uchovává historii po každém volání modelu během běhu s voláním nástrojů. 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 úkoly
Režimy agenta Režimy plánování a spouštění jsou ve výchozím nastavení povolené. Plánování a úkoly
Paměť souborů a přístup k souborům Paměť pro soubory relace je ve výchozím nastavení povolená; sdílený přístup k souborům je třeba povolit. 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í přidáno tam, kde to vybraný chatovací klient podporuje. Vyhledávání na webu
Dovednosti agenta Ve výchozím nastavení je v .NET povoleno; v Pythonu je nutné se přihlásit přes poskytovatele nebo cesty. Dovednosti agenta
Agenti na pozadí Volitelné paralelní delegování na pojmenované podřízené agenty Agenti na pozadí
Spouštění prostředí Je složen z balíčku shellu; factory v Pythonu jej může automaticky propojit. 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 pro delegované úlohy; odpovědi zpracovávané na pozadí zjišťují stav nebo obnovují jeden požadavek poskytovatele pomocí tokenu pro pokračování.

Vytvořte agenta Harness

Balíček Microsoft.Agents.AI.Harness zpřístupňuje HarnessAgent v oboru názvů Microsoft.Agents.AI. 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);

Pomocí HarnessAgentOptions nastavíte provozní pokyny na úrovni harnessu, pokyny specifické pro agenta a volby 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í funkce mají konkrétní možnosti, včetně DisableTodoProvider, DisableAgentModeProvider, DisableFileMemory, DisableAgentSkillsProvider, DisableWebSearch, DisableToolAutoApproval, DisableOpenTelemetry a DisableCompaction.

Přidejte vlastní poskytovatele kontextu pomocí AIContextProviders. Povolte přístup k souborům pomocí FileAccessStore, delegování na pozadí pomocí BackgroundAgents a opakování pomocí LoopEvaluators.

Vytvořte agenta Harness

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 na úrovni harnessu a pokyny specifické pro 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í pomocí možností, jako jsou disable_todo, disable_mode, disable_file_memory, disable_web_search, disable_tool_auto_approval a disable_compaction.

Nahraďte integrované poskytovatele pomocí todo_provider nebo mode_provider a přidejte poskytovatele pomocí context_providers. Funkce jsou volitelné pomocí skills_provider nebo skills_paths; přístup k souborům, agenti běžící na pozadí, nástroje příkazového řádku a smyčky jsou rovněž volitelné.

Poznámka:

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

Poznámka:

Balíčkovaná verze Go Harness 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

Harness nepředepisuje aplikační rozhraní. Repozitář obsahuje ukázkové terminálové aplikace, které streamují výstup, zobrazují úkoly a aktuální režim, zobrazují výzvy ke schválení nástrojů a poskytují příkazy, jako jsou /todos, /mode a /exit.

Důležité

Tyto konzolové projekty jsou ukázky, nikoli dodávané součásti frameworku. Používejte je jako spustitelné příklady nebo jako výchozí bod pro vlastní prostředí terminálu.

Vstupním bodem ukázky .NET je HarnessConsole.RunAgentAsync:

using Harness.Shared.Console;

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

Přizpůsobte si ukázkovou aplikaci pomocí observerů, formátovačů nástrojů, obsluh příkazů a HarnessConsoleOptions. Podívejte se na ukázky .NET Harness.

Ukázka v Pythonu používá balíček console založený na frameworku Textual vedle ukázek Harness:

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 pro Python Harness.

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

Další kroky

Zjistit více