Register an External Agent
Register an external agent to make it available within the Agent Platform. Prerequisites Ensure that:- The external agent supports the A2A protocol.
- The agent endpoint is reachable over HTTP or HTTPS.
- You have the endpoint URL for the external agent.
- Authentication details are available if required.
- Navigate to External Agents.
- Click Register Agent.
- Enter the required details:
- Agent Name - Name of the external agent.
- Endpoint URL -URL of the external agent endpoint.
- Protocol - communication protocol for interaction with the external agent. Agent Platform supports:
- A2A
- REST
- Authentication Type - Authentication required for communication. Select the appropriate authentication mechanism based on the requirements of the external agent endpoint. Agent platform supports:
- API Key
- Bearer Token
- Click Register.
Access External Agents via Handoff or Delegation
Once registered, external agents become available as tools that can be used within Agent Platform agents. You can combine local and external agents in the same multi-agent workflow. To add an external agent, add it to the Handoff or Delegate section of the agent. The platform automatically handles communication with the external agent through the A2A protocol. Via ABL: Add the external agent under the HandOff or Delegate sections and specify the location asremote.
Remote-Specific Properties
| Property | Values | Description |
|---|---|---|
LOCATION | REMOTE | Marks the tool as a remote agent. |
ENDPOINT | URL string | The A2A endpoint. Supports {{config.*}} and {{env.*}} interpolation. This property is optional. If provided, it overrides the endpoint URL configured during agent registration. |
PROTOCOL | A2A or REST | The communication protocol used to invoke the remote agent. |
ASYNC | true / false | Enables asynchronous dispatch with push-notification barriers. When set to true, configure the CALLBACK_BASE_URL environment variable. This value must be a publicly accessible HTTPS URL where the remote agent can post execution results. |
TIMEOUT | Integer (seconds) | Maximum time to wait for a response from the remote agent before the request times out. |
CONTEXT | - | Copies named fields from the current session’s gathered/set data values into the request metadata sent to the external agent |
RETURN | true/false | Whether the parent thread waits for response or not. |
Operating Modes
Sync Mode
This is the default mode. Agent waits for a response from external agent. Default timeout value is 30 seconds. If the request times out,ON_FAILURE event is triggered.
Streaming
This is auto-detected when remote agent card publishesstreaming: true and user is connected. No change is required in DSL. The runtime handles it automatically.
Async
This is based on suspend and callback mechanism. The current session suspends. Remote agent pushes result when done. Used for long-running operations. Requirements for async remote calls:- CALLBACK_BASE_URL environment variable must be set to a public HTTPS URL that the remote agent can reach.
- The remote agent’s card must have push notification capabilities.
- Default async timeout is 300 seconds. It can be overridden by the timeout value in the ABL.
Points to Note:
-
Case sensitivity:
TO: <external-agent-name>must exactly match the name field provided during registration. It is case-sensitive. -
Config variable: If the URL is provided using config fields, the variable
{{config.EXTERNAL_AGENT_URL}}is resolved at compile time, not runtime. The config variable must exist in the project before you save and deploy the agent. This is recommended for multi-environment set ups. -
ASYNC: true: Push-notification callbacks need a public
HTTPS CALLBACK_BASE_URLenv variable. -
Inline
ENDPOINTin DSL overrides the endpoint provided during registration, but auth details must be provided during registration. You can’t put credentials in the DSL. -
Remote agents are stateless by default - they only see the current message. Use
history: fullinCONTEXT:to forward the conversation. The history is stored inmessage.metadata.historyin the A2A payload. -
A
contextIdis sent on every turn to the same remote agent, allowing the remote side to associate turns if it keeps state.