@arizeai/openinference-genai 0.1.10 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { ATTR_GEN_AI_AGENT_DESCRIPTION, ATTR_GEN_AI_AGENT_ID, ATTR_GEN_AI_AGENT_NAME, ATTR_GEN_AI_COMPLETION, ATTR_GEN_AI_INPUT_MESSAGES, ATTR_GEN_AI_OUTPUT_MESSAGES, ATTR_GEN_AI_PROMPT, ATTR_GEN_AI_PROVIDER_NAME, ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY, ATTR_GEN_AI_REQUEST_MAX_TOKENS, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY, ATTR_GEN_AI_REQUEST_SEED, ATTR_GEN_AI_REQUEST_STOP_SEQUENCES, ATTR_GEN_AI_REQUEST_TEMPERATURE, ATTR_GEN_AI_REQUEST_TOP_K, ATTR_GEN_AI_REQUEST_TOP_P, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_DESCRIPTION, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_TOOL_TYPE, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, } from "@opentelemetry/semantic-conventions/incubating";
1
+ import { ATTR_GEN_AI_AGENT_DESCRIPTION, ATTR_GEN_AI_AGENT_ID, ATTR_GEN_AI_AGENT_NAME, ATTR_GEN_AI_COMPLETION, ATTR_GEN_AI_INPUT_MESSAGES, ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_OUTPUT_MESSAGES, ATTR_GEN_AI_PROMPT, ATTR_GEN_AI_PROVIDER_NAME, ATTR_GEN_AI_REQUEST_FREQUENCY_PENALTY, ATTR_GEN_AI_REQUEST_MAX_TOKENS, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_REQUEST_PRESENCE_PENALTY, ATTR_GEN_AI_REQUEST_SEED, ATTR_GEN_AI_REQUEST_STOP_SEQUENCES, ATTR_GEN_AI_REQUEST_TEMPERATURE, ATTR_GEN_AI_REQUEST_TOP_K, ATTR_GEN_AI_REQUEST_TOP_P, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_DESCRIPTION, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_TOOL_TYPE, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, GEN_AI_OPERATION_NAME_VALUE_CHAT, GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT, GEN_AI_OPERATION_NAME_VALUE_EMBEDDINGS, GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL, GEN_AI_OPERATION_NAME_VALUE_GENERATE_CONTENT, GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT, GEN_AI_OPERATION_NAME_VALUE_INVOKE_WORKFLOW, GEN_AI_OPERATION_NAME_VALUE_RETRIEVAL, GEN_AI_OPERATION_NAME_VALUE_TEXT_COMPLETION, } from "@opentelemetry/semantic-conventions/incubating";
2
2
  import { OpenInferenceSpanKind, SemanticConventions, } from "@arizeai/openinference-semantic-conventions";
3
3
  import { getMimeType, getNumber, getString, getStringArray, merge, safelyJSONStringify, safelyParseJSON, set, toStringContent, } from "./utils.js";
