Skip to content
Everruns Cloud is open in early access. Run agents without operating the platform.
IDa2a_agent_delegation
CategoryOrchestration
Featuresagent_runs
Dependenciessession_tasks
RiskHigh
AvailabilityExperimental, dev-only on the platform

A2A Agent Delegation lets an agent hand work to agents that run outside Everruns and speak the A2A protocol. The agents it may call are listed in the capability’s configuration, so the model can only reach URLs you configured. The capability adds the external_a2a target type to the shared spawn_agent tool, the same dispatcher that Sub Agents and Agent Handoff extend.

Experimental. On the platform the capability is registered when FEATURE_AGENT_DELEGATION is on. That flag is on by default at the development deployment grade and off in production, so it is not available on Everruns Cloud. In the Framework, turn on the a2a Cargo feature of everruns (it implies local) and add the capability by ID. See A2A.

{
"ref": "a2a_agent_delegation",
"config": {
"agents": [
{
"id": "research",
"name": "Research agent",
"description": "Researches a topic and returns notes.",
"base_url": "https://agents.example.com/research"
}
]
}
}
FieldRequiredDescription
idYesStable key the model passes as target.id
nameYesHuman-readable name, shown in the system prompt
descriptionNoWhat the agent does, shown in the system prompt
base_urlOne of base_url or agent_cardWhere the Agent Card is fetched from (/.well-known/agent-card.json)
agent_cardOne of base_url or agent_cardAn inline Agent Card, used instead of discovery
headersNoStatic headers sent to the A2A endpoint. They are stored in the config, so they must not hold secrets
preferred_bindingNoJSONRPC or HTTP+JSON
poll_interval_msNoHow often to poll the remote task, 100 to 60000. Default 1000
allow_local_urlsNoAllows localhost and private addresses for local development. Honored only when DEPLOYMENT_GRADE=dev; rejected otherwise. Default false

Without allow_local_urls (or outside DEPLOYMENT_GRADE=dev), base_url and every interface URL in an inline Agent Card must pass the safe-URL check, which refuses localhost, private ranges, and metadata addresses. At request time the same URLs are DNS-pinned and redirects are disabled. A session’s network access policy is also applied to the endpoint before and after the Agent Card is resolved.

ParameterRequiredDescription
instructionsYesInstructions sent to the external agent
targetYes{ "type": "external_a2a", "id": "<agent id>" }. target.external_agent_id is a deprecated spelling of id
modeNoforeground (default) or background
wait_timeout_secsNoHow long to wait for the remote task, 1 to 86400. Default 300
wake_on_completionNoWake the session when a background run finishes. Default true
result_schemaNoJSON Schema for a required structured result from the external agent

message_schema is not supported: a remote agent cannot call report_task_progress, so passing one fails. Text results are truncated to 8192 characters.

foreground waits for the remote task and returns its reply. background returns a task_id at once. When task tracking is available, each run is a session task of kind external_agent, so wait_task collects the result, message_task answers a remote task that asks for input, and cancel_task stops it.

  • A2A, serving agents over A2A and the delegation overview
  • Agent Handoff, delegation to first-party agents
  • Sub Agents, the session task tools