Skip to content

Commit e4232fd

Browse files
authored
feat(claude-agent-sdk): capture gen_ai.skill.* on Skill load execute_tool span (#226)
2 parents 7ffb142 + b0bee4b commit e4232fd

7 files changed

Lines changed: 689 additions & 41 deletions

File tree

instrumentation-genai/opentelemetry-instrumentation-vertexai/src/opentelemetry/instrumentation/vertexai/patch.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ def handle_response(
173173
| None,
174174
) -> None:
175175
attributes = (
176-
get_server_attributes(instance.api_endpoint) # type: ignore[reportUnknownMemberType]
176+
get_server_attributes(instance.api_endpoint)
177177
| request_attributes
178178
| get_genai_response_attributes(response)
179179
)
@@ -257,7 +257,7 @@ def _with_default_instrumentation(
257257
kwargs: Any,
258258
):
259259
params = _extract_params(*args, **kwargs)
260-
api_endpoint: str = instance.api_endpoint # type: ignore[reportUnknownMemberType]
260+
api_endpoint: str = instance.api_endpoint
261261
span_attributes = {
262262
**get_genai_request_attributes(False, params),
263263
**get_server_attributes(api_endpoint),

instrumentation-loongsuite/loongsuite-instrumentation-claude-agent-sdk/CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## Unreleased
99

10+
### Added
11+
12+
- Capture `gen_ai.skill.name`, `gen_ai.skill.id`, `gen_ai.skill.description`
13+
and `gen_ai.skill.version` on the `execute_tool` span of the built-in
14+
`Skill` tool. Skill metadata is read best-effort from the project-level
15+
`SKILL.md` frontmatter (located via `SystemMessage.data.cwd`); `skill.id`
16+
is reported as `claude:project:<skill-name>`. Metadata read failures never
17+
affect the SDK call.
18+
1019
### Fixed
1120

1221
- Capture Claude Agent SDK session IDs on agent, LLM, and tool spans, and

instrumentation-loongsuite/loongsuite-instrumentation-claude-agent-sdk/src/opentelemetry/instrumentation/claude_agent_sdk/__init__.py

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,14 @@ def _instrument(self, **kwargs: Any) -> None:
102102
wrap_function_wrapper(
103103
module="claude_agent_sdk",
104104
name="ClaudeSDKClient.__init__",
105-
wrapper=lambda wrapped,
106-
instance,
107-
args,
108-
kwargs: wrap_claude_client_init(
109-
wrapped,
110-
instance,
111-
args,
112-
kwargs,
113-
handler=ClaudeAgentSDKInstrumentor._handler,
105+
wrapper=lambda wrapped, instance, args, kwargs: (
106+
wrap_claude_client_init(
107+
wrapped,
108+
instance,
109+
args,
110+
kwargs,
111+
handler=ClaudeAgentSDKInstrumentor._handler,
112+
)
114113
),
115114
)
116115
except Exception as e:
@@ -122,15 +121,14 @@ def _instrument(self, **kwargs: Any) -> None:
122121
wrap_function_wrapper(
123122
module="claude_agent_sdk",
124123
name="ClaudeSDKClient.query",
125-
wrapper=lambda wrapped,
126-
instance,
127-
args,
128-
kwargs: wrap_claude_client_query(
129-
wrapped,
130-
instance,
131-
args,
132-
kwargs,
133-
handler=ClaudeAgentSDKInstrumentor._handler,
124+
wrapper=lambda wrapped, instance, args, kwargs: (
125+
wrap_claude_client_query(
126+
wrapped,
127+
instance,
128+
args,
129+
kwargs,
130+
handler=ClaudeAgentSDKInstrumentor._handler,
131+
)
134132
),
135133
)
136134
except Exception as e:
@@ -140,15 +138,14 @@ def _instrument(self, **kwargs: Any) -> None:
140138
wrap_function_wrapper(
141139
module="claude_agent_sdk",
142140
name="ClaudeSDKClient.receive_response",
143-
wrapper=lambda wrapped,
144-
instance,
145-
args,
146-
kwargs: wrap_claude_client_receive_response(
147-
wrapped,
148-
instance,
149-
args,
150-
kwargs,
151-
handler=ClaudeAgentSDKInstrumentor._handler,
141+
wrapper=lambda wrapped, instance, args, kwargs: (
142+
wrap_claude_client_receive_response(
143+
wrapped,
144+
instance,
145+
args,
146+
kwargs,
147+
handler=ClaudeAgentSDKInstrumentor._handler,
148+
)
152149
),
153150
)
154151
except Exception as e:

0 commit comments

Comments
 (0)