A2A protocol integration for Embabel Agent Framework enabling agent-to-agent communication
Complete API documentation for embabel-agent-a2a module.
| Method | Type | Description |
|---|---|---|
message/send | Non-streaming | Synchronous message execution |
message/stream | Streaming | Asynchronous streaming execution |
task/resubscribe | Streaming | Resubscribe to existing task |
| Method | Status |
|---|---|
task/get | Returns TODO() error |
task/cancel | Returns TODO() error |
// Type Aliases
typealias GoalFilter = (Goal) -> Boolean
// Constants
const val DEFAULT_A2A_PATH = "a2a"
// TaskState Enum (from A2A specification)
enum class TaskState {
PENDING,
WORKING,
COMPLETED,
FAILED,
CANCELED
}
// TaskInfo Data Class
data class TaskInfo(
val taskId: String,
val contextId: String,
val streamId: String,
val events: MutableList<StreamingEventKind>,
val createdAt: Instant,
var completedAt: Instant?,
var currentState: TaskState
)io.a2a.spec.*SseEmitterObjectMapperServletRequestAutonomy, AgenticEventListener, AgentPlatformEventAgentPlatform, Goal, ProcessOptionsHasInfoStringCore:
import com.embabel.agent.a2a.server.A2ARequestHandler
import com.embabel.agent.a2a.server.AgentCardHandler
import com.embabel.agent.a2a.server.AgentSkillFactory
import com.embabel.agent.a2a.server.config.A2AConfigurationEvents:
import com.embabel.agent.a2a.server.A2ARequestEvent
import com.embabel.agent.a2a.server.A2AResponseEventImplementation:
import com.embabel.agent.a2a.server.support.A2AEndpointRegistrar
import com.embabel.agent.a2a.server.support.A2AStreamingHandler
import com.embabel.agent.a2a.server.support.AutonomyA2ARequestHandler
import com.embabel.agent.a2a.server.support.EmbabelServerGoalsAgentCardHandler
import com.embabel.agent.a2a.server.support.FromGoalsAgentSkillFactory
import com.embabel.agent.a2a.server.support.TaskStateManagerA2A Specification:
import io.a2a.spec.*A2AConfiguration
↓ creates
AgentCardHandler (EmbabelServerGoalsAgentCardHandler)
↓ uses
A2ARequestHandler (AutonomyA2ARequestHandler)
↓ uses
├─ Autonomy (from embabel-agent-api)
├─ AgenticEventListener (from embabel-agent-api)
└─ A2AStreamingHandler
↓ uses
TaskStateManagertessl i tessl/maven-com-embabel-agent--embabel-agent-a2a@0.3.3