# Autopilot connections through A2A

Expose an enabled Autopilot feature to another agent through discovery, messages and tracked tasks.

*Release 3.3 · admin, developer*

**Settings › AI › Features**

## What it is

An **A2A Endpoint** lets another agent discover and send work to an INSIDE AI feature. Each request produces a task that the integration can inspect or cancel. Streaming can send progress and generated text while work is underway.

## Who uses it and why

Administrators decide which Autopilot feature to expose. Developers connect an external agent, submit messages and collect task results.

## Where to find it

Open **Settings › AI › Features** with the **Settings** role and **AI** access, or the **Developer** role. Edit an **Autopilot** feature and find **Enable A2A Endpoint**. When enabled, **A2A Endpoint** shows a read-only address with **Copy A2A Endpoint**.

## How it works

1. Enable the endpoint on an enabled, active Autopilot feature and save it.
2. Copy **A2A Endpoint** for your integration. The agent card uses the feature's name and description and advertises HTTP+JSON protocol version 0.3.
3. Send a user message with a message identifier and at least one supported part. Text parts need a text string; empty or whitespace-only content is not forwarded as a message. Structured data can be converted to text for execution.
4. Collect the returned task identifier. Requests return without waiting for completion by default; a blocking request waits for execution.
5. Read the task or request streaming when the card advertises it. Streaming includes task status, output updates and tool progress.

Task reads and cancellation through a feature's endpoint are limited to that website and feature. Completed, failed and cancelled tasks cannot be cancelled again.

The copied endpoint is the base address for these operations:

| Method | Suffix | Purpose |
|---|---|---|
| GET | `/agent-card` | Discover this feature and its streaming capability. |
| POST | `/message:send` | Submit a message and receive a task. |
| POST | `/message:stream` | Submit a message and receive server-sent events when streaming is enabled. |
| GET | `/tasks/{id}` | Read a task, with optional history length. |
| GET | `/tasks` | List recent tasks for this feature. |
| POST | `/tasks/{id}:cancel` | Request cancellation of unfinished work. |

The message must have `kind` set to `message`, `role` set to `user`, a non-empty `messageId` and a non-empty `parts` array. Supported part kinds are `text`, `file` and `data`, subject to the content limits below. Set `configuration.blocking` to true to wait for non-streamed execution; it defaults to false.

## Configure it

Use **Enable A2A Endpoint** to publish the feature's endpoint and **Enable Streaming** when the integration needs streamed results. Keep the feature enabled and active. Disabling either availability condition makes its endpoint unavailable.

Ask Powerfront to confirm the authentication arrangement for your deployment before connecting an external caller. The endpoint address alone does not describe that arrangement.

### Settings

| Setting | Where | Applies to | Default | Who can change it | What it does |
|---|---|---|---|---|---|
| Enable A2A Endpoint | Settings › AI › Features | website | Off | Settings role, Developer role | Makes this enabled, active Autopilot feature available through its own agent endpoint. |
| Enable Streaming | Settings › AI › Features | website | Off | Settings role, Developer role | Allows streaming requests for this feature and advertises streaming in its agent card. |

### Permissions

| Permission | Lets you |
|---|---|
| AI | With the Settings role, allows configuration of AI features; the Developer role can also access Features. |

## Limits and good to know

- Task history is temporary. Default expiry is 60 minutes after an active task update and 15 minutes after a terminal update. Powerfront can change these service defaults.
- Task records can disappear after a service restart and are not a durable work history.
- Task lists default to 50 entries. The storage limit is 200 entries per list request.
- Feature lists filter the most recent 200 tasks for the website before pagination. Older tasks may be absent even before expiry.
- Push notifications and extended agent cards are not advertised.
- Accepting a file-shaped message does not establish support for processing its binary contents. Use text or structured data unless Powerfront has verified your file scenario.

## Depends on and works with

### This feature uses

- **Requires** [AI accounts and shared defaults](AIP-001.md): The AI feature executing A2A requests needs a working AI account.
- **Requires** [INSIDE API](EXT-018.md): Agent discovery and task operations use INSIDE's HTTP API.
- **Configured in** [AI feature settings and change history](AI-001.md): Feature configuration controls availability, name, description and endpoint enablement.
- **Configured in** [Autopilot for live chat](AI-003.md): When A2A executes Autopilot, that feature's instructions and selected functions determine the work it performs.
- **Configured in** [Ask AI beside a visitor conversation](AI-008.md): When A2A executes Ask AI, that feature's instructions and selected functions determine the work it performs.
- **Configured in** [AI reply streaming settings](AI-037.md): The feature's streaming option controls streaming capability.
- **Related** [A2A agent testing in the browser](EXT-029.md): Use the A2A test page to check agent discovery and message delivery.

### Used by

- **Related** [A2A agent testing in the browser](EXT-029.md): Use the browser tester to check discovery, messages and tasks on an INSIDE A2A endpoint.

## FAQ and troubleshooting

### Why does the agent endpoint return not found?

Check that the copied address belongs to the intended feature and that the feature is enabled, active and has **Enable A2A Endpoint** on.

### Why is streaming rejected?

Enable **Enable Streaming** on that feature and read its agent card again. Streaming availability belongs to the selected feature.

### Why has a task disappeared?

It may have expired or the service may have restarted. Store the results your integration needs before the temporary task history expires.

### Why can I not cancel a finished task?

Cancellation applies to unfinished work. Completed, failed and cancelled tasks reject another cancellation request.
