Conversational agent groups need turn-level capture
AutoGen is unique among the agent frameworks: agents talk to each other. The audit unit is the turn, not the tool call. Our wrapper captures every turn — the speaker, the message digest, the tool calls invoked in that turn — and rolls them up into one parent receipt covering the whole conversation. The dashboard renders this as a chat-style timeline so you can replay the agent dialogue.
Termination tracking
AutoGen conversations can terminate via several signals: max turns hit, termination message detected, exception. The wrapper captures the termination reason as a structured field. Knowing that conversation X terminated via "max_turns_exceeded" vs "termination_msg" is the difference between debugging a runaway loop and confirming successful completion.
Per-agent cost rollup
A typical AutoGen GroupChat has 3-4 agents on different models. The wrapper logs cost per agent per turn: at the end you see "UserProxy $0.00, Coder used GPT-5 $0.31, Reviewer used Claude $0.14". This makes the choice "which agent should we move to a cheaper model" data-driven.
AutoGen 0.4 actor-model support
AutoGen 0.4 switched to an actor model with explicit message passing. The wrapper supports both the v0.2 GroupChat API and the v0.4 RoutedAgent API — same receipt shape, same dashboard rendering. Use whichever AutoGen version your team is on; the integration covers both.
Streaming + interruption capture
AutoGen conversations can be interrupted by humans (UserProxyAgent prompts) or stop conditions. Each interruption is captured as a sub-event on the receipt — the audit log shows "user paused at turn 5, resumed at turn 6 with a corrected directive". Useful for human-in-the-loop workflows where the interruption pattern is itself the value.
Microsoft enterprise alignment
Microsoft customers running AutoGen typically also use Microsoft Entra (SSO), Azure OpenAI (LLM), and Azure Container Apps (hosting). GenZAgents is API-compatible with all three: Entra SSO for sign-in, Azure OpenAI for the embedding service, deployed on Azure Container Apps. The integration story for a Microsoft-aligned org is "everything stays in Azure, GenZAgents drops in alongside".
Install
$ npm install @genzagentsio/autogen
import { wrapGroupChat } from "@genzagentsio/autogen"
const groupChat = wrapGroupChat(rawGroupChat, {
agentDid: "did:genz:...",
apiKey: process.env.GENZAGENTS_API_KEY,
})
await groupChat.run(initialMessage)What we capture
Every GroupChat.run: per-message agent attribution, tool calls, termination reason.
Verify it works
Run wrapped GroupChat → confirm one parent receipt with per-turn sub-events on /dashboard.