Connect External Agent
connect_agentConnect an external agent to a business and its signed event outbox. Requires current business admin membership, an assigned Kai agent, and agents:write, sms:write, webhooks:write. New SMS/WhatsApp conversations route to the external agent; explicit handoffs win. Grants no additional permissions and does not activate unregistered channels. Use a stable idempotency_key; replacements require expected_revision. The signing secret is returned only for a non-replayed connect. External realtime voice and email execution are not connected by this operation.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"agent_id": "<agent_id>",
"external_agent_id": "<external_agent_id>",
"webhook_url": "<webhook_url>",
"idempotency_key": "<idempotency_key>"
},
"name": "connect_agent"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| a2a_url | No | Optional existing native A2A endpoint; requires a2a_enabled. Omit to use the signed event receiver. | |
| agent_id | Yes | ||
| a2a_enabled | No | Route public A2A message/send to the signed receiver, which must return a JSON-RPC A2A message. SDK handleA2ARequest/handle_a2a_request connects the receiver to your own agent. | |
| business_id | No | ||
| webhook_url | Yes | ||
| idempotency_key | Yes | Required in the body or Idempotency-Key header. | |
| expected_revision | No | ||
| external_agent_id | Yes | ||
| external_reply_timeout_seconds | No |