4
4
  const AGENT_KIND_PREFIXES = [
@@ -6,12 +6,51 @@ const AGENT_KIND_PREFIXES = [
6
6
  ATTR_GEN_AI_AGENT_NAME,
7
7
  ATTR_GEN_AI_AGENT_DESCRIPTION,
8
8
  ];
9
+ // "plan" was added to the OTel GenAI semantic conventions
10
+ // (open-telemetry/semantic-conventions-genai#97, merged 2026-05-11) but is not yet released,
11
+ // so @opentelemetry/semantic-conventions exports no constant for it — hence the literal.
12
+ const GEN_AI_OPERATION_NAME_VALUE_PLAN = "plan";
13
+ // gen_ai.operation.name values that classify a span by OpenInference span kind. Mirrors
14
+ // AGENT_KIND_PREFIXES / TOOL_EXECUTION_PREFIXES. These operations are recognized by value
15
+ // because the conversion target — OpenInferenceSpanKind — is a closed enum with no per-
16
+ // operation member, so each operation must be mapped into our vocabulary; the original
17
+ // operation name is not preserved on the OI span.
18
+ const AGENT_OPERATIONS = new Set([
19
+ GEN_AI_OPERATION_NAME_VALUE_CREATE_AGENT,
20
+ GEN_AI_OPERATION_NAME_VALUE_INVOKE_AGENT,
21
+ GEN_AI_OPERATION_NAME_VALUE_PLAN,
22
+ ]);
23
+ // "invoke_workflow" maps to CHAIN rather than AGENT: a workflow is a fixed orchestration of
24
+ // steps (a chain), whereas AGENT is reserved for autonomous, LLM-driven control flow. An
25
+ // explicit agent identity (agent.* attribute) still takes precedence and yields AGENT; see
26
+ // mapSpanKind.
27
+ const CHAIN_OPERATIONS = new Set([
28
+ GEN_AI_OPERATION_NAME_VALUE_INVOKE_WORKFLOW,
29
+ ]);
30
+ // Terminal operations describe a single concrete model/data call (a leaf in the span tree),
31
+ // each with a direct OpenInference span kind. operation.name is authoritative for these — an
32
+ // agent.* identity on them is context (which agent owns the call), not a signal to upgrade
33
+ // the span to AGENT (see mapSpanKind).
34
+ const TERMINAL_OPERATION_SPAN_KINDS = new Map([
35
+ [GEN_AI_OPERATION_NAME_VALUE_CHAT, OpenInferenceSpanKind.LLM],
36
+ [GEN_AI_OPERATION_NAME_VALUE_TEXT_COMPLETION, OpenInferenceSpanKind.LLM],
37
+ [GEN_AI_OPERATION_NAME_VALUE_GENERATE_CONTENT, OpenInferenceSpanKind.LLM],
38
+ [GEN_AI_OPERATION_NAME_VALUE_EMBEDDINGS, OpenInferenceSpanKind.EMBEDDING],
39
+ [GEN_AI_OPERATION_NAME_VALUE_RETRIEVAL, OpenInferenceSpanKind.RETRIEVER],
40
+ [GEN_AI_OPERATION_NAME_VALUE_EXECUTE_TOOL, OpenInferenceSpanKind.TOOL],
41
+ ]);
9
42
  const TOOL_EXECUTION_PREFIXES = [
10
43
  ATTR_GEN_AI_TOOL_NAME,
11
44
  ATTR_GEN_AI_TOOL_DESCRIPTION,
12
45
  ATTR_GEN_AI_TOOL_CALL_ID,
13
46
  ATTR_GEN_AI_TOOL_TYPE,
14
47
  ];
48
+ const ATTR_GEN_AI_SYSTEM_INSTRUCTIONS = "gen_ai.system_instructions";
49
+ const ATTR_GEN_AI_TOOL_DEFINITIONS = "gen_ai.tool.definitions";
50
+ const ATTR_GEN_AI_TOOL_CALL_ARGUMENTS = "gen_ai.tool.call.arguments";
51
+ const ATTR_GEN_AI_TOOL_CALL_RESULT = "gen_ai.tool.call.result";
52
+ const ATTR_GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS = "gen_ai.usage.cache_read.input_tokens";
53
+ const ATTR_GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS = "gen_ai.usage.cache_creation.input_tokens";
15
54
  /**
16
55
  * Type guard for a GenAI chat message
17
56
  * @param value - The value to check
@@ -28,6 +67,58 @@ const isGenAIChatMessage = (value) => {
28
67
  return false;
29
68
  return true;
30
69
  };
70
+ /**
71
+ * Normalize a GenAI tool definition into the OpenAI-style tool schema shape expected by OpenInference.
72
+ * @param toolDefinition - The tool definition to normalize
73
+ * @returns The normalized tool definition, or the original value when it cannot be normalized
74
+ */
75
+ const normalizeToolDefinition = (toolDefinition) => {
76
+ if (typeof toolDefinition !== "object" ||
77
+ toolDefinition === null ||
78
+ Array.isArray(toolDefinition)) {
79
+ return toolDefinition;
80
+ }
81
+ const definition = toolDefinition;
82
+ if (typeof definition.function === "object" && definition.function !== null) {
83
+ return definition;
84
+ }
85
+ if (typeof definition.name !== "string") {
86
+ return definition;
87
+ }
88
+ const parameters = definition.parameters ?? definition.inputSchema ?? definition.input_schema;
89
+ const normalizedFunction = { name: definition.name };
90
+ if (typeof definition.description === "string") {
91
+ normalizedFunction.description = definition.description;
92
+ }
93
+ if (parameters != null) {
94
+ normalizedFunction.parameters = parameters;
95
+ }
96
+ return {
97
+ type: typeof definition.type === "string" ? definition.type : "function",
98
+ function: normalizedFunction,
99
+ };
100
+ };
101
+ const getSystemInstructionParts = (spanAttributes) => {
102
+ const systemInstructions = getString(spanAttributes[ATTR_GEN_AI_SYSTEM_INSTRUCTIONS]);
103
+ if (systemInstructions == null) {
104
+ return null;
105
+ }
106
+ const parsedInstructions = safelyParseJSON(systemInstructions);
107
+ if (Array.isArray(parsedInstructions)) {
108
+ const parts = parsedInstructions.flatMap((part) => {
109
+ if (typeof part === "object" &&
110
+ part !== null &&
111
+ "type" in part &&
112
+ part.type === "text" &&
113
+ "content" in part) {
114
+ return [{ type: "text", content: toStringContent(part.content) }];
115
+ }
116
+ return [];
117
+ });
118
+ return parts.length > 0 ? parts : null;
119
+ }
120
+ return [{ type: "text", content: systemInstructions }];
121
+ };
31
122
  /**
32
123
  * Process genai message parts into openinference attributes
33
124
  *
@@ -72,10 +163,7 @@ const processMessageParts = ({ attrs, msgPrefix, parts, }) => {
72
163
  const id = part.id ?? undefined;
73
164
  const response = toStringContent(part.response);
74
165
  set(attrs, `${msgPrefix}${SemanticConventions.MESSAGE_TOOL_CALL_ID}`, id);
75
- const contentPrefix = `${msgPrefix}${SemanticConventions.MESSAGE_CONTENTS}.${contentIndex}.`;
76
- set(attrs, `${contentPrefix}${SemanticConventions.MESSAGE_CONTENT_TYPE}`, "text");
77
- set(attrs, `${contentPrefix}${SemanticConventions.MESSAGE_CONTENT_TEXT}`, response);
78
- contentIndex += 1;
166
+ set(attrs, `${msgPrefix}${SemanticConventions.MESSAGE_CONTENT}`, response);
79
167
  continue;
80
168
  }
81
169
  default: {
@@ -91,13 +179,27 @@ const processMessageParts = ({ attrs, msgPrefix, parts, }) => {
91
179
  }
92
180
  }
93
181
  };
182
+ /**
183
+ * Set OpenInference attributes for a single tool response message.
184
+ *
185
+ * GenAI can group multiple tool_call_response parts under one tool-role message;
186
+ * each response needs its own OpenInference message to avoid overwriting siblings.
187
+ * @param params - The tool response message mapping parameters
188
+ */
189
+ const setToolCallResponseMessage = ({ attrs, msgPrefix, part, }) => {
190
+ const id = part.id ?? undefined;
191
+ const response = toStringContent(part.response);
192
+ set(attrs, `${msgPrefix}${SemanticConventions.MESSAGE_ROLE}`, "tool");
193
+ set(attrs, `${msgPrefix}${SemanticConventions.MESSAGE_TOOL_CALL_ID}`, id);
194
+ set(attrs, `${msgPrefix}${SemanticConventions.MESSAGE_CONTENT}`, response);
195
+ };
94
196
  /**
95
197
  * Convert GenAI span attributes to OpenInference span attributes
96
198
  * @param spanAttributes - The span attributes containing GenAI span attributes to convert
97
199
  * @returns The converted OpenInference span attributes
98
200
  */
99
201
  export const convertGenAISpanAttributesToOpenInferenceSpanAttributes = (spanAttributes) => {
100
- return merge(mapProviderAndSystem(spanAttributes), mapModels(spanAttributes), mapSpanKind(spanAttributes), mapInvocationParameters(spanAttributes), mapInputMessages(spanAttributes), mapOutputMessages(spanAttributes), mapTokenCounts(spanAttributes), mapToolExecution(spanAttributes), mapInputValue(spanAttributes), mapOutputValue(spanAttributes));
202
+ return merge(mapProviderAndSystem(spanAttributes), mapAgentAttributes(spanAttributes), mapModels(spanAttributes), mapSpanKind(spanAttributes), mapInvocationParameters(spanAttributes), mapInputMessages(spanAttributes), mapOutputMessages(spanAttributes), mapAgent(spanAttributes), mapSystemInstructions(spanAttributes), mapToolDefinitions(spanAttributes), mapTokenCounts(spanAttributes), mapToolExecution(spanAttributes), mapInputValue(spanAttributes), mapOutputValue(spanAttributes));
101
203
  };
102
204
  /**
103
205
  * Map provider and system to openinference attributes
@@ -108,9 +210,26 @@ export const convertGenAISpanAttributesToOpenInferenceSpanAttributes = (spanAttr
108
210
  export const mapProviderAndSystem = (spanAttributes) => {
109
211
  const attrs = {};
110
212
  const provider = getString(spanAttributes[ATTR_GEN_AI_PROVIDER_NAME]);
213
+ set(attrs, SemanticConventions.LLM_SYSTEM, provider);
111
214
  set(attrs, SemanticConventions.LLM_PROVIDER, provider);
112
215
  return attrs;
113
216
  };
217
+ /**
218
+ * Map GenAI agent attributes to OpenInference agent attributes.
219
+ *
220
+ * Currently only gen_ai.agent.name -> agent.name. gen_ai.agent.id and
221
+ * gen_ai.agent.description (which also drive AGENT span-kind detection in mapSpanKind) are
222
+ * intentionally not mapped, as OpenInference has no corresponding agent attributes for them.
223
+ *
224
+ * @param spanAttributes - The GenAI span attributes to read agent attributes from
225
+ * @returns The mapped OpenInference agent attributes
226
+ */
227
+ export const mapAgentAttributes = (spanAttributes) => {
228
+ const attrs = {};
229
+ const agentName = getString(spanAttributes[ATTR_GEN_AI_AGENT_NAME]);
230
+ set(attrs, SemanticConventions.AGENT_NAME, agentName);
231
+ return attrs;
232
+ };
114
233
  /**
115
234
  * Map model name to openinference attributes
116
235
  * @param spanAttributes - The span attributes containing model name to map
@@ -133,11 +252,27 @@ export const mapSpanKind = (spanAttributes) => {
133
252
  const attrs = {};
134
253
  // default to LLM for now
135
254
  let spanKind = OpenInferenceSpanKind.LLM;
136
- // detect agent kind
137
- if (AGENT_KIND_PREFIXES.some((prefix) => spanAttributes[prefix])) {
255
+ const operationName = getString(spanAttributes[ATTR_GEN_AI_OPERATION_NAME]);
256
+ const terminalSpanKind = operationName !== undefined ? TERMINAL_OPERATION_SPAN_KINDS.get(operationName) : undefined;
257
+ const hasAgentAttributes = AGENT_KIND_PREFIXES.some((prefix) => spanAttributes[prefix]);
258
+ if (terminalSpanKind !== undefined) {
259
+ // Concrete leaf operation (chat/text_completion/generate_content/embeddings/retrieval/
260
+ // execute_tool): authoritative. An agent.* identity here is just context (which agent
261
+ // owns the call) and does not upgrade it to AGENT.
262
+ spanKind = terminalSpanKind;
263
+ }
264
+ else if (hasAgentAttributes ||
265
+ (operationName !== undefined && AGENT_OPERATIONS.has(operationName))) {
266
+ // Control-flow span: an agent.* identity, or an agent-class operation, makes it AGENT —
267
+ // even over a CHAIN-class operation like invoke_workflow.
138
268
  spanKind = OpenInferenceSpanKind.AGENT;
139
269
  }
140
- // detect tool execution kind
270
+ else if (operationName !== undefined && CHAIN_OPERATIONS.has(operationName)) {
271
+ // CHAIN-class operation, only reached when no agent identity is present.
272
+ spanKind = OpenInferenceSpanKind.CHAIN;
273
+ }
274
+ // Tool attributes force TOOL even when the operation says otherwise — covers tool-execution
275
+ // spans not labeled with operation.name = execute_tool.
141
276
  if (TOOL_EXECUTION_PREFIXES.some((prefix) => spanAttributes[prefix])) {
142
277
  spanKind = OpenInferenceSpanKind.TOOL;
143
278
  }
@@ -196,6 +331,9 @@ export const mapInputValue = (spanAttributes) => {
196
331
  // fallback to deprecated prompt attribute if input is not present
197
332
  input = getString(spanAttributes[ATTR_GEN_AI_PROMPT]);
198
333
  }
334
+ if (!input) {
335
+ input = getString(spanAttributes[ATTR_GEN_AI_INPUT_MESSAGES]);
336
+ }
199
337
  // only set input value and mime type if input is present
200
338
  if (input) {
201
339
  set(attrs, SemanticConventions.INPUT_VALUE, input);
@@ -215,6 +353,9 @@ export const mapOutputValue = (spanAttributes) => {
215
353
  // fallback to deprecated completion attribute if output is not present
216
354
  output = getString(spanAttributes[ATTR_GEN_AI_COMPLETION]);
217
355
  }
356
+ if (!output) {
357
+ output = getString(spanAttributes[ATTR_GEN_AI_OUTPUT_MESSAGES]);
358
+ }
218
359
  // only set output value and mime type if output is present
219
360
  if (output) {
220
361
  set(attrs, SemanticConventions.OUTPUT_VALUE, output);
@@ -222,6 +363,52 @@ export const mapOutputValue = (spanAttributes) => {
222
363
  }
223
364
  return attrs;
224
365
  };
366
+ /**
367
+ * Map GenAI agent attributes to OpenInference attributes.
368
+ * @param spanAttributes - The span attributes containing agent details
369
+ * @returns The mapped agent attributes
370
+ */
371
+ export const mapAgent = (spanAttributes) => {
372
+ const attrs = {};
373
+ set(attrs, SemanticConventions.AGENT_NAME, getString(spanAttributes[ATTR_GEN_AI_AGENT_NAME]));
374
+ return attrs;
375
+ };
376
+ /**
377
+ * Map GenAI system instructions into metadata for preservation.
378
+ * @param spanAttributes - The span attributes containing system instructions
379
+ * @returns The mapped metadata attributes
380
+ */
381
+ export const mapSystemInstructions = (spanAttributes) => {
382
+ const attrs = {};
383
+ const systemInstructions = getString(spanAttributes[ATTR_GEN_AI_SYSTEM_INSTRUCTIONS]);
384
+ if (systemInstructions) {
385
+ set(attrs, `${SemanticConventions.METADATA}.gen_ai.system_instructions`, systemInstructions);
386
+ const msgPrefix = `${SemanticConventions.LLM_INPUT_MESSAGES}.0.`;
387
+ set(attrs, `${msgPrefix}${SemanticConventions.MESSAGE_ROLE}`, "system");
388
+ processMessageParts({
389
+ attrs,
390
+ msgPrefix,
391
+ parts: getSystemInstructionParts(spanAttributes) ?? [],
392
+ });
393
+ }
394
+ return attrs;
395
+ };
396
+ /**
397
+ * Map GenAI tool definitions to OpenInference LLM tool schema attributes.
398
+ * @param spanAttributes - The span attributes containing tool definitions
399
+ * @returns The mapped tool schema attributes
400
+ */
401
+ export const mapToolDefinitions = (spanAttributes) => {
402
+ const attrs = {};
403
+ const toolDefinitions = getString(spanAttributes[ATTR_GEN_AI_TOOL_DEFINITIONS]);
404
+ const parsedToolDefinitions = safelyParseJSON(toolDefinitions);
405
+ if (Array.isArray(parsedToolDefinitions)) {
406
+ parsedToolDefinitions.forEach((toolDefinition, index) => {
407
+ set(attrs, `${SemanticConventions.LLM_TOOLS}.${index}.${SemanticConventions.TOOL_JSON_SCHEMA}`, safelyJSONStringify(normalizeToolDefinition(toolDefinition)));
408
+ });
409
+ }
410
+ return attrs;
411
+ };
225
412
  /**
226
413
  * Map input messages to openinference attributes
227
414
  * @param spanAttributes - The span attributes containing input messages to map
@@ -231,14 +418,25 @@ export const mapInputMessages = (spanAttributes) => {
231
418
  const attrs = {};
232
419
  const genAIInputMessages = safelyParseJSON(spanAttributes[ATTR_GEN_AI_INPUT_MESSAGES]);
233
420
  if (Array.isArray(genAIInputMessages)) {
234
- genAIInputMessages.forEach((msg, msgIndex) => {
421
+ let msgIndex = getSystemInstructionParts(spanAttributes) != null ? 1 : 0;
422
+ genAIInputMessages.forEach((msg) => {
235
423
  if (!isGenAIChatMessage(msg))
236
424
  return;
425
+ const toolCallResponses = msg.parts.filter((part) => part?.type === "tool_call_response");
426
+ if (msg.role === "tool" && toolCallResponses.length > 0) {
427
+ toolCallResponses.forEach((part) => {
428
+ const msgPrefix = `${SemanticConventions.LLM_INPUT_MESSAGES}.${msgIndex}.`;
429
+ setToolCallResponseMessage({ attrs, msgPrefix, part });
430
+ msgIndex += 1;
431
+ });
432
+ return;
433
+ }
237
434
  const msgPrefix = `${SemanticConventions.LLM_INPUT_MESSAGES}.${msgIndex}.`;
238
435
  // set the message role
239
436
  set(attrs, `${msgPrefix}${SemanticConventions.MESSAGE_ROLE}`, msg.role);
240
437
  // process and set the rest of the message parts
241
438
  processMessageParts({ attrs, msgPrefix, parts: msg.parts });
439
+ msgIndex += 1;
242
440
  });
243
441
  }
244
442
  return attrs;
@@ -274,6 +472,8 @@ export const mapTokenCounts = (spanAttributes) => {
274
472
  const attrs = {};
275
473
  const inputTokens = getNumber(spanAttributes[ATTR_GEN_AI_USAGE_INPUT_TOKENS]);
276
474
  const outputTokens = getNumber(spanAttributes[ATTR_GEN_AI_USAGE_OUTPUT_TOKENS]);
475
+ const cacheReadInputTokens = getNumber(spanAttributes[ATTR_GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS]);
476
+ const cacheCreationInputTokens = getNumber(spanAttributes[ATTR_GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS]);
277
477
  if (typeof inputTokens === "number") {
278
478
  set(attrs, SemanticConventions.LLM_TOKEN_COUNT_PROMPT, inputTokens);
279
479
  }
@@ -283,6 +483,12 @@ export const mapTokenCounts = (spanAttributes) => {
283
483
  if (typeof inputTokens === "number" && typeof outputTokens === "number") {
284
484
  set(attrs, SemanticConventions.LLM_TOKEN_COUNT_TOTAL, inputTokens + outputTokens);
285
485
  }
486
+ if (typeof cacheReadInputTokens === "number") {
487
+ set(attrs, SemanticConventions.LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_READ, cacheReadInputTokens);
488
+ }
489
+ if (typeof cacheCreationInputTokens === "number") {
490
+ set(attrs, SemanticConventions.LLM_TOKEN_COUNT_PROMPT_DETAILS_CACHE_WRITE, cacheCreationInputTokens);
491
+ }
286
492
  return attrs;
287
493
  };
288
494
  /**
@@ -296,11 +502,21 @@ export const mapToolExecution = (spanAttributes) => {
296
502
  const toolName = getString(spanAttributes[ATTR_GEN_AI_TOOL_NAME]);
297
503
  const toolDescription = getString(spanAttributes[ATTR_GEN_AI_TOOL_DESCRIPTION]);
298
504
  const toolCallId = getString(spanAttributes[ATTR_GEN_AI_TOOL_CALL_ID]);
505
+ const toolCallArguments = getString(spanAttributes[ATTR_GEN_AI_TOOL_CALL_ARGUMENTS]);
506
+ const toolCallResult = getString(spanAttributes[ATTR_GEN_AI_TOOL_CALL_RESULT]);
299
507
  // parse supported tool details
300
- // note: while openinference can track parameters, gen_ai does not provide this information
301
508
  set(attrs, SemanticConventions.TOOL_NAME, toolName);
302
509
  set(attrs, SemanticConventions.TOOL_DESCRIPTION, toolDescription);
303
510
  set(attrs, SemanticConventions.TOOL_CALL_ID, toolCallId);
511
+ set(attrs, SemanticConventions.TOOL_PARAMETERS, toolCallArguments);
512
+ if (toolCallArguments) {
513
+ set(attrs, SemanticConventions.INPUT_VALUE, toolCallArguments);
514
+ set(attrs, SemanticConventions.INPUT_MIME_TYPE, getMimeType(toolCallArguments));
515
+ }
516
+ if (toolCallResult) {
517
+ set(attrs, SemanticConventions.OUTPUT_VALUE, toolCallResult);
518
+ set(attrs, SemanticConventions.OUTPUT_MIME_TYPE, getMimeType(toolCallResult));
519
+ }
304
520
  return attrs;
305
521
  };
306
522
  //# sourceMappingURL=attributes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/attributes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/attributes.ts"],"names":[],"mappings":"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"}