> For the complete documentation index, see [llms.txt](https://docs.duplocloud.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.duplocloud.com/docs/armor/agents.md).

# Duplo DevOps Agent

The DuploCloud platform ships with the Duplo DevOps Agent out of the box. This is the Agent that carries out all the DevOps work inside the platform. The Agent integrates seamlessly with your existing infrastructure and can be deployed immediately to automate routine operations and troubleshooting workflows.

The Agent operates within the boundaries defined by Providers and Scopes. Providers store the credentials for your cloud accounts, Kubernetes clusters, observability tools, and other services. Scopes define exactly which resources within those Providers an Agent can access. When an Agent is assigned to a workspace, it inherits only the Scopes granted to that Workspace — ensuring precise, auditable access control.

The Agent is used both for ad hoc tasks in Tickets and as a part of Projects. Within a Project, the agent may play different roles based on attached skills — for example, helping the users create a spec and plan and then helping to execute those actions in the execution phase.

## Adding a Custom Agent

Users can create their own agents and give them access to work within the DuploCloud platform.

1. Navigate to **AI Admin → LLMs**, open the **Agent SDKs** tab, and click **+ Add**.

![](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2Fgit-blob-de59577d6f5387331c73c41e6e2813587c9bc610%2Fagents-step-01.png?alt=media)

2. Provide a **Name**, **Description**, an endpoint where the agent can be accessed and an API path where messages will be sent to converse with the agent.
3. Optionally, expand the **Metadata** section to configure **prompt suggestions** and **prompt templates**. These help users get started quickly when creating a ticket — suggestions appear as one-click chips and templates pre-fill the input with parameterised content.

```yaml
STREAMING_ENABLED: 'true'
prompt_suggestions: '["Prompt 1", "Prompt 2", "Prompt 3"]'
prompt_templates: '[{"name":"Template Name","description":"Template description","content":"Template content with {{variable1}}, {{variable2}}, and {{variable3}}"}]'
```

* **`prompt_suggestions`** — a JSON array of short prompt strings shown as clickable chips on the ticket creation screen under **"Try one of these to get started"**
* **`prompt_templates`** — a JSON array of objects, each with a `name`, `description`, and `content`. The `content` supports `{{variable}}` placeholders that are filled in by the user. Templates appear under **"Or try a template"**

{% hint style="warning" %}
The values for `prompt_suggestions` and `prompt_templates` must be valid JSON encoded as a YAML string — wrap each value in single quotes. Do **not** nest single quotes inside the value. Use double quotes for all JSON keys and strings inside the array.
{% endhint %}

![](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2Fgit-blob-19adbefe94db4ddedfaf356e99f3da3d42102804%2Fagents-step-02.png?alt=media)

4. Click **Create** to add your Agent.

## Prompt Suggestions and Templates on the Ticket Screen

When a user creates a new ticket and selects this agent, the prompt suggestions appear as clickable chips below the input box under **"Try one of these to get started"**. The prompt templates appear below that under **"Or try a template"**.

![](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2Fgit-blob-da179f67990946b782b8f621733d14e438ce9a63%2Fagents-step-03.png?alt=media)

Clicking any suggestion chip instantly populates the ticket input with that text. The user can edit it before submitting or click **Create Ticket** directly.

![](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2Fgit-blob-695dbd0126aa733baf08730c712416811c5511f7%2Fagents-step-04.png?alt=media)

Each suggestion replaces whatever is currently in the input field. Clicking a new suggestion replaces the previous one — only one suggestion is active at a time.

![](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2Fgit-blob-d3e81d1733252474c0e24459ed72806d328f27fe%2Fagents-step-05.png?alt=media)

Clicking a template pre-fills the input with the full template content including its `{{variable}}` placeholders. The user fills in the values before submitting.

![](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2Fgit-blob-4d5ce9ba6cd4b39c2d278b55dd5c0ea02722b211%2Fagents-step-06.png?alt=media)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.duplocloud.com/docs/armor/agents.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
