Rensei docs
A2A

A2A Dispatch

Dispatch and agent management.

The A2A dispatch API lets you list task dispatches sent to external agents, manage registered A2A peers, and refresh agent cards from remote sources. It backs the A2A Dispatches view in the Rensei dashboard.

A2A dispatch endpoints currently require cookie session authentication (browser-based org access). API key bearer auth for programmatic A2A dispatch is on the roadmap.

Dispatch history

GET /api/a2a/dispatches

Lists A2A task dispatches for the authenticated org. Includes both explicit dispatches (user-initiated) and transparent dispatches (triggered by workflow nodes).

Query parameters

ParameterDescription
agentIdFilter by target agent ID
statusFilter by dispatch status: pending, running, completed, failed
fromISO 8601 start time
toISO 8601 end time
limitMaximum results (default: 50)
cursorPagination cursor

Response

{
  "dispatches": [
    {
      "dispatchId": "dispatch_01abc...",
      "agentId": "agent_01abc...",
      "agentName": "Code Review Agent",
      "taskId": "task_01abc...",
      "status": "completed",
      "dispatchType": "explicit",
      "input": {
        "text": "Review PR #42 for security issues."
      },
      "output": {
        "text": "Found 2 potential issues: ..."
      },
      "dispatchedAt": "2026-06-02T12:00:00Z",
      "completedAt": "2026-06-02T12:03:00Z",
      "costTokens": 1240
    }
  ],
  "nextCursor": "cursor_abc..."
}
FieldDescription
dispatchTypeexplicit - user or workflow initiated; transparent - triggered by A2A routing without explicit user action
taskIdThe A2A protocol task identifier returned by the remote agent

Agent registry

List agents

GET /api/a2a/agents

Returns all A2A agents registered with the authenticated org.

Response

{
  "agents": [
    {
      "id": "agent_01abc...",
      "name": "Code Review Agent",
      "url": "https://review-agent.example.com",
      "status": "healthy",
      "lastSeenAt": "2026-06-02T11:55:00Z",
      "skills": [
        {
          "id": "code-review",
          "name": "Review a pull request"
        }
      ],
      "trustPolicy": "trust_01abc..."
    }
  ]
}

Get a single agent

GET /api/a2a/agents/{agentId}

Returns the full agent record including the latest fetched agent card.

Response

{
  "id": "agent_01abc...",
  "name": "Code Review Agent",
  "url": "https://review-agent.example.com",
  "status": "healthy",
  "agentCard": {
    "@type": "AgentCard",
    "name": "Code Review Agent",
    "url": "https://review-agent.example.com",
    "skills": [...]
  },
  "trustPolicy": {
    "id": "trust_01abc...",
    "name": "default-allow",
    "rules": [...]
  },
  "health": {
    "lastCheck": "2026-06-02T11:55:00Z",
    "latencyMs": 42,
    "status": "healthy"
  }
}

Refresh agent card

Re-fetch the agent card from the remote agent's /.well-known/agent-card.json endpoint. Use this after a peer agent has updated its capabilities.

POST /api/a2a/agents/{agentId}/refetch

Response

{
  "ok": true,
  "agentCard": {
    "@type": "AgentCard",
    "name": "Code Review Agent",
    "version": "1.1.0",
    "skills": [...]
  },
  "refreshedAt": "2026-06-02T12:05:00Z"
}

Trust policies

Trust policies govern which A2A agents are allowed to dispatch tasks and what operations they can perform. Policies are written in Cedar and managed via the platform's policy engine.

List trust policies

GET /api/factory/a2a/policies

Response

{
  "policies": [
    {
      "id": "trust_01abc...",
      "name": "default-allow",
      "description": "Allow all registered agents to dispatch read-only tasks.",
      "rules": ["permit(principal, action == Action::dispatch, resource);"]
    }
  ]
}

Create or update a policy

POST /api/factory/a2a/policies
Content-Type: application/json
{
  "name": "restricted-dispatch",
  "description": "Only allow code-review agents from trusted domains.",
  "rules": [
    "permit(principal in AgentGroup::trusted-reviewers, action == Action::dispatch, resource);"
  ]
}

Get a specific policy

GET /api/factory/a2a/policies/{policyId}

Update a policy

PUT /api/factory/a2a/policies/{policyId}

Delete a policy

DELETE /api/factory/a2a/policies/{policyId}

Dispatch flow overview

A2A as MCP tools

Registered A2A agents are automatically exposed as tools on the MCP endpoint. This means running agent sessions can invoke peer agents as named tools using the convention <agentSlug>.<skillId>:

{
  "method": "tools/call",
  "params": {
    "name": "code-review-agent.code-review",
    "arguments": {
      "prUrl": "https://github.com/my-org/my-repo/pull/42"
    }
  }
}

See A2A as MCP tools for the full bridge documentation.

On this page