Skip to content

Handshake

Overview

The handshake is the first message exchange in any A2E session. The agent sends a HandshakeRequest, and the host responds with a HandshakeResponse that includes capability negotiation results.

Flow

HandshakeRequest

FieldTypeRequiredDescription
typestrYes"handshake/req"
idstrYesRequest UUID
a2estrYes"1.0"
tsfloatYesTimestamp
agent_idstrYesAgent identifier
agent_capslist[str]YesRequested capability names
auth_tokenstrYesAuthentication token

agent_caps Values

Must be a subset of the A2ECapability enum values:

ValueCapability
"skill"Skill execution
"tools"Tool execution
"toolkits"Toolkit management
"env"RL environment
"proc"Process management
"memory"Memory operations
"learning"Learning/feedback
"chains"Chain pipeline execution
"mcp"MCP bridge
"multi_agent"Multi-agent coordination (future)

HandshakeResponse

FieldTypeRequiredDescription
typestrYes"handshake/resp"
idstrYesResponse UUID
a2estrYes"1.0"
tsfloatYesTimestamp
req_idstrYesEchoes request ID
session_idstrYesNew session UUID
accepted_capslist[Capability]YesNegotiated capabilities
max_parallelintYesMax concurrent RPCs (default: 4)
okboolYesWhether handshake succeeded
reasonstrNoFailure reason if ok=false

Capability Object

FieldTypeDescription
capabilityA2ECapabilityCapability name
enabledboolWhether this capability is available
metadatadictCapability-specific metadata

Rejection Reasons

ReasonDescription
"auth_failed"Invalid auth_token
"version_mismatch"Incompatible protocol version
"no_caps"No requested capabilities are available
"server_error"Internal server error

Example

json
{"a2e":"1.0","type":"handshake/req","id":"a1b2c3d4","ts":1716123456.789,"agent_id":"my-agent","agent_caps":["tools","memory","env"],"auth_token":"dev-secret"}
json
{"a2e":"1.0","type":"handshake/resp","id":"e5f6g7h8","ts":1716123456.890,"req_id":"a1b2c3d4","session_id":"s1k2l3m4","accepted_caps":[{"capability":"tools","enabled":true,"metadata":{}},{"capability":"memory","enabled":true,"metadata":{}},{"capability":"env","enabled":true,"metadata":{}}],"max_parallel":4,"ok":true}

A2E Protocol v1.0 — Released under the MIT License.