Does OpenTelemetry record which agent skill caused a bad response?
As of September 2026, yes: a new gen_ai.skill.* attribute set records a skill load as its own event, on an execute_tool span whose tool name reads load_skill. gen_ai.skill.name carries the skill’s name, gen_ai.skill.source.uri carries where it loaded from, since the same name can point at a different source across a fleet, and gen_ai.skill.script.exit_code records whether its bundled script failed, where the framework exposes that.
An Agent Skill is a folder of instructions plus optional scripts an agent pulls into its own context on demand, and until now that pull was invisible: the call showed up as a tool named load_skill with opaque arguments, so when a loaded skill’s instructions pushed an agent off its own instructions, nothing in the trace named which skill did it. Attributes, not tool names, carry the convention because names differ per framework: Google ADK and Microsoft Agent Framework each expose three separate tools for loading, reading, and running a skill, spelled differently.
The convention is new, still carrying a development stability marker like the rest of the GenAI spec, and only ADK emits the exit-code attribute; a framework that hands script execution to an application-supplied runner has no process status of its own to read.