Turning on chat.agentHost.otel.enabled produces telemetry only for Copilot sessions. Claude and Codex sessions emit nothing.
Today only CopilotAgent requests a telemetry config from the Agent Host OTel service, the Claude and Codex agents don't. Each harness also needs a different approach: Claude's subprocess environment is deliberately minimal and drops OTel variables, and Codex reads its telemetry config from ~/.codex/config.toml rather than environment variables.
Asks:
- Emit the same core telemetry for Claude and Codex sessions. Copilot agent hose session currently produce:
gen_ai.operation.name
gen_ai.conversation.id
gen_ai.agent.name
gen_ai.request.model / gen_ai.response.model
gen_ai.usage.input_tokens / gen_ai.usage.output_tokens
gen_ai.usage.cache_read.input_tokens / gen_ai.usage.cache_creation.input_tokens
gen_ai.tool.name / gen_ai.tool.call.id
vscode.agent_host.session.uri
- Include a provider/harness attribute so consumers can tell sessions apart
- Make sure every agent host signal carries a consistent session identifier
Turning on
chat.agentHost.otel.enabledproduces telemetry only for Copilot sessions. Claude and Codex sessions emit nothing.Today only
CopilotAgentrequests a telemetry config from the Agent Host OTel service, the Claude and Codex agents don't. Each harness also needs a different approach: Claude's subprocess environment is deliberately minimal and drops OTel variables, and Codex reads its telemetry config from ~/.codex/config.toml rather than environment variables.Asks:
gen_ai.operation.namegen_ai.conversation.idgen_ai.agent.namegen_ai.request.model/gen_ai.response.modelgen_ai.usage.input_tokens/gen_ai.usage.output_tokensgen_ai.usage.cache_read.input_tokens/gen_ai.usage.cache_creation.input_tokensgen_ai.tool.name/gen_ai.tool.call.idvscode.agent_host.session.uri