Skip to content

[bot] Missing instrumentation for the official Agent2Agent (A2A) Protocol Java SDK #143

Description

@braintrust-bot

Summary

The Braintrust Java SDK does not instrument the official Agent2Agent (A2A) Protocol Java SDK (org.a2aproject.sdk, repository a2aproject/a2a-java). A2A is an open, Linux-Foundation-adjacent protocol (backed by Google and 50+ partners, including LangChain) for agent-to-agent task execution and interoperability, with client and server support over JSON-RPC, gRPC, and REST. It has its own agent-run/task-execution API surface that is distinct from every model-provider SDK and framework this repo currently instruments.

What is missing

The a2a-java SDK provides these execution-oriented surfaces, none of which are instrumented:

API surface Description
A2AClient.sendMessage() / sendMessageStreaming() Sends a task/message to a remote agent and executes the A2A request-response (or streaming) exchange
TaskStore / task lifecycle callbacks Tracks a remote agent task's execution through its states (submitted → working → completed/failed)
AgentExecutor (server side) Executes incoming A2A tasks when this JVM hosts an A2A-compliant agent
Agent Card discovery Resolves a remote agent's declared skills/capabilities before invocation

There is no reference to a2a-java, a2aproject, Agent2Agent, or A2AClient anywhere in this repository — no instrumentation module, wrapper, test, example, or dependency.

Why existing instrumentation does not cover this

A2A execution is orthogonal to all currently instrumented libraries: it does not go through com.openai:openai-java, com.anthropic:anthropic-java, com.google.genai, software.amazon.awssdk:bedrockruntime, LangChain4j, or Spring AI's HTTP transports. A2A tasks can wrap agents built on any of those frameworks internally, but the inter-agent request/response exchange itself — the part this SDK executes — uses its own JSON-RPC/gRPC/REST transport with no existing hook in this repo.

Braintrust docs status

Upstream sources

Local files inspected

  • settings.gradle (lines 28–33) — lists all instrumentation modules (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 A2A module present
  • braintrust-sdk/instrumentation/ — no A2A directory
  • Full-repo grep for a2aproject, a2a-java, Agent2Agent, A2AClient — zero matches

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions