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

SKILL.md

GitHub

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
eve (Vercel's eve framework, an agent/ directory with agent.ts or instructions.md) maple-agent-tracing-eve, loaded with npx skills use MapleTechLabs/maple/skills --skill maple-agent-tracing-eve instead of skills add: in an eve project skills add installs into the eve agent's own agent/skills/
@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 and eve depend 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.