Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#192 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
80/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
java

Línea de trabajo

Abre braintrust-sdk/src/main/java/dev/braintrust/instrumentation/InstrumentationSemConv.java y lee OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS junto con addOpenAIServerSideChildSpans, usando la entrada existente code_interpreter_call como plantilla; la clave de entrada para shell_call es action. Luego añade una prueba en braintrust-sdk/src/test/java/dev/braintrust/instrumentation/InstrumentationSemConvTest.java que replique emitsWebSearchCallToolSpanParentedToLlm, y deja local_shell_call excluido como computer_call. Hecho significa que un elemento shell_call produce un span hijo con metadatos de entrada/salida y la nueva prueba pasa.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Java
Estrellas
21
Forks
5
Merge medio
1 d 1 h
PR fusionados (30 d)
5

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de braintrustdata/braintrust-sdk-java

Todos los issues de braintrustdata/braintrust-sdk-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.