Microsoft Agent Harness: runtime pro AI agenty, který ušetří měsíce vývoje
Postavil jsi někdy AI agenta od nuly? Pak víš, že samotný model je ta nejjednodušší část. Dřina začíná až okolo něj: správa historie konverzace, volání nástrojů, plánování úkolů, schvalování nebezpečných operací, komprimace kontextu, logování, telemetrii. Microsoft to teď vyřešil za tebe — Agent Framework Harness, který je od srpna 2026 v general availability, ti dodá celou tuhle vrstvu v jediném volání funkce.
V tomto návodu ti ukážu, co harness umí, kdy se hodí a jak s ním postavit agenta, který zvládne dlouhé vícekrokové úlohy, aniž bys musel psát tisíce řádků infrastruktury kolem modelu.
Co je Agent Harness a proč na něm záleží víc, než vypadá
Agent Harness je runtime vrstva, která mění jazykový model v agenta schopného vykonávat práci. Jak to shrnul Wes Steyn z Microsoftu: „Model sám o sobě umí jen generovat text." Aby volal nástroje, pracoval na vícekrokových úlohách a vytrval, dokud není práce hotová, musíš ho obalit runtimem — a přesně ten runtime je harness.
Proč je to důležitější, než se zdá? Výzkumníci z MBZUAI analyzovali zdrojový kód Claude Code a dospěli k číslu, které dává celému trendu tvář: přibližně 98,4 % kódu tvoří harness infrastruktura — oprávnění, správa kontextu, sandboxing, směrování nástrojů a recovery — a jen zhruba 1,6 % je vlastní AI logika. Jinými slovy: pokud si agenta píšeš sám, drtivou většinu času nestrávíš „AI", ale inženýrstvím kolem něj. A několik nezávisle vyvinutých agentů (Codex CLI, Aider) nezávisle konvergovalo ke stejnému tvaru harnessu. Není to náhoda — je to omezení dané problémem.
Microsoft Agent Framework přitom není nová značka. Je to open-source konsolidace Semantic Kernelu a AutoGen, která dosáhla verze 1.0 v dubnu 2026 a oba předchůdce přesunula do režimu údržby. Na konferenci Build 2026 přišel Agent Harness, konektory pro GitHub Copilot SDK a Claude Agent SDK a multi-agent orchestrace — a harness spolu s Foundry Hosted Agents od srpna běží v plné general availability.
Co dostaneš hned po vybalení
Harness je záměrně „batteries-included". Výchozí konfigurace ti rovnou zapne:
- Volání funkcí s nastavitelným limitem iterací
- Perzistenci historie po každém volání modelu — když agent spadne uprostřed úlohy, nepřijdeš o kontext
- Plánování a todo list s režimy plan a execute — agent si nejdřív rozloží práci, pak ji odškrtává
- Souborovou paměť pro potřeby relace
- Schvalování nástrojů — standing approvals a pravidla auto-approval
- OpenTelemetry observabilitu
- Webové hledání, pokud ho model podporuje
- Komprimaci kontextu (compaction) při překročení limitu tokenů
A co je podstatné: každá z těchto schopností je individuálně vypnutelná. Shell tooling, přístup k souborům mimo session, background sub-agenti a automatické loopování jsou naopak opt-in — ve výchozím stavu zapnuté nejsou a při zapnutí vypíšou varování. Bezpečnostní koncept je tedy: safe by default, dangerous by explicit choice.
Jak vytvořit agenta v Pythonu
Nejjednodušší varianta vypadá takto:
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("Analyzuj vývoj prodeje za Q3 a navrhni akční plán.", session=session)
print(response.text)
Tři řádky a máš agenta s plánováním, perzistencí historie, kompresí kontextu, schvalováním nástrojů a telemetrií. Kdybys totéž stavěl ručně, počítají se tisíce řádků.
Samozřejmě chceš agenta přizpůsobit. Instrukce se dělí do dvou vrstev — harness_instructions definují provozní chování (jak má agent pracovat), agent_instructions pak roli a odbornost (kdo agent je):
agent = create_harness_agent(
client=client,
name="research-agent",
harness_instructions="Use tools deliberately and report verified results.",
agent_instructions="Jsi analytik zaměřený na akademické zdroje.",
max_context_window_tokens=128_000,
max_output_tokens=16_384,
)
Vlastní nástroje přidáš jako obyčejné Python callables — harness se o jejich volání, schvalování i opakování postará:
def get_sales_data(quarter: str) -> dict:
"""Vrátí prodejní data za dané čtvrtletí."""
return fetch_from_warehouse(quarter)
agent = create_harness_agent(
client=client,
agent_instructions="Jsi obchodní analytik.",
tools=[get_sales_data],
)
Verze pro .NET
Ekosystém kolem .NET je stejně přímočarý. Balíček Microsoft.Agents.AI.Harness rozšiřuje jakýkoli IChatClient:
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
AIAgent agent = chatClient.AsHarnessAgent();
AgentResponse response = await agent.RunAsync(
"Projdi backlog a připrav souhrn pro týmový meeting.");
Console.WriteLine(response.Text);
Přizpůsobení přes HarnessAgentOptions:
AIAgent agent = chatClient.AsHarnessAgent(new HarnessAgentOptions
{
Name = "research-agent",
HarnessInstructions = "Use tools deliberately and report verified results.",
ChatOptions = new ChatOptions
{
Instructions = "Jsi výzkumný asistent zaměřený na akademické zdroje.",
},
MaxContextWindowTokens = 128_000,
MaxOutputTokens = 16_384,
});
Co si nastavit jako první: kontrola oprávnění
Z mé zkušenosti je nejdůležitější volba, kterou u harnessu uděláš, tool approval. Výchozí stav znamená, že agent píše soubory, posílá e-maily nebo volá externí API jen s tvým souhlasem. Před nasazením do produkce si zodpověz tyhle otázky:
- Které nástroje agent potřebuje opravdu? Každý další zvětšuje attack surface pro prompt injection.
- Které operace můžou být auto-approvenuty bez rizika (čtení dat) a které vyžadují souhlas (zápis, mazání, odesílání)?
- Má agent práva oddělená od tvých? Ideálně service account s minimálními oprávněními, ne tvůj osobní token.
Pokud zapínáš shell execution nebo sdílený přístup k souborům, počítej s varováním ve výstupu — to je záměr. Microsoft tím dává najevo, že tyto funkce mění bezpečnostní profil systému.
Kdy se harness hodí (a kdy ne)
Použij ho, když:
- Stavíš agenta pro dlouhé vícekrokové úlohy — research, analýzu dat, coding asistenty
- Chceš standardizovaný runtime napříč týmem, místo aby si každý vývojář stavěl vlastní scaffolding
- Potřebuješ telemetrii a governance od prvního dne (harness má OpenTelemetry zapnuté defaultně)
- Ti jde o podporu: je to oficiální produkt s podporou Microsoftu, ne další knihovna na GitHubu
Nestačí ti, když:
- Hledáš no-code řešení — tohle je framework pro vývojáře, na n8n nebo Make se stejně obrátíš
- Tvoje úloha je jednoduché volání API s jedním krokem — na to je model + SDK overkill
- Potřebuješ multi-agent systém s komplexní orchestrací hned teď — tuhle část ekosystému Microsoft řeší odděleně
Nasazení: jeden binary, lokálka i produkce
Harness běží jako jediný binary napříč lokálním vývojem, kontejnery i hostovaným nasazením. Pro produkci nabízí Microsoft Foundry Hosted Agents — managed deployment target účtovaný podle spotřeby. To znamená, že agenta vyvíjíš lokálně se stejným runtimem, který pak běží v Azure, a nemusíš řešit divergenci mezi vývojem a produkcí.
Závěr: přestaň vynalézat harness
Největší hodnota Agent Harnessu není v tom, že by AI agenty zjednodušil. Je v tom, že sundává z tvých ramen 98 % práce, která s agenty souvisí, ale s AI nemá nic společného. Historie konverzace, komprese kontextu, plánování, schvalování, telemetrii — to všechno dostaneš podporované, testované a s bezpečnostními výchozími hodnotami, které tě donutí přemýšlet o oprávněních, dřív než něco zapneš.
Pokud tvá firma zvažuje AI agenty do produkce, je harness místo, kde začít. Ne proto, že by byl jediný — ale proto, že je to první runtime této úrovně, který má za sebou plnou podporu a lifecycle jednoho z velkých vendorů. A pokud si chceš jen ověřit koncept, stačí pip install agent-framework a tři řádky kódu výš.