github / github/copilot-cli

OTel: parallel task dispatch emits successful chat spans without response identity or usage

Aberta
#4,860 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

triage
Linguagem predominante
Shell
Estrelas
11.2k
Forks
1.9k
Merge médio
14h 16min
PRs com merge (30d)
6

Descrição

Describe the bug

With metadata-only OpenTelemetry file export enabled, a prompt-mode run that dispatches two named subagents emits two chat spans that have successful status and a stop finish reason but omit all of:

  • gen_ai.response.id
  • gen_ai.response.model
  • gen_ai.usage.input_tokens
  • gen_ai.usage.output_tokens

This also occurs when the parent model is explicitly pinned, so it is not limited to --model auto.

The remaining parent and subagent chat spans in the same trace contain complete request/response model and usage fields.

Affected version

GitHub Copilot CLI 1.0.83 on macOS.

Steps to reproduce
  1. Enable the file exporter and force content capture off.
  2. Run prompt mode with streaming enabled and an explicitly pinned parent model.
  3. In one synthetic prompt, use the task tool twice with two named agent types and explicit models.
  4. Parse the resulting JSONL.

A representative trace contained one root invoke_agent, two execute_tool task spans, two nested named invoke_agent spans, and seven chat spans. Every completed-response chat had the expected provider, request model, response model, response ID, and usage. Two root-level chats had request model, streaming=true, status code 0, and finish reason stop, but no response identity or usage.

Expected behavior

Each logical completed inference should contain independently reported response identity and usage when available. An abandoned, cancelled, routing, or retry attempt should not look like a successful completed chat: it should carry an explicit attempt/outcome classification or a non-success terminal status. Consumers must not have to synthesize gen_ai.response.model from the requested model.

Privacy

The reproduction used synthetic prompts with OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=false. No prompt, response, repository, or credential content is included here.

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece reproduzindo o trace de prompt-mode com exportação do OpenTelemetry somente de metadados, streaming, um modelo pai explicitamente fixado e dois agentes de tarefa nomeados. Analise o JSONL resultante e compare os dois spans de chat incompletos no nível raiz com os spans de chat completos. O trabalho estará concluído quando toda inferência concluída relatar a identidade da resposta e o uso quando disponíveis, enquanto as tentativas abandonadas ou não concluídas não forem marcadas como bem-sucedidas.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
shell
Domínio
observability
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Ativa
Clareza
Razoavelmente clara
Facilidade para iniciantes
52/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.