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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions