Summary
The Braintrust Java SDK instruments the Azure OpenAI-adjacent surface only indirectly via unrelated modules and has an open gap issue for com.azure:azure-ai-openai (#68) and com.azure:azure-ai-inference (#118), but does not instrument — and no open issue tracks — com.azure:azure-ai-agents-persistent, Microsoft's official Java SDK for Azure AI Foundry Agent Service. This is a distinct Maven artifact and client hierarchy (PersistentAgentsClient) providing a stateful, server-side agent-run execution surface (threads, runs, tool calls) comparable in kind to OpenAI's Assistants/Responses agent-run APIs.
What is missing
The com.azure:azure-ai-agents-persistent SDK provides these execution-oriented surfaces, none of which are instrumented:
| API |
Class |
Description |
createAgent() |
PersistentAgentsClient |
Defines a server-hosted agent (model, instructions, tools) |
createThread() / createMessage() |
PersistentAgentsClient |
Manages a persistent conversation thread that an agent run executes over |
createRun() / createRunAsync() / streaming run updates |
PersistentAgentsClient |
Executes an agent run against a thread — the core "agent execution" surface, including tool-call submission (submitToolOutputsToRun) and run status polling/streaming |
createThreadAndRun() |
PersistentAgentsClient |
Combined thread-creation-and-run execution |
Why existing instrumentation does not cover this
Braintrust docs status
Upstream sources
Local repo files inspected
settings.gradle (lines 28–33) — lists all instrumentation modules; no Azure Agents module present
braintrust-sdk/instrumentation/ — contains openai_2_15_0, anthropic_2_2_0, genai_1_18_0, langchain_1_8_0, springai_1_0_0, aws_bedrock_2_30_0; no Azure directory
- Full-repo grep for
azure.ai.agents, azure-ai-agents, PersistentAgent — zero matches
Summary
The Braintrust Java SDK instruments the Azure OpenAI-adjacent surface only indirectly via unrelated modules and has an open gap issue for
com.azure:azure-ai-openai(#68) andcom.azure:azure-ai-inference(#118), but does not instrument — and no open issue tracks —com.azure:azure-ai-agents-persistent, Microsoft's official Java SDK for Azure AI Foundry Agent Service. This is a distinct Maven artifact and client hierarchy (PersistentAgentsClient) providing a stateful, server-side agent-run execution surface (threads, runs, tool calls) comparable in kind to OpenAI's Assistants/Responses agent-run APIs.What is missing
The
com.azure:azure-ai-agents-persistentSDK provides these execution-oriented surfaces, none of which are instrumented:createAgent()PersistentAgentsClientcreateThread()/createMessage()PersistentAgentsClientcreateRun()/createRunAsync()/ streaming run updatesPersistentAgentsClientsubmitToolOutputsToRun) and run status polling/streamingcreateThreadAndRun()PersistentAgentsClientWhy existing instrumentation does not cover this
openai_2_15_0,anthropic_2_2_0,genai_1_18_0,langchain_1_8_0,springai_1_0_0,aws_bedrock_2_30_0) referencescom.azure.ai.agentsorPersistentAgentsClient.com.azure:azure-ai-openai(issue [BOT ISSUE] Missing instrumentation for Azure OpenAI Java SDK #68, direct chat/embeddings calls) andcom.azure:azure-ai-inference(issue [bot] Missing instrumentation for Azure AI Inference Java SDK #118, model-catalog inference) — it targets Azure AI Foundry's separate stateful Agent Service (threads/runs), not a one-shot completion endpoint, so neither existing gap issue covers its run-execution semantics.Braintrust docs status
Upstream sources
PersistentAgentsClientBuilderreference: https://learn.microsoft.com/en-us/java/api/com.azure.ai.agents.persistent.persistentagentsclientbuilder?view=azure-java-previewcom.azure:azure-ai-agents-persistent:1.0.0-beta.2— actively released as part of the Azure SDK for Java suiteLocal repo files inspected
settings.gradle(lines 28–33) — lists all instrumentation modules; no Azure Agents module presentbraintrust-sdk/instrumentation/— containsopenai_2_15_0,anthropic_2_2_0,genai_1_18_0,langchain_1_8_0,springai_1_0_0,aws_bedrock_2_30_0; no Azure directoryazure.ai.agents,azure-ai-agents,PersistentAgent— zero matches