Ag2 Telemetry
ag2ai/build-with-ag2
Add OpenTelemetry traces to an AG2 beta Agent via TelemetryMiddleware (autogen.beta.middleware.builtin).
Step-by-step guide for adding a new observability/tracing provider to Agent Kernel.
$ npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yaalalabs/agent-kernel ak-dev-new-tracing-provider --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ak-dev-new-tracing-provider .claude/skills/ak-dev-new-tracing-provider && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ak-dev-new-tracing-provider" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/.agents/skills/ak-dev-new-tracing-provider into .claude/skills/ak-dev-new-tracing-provider/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-dev-new-tracing-provider", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/yaalalabs/agent-kernel/tree/develop/.agents/skills/ak-dev-new-tracing-providerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yaalalabs/agent-kernel ak-dev-new-tracing-provider --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/ak-dev-new-tracing-provider .agents/skills/ak-dev-new-tracing-provider && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ak-dev-new-tracing-provider" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/.agents/skills/ak-dev-new-tracing-provider into .agents/skills/ak-dev-new-tracing-provider/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-dev-new-tracing-provider", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yaalalabs/agent-kernel ak-dev-new-tracing-provider --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/ak-dev-new-tracing-provider .cursor/skills/ak-dev-new-tracing-provider && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ak-dev-new-tracing-provider" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/.agents/skills/ak-dev-new-tracing-provider into .cursor/skills/ak-dev-new-tracing-provider/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-dev-new-tracing-provider", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/yaalalabs/agent-kernel.git --path .agents/skills/ak-dev-new-tracing-provider--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yaalalabs/agent-kernel ak-dev-new-tracing-provider --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/ak-dev-new-tracing-provider .gemini/skills/ak-dev-new-tracing-provider && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ak-dev-new-tracing-provider" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/.agents/skills/ak-dev-new-tracing-provider into .gemini/skills/ak-dev-new-tracing-provider/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-dev-new-tracing-provider", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yaalalabs/agent-kernel ak-dev-new-tracing-providerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/ak-dev-new-tracing-provider .github/skills/ak-dev-new-tracing-provider && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ak-dev-new-tracing-provider" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/.agents/skills/ak-dev-new-tracing-provider into .github/skills/ak-dev-new-tracing-provider/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-dev-new-tracing-provider", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yaalalabs/agent-kernel ak-dev-new-tracing-provider --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/ak-dev-new-tracing-provider .opencode/skills/ak-dev-new-tracing-provider && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ak-dev-new-tracing-provider" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/.agents/skills/ak-dev-new-tracing-provider into .opencode/skills/ak-dev-new-tracing-provider/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-dev-new-tracing-provider", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ak-dev-new-tracing-providerStep-by-step guide for adding a new observability/tracing provider to Agent Kernel.
Ak Dev New Tracing Provider is an agent skill from yaalalabs/agent-kernel. Step-by-step guide for adding a new observability/tracing provider to Agent Kernel. Use this skill when you need to integrate a new tracing backend (beyond Langfuse, OpenLLMetry/Traceloop, Pydantic Logfire, and AWS CloudWatch). Covers implementing the BaseTrace interface, creating framework-specific traced runners, configuration, and testing.
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Observability, LLM observability and Building AI agents. It works with Langfuse, Amazon Web Services, Pydantic and OpenTelemetry. The repository describes itself as: The Operating System for Scalable Enterprise AI Agents - Run, orchestrate, and deploy Compliant Enterprise AI Agents at scale across frameworks, without lock-in, rewrites or… The licence is Apache-2.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 97fa8d9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python, yaml and toml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PROVIDER_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ak Dev New Tracing Provider loads about 3.5k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 887 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from yaalalabs/agent-kernel at commit 97fa8d9, republished under its Apache-2.0 licence (© yaalalabs). 887 words, ~3,483 tokens.
.claude/skills/ak-dev-new-tracing-provider/SKILL.md (or your agent's skills folder).This guide walks through adding a new observability/tracing provider to Agent Kernel. Use the Langfuse implementation (ak-py/src/agentkernel/trace/langfuse/) as the canonical reference. For a backend reached through plain OpenTelemetry (no vendor SDK), see the CloudWatch provider (ak-py/src/agentkernel/trace/cloudwatch/): it installs its own SDK TracerProvider and OTLP exporter once (or reuses one already installed, since OpenTelemetry honours only the first), wraps each run through a span(name, session) context manager on the provider class that its runners receive, and adds a provider-specific helper module (sigv4.py) beside the runners.
Agent Kernel's tracing system:
BaseTrace (trace/base.py) defines the interface — one method per supported framework that returns a traced Runner (or None)Trace (trace/trace.py) is a factory that creates the appropriate trace instance based on AKConfig.trace.typeak-py/src/agentkernel/trace/<provider>/
├── __init__.py
├── <provider>.py # Main trace class
├── openai.py # Traced OpenAI runner
├── langgraph.py # Traced LangGraph runner
├── crewai.py # Traced CrewAI runner
├── adk.py # Traced Google ADK runner
├── smolagents.py # Traced Smolagents runner
└── pydanticai.py # Traced Pydantic AI runnerIn the main trace class, there should be a method each agentic framework. Each method should return a traced Runner if the framework is supported, or None if not. The traced Runner should extend the base Runner for that framework and wrap execution with tracing spans.
# ak-py/src/agentkernel/trace/<provider>/<provider>.py
import logging
from agentkernel.core.base import Runner
from agentkernel.trace.base import BaseTrace
logger = logging.getLogger("ak.trace.<provider>")
class <Provider>(BaseTrace):
"""<Provider> tracing implementation for Agent Kernel."""
def __init__(self):
logger.info("Initializing <Provider> tracing")
# Initialize the tracing client/SDK
# e.g., self._client = ProviderClient()
def init(self):
"""Initialize the tracing backend. Called once at startup."""
# Set up any global instrumentation
# e.g., self._client.configure(api_key=os.getenv("PROVIDER_API_KEY"))
pass
def openai(self) -> Runner | None:
"""Return a traced runner for OpenAI framework, or None if not supported."""
try:
from .openai import <Provider>OpenAIRunner
return <Provider>OpenAIRunner(self._client)
except ImportError:
logger.warning("OpenAI tracing dependencies not available")
return None
def langgraph(self) -> Runner | None:
try:
from .langgraph import <Provider>LangGraphRunner
return <Provider>LangGraphRunner(self._client)
except ImportError:
return None
def crewai(self) -> Runner | None:
try:
from .crewai import <Provider>CrewAIRunner
return <Provider>CrewAIRunner(self._client)
except ImportError:
return None
def adk(self) -> Runner | None:
try:
from .adk import <Provider>ADKRunner
return <Provider>ADKRunner(self._client)
except ImportError:
return None
def smolagents(self) -> Runner:
from .smolagents import <Provider>SmolagentsRunner
return <Provider>SmolagentsRunner(self._client)Each traced runner extends the base framework runner and wraps execution with tracing spans.
# ak-py/src/agentkernel/trace/<provider>/openai.py
from agentkernel.framework.openai.openai import OpenAIRunner
from agentkernel.core.base import Session
from agentkernel.core.model import AgentReply, AgentRequest
class <Provider>OpenAIRunner(OpenAIRunner):
def __init__(self, client):
super().__init__()
self._trace_client = client
async def run(self, agent, session: Session, requests: list[AgentRequest]) -> AgentReply:
# Wrap the base runner's execution with a trace span
with self._trace_client.start_span(
name=f"agent.{agent.name}",
attributes={
"framework": "openai",
"session_id": session.id,
"agent_name": agent.name,
}
) as span:
try:
result = await super().run(agent, session, requests)
span.set_attribute("output_length", len(result.response) if hasattr(result, 'response') else 0)
span.set_status("OK")
return result
except Exception as e:
span.set_status("ERROR")
span.record_exception(e)
raise# ak-py/src/agentkernel/trace/<provider>/langgraph.py
from agentkernel.framework.langgraph.langgraph import LangGraphRunner
class <Provider>LangGraphRunner(LangGraphRunner):
def __init__(self, client):
super().__init__()
self._trace_client = client
async def run(self, agent, session, requests):
with self._trace_client.start_span(
name=f"agent.{agent.name}",
attributes={"framework": "langgraph", "session_id": session.id}
):
return await super().run(agent, session, requests)Follow the same pattern for CrewAI, Google ADK, Smolagents, and Pydantic AI runners (see trace/langfuse/smolagents.py and trace/openllmetry/smolagents.py for reference).
__init__.py# ak-py/src/agentkernel/trace/<provider>/__init__.py
from .<provider> import <Provider>Add the new provider as a recognized option. The BaseTrace class (trace/base.py) already defines the interface — your implementation just needs to conform to it. No changes to base.py are needed unless you're adding a new framework. Note that init() and all six framework methods (openai, langgraph, crewai, adk, smolagents, pydanticai) are declared @abstractmethod on BaseTrace, so every new provider must implement all seven — otherwise the class cannot be instantiated.
Update ak-py/src/agentkernel/trace/trace.py. The factory shares the house pluggable-backend
shape from core/util/factory.py (resolve_dotted, require_extra, AKConfigError — the same
pattern used by the guardrail, session/thread/multimodal store, and sandbox provider factories):
Trace.get() builds an instance via Trace._build() only when tracing is enabled, each built-in's
lazy import is wrapped in require_extra (so a missing optional dependency raises an actionable
ImportError naming the pip extra), and anything that isn't a recognized short name is treated as
a dotted path to a BaseTrace subclass (bring-your-own). When tracing is disabled, instance stays
None and the factory returns Trace(None), whose init() and framework methods no-op / return
None:
_BUILTIN_TRACERS = ["langfuse", "openllmetry", "logfire", "cloudwatch"]
class Trace(BaseTrace):
@classmethod
def get(cls) -> "Trace":
config = AKConfig.get()
instance = cls._build(config.trace.type) if config.trace.enabled else None
trace = cls(instance)
trace.init()
return trace
@staticmethod
def _build(trace_type: str) -> BaseTrace:
if trace_type == "langfuse":
with require_extra("langfuse", "trace.type: langfuse"):
from .langfuse.langfuse import LangFuse
return LangFuse()
if trace_type == "openllmetry":
with require_extra("openllmetry", "trace.type: openllmetry"):
from .openllmetry.openllmetry import OpenLLMetry
return OpenLLMetry()
if trace_type == "logfire":
with require_extra("logfire", "trace.type: logfire"):
from .logfire.logfire import Logfire
return Logfire()
if trace_type == "cloudwatch":
with require_extra("cloudwatch", "trace.type: cloudwatch"):
from .cloudwatch.cloudwatch import CloudWatch
return CloudWatch()
if trace_type == "<provider>": # ADD THIS
with require_extra("<provider>", "trace.type: <provider>"):
from .<provider>.<provider> import <Provider>
return <Provider>()
if "." not in trace_type:
raise AKConfigError(
f"unknown trace type '{trace_type}'; expected one of {_BUILTIN_TRACERS} or a dotted path to a BaseTrace subclass"
)
return resolve_dotted(trace_type, base=BaseTrace)() # bring-your-ownA dotted type (e.g. myorg.tracing.CustomTrace) resolves via resolve_dotted without any
factory edit at all — only add an if branch here for a first-party, in-repo provider you want
addressable by a short name.
The existing _TraceConfig.type in config.py is a free-form string (no regex pattern) described
as "a built-in short name (langfuse, openllmetry, logfire, cloudwatch) or a dotted path to a BaseTrace subclass" — do
not add a pattern= constraint, since that would break the bring-your-own path. Your provider
needs to respond to type: "<provider>":
# config.yaml
trace:
enabled: true
type: <provider>Add provider-specific environment variables as needed (e.g., PROVIDER_API_KEY).
In ak-py/pyproject.toml:
[project.optional-dependencies]
<provider> = [
"provider-sdk>=x.y.z",
# Add any framework-specific instrumentation packages
]Create ak-py/tests/test_trace_<provider>.py, and add a missing-extra test to tests/test_trace.py asserting the friendly agentkernel[<provider>] ImportError. Two existing files show the two styles: test_trace_logfire.py injects a fake SDK module into sys.modules (the SDK is not a test dependency), and test_trace_cloudwatch.py records spans with a real OpenTelemetry SDK TracerProvider and InMemorySpanExporter while patching trace.get_tracer_provider / set_tracer_provider (the global provider is settable once per process, so a test must never install one). Cover:
type: "<provider>"Add docs/docs/advanced/tracing-<provider>.md covering:
Then update the landing page inventories in docs/src/components/*/data.tsx: add a tile to the Observability, safety & testing row in IntegrationsMarquee/data.tsx (role Tracing, href to the provider's docs page, logo under docs/static/img/integrations/ or a react-icons/si glyph); add the provider to the Tracing card's tags and description under the Observe tab in FeatureExplorer/data.tsx; optionally add pick("<tile name>") to the Clouds & observability card in ArchitectureOverview/data.tsx if it is a headline backend. Logo sourcing and the build check are in ak-dev-sync-docs-from-branch, Docs-Site Landing and Features Pages.
Then add the provider to the docs-site features page (docs/src/pages/features.tsx): the Observability card's highlights list one entry per provider, and the Problem section's rows name the built-in tracing providers in a with: cell. Grep docs/src/pages/*.tsx for "Langfuse" to find every roll call.
Each framework Module's constructor checks for tracing:
class OpenAIModule(Module):
def __init__(self, agents):
super().__init__()
trace_runner = Trace.get().openai() # Returns traced Runner or None
self.runner = trace_runner if trace_runner else OpenAIRunner()
self.load(agents)This means tracing is transparent — users don't change their agent code, they just add trace config.
ak-py/src/agentkernel/trace/<provider>/ directory with __init__.py and main classtrace/trace.py factorytype: "<provider>" in config.yamlpyproject.tomldocs/docs/advanced/tracing-<provider>.mdIntegrationsMarquee/data.tsx), Tracing card tags (FeatureExplorer/data.tsx); features page Observability highlights and with: cells© yaalalabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/ak-dev-new-tracing-provider of yaalalabs/agent-kernel.
Open the folder on GitHubat commit 97fa8d9
Ak Dev New Tracing Provider next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ak Dev New Tracing Provider this skillyaalalabs/agent-kernel | 192 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Ag2 Telemetryag2ai/build-with-ag2 | 252 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Agentsop Observability Setupagentsope/SkillAlchemy | 436 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Logfire Infrastructurepydantic/skills | 140 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Backend Dev Guidelineslangfuse/langfuse | 36k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Arize PhoenixArize-ai/phoenix | 12k | — | ~3.8k | Automated safety check: Pass | MIT |
ag2ai/build-with-ag2
Add OpenTelemetry traces to an AG2 beta Agent via TelemetryMiddleware (autogen.beta.middleware.builtin).
agentsope/SkillAlchemy
Enhancement-overlay skill — the DECISION + WIRING layer for LM observability that the single-backend skills [[langsmith]], [[phoenix]], [[mlflow]] do NOT cover.
pydantic/skills
Monitor hosts, Docker containers, Kubernetes clusters, database/queue/cache servers, and cloud-provider metrics with Pydantic Logfire — no application code required.
langfuse/langfuse
Build or review Langfuse backend code. An agent skill from langfuse/langfuse.
Arize-ai/phoenix
Open-source AI observability platform for tracing, evaluating, and improving LLM applications with OpenTelemetry integration
jeremylongshore/tons-of-skills-marketplace
Wire LangSmith tracing and custom metric callbacks into a LangChain 1.0 chain or LangGraph 1.0 agent correctly — env-var spelling, subgraph propagation, per-tenant dimensions, cost and latency…
yaalalabs/agent-kernel
Code quality standards, formatting, Python style rules (classes over script-style functions, configuration-field rules), commit conventions, and PR workflow for Agent Kernel development.
yaalalabs/agent-kernel
Step-by-step guide for adding a new built-in test evaluator provider to Agent Kernel (beyond DeepEval, Opik and JEV).
yaalalabs/agent-kernel
Step-by-step guide for adding a new guardrail provider to Agent Kernel.
yaalalabs/agent-kernel
Step-by-step guide for adding a new knowledge base backend to Agent Kernel.
yaalalabs/agent-kernel
Step-by-step guide for adding a new messaging platform integration to Agent Kernel.
yaalalabs/agent-kernel
Step-by-step guide for adding a new multimodal attachment storage backend to Agent Kernel.
Categories
Step-by-step guide for adding a new observability/tracing provider to Agent Kernel. Ak Dev New Tracing Provider is an agent skill from yaalalabs/agent-kernel. Step-by-step guide for adding a new observability/tracing provider to Agent Kernel.
Ak Dev New Tracing Provider fits situations like: you need to integrate a new tracing backend (beyond Langfuse; openLLMetry/Traceloop; pydantic Logfire; AWS CloudWatch).
Run `npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a claude-code`. Or copy the skill folder (.agents/skills/ak-dev-new-tracing-provider in yaalalabs/agent-kernel) into .claude/skills/ak-dev-new-tracing-provider in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a codex`. Or copy the skill folder (.agents/skills/ak-dev-new-tracing-provider in yaalalabs/agent-kernel) into .agents/skills/ak-dev-new-tracing-provider in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yaalalabs/agent-kernel --skill ak-dev-new-tracing-provider -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ak-dev-new-tracing-provider, .gemini/skills/ak-dev-new-tracing-provider, .github/skills/ak-dev-new-tracing-provider and .opencode/skills/ak-dev-new-tracing-provider in your project.
Going by SKILL.md and its folder, Ak Dev New Tracing Provider needs credentials named PROVIDER_API_KEY. Our summary lists: Python 3; A credential in PROVIDER_API_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ak Dev New Tracing Provider is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ak Dev New Tracing Provider: Ag2 Telemetry (ag2ai/build-with-ag2, 252 stars), Agentsop Observability Setup (agentsope/SkillAlchemy, 436 stars), Logfire Infrastructure (pydantic/skills, 140 stars) and Backend Dev Guidelines (langfuse/langfuse, 36k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yaalalabs (a GitHub organization) maintains it in yaalalabs/agent-kernel, which has 192 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 9, 2026.
Source: yaalalabs/agent-kernel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.