From 2ea2ef62e42b113ef0b30aa8a4e29bc0a1e7cb55 Mon Sep 17 00:00:00 2001 From: 7Sageer Date: Wed, 19 Aug 2026 17:13:03 +0800 Subject: [PATCH] feat(agent-core-v2): report the bound model alias in subagent_created telemetry (#3086) --- packages/agent-core-v2/src/app/telemetry/events.ts | 2 ++ .../agent-core-v2/src/session/subagent/mirrorAgentRun.ts | 7 +++++-- packages/agent-core-v2/test/tool/tool.test.ts | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/agent-core-v2/src/app/telemetry/events.ts b/packages/agent-core-v2/src/app/telemetry/events.ts index ac4153cfa..6d608bb92 100644 --- a/packages/agent-core-v2/src/app/telemetry/events.ts +++ b/packages/agent-core-v2/src/app/telemetry/events.ts @@ -345,6 +345,7 @@ export interface SubagentCreatedEvent { agent_id: string; parent_agent_id: string; parent_tool_call_id: string; + model?: string; } export interface McpConnectedEvent { @@ -848,6 +849,7 @@ export const telemetryEventDefinitions = { agent_id: 'Child agent id', parent_agent_id: 'Parent (caller) agent id', parent_tool_call_id: "Tool call id of the launching call in the parent agent; '' when not launched from a tool call", + model: 'Model alias the subagent binds to (secondary-model choice or inherited caller model); omitted when no binding was resolved', }, }), mcp_connected: defineTelemetryEvent({ diff --git a/packages/agent-core-v2/src/session/subagent/mirrorAgentRun.ts b/packages/agent-core-v2/src/session/subagent/mirrorAgentRun.ts index 5d59f6c31..66aff73ee 100644 --- a/packages/agent-core-v2/src/session/subagent/mirrorAgentRun.ts +++ b/packages/agent-core-v2/src/session/subagent/mirrorAgentRun.ts @@ -6,6 +6,7 @@ import { IAgentProfileService } from '#/agent/profile/profile'; import { isProviderRateLimitError } from '#/kosong/contract/errors'; import { type TokenUsage } from '#/kosong/contract/usage'; import { ITelemetryService } from '#/app/telemetry/telemetry'; +import type { SubagentCreatedEvent } from '#/app/telemetry/events'; import { Event2 } from '#/app/event/event2'; import { isAbortError } from '#/_base/utils/abort'; import { IAgentLifecycleService } from '#/session/agentLifecycle/agentLifecycle'; @@ -114,13 +115,15 @@ export function emitAgentRunSpawned( }), ); childProfile?.republishStatus(); - requester.accessor.get(ITelemetryService)?.track2('subagent_created', { + const telemetryEvent: SubagentCreatedEvent = { subagent_name: meta.profileName, run_in_background: meta.runInBackground ?? false, agent_id: targetAgentId, parent_agent_id: requester.id, parent_tool_call_id: meta.parentToolCallId ?? '', - }); + model: meta.model, + }; + requester.accessor.get(ITelemetryService)?.track2('subagent_created', telemetryEvent); } export async function mirrorAgentRun( diff --git a/packages/agent-core-v2/test/tool/tool.test.ts b/packages/agent-core-v2/test/tool/tool.test.ts index f581c4d66..9e5fb3036 100644 --- a/packages/agent-core-v2/test/tool/tool.test.ts +++ b/packages/agent-core-v2/test/tool/tool.test.ts @@ -1532,6 +1532,7 @@ describe('Agent tool execution contract', () => { agent_id: 'agent-child', parent_agent_id: 'main', parent_tool_call_id: 'call_agent', + model: 'provider/secondary', }, }); expect(events.find((event) => event.type === 'subagent.completed')).toMatchObject({