Deep dive do observability AI agentů s Microsoft Agent Framework - tracing s open source nástroji Aspire Dashboard a Langfuse
Tracing AI agentů přes Aspire Dashboard a Langfuse: rychlý vývojářský pohled, anonymizace přes kolektor a specializovaná AI observability.
V prvním díle jsme probrali základní architekturu a důvody proč rád používám OpenTelemetry kolektor, abychom se minule mohli věnovat metrikám a jejich použití v Azure Monitor for Prometheus a Azure Managed Grafana. Dnes se ponoříme do trasování, nejdůležijší disciplíny pro observabilitu AI agentů, a začneme open source nástroji: Aspire Dashboard pro rychlý vývojářský pohled a Langfuse.
Open source tracing pro AI agenty
OpenTelemetry požírá svět observability a já mu nesmírně fandím. Po mnoha letech kombinace proprietárních nástrojů a přístupů s alternativní zoologickou open source SDK přišlo OpenTelemetry a má ambici pod jeden protokol, jedno SDK a API, sjednotit metriky, logy i trasovaní. Existuje řada backendů, které dělají vizualizace a mají datovou perzistenci, ale pro rychlé vývojářské zhodnocení situace jsou všechny těžkopádné, pomalé a drahé nebo požírající příliš mnoho zdrojů. Proto .NET tým vyvinul Aspire Dashboard, jednoduché řešení běžící v jediné odlehčeném kontejneru, kde můžete rychle a téměř v reálném čase vizualizovat OpenTelemetry.
Tady vidíme trasování z multi-tenant řešení ve stylu Magentic v Microsoft Agent Framework.
Přehled trace v Aspire Dashboard
V mém případě jsem zapnul i logování jednotlivých textů a odpovědí.
Texty a odpovědi v Aspire trace
Sbírám i vlastní atributy, například session ID, přihlášený uživatel, role uživatele, oddělení a tak podobně.
Vlastní atributy ve spanech Aspire Dashboardu
Jak se ale můžete přesvědčit v prvním díle tohoto seriálu, můj Open Telemetry kolektor mám nastaven tak, že je schopen filtrovat některá pole a pro jiná udělat hash a tím zamaskovat původní informaci. Mám vytvořenou další instanci Aspire, do které z OTEL kolektoru posílám filtrované a anonymizované informace. Všimněte si, že obsah konverzace vůbec nemám, user ID je zamaskované, ale stále mám potřebné technické informace jako jsou časy a spotřeba tokenů.
Anonymizovaný Aspire pohled bez obsahu konverzace
Takhle třeba vypadá volání nástroje.
Detail volání nástroje v Aspire trace
Pro rychlé náhledy na monitoring data je Aspire Dashboard výborný - jednoduchý, malinkatý, rychlý.
Hledáte nástroj na trasování, který by byl open source a přímo specializovaný na AI scénáře? Langfuse je velmi populární, ale bohužel ani ten není plně otevřený co do governance projektu (není pod CNCF ani Apache Foundation ani Linux Foundation) a jde spíše o MIT core (nemáte tedy garanci, že vývoj půjde směrem vyhovujícím komunitě ani že nemůže dojít ke změně licence k méně otevřené - viz co se stalo s MongoDB, MySQL, Elastic, Redis, CentOS, Terraform apod.). Nicméně řešení je to velmi dobré a pojďme se na něj podívat.
Hned z úvodní obrazovky je vidět, že Langfuse není jen observabilita, ale zasahuje i do oblasti evaluace, které se v tomto seriálu dotkneme později.
Langfuse přehled projektuLangfuse navigace k tracingu a evaluacímLangfuse pohled na observability a datasets
Takhle vypadá konkrétní trasování - totéž, co jsme viděli u Aspire. Graficky je to jiné, ale principiálně základní informace jsou tam stejné.
Konkrétní trace v Langfuse
Nicméně některé věci už nejsou přímo v datech, ale jsou odvozené - výborná je kalkulace spotřeby tokenů v penězích.
Kalkulace nákladů a tokenů v Langfuse
Samozřejmě opět můžeme hezky vidět samotnou konverzaci.
Konverzace v Langfuse traceDetail zprávy v Langfuse trace
Langfuse napřímo parsuje některé známé parametry, například ID uživatele. Díky tomu rovnou dokáže dávat přehled uživatelů a jejich spotřeby tokenů.
Přehled uživatelů a tokenové spotřeby
To potom rozklikneme a vidíme jednotlivá trasování, session apod.
Detail uživatele a sessions v LangfuseJednotlivé traces v session
Langfuse jde i do evaluací, ale to si rozebereme později. Můžete tak zachycenou konverzaci vzít, přidat ji do nějaké datové sady, anotovat, zkoušet v simulátoru a tak podobně.
Langfuse datasets a evaluace
Za mě je Langfuse nejlepší trasovací nástroj zaměřený specificky na AI z kategorie těch open source. Přestože není plně otevřený co do governance, je to moje první volba pokud musím zůstat v self-managed světě. Jeho evaluační schopnosti rozebereme později a má taky svoje místo, byť projekty jako je DeepEval mu jsou velkou, byť trochu jinak zaměřenou, konkurencí.
Dnes jsme se tedy ponořili do open source variant - Aspire pro rychlý vývojářský náhled, Langfuse jako open source specializované řešení na AI. Další alternativy jsou v použití ne-specializovaných řešení určených pro vývojáře (univerzální systémy typu Azure Monitor Application Insights, Grafana Tempo, Dynatrace apod.) a v hostovaných řešeních zaměřených na AI scénáře. Na ty se podíváme příště - Azure Monitor a Azure AI Foundry. Co nabízí ve formě služby?
Aspire Dashboard
malý, rychlý a výborný pro vývojářský pohled téměř v reálném čase.
Anonymizace
stejný proud telemetrie lze přes OTEL kolektor poslat jednou plně a jednou očištěně.
Langfuse
specializovaný AI observability nástroj s tracingem, tokenovou ekonomikou a vazbou na evaluace.
Volba nástroje
Aspire na rychlý troubleshooting, Langfuse jako self-managed AI tracing varianta.
Další krok je podívat se na službové varianty - Azure Monitor a Azure AI Foundry.