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.
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:
- Chatovací klient – připojí agenta k modelu.
- Kanál chatu – přidá volání funkce, injektáž zpráv, trvalost historie volání služby a volitelné komprimace.
- Poskytovatelé agentů a kontextů – přidejte pokyny, nástroje, paměť, stav úkolů, provozní režimy a volitelné možnosti.
- Middleware a dekorátory – přidejte zpracování schválení, pozorovatelnost a volitelnou ohraničenou smyčku.
- 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.