Interface A2AClientBuilder<T>

Type Parameters:
T - the agent service interface type
All Known Implementing Classes:
DefaultA2AClientBuilder

public interface A2AClientBuilder<T>
Builder for creating A2A client proxies that communicate with remote agents over the Agent-to-Agent (A2A) protocol.
  • Method Details

    • inputKeys

      A2AClientBuilder<T> inputKeys(String... inputKeys)
      Sets the state keys whose values will be sent as message parts to the remote agent.
      Parameters:
      inputKeys - the names of the input keys
      Returns:
      this builder for method chaining
    • outputKey

      A2AClientBuilder<T> outputKey(String outputKey)
      Sets the state key under which the agent's response will be stored.
      Parameters:
      outputKey - the name of the output key
      Returns:
      this builder for method chaining
    • async

      A2AClientBuilder<T> async(boolean async)
      Sets whether the agent should be invoked asynchronously, allowing the workflow to continue without waiting for the agent's result.
      Parameters:
      async - true for asynchronous invocation
      Returns:
      this builder for method chaining
    • listener

      A2AClientBuilder<T> listener(AgentListener agentListener)
      Sets an AgentListener for observing agent invocations.
      Parameters:
      agentListener - the listener to attach
      Returns:
      this builder for method chaining
    • activationCondition

      default A2AClientBuilder<T> activationCondition(Predicate<AgenticScope> activationCondition)
      Sets the condition under which the agent runs when it is invoked as a subagent of an agentic system. When the condition is false the remote agent is not called and the agent is skipped. It can be evaluated more than once, so it must be free of side effects.
      Parameters:
      activationCondition - the predicate deciding whether the agent runs
      Returns:
      this builder for method chaining
    • activationCondition

      A2AClientBuilder<T> activationCondition(String description, Predicate<AgenticScope> activationCondition)
      Sets the condition under which the agent runs when it is invoked as a subagent of an agentic system. When the condition is false the remote agent is not called and the agent is skipped. It can be evaluated more than once, so it must be free of side effects.
      Parameters:
      description - a human-readable description of the condition, used in logs, listeners and reports
      activationCondition - the predicate deciding whether the agent runs
      Returns:
      this builder for method chaining
    • clientCustomizer

      A2AClientBuilder<T> clientCustomizer(Consumer<?> clientCustomizer)
      Sets a customizer that will be applied to the underlying a2a-java SDK ClientBuilder before the Client is constructed.

      The wildcard type avoids a compile-time dependency on the a2a-java SDK in this module. At runtime the value must be a Consumer<org.a2aproject.sdk.client.ClientBuilder>.

      Parameters:
      clientCustomizer - a Consumer<ClientBuilder> from the a2a-java SDK
      Returns:
      this builder for method chaining
    • streamingClientListener

      A2AClientBuilder<T> streamingClientListener(A2AStreamingClientListener<?> clientListener)
      Sets an A2AStreamingClientListener for observing updates received from the remote agent during streaming invocation.

      Like DefaultA2AClientBuilder, which uses a2a-java, can be used with the following example:

      streamingClientListener((TaskUpdateEvent event) -> {
          // handle the streaming event
      });
      

      The listener is invoked with task update events received from the remote agent.

      Parameters:
      clientListener - the listener to attach
      Returns:
      this builder for method chaining
    • tenant

      default A2AClientBuilder<T> tenant(String tenant)
      Sets the tenant identifier that will be sent with every A2A message.
      Parameters:
      tenant - the tenant identifier
      Returns:
      this builder for method chaining
    • build

      T build()
      Builds the A2A client proxy implementing the agent service interface.
      Returns:
      the proxy instance