From 67037d42cce77e806ac2612392f7234a70895414 Mon Sep 17 00:00:00 2001 From: "rosetta-livekit-bot[bot]" <282703043+rosetta-livekit-bot[bot]@users.noreply.github.com> Date: Sun, 4 Oct 2026 20:47:22 +0000 Subject: [PATCH] feat: include tool names in telemetry result parts --- .changeset/fresh-tools-report.md | 5 +++++ agents/src/telemetry/gen_ai.test.ts | 7 ++++++- agents/src/telemetry/gen_ai.ts | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .changeset/fresh-tools-report.md diff --git a/.changeset/fresh-tools-report.md b/.changeset/fresh-tools-report.md new file mode 100644 index 0000000000..e0b38c2a05 --- /dev/null +++ b/.changeset/fresh-tools-report.md @@ -0,0 +1,5 @@ +--- +'@livekit/agents': patch +--- + +Include tool names in telemetry result parts. diff --git a/agents/src/telemetry/gen_ai.test.ts b/agents/src/telemetry/gen_ai.test.ts index 40d8840cc7..899b6e9478 100644 --- a/agents/src/telemetry/gen_ai.test.ts +++ b/agents/src/telemetry/gen_ai.test.ts @@ -64,7 +64,12 @@ describe('gen_ai builders', () => { arguments: { loc: 'Paris' }, }); // a serialized payload is deserialized, as the convention asks of instrumentations - expect(messages[2]!.parts[0]!.response).toEqual({ temp: 14 }); + expect(messages[2]!.parts[0]).toEqual({ + type: 'tool_call_response', + id: 'call_1', + name: 'get_weather', + response: { temp: 14 }, + }); const output = genAI.toOutputMessages({ text: 'one moment', diff --git a/agents/src/telemetry/gen_ai.ts b/agents/src/telemetry/gen_ai.ts index 0a78f40b76..e381117665 100644 --- a/agents/src/telemetry/gen_ai.ts +++ b/agents/src/telemetry/gen_ai.ts @@ -158,6 +158,8 @@ function messageParts(item: ChatItem): MessagePart[] { parts.push({ type: 'tool_call_response', id: item.callId, + // Optional extension: the OTel response-part schema permits extra fields. + ...(item.name ? { name: item.name } : {}), response: maybeJson(item.output), }); }