Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Offen Anfängerfreundlich
#192 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
80/100
Issue-Typ
Feature
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
java
Bereich
observability

Rechercherichtung

Öffne braintrust-sdk/src/main/java/dev/braintrust/instrumentation/InstrumentationSemConv.java und lies OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS zusammen mit addOpenAIServerSideChildSpans, wobei du den vorhandenen code_interpreter_call-Eintrag als Vorlage verwendest; der Eingabeschlüssel für shell_call ist action. Füge dann in braintrust-sdk/src/test/java/dev/braintrust/instrumentation/InstrumentationSemConvTest.java einen Test hinzu, der emitsWebSearchCallToolSpanParentedToLlm nachbildet, und lasse local_shell_call wie computer_call ausgeschlossen. Fertig bedeutet, dass ein shell_call-Element einen untergeordneten Span mit Input-/Output-Metadaten erzeugt und der neue Test besteht.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Java
Sterne
21
Forks
5
Ø Merge
1 T. 1 Std.
Gemergte PRs (30 T.)
5

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus braintrustdata/braintrust-sdk-java

Alle Issues in braintrustdata/braintrust-sdk-java

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.