Skip to content

[bot] boxcars gem (LLM agent orchestration) not instrumented #188

Description

@braintrust-bot

Summary

The boxcars gem (v0.10.11, 64K+ downloads, released June 27, 2026) is an actively maintained Ruby LLM agent orchestration framework not instrumented by this SDK. Inspired by LangChain, it provides composable "Boxcar" tools and "Train" orchestrators driven by LLM generation, with a clear .run() execution surface across OpenAI, Anthropic, Groq, Gemini, Ollama, Perplexity, Cohere, and other providers.

What is missing

No instrumentation exists for any boxcars execution surface. Key APIs that should be instrumented:

Boxcar Execution (individual tools backed by LLM calls)

  • Boxcar#run(query) — Executes a single boxcar against a query. For LLM-backed boxcars (e.g., Boxcars::Conversation, Boxcars::SQL, Boxcars::ActiveRecord), this triggers a model generation call. Returns a string or structured result.

Train Execution (multi-boxcar agent orchestration)

  • Train#run(query) — Drives a multi-boxcar agent loop. The train uses a directing LLM (via ToolTrain with native tool calling, or ZeroShot with ReAct text reasoning) to select and run individual boxcars in sequence until a final answer is produced. Each turn is a new LLM generation call.
  • Boxcars::ToolTrain#run(query) — Train variant using provider-native tool calling (function calling) to select boxcars. This is the recommended path for OpenAI and Anthropic.
  • Boxcars::ZeroShot#run(query) — Legacy ReAct-style train using text-based reasoning (no native tool calling).

XAgent (autonomous agent)

  • Boxcars::XAgent.run(question) — An autonomous agent that uses OpenAI function calling in a loop to solve complex multi-step tasks, potentially running many LLM turns and boxcar executions.

Structured Outputs

  • Boxcars::JSONEngineBoxcar#run(query) — LLM generation with JSON Schema-enforced structured output.

Expected instrumentation

Train/agent run spans should capture:

  • Input: initial query
  • Metadata: train type (ToolTrain, ZeroShot, XAgent), directing LLM engine name and model, list of available boxcars, provider
  • Output: final answer after all turns
  • Metrics: aggregated token usage across all turns (if available from engine)

Boxcar execution child spans should capture:

  • Boxcar name and class
  • Input query
  • Output result

Braintrust docs status

not_foundboxcars is not listed anywhere in Braintrust's integrations directory at https://www.braintrust.dev/docs/integrations. The SDK integrations page at https://www.braintrust.dev/docs/integrations/sdk-integrations does not mention Boxcars or any equivalent agent orchestration framework for Ruby.

Upstream sources

Local repo files inspected

  • lib/braintrust/contrib.rb — registers only 4 integrations: OpenAI, RubyOpenAI, RubyLLM, Anthropic. No Boxcars integration.
  • lib/braintrust/contrib/ — contains only openai/, ruby_openai/, ruby_llm/, anthropic/, and rails/ directories. No boxcars/ directory.
  • Appraisals — no appraisal scenarios for boxcars
  • braintrust.gemspec — no mention of boxcars
  • Grep for boxcars, Boxcars, BoxcarsAI, ZeroShot, ToolTrain, XAgent across lib/braintrust/ returns zero matches

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Fields

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions