Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
- Chatovací klient – připojí agenta k modelu.
- 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.
- Poskytovatelé agentů a kontextů – přidejte pokyny, nástroje, paměť, stav úkolů, provozní režimy a volitelné možnosti.
- Middleware a dekorátory — přidat zpracování schvalování, observabilitu a volitelné omezené opakování.
- 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.