OTel: parallel task dispatch emits successful chat spans without response identity or usage
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
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.idgen_ai.response.modelgen_ai.usage.input_tokensgen_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
- Enable the file exporter and force content capture off.
- Run prompt mode with streaming enabled and an explicitly pinned parent model.
- In one synthetic prompt, use the
tasktool twice with two named agent types and explicit models. - 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.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện trace của prompt-mode với hoạt động export OpenTelemetry chỉ gồm metadata, streaming, một mô hình cha được ghim rõ ràng và hai task agent có tên. Phân tích JSONL thu được và so sánh hai chat span chưa hoàn chỉnh ở cấp root với các chat span hoàn chỉnh. Được coi là hoàn tất khi mọi inference đã hoàn thành đều báo cáo response identity và usage nếu có, trong khi các lần thử bị bỏ dở hoặc chưa hoàn thành không bị đánh dấu là thành công.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- shell
- Lĩnh vực
- observability
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 52/100