Stateful, multi-actor agent graphs. Ingest every node transition and tool call.
from langgraph.graph import StateGraph
from agentwach import AgentwachCallback
cb = AgentwachCallback(api_key="$AGENTWACH_KEY", agent="my_graph")
graph = StateGraph(state).with_config({"callbacks": [cb]})
Multi-agent crews with role-based collaboration. Track every crew member and task.
from crewai import Crew
from agentwach import wrap_crew
crew = wrap_crew(Crew(agents=[...], tasks=[...]), agent="customer_ops")
crew.kickoff()
Microsoft AutoGen conversational agents. Capture every message and tool invocation.
import autogen
from agentwach import autogen_hook
autogen_hook(autogen, api_key="$AGENTWACH_KEY", agent="reviewer")
agent = autogen.AssistantAgent("reviewer", llm_config=cfg)
TypeScript agent framework. One middleware, all agent runs tracked.
import { Mastra } from "@mastra/core";
import { agentwach } from "agentwach";
export const mastra = new Mastra({
agents: { ... },
middleware: [agentwach({ apiKey: process.env.AGENTWACH_KEY!, agent: "concierge" })],
});
streamText / generateText with full telemetry into agentwach.
import { streamText } from "ai";
import { withAgentwach } from "agentwach/vercel-ai";
const result = await withAgentwach(
() => streamText({ model, prompt }),
{ agent: "chat", apiKey: process.env.AGENTWACH_KEY! },
);
openai-agents Python & TS. Tool runs, handoffs, and traces forwarded.
from agents import Agent, Runner
from agentwach.openai_agents import trace
with trace(agent="support", api_key="$AGENTWACH_KEY"):
Runner.run_sync(Agent(name="support", tools=[...]), prompt)
Agents, query engines, and workflows. Span-level visibility.
from llama_index.core import Settings
from agentwach.llamaindex import AgentwachHandler
Settings.callback_manager.add_handler(
AgentwachHandler(api_key="$AGENTWACH_KEY", agent="rag")
)