Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[bot] OpenAI Responses API hosted Shell tool (shell_call) missing from server-side tool child-span list

Đang mở Phù hợp với người mới
#192 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
80/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
observability

Hướng nghiên cứu

Mở braintrust-sdk/src/main/java/dev/braintrust/instrumentation/InstrumentationSemConv.java và đọc OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS cùng với addOpenAIServerSideChildSpans, dùng mục code_interpreter_call hiện có làm mẫu; khóa đầu vào cho shell_call là action. Sau đó thêm một bài kiểm thử trong braintrust-sdk/src/test/java/dev/braintrust/instrumentation/InstrumentationSemConvTest.java mô phỏng emitsWebSearchCallToolSpanParentedToLlm, và để local_shell_call bị loại trừ giống computer_call. Hoàn tất nghĩa là một mục shell_call tạo ra một span con với metadata đầu vào/đầu ra và bài kiểm thử mới chạy qua.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

java

Summary

OpenAI's Responses API added a built-in, server-executed "Hosted Shell" tool (launched Feb 10, 2026 per the official changelog). When used in hosted mode (environment.type = container_auto or container_reference), the model's shell commands are executed server-side by OpenAI inside a managed container — the same execution category as code_interpreter_call, which this repo already instruments with a dedicated child span.

This repo already has first-class support for structured per-tool child spans on Responses API output items: addOpenAIServerSideChildSpans / OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS in InstrumentationSemConv.java currently cover web_search_call, file_search_call, code_interpreter_call, and mcp_call, each getting a dedicated type:"tool" child span with input/output/metadata capture (mirroring the equivalent Anthropic server-tool-use span logic). computer_call and image_generation_call are deliberately excluded, each with an explicit code comment and a dedicated test explaining why (client-executed / unredacted base64 blob respectively).

The new hosted Shell tool's output item type, "shell_call" (paired with "shell_call_output"), is not in OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS and has no exclusion comment or test — it simply wasn't considered, since the tool launched after this feature was built. As a result, shell_call items fall through with no child span: no per-call input capture, no separate output/status/latency breakdown — unlike the functionally identical code_interpreter_call. (The raw item still appears in the parent span's full JSON passthrough, so data isn't entirely lost, but the structured tool-call span Braintrust's UI surfaces is missing for this tool.)

Item shapes, per official docs:

  • shell_call: {"type": "shell_call", "call_id": ..., "status": "in_progress", "action": {"commands": [...], "timeout_ms": ..., "max_output_length": ...}}
  • shell_call_output: output[] entries of {stdout, stderr, outcome: {type: "exit", exit_code} | {type: "timeout"}}

Note: this is distinct from the older, always-client-executed local_shell_call (Codex-only, deprecated — per OpenAI's own docs "the API only returns instructions; it does not execute them on OpenAI infrastructure" and "for new use cases, use the current shell tool"), which correctly should remain excluded the same way computer_call is.

Braintrust docs status: supported (for the covered tool set; shell_call absent)

https://www.braintrust.dev/docs/integrations/ai-providers/openai explicitly documents, for the Java SDK: "One child span per server-side tool call (web_search_call, file_search_call, code_interpreter_call, mcp_call)." shell_call is not listed, consistent with the code gap.

Upstream sources

Local repo files inspected

  • braintrust-sdk/src/main/java/dev/braintrust/instrumentation/InstrumentationSemConv.java — OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS (covered types), addOpenAIServerSideChildSpans (dispatch/continue-on-unknown-type behavior), the documented exclusions for computer_call/image_generation_call.
  • braintrust-sdk/src/test/java/dev/braintrust/instrumentation/InstrumentationSemConvTest.java — existing per-tool-type tests (e.g. emitsWebSearchCallToolSpanParentedToLlm), clientSideCallsAreNotSpanned, imageGenerationCallIsNotSpanned; no equivalent test or exclusion for shell_call.
  • Repo-wide case-insensitive search for shell_call / local_shell_call / hosted shell / ShellTool across source, tests, and VCR cassettes — zero matches.

Suggested fix

Add "shell_call" to OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS with its input key (action), following the same pattern as web_search_call, plus a test mirroring the existing code_interpreter_call/web_search_call child-span tests. The deprecated local_shell_call should remain excluded, consistent with the computer_call exclusion.

Ngôn ngữ chính
Java
Star
21
Fork
5
Merge trung bình
1 ngày 1 giờ
Pull request đã merge (30 ngày)
5

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của braintrustdata/braintrust-sdk-java

Tất cả issue của braintrustdata/braintrust-sdk-java

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.