# Settings and Publishing

Settings is where you configure a Neo Code Agent in the platform. Clicking the agent’s card on the **Agents** page takes you straight to it.

## The Settings Sections

A left-hand navigation lists the sections present on the page.

| Section | What it is for |
| --- | --- |
| **Basic Information** | Name and description. See [Creating a Neo Code Agent](creating.html). |
| **Deployment Configuration** | Where the agent runs. See [Creating a Neo Code Agent](creating.html) and [EKS Deployment](deployment.html). |
| **Output Details** | Declares the structured fields the agent returns, so the platform can read them. |
| **KPIs** | Business metrics computed from those output fields. |
| **Execution Permissions** | Which identity the agent uses to reach resources at runtime. Visible to the agent’s owner only. |

## Editing Requires Edit Mode

An existing Neo Code Agent is read-only until you take **edit mode** using the toggle in the page header.

Only one person can hold edit mode at a time. Users with the **Force Unlock** permission can take it back if a colleague has left it held.

> **Note**
>
> The header actions — edit mode, **Share**, version history, and **Review & Publish** — appear on the **Settings** tab only. Return to Settings to publish or change edit mode.

## Output Details

Use the **+** button to declare each field your agent returns. Declaring outputs makes those values available to KPIs and to the platform’s reporting.

Publish the agent before adding output fields.

## KPIs

KPIs turn the agent’s outputs into business measures. Add them with **+**.

A KPI reads from an output field, so define your outputs first.

## Execution Permissions

Visible only to the agent’s **owner**, this section chooses the identity the agent uses when it reaches platform resources at runtime.

| Option | Effect |
| --- | --- |
| **Flow Owner** | Resources are accessed as the owner, whoever runs the agent. |
| **Executing User** | Resources are accessed as the person who invoked the agent, so their own entitlements apply. |
| **Custom Policy** | A named access policy governs runtime access. |

Choose, then click **Save Execution Policy**. Prefer **Executing User** where each caller should only reach their own data, and **Flow Owner** where the agent needs consistent access regardless of caller.

## Versioning and Publishing

A Neo Code Agent is versioned like any other agent, and **needs a published version before it can serve traffic**. Version history is reached from the header on the Settings tab.

Publishing runs through the **Review & Publish** popover:

| Step | Control | What happens |
| --- | --- | --- |
| 1 | **Validate** | Checks the agent and reports **Valid** or **Invalid**. **Request Review** stays disabled until this has run. |
| 2 | **Request Review** | Sends the version for approval. |
| 3 | **Review** | A reviewer adds an optional comment, then **Approve** or **Reject**. |
| 4 | **Publish to** | Publishes the approved version to **EKS**. |

> **Note**
>
> Test your endpoint yourself before publishing — send it a request and confirm the response, as described in [The Service Contract](service_contract.html).

If the publish controls are unavailable, check that you are in edit mode, that no one else is editing the agent, that you are viewing the current version rather than a historical one, and that there is an unpublished version to publish.

## Sharing and Ownership

**Share** — available to the owner from the header and from the card’s **…** menu — grants colleagues access to this specific agent. It sits alongside role-based permissions: a role decides whether someone may work with Neo Code Agents at all, while sharing decides which individual agents they can reach. See [Permissions](permissions.html).

## Other Card Actions

The **…** menu on the agent’s card on the **Agents** page offers **Settings**, **Share** (owner), **Enable Agent** / **Disable Agent**, **Duplicate**, **Deploy** / **Undeploy** for EKS agents, and delete.

Use **Duplicate** to copy an agent’s configuration into a new one.
