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 ISSUE] LangChain4j instrumentation only supports OpenAI-backed chat models

Đang mở
#60 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ó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
java
Lĩnh vực
observability

Hướng nghiên cứu

Bắt đầu với BraintrustLangchain.java, đặc biệt là các kiểm tra model và phần wrapping dành riêng cho OpenAI, sau đó đọc LangchainInstrumentationModule.java và WrappedHttpClient.java. Theo dõi cách advice hiện có của OpenAI builder và HTTP client wrapper hoạt động. Hoàn thành có nghĩa là các provider LangChain4j không phải OpenAI được liệt kê nhận được instrumentation tương đương ở cấp LLM trong cả đường dẫn wrapping và auto-instrumentation.

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

Mô tả

Summary

The LangChain4j instrumentation only wraps OpenAiChatModel and OpenAiStreamingChatModel. All other LangChain4j model providers — including Anthropic, Google Gemini, Azure OpenAI, and Mistral — are explicitly skipped with a warning, producing no LLM-level span data for those calls.

Unlike the Spring AI integration (where unsupported providers can fall through to direct SDK auto-instrumentation, e.g. the GenAI module intercepts Client$Builder.build()), LangChain4j model providers use their own internal HTTP clients rather than the upstream SDK clients. This means no other auto-instrumentation module catches these calls.

What is missing

BraintrustLangchain.wrap(OpenTelemetry, AiServices) (lines 36-51) performs instanceof checks against only two model classes:

if (chatModel instanceof OpenAiChatModel oaiModel) {
    aiServices.chatModel(wrap(openTelemetry, oaiModel));
} else {
    log.warn("unsupported model: {}. LLM calls will not be instrumented",
            chatModel.getClass().getName());
}

The auto-instrumentation module (LangchainInstrumentationModule) similarly only registers ByteBuddy advice for OpenAiChatModel$OpenAiChatModelBuilder.build() and OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.build().

The most impactful missing model providers are:

LangChain4j model class Provider
AnthropicChatModel Anthropic Claude
GoogleAiGeminiChatModel / GoogleAiGeminiStreamingChatModel Google Gemini
VertexAiGeminiChatModel / VertexAiGeminiStreamingChatModel Google Vertex AI
AzureOpenAiChatModel / AzureOpenAiStreamingChatModel Azure OpenAI
MistralAiChatModel / MistralAiStreamingChatModel Mistral AI

Since the existing OpenAI instrumentation works by wrapping LangChain4j's internal HttpClient interface (extracted via reflection from the model's internal client), the same pattern could apply to other providers — each uses the same dev.langchain4j.http.client.HttpClient interface internally.

Braintrust docs status

Braintrust docs do not have a LangChain4j-specific page. The Java SDK is listed as supported for OpenAI, Anthropic, and Gemini providers at https://www.braintrust.dev/docs/integrations/ai-providers, but LangChain4j as a framework integration is not_found in docs.

Upstream sources

  • LangChain4j supports 20+ model providers as first-party integrations: https://github.com/langchain4j/langchain4j
  • LangChain4j model provider modules: langchain4j-anthropic, langchain4j-google-ai-gemini, langchain4j-vertex-ai-gemini, langchain4j-azure-open-ai, langchain4j-mistral-ai, etc.
  • All LangChain4j model providers use their own dev.langchain4j.http.client.HttpClient internally (not the upstream provider SDK), so upstream SDK auto-instrumentation does not cover them.

Local files inspected

  • braintrust-sdk/instrumentation/langchain_1_8_0/src/main/java/dev/braintrust/instrumentation/langchain/v1_8_0/BraintrustLangchain.java — lines 36-51 (instanceof check limits to OpenAI only), lines 88-152 (OpenAI-specific wrapping via internal HttpClient)
  • braintrust-sdk/instrumentation/langchain_1_8_0/src/main/java/dev/braintrust/instrumentation/langchain/v1_8_0/auto/LangchainInstrumentationModule.java — lines 55-68, 85-100 (auto-instrumentation only targets OpenAI builders)
  • braintrust-sdk/instrumentation/langchain_1_8_0/src/main/java/dev/braintrust/instrumentation/langchain/v1_8_0/WrappedHttpClient.java — the HTTP client wrapper that could be reused for other providers
Ngôn ngữ chính
Java
Star
21
Fork
5
Merge trung bình
2 ngày 7 giờ
Pull request đã merge (30 ngày)
8

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

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.