Record Class AgentExtension

java.lang.Object
java.lang.Record
org.a2aproject.sdk.spec.AgentExtension
Record Components:
description - a human-readable description of the extension's purpose (optional)
params - configuration parameters for the extension (optional)
required - whether support for this extension is mandatory for clients (defaults to false)
uri - the unique identifier URI for this extension (required)

public record AgentExtension(@Nullable String description, @Nullable Map<String,Object> params, boolean required, String uri) extends Record
Represents a protocol extension supported by an agent.

AgentExtension declares optional or required capabilities beyond the core A2A Protocol specification. Extensions allow agents to advertise support for additional features, behaviors, or custom protocol enhancements identified by a unique URI.

Extensions may include parameters for configuration and can be marked as required, indicating that clients must support the extension to interact with the agent successfully.

This class is immutable. Use the AgentExtension.Builder for construction.

See Also:
  • Constructor Details

    • AgentExtension

      public AgentExtension(@Nullable String description, @Nullable Map<String,Object> params, boolean required, String uri)
      Compact constructor that validates required fields.
      Parameters:
      description - the description parameter (see class-level JavaDoc)
      params - the params parameter (see class-level JavaDoc)
      required - the required parameter (see class-level JavaDoc)
      uri - the uri parameter (see class-level JavaDoc)
      Throws:
      IllegalArgumentException - if uri is null
  • Method Details

    • builder

      public static AgentExtension.Builder builder()
      Create a new Builder
      Returns:
      the builder
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • description

      public @Nullable String description()
      Returns the value of the description record component.
      Returns:
      the value of the description record component
    • params

      public @Nullable Map<String,Object> params()
      Returns the value of the params record component.
      Returns:
      the value of the params record component
    • required

      public boolean required()
      Returns the value of the required record component.
      Returns:
      the value of the required record component
    • uri

      public String uri()
      Returns the value of the uri record component.
      Returns:
      the value of the uri record component