CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/maven-com-embabel-agent--embabel-agent-a2a

A2A protocol integration for Embabel Agent Framework enabling agent-to-agent communication

Overview
Eval results
Files

overview.mddocs/api/

API Reference

Complete API documentation for embabel-agent-a2a module.

Core Interfaces

Request Handling

  • A2ARequestHandler - JSON-RPC request processing
  • AutonomyA2ARequestHandler - Autonomy integration

AgentCard Management

Skill Factory

Streaming

Configuration

Events

Supported A2A Methods

Implemented

MethodTypeDescription
message/sendNon-streamingSynchronous message execution
message/streamStreamingAsynchronous streaming execution
task/resubscribeStreamingResubscribe to existing task

Not Yet Implemented

MethodStatus
task/getReturns TODO() error
task/cancelReturns TODO() error

Types and Constants

// 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
)

Dependencies

Required External

  • A2A Specification: io.a2a.spec.*
  • Spring Boot: Web MVC, Context
  • Spring Web: SseEmitter
  • Jackson: ObjectMapper
  • Jakarta Servlet: ServletRequest

Required Internal

  • embabel-agent-api: Autonomy, AgenticEventListener, AgentPlatformEvent
  • embabel-agent-core: AgentPlatform, Goal, ProcessOptions
  • embabel-common: HasInfoString

Import Statements

Core:

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.A2AConfiguration

Events:

import com.embabel.agent.a2a.server.A2ARequestEvent
import com.embabel.agent.a2a.server.A2AResponseEvent

Implementation:

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.TaskStateManager

A2A Specification:

import io.a2a.spec.*

Component Dependency Graph

A2AConfiguration
    ↓ creates
AgentCardHandler (EmbabelServerGoalsAgentCardHandler)
    ↓ uses
A2ARequestHandler (AutonomyA2ARequestHandler)
    ↓ uses
├─ Autonomy (from embabel-agent-api)
├─ AgenticEventListener (from embabel-agent-api)
└─ A2AStreamingHandler
       ↓ uses
   TaskStateManager

See Also

tessl i tessl/maven-com-embabel-agent--embabel-agent-a2a@0.3.3

docs

api

agent-card.md

configuration.md

endpoint-registration.md

events.md

overview.md

request-handling.md

skill-factory.md

streaming.md

task-state.md

index.md

tile.json