> ## Documentation Index
> Fetch the complete documentation index at: https://docs-eos.fpt.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect an external agent

> Bring a Digital Worker that already runs outside FPT AI Platform into your Workspace: Register the connection, pass the checks, and manage it like any other Digital Worker

You already run a Digital Worker on your own stack and you do not want to rebuild it here. This is how you register it in your Workspace: The platform keeps the management, the deployment channels and the reporting, while the thinking stays on your side.

> [!NOTE]
>
> Open it from the Console left menu, under **BUILD**, item **External Agents**.

## When this is the right choice

* The Digital Worker already works on your own stack, for example n8n, LangGraph, an internal service or a partner product.
* You want the Workspace, the deployment channels and the reports without rewriting the Digital Worker logic.
* You want to keep control of your data: The knowledge and the processing stay inside your own infrastructure.

To build a Digital Worker on the platform itself, use **My Digital Workers** instead.

## What you need before you start

| What | Why |
| - | - |
| Base URL | The root address of your Digital Worker, for example `https://agent.acme.com/ai`. The platform calls `/health` and `/runs` under it |
| The `fpt-v1` contract | Your External Agent has to speak the platform's `fpt-v1` protocol. That part belongs to the team that built it |
| Credentials | The header and value the platform should send, if your system checks callers |

> [!NOTE]
>
> The **Integration guide** button at the top right of the list screen is written for the engineers on the partner side. To fill in this form you only need the Base URL and the credentials they hand you.

> [!NOTE]
>
> The engineers on the partner side should read [Technical requirements for an External Agent](https://docs-eos.fpt.ai/eos/en/external-agent-requirements.md). It covers the two endpoints, authentication, the response stream format and the deadlines they have to meet.

## Register a Digital Worker

**1. Open External Agents**

Console left menu, group **BUILD**.

**2. Press Connect External Agent**

The blue button at the top right. On an empty workspace the same button sits in the middle of the screen.

**3. Fill in the connection**

Digital Worker name, Description, Base URL and how the platform should authenticate. Every field is described below.

**4. Press Validate Connection**

The platform calls your system and scores five checks. Save stays locked until all five pass.

**5. Press Save**

The Digital Worker is created as a **Draft** and Console opens the detail page. Nothing is written before you press Save.

![The Connect External Agent form](https://mintcdn.com/fpt-15dbd015/ZZ_AlSQhekpFaExV/images/eos/en_ext_form.jpg?fit=max\&auto=format\&n=ZZ_AlSQhekpFaExV\&q=85\&s=058751d616c88e2c4bb7dcf779542c7d)

### The fields

| Field | Required | What it is | Example |
| - | - | - | - |
| Digital Worker name | Yes | The name people see in the list and on the channels. Up to 60 characters | Warehouse assistant |
| Description | No | What the Digital Worker does and when to reach for it. Up to 200 characters | Looks up stock levels and order status |
| Base URL | Yes | The root address of the Digital Worker. Both https and http are accepted | `https://agent.acme.com/ai` |
| Authentication | Yes | Either **Authenticated** or **No authentication** | Authenticated |
| Auth headers | Yes, when Authenticated | Header name and value. Add more with **Add header** | `Authorization` / `Bearer abc123` |

> [!WARNING]
>
> Base URL accepts `http`, but then the credential travels in clear text. Keep `http` for an internal partner and use `https` everywhere else.

### The two authentication modes

* **Authenticated**: The platform sends the headers exactly as you typed them and adds nothing of its own. For a bearer token, type the word `Bearer ` in front of the value yourself. The value is stored and never shown again.
* **No authentication**: The platform sends nothing. Pick this only when the partner already restricts access another way, for example by IP range.

### The five checks

![The five connection checks](https://mintcdn.com/fpt-15dbd015/ZZ_AlSQhekpFaExV/images/eos/en_ext_check.jpg?fit=max\&auto=format\&n=ZZ_AlSQhekpFaExV\&q=85\&s=459ddf9984f5f2b98cc6bfc08ad3cc80)

| Check | What it proves |
| - | - |
| Endpoint reachable | Your Digital Worker answered a health check |
| Partner accepted our credentials | Your system accepted what the platform sent |
| Partner supports `fpt-v1` | Your Digital Worker speaks the platform's protocol |
| Credential stored | The credential is saved. Publishing waits on this |
| The Digital Worker answers a real turn | The platform sent one turn to `/runs` and your Digital Worker replied in the contract. A health check alone cannot tell you this |

Under the list the partner reports its own name and version, together with the round-trip time. A check that fails explains why, so you can correct the form and press **Validate Connection** again.

## The list of connected Digital Workers

![The External Agents list](https://mintcdn.com/fpt-15dbd015/ZZ_AlSQhekpFaExV/images/eos/en_ext_list.jpg?fit=max\&auto=format\&n=ZZ_AlSQhekpFaExV\&q=85\&s=4f005510eea7a0dc1dcaf0043b1f1841)

Each Digital Worker is a card with its name, status, description and when it changed last. The filters above count the Digital Workers in each state: **All**, **Draft**, **Published**, **Paused**. The **Search Digital Workers** box on the right filters by name.

## Inside one Digital Worker

![An external agent's detail page](https://mintcdn.com/fpt-15dbd015/ZZ_AlSQhekpFaExV/images/eos/en_ext_detail.jpg?fit=max\&auto=format\&n=ZZ_AlSQhekpFaExV\&q=85\&s=3f195f820a5ed233a001251aaf0755c2)

The detail page has four tabs: **Build**, **Test**, **Channels** and **Insights**.

The **Build** tab is where the connection lives:

| Row | What it tells you |
| - | - |
| Base URL | The address in use |
| Authentication | Authenticated or not |
| Credential | Stored, or not needed |
| Health | The result of the last check, with a **Check again** button |

The **Endpoints** table lists the addresses the platform calls on your Digital Worker and the state of each one. `/health` and `/runs` are required; the rest are optional and off in this phase.

## After the connection is live

From here an external agent behaves like any Digital Worker built on the platform:

* The **Test** tab sends a real turn so you can read the answer before anyone else does.
* The **Channels** tab picks the Workspace audience and the outside channels: Web widget, API, Zalo.
* **Publish** at the top right puts a version into service.

These three work exactly as they do for a normal Digital Worker, so see [Publishing](https://docs-eos.fpt.ai/eos/en/publishing.md) and [Managing deployment channels](https://docs-eos.fpt.ai/eos/en/manage-channels.md).

## Edit, recheck and delete

**1. Edit the connection**

On the detail page, press the pencil next to **Publish**, or the **Edit connection** button. The dialog is the same one you used to create the Digital Worker and it runs the same checks before it saves.

**2. Run the checks again**

**Check again** on the Connection card, or **Recheck now** on the Endpoints table. **Run check now** in the **...** menu does the same thing, both on the detail page and on the card in the list.

**3. Delete the Digital Worker**

The **...** menu, then **Delete Digital Worker**. Console asks you to confirm.

> [!WARNING]
>
> A new Base URL or credential only reaches real users after you publish again. Deleting the Digital Worker pulls it off every live channel, and customers in the middle of a conversation stop getting answers.

## Next steps

> **[Managing deployment channels](https://docs-eos.fpt.ai/eos/en/manage-channels.md)**
>
> Pick the channels and the audience for a Digital Worker.

> **[Live Chat channel](https://docs-eos.fpt.ai/eos/en/live-chat-channel.md)**
>
> Put the Digital Worker on your website with the ready-made chat window.

> **[API integration](https://docs-eos.fpt.ai/eos/en/api-integration.md)**
>
> For when you already have your own chat interface.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.