Skip to content
Monitoring
Skill

/maple-agent-tracing

Trace an AI agent or LLM app with Maple so each conversation shows up as one Agent Session with its transcript, model calls, tool calls, tokens, cost and failures. Detects the agent framework (Vercel AI SDK, OpenAI Agents SDK, Mastra, LangChain/LangGraph, Claude Agent SDK,

BOOST
From plugin
maple
1.8k37 skills
Install
$ npx -y skills add mapletechlabs/maple --skill maple-agent-tracing --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/maple-agent-tracing

Context preview

The summary Claude sees to decide when to auto-load this skill.

Trace an AI agent or LLM app with Maple so each conversation shows up as one Agent Session with its transcript, model calls, tool calls, tokens, cost and failures. Detects the agent framework (Vercel AI SDK, OpenAI Agents SDK, Mastra, LangChain/LangGraph, Claude Agent SDK,

SKILL.md

maple-agent-tracing.SKILL.md
name: maple-agent-tracing
description: "Trace an AI agent or LLM app with Maple so each conversation shows up as one Agent Session with its transcript, model calls, tool calls, tokens, cost and failures. Detects the agent framework (Vercel AI SDK, OpenAI Agents SDK, Mastra, LangChain/LangGraph, Claude Agent SDK, Pydantic AI, LlamaIndex, CrewAI, Google ADK, Strands, smolagents, Agno, DSPy, Haystack, Microsoft Agent Framework, Spring AI, LiteLLM, OpenRouter, raw provider SDKs) and installs the matching per-framework skill. Triggers on 'trace my agent', 'add agent observability', 'LLM tracing with Maple', 'set up Maple agent sessions', 'OpenTelemetry for my AI agent'."

Maple agent tracing (router)

This skill only picks the right per-framework skill.

Step 1: Find every agent in the repo

Look for LLM and agent dependencies in every app and service: `package.json`, `pyproject.toml`, `requirements*.txt`, `uv.lock`, `pom.xml`, `build.gradle*`, `*.csproj`, `go.mod`. A repo can have more than one; handle each one.

Step 2: Install the matching skill and follow it

Pick the first row that matches the service's dependencies. Install the skill with:

npx skills add MapleTechLabs/maple/skills --skill <skill> -y

Then read the installed `SKILL.md` and follow it. If `npx skills` is unavailable, read the file directly from `https://raw.githubusercontent.com/MapleTechLabs/maple/main/skills/<skill>/SKILL.md`.

| Dependency | Skill | | --- | --- | | `@mastra/core` | `maple-agent-tracing-mastra` | | `@openai/agents`, `openai-agents` | `maple-agent-tracing-openai-agents` | | `langchain`, `langgraph`, `langchain-core` (Python) | `maple-agent-tracing-langchain` | | LangChain.js / LangGraph.js (`langchain`, `@langchain/core`, `@langchain/langgraph`) | `maple-agent-tracing-langchain` (TypeScript: `references/typescript.md`) | | `@anthropic-ai/claude-agent-sdk`, `claude-agent-sdk`, or the `claude` CLI itself | `maple-agent-tracing-claude-agent-sdk` | | `agents`, `@cloudflare/ai-chat` (Cloudflare Agents SDK, or the AI SDK inside a Worker / Durable Object) | `maple-agent-tracing-cloudflare-agents` | | `ai` (Vercel AI SDK) | `maple-agent-tracing-vercel-ai-sdk` | | `genkit`, `@genkit-ai/*` (TypeScript) | `maple-agent-tracing-genkit` | | `pydantic-ai`, `pydantic-ai-slim` | `maple-agent-tracing-pydantic-ai` | | `crewai` | `maple-agent-tracing-crewai` | | `google-adk`, `@google/adk` | `maple-agent-tracing-google-adk` | | `llama-index`, `llama-index-core` | `maple-agent-tracing-llamaindex` | | `strands-agents`, `@strands-agents/sdk` | `maple-agent-tracing-strands` | | `smolagents` | `maple-agent-tracing-smolagents` | | `agno` | `maple-agent-tracing-agno` | | `dspy` | `maple-agent-tracing-dspy` | | `haystack-ai` | `maple-agent-tracing-haystack` | | `agent-framework`, `agent-framework-core`, `Microsoft.Agents.AI`, `semantic-kernel`, `Microsoft.SemanticKernel` | `maple-agent-tracing-microsoft-agent-framework` | | `spring-ai-*` (Maven/Gradle) | `maple-agent-tracing-spring-ai` | | `litellm` (SDK or proxy) | `maple-agent-tracing-litellm` | | Requests go through OpenRouter (`openrouter.ai` base URL) and the user wants gateway-side traces | `maple-agent-tracing-openrouter` | | Only a provider SDK: `openai`, `@anthropic-ai/sdk`, `anthropic`, `google-genai`, `@google/genai` | `maple-agent-tracing-provider-sdks` | | Anything else, a hand-rolled agent loop, or another language | `maple-agent-tracing-opentelemetry` |

Order matters: a framework row wins over the provider-SDK row, because frameworks depend on provider SDKs and instrumenting both records every model call twice. Mastra depends on `ai` and LangChain.js on `openai` too; match the framework first, and don't route a LangChain.js service to the provider-SDK skill.

Step 3: Hand-off

After the per-framework skill's own checks pass, tell the user:

  • which services you instrumented and with which skill;
  • that each conversation appears in Maple under **Agent Sessions** (`https://app.maple.dev/agent-sessions`, or `app.eu.maple.dev` for EU organizations) once one conversation has run;
  • anything the per-framework skill said is not captured for that framework (for example, cost or message content), so the gap is expected rather than a bug.
Read more
Ships withmaple

OpenTelemetry observability platform

Get the whole plugin

Other skills on maple.