> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/da/vejledninger/ai-agents/run-an-agent.md).

# Giv en agent en legitimationsoplysning uden at vise den

Lad en AI-agent bruge en legitimationsoplysning fra boksen via devo secret run, så værdien aldrig vises i dens samtale eller transskription.

En agent der læser en adgangskode, lægger den i sin kontekst. Værdien kan ende i transskriptionen, i loggene eller i et senere svar. Med Devolutions CLI har agenten aldrig brug for værdien. Den arbejder med referencer `devo://`, som siger hvor en hemmelighed er, og ikke åbner noget af sig selv, og den starter sine værktøjer gennem `devo secret run`, som kun giver værdierne til det værktøj.

## Før De begynder

* Devolutions CLI er installeret på den computer hvor agenten kører kommandoer, og De er logget på. Agenten bruger Deres aktuelle kontekst. Se [Hurtig start](/cli/da/quick-start.md).
* Agenten kan køre shellkommandoer, for eksempel en kodeagent der arbejder i Deres terminal.

## Sådan virker det

1. Agenten beder Devolutions CLI om referencerne til en post. Svaret indeholder ingen hemmelig værdi.
2. Agenten skriver en kommando der knytter hver reference til en miljøvariabel, og kører den gennem `devo secret run`.
3. Devolutions CLI læser værdierne fra boksen, starter værktøjet med disse variabler og erstatter hver løst værdi med `<concealed by Devolutions>` i det værktøjet udskriver. Agenten ser værktøjets output, aldrig hemmeligheden.

## Lad agenten finde referencer

To kommandoer viser referencerne for en post uden at returnere nogen værdi. De returnerer de samme data, så brug den der læses bedst i Deres instruktioner. Kun værdien `command` i JSON-konvolutten er forskellig: `secret.catalog.entry` eller `entry.references`.

```bash
devo secret catalog entry "<entry-name>" --vault-name "<vault-name>" --json
devo entry references "<entry-name>" --vault-name "<vault-name>" --json
```

Med `--json` har hvert element i `data.references` et `field` (såsom `password`) og en `reference` der skal kopieres. Se [Find referencen til en hemmelighed](/cli/da/vejledninger/secrets/find-a-reference.md).

{% hint style="info" %}
De kan også selv finde referencerne og lægge dem i agentens instruktioner eller i en `.env`-fil. Referencer kan deles uden risiko. De indeholder navne eller id’er, ikke værdier.
{% endhint %}

## Lad agenten starte værktøjer

Agenten angiver hver reference med `--env-ref NAME=<reference>`. Alt efter `--` er det værktøj der skal køres.

```bash
devo secret run --env-ref DB_PASSWORD=<reference> -- <command> <arguments>
```

Et par ting agenten skal vide, fordi Devolutions CLI håndhæver dem.

* **Referencer hører til i `--env-ref`, aldrig i kommandoens argumenter.** Devolutions CLI afviser en reference skrevet efter `--` med fejlen `secretLaunchArgumentReference`.
* **For flere hemmeligheder skal De gentage `--env-ref`**, eller bruge `--env-file` med en `.env`-fil der indeholder referencer. Se [Tag adgangskoderne ud af en .env-fil](/cli/da/vejledninger/secrets/replace-env-files.md).
* **For at teste uden at læse nogen hemmelighed** skal De tilføje `--check`. Devolutions CLI kontrollerer at kommandoen findes, og at hver reference er korrekt udformet, uden at løse en værdi eller starte værktøjet. Det beviser ikke at hvert felt kan læses.
* **For at stoppe et værktøj der hænger,** skal De tilføje `--timeout-seconds <seconds>`.

## Skriv agentens instruktioner

Læg regler som disse i agentens instruktionsfil (for eksempel projektets agentinstruktioner eller `CLAUDE.md`), og tilpas navnene til projektet:

```markdown
## Credentials
- Never read, print, or store a secret value. Never run `devo secret read`, `devo secret get`,
  `devo secret inject` or `devo secret shell`.
- To find a credential, run `devo secret catalog entry "<entry>" --vault-name "<vault>" --json`
  and use the `reference` of the field you need.
- To run a command that needs a credential, run:
  `devo secret run --env-ref NAME=<reference> -- <command>`
  and have the command read the value from the NAME environment variable.
- Never put a `devo://` reference in the command's arguments.
- Before a long or risky run, check it with `devo secret run --check ...`.
```

## Hvorfor ikke `devo secret read`?

`devo secret read` og `devo secret get` udskriver værdien. Alt hvad en agent udskriver, ender i dens kontekst, så hemmeligheden bliver en del af samtalen. `devo secret inject` videregiver også værdien. Den skriver den udfyldte tekst til standardoutput eller til en fil med `--out-file`. På standardoutput lander værdien direkte i agentens kontekst. I en fil kan agenten åbne den. `devo secret shell enter` lægger værdien i agentens shell. `devo secret run` er den eneste kommando, der giver værdien til et program uden at vise den til den, der startede det.

{% hint style="warning" %}
Instruktioner er vejledning, ikke en lås. En agent der kan køre shellkommandoer som De, kan også køre `devo secret read`, fordi den har samme adgang til boksen som De. For at håndhæve reglen, brug agentens egne kommandotilladelser. Tillad `devo secret run`, og bloker `devo secret read`, `devo secret get`, `devo secret inject` og `devo secret shell`.
{% endhint %}

{% hint style="warning" %}
Maskering beskytter det, værktøjet udskriver, ikke det, det gør. Et værktøj der modtager en hemmelighed, kan stadig skrive den til en fil, sende den over netværket eller udskrive den i en anden form, for eksempel kodet. Maskering kan slås fra med `--no-masking`, så hold den indstilling ude af agentens tilladte kommandoer. Se [Hvad der forbliver skjult, og hvad der ikke gør](/cli/da/vejledninger/understand/security-model.md).
{% endhint %}

## Godt at vide

* `devo secret run` returnerer exitkoden for det værktøj den startede, så agenten kan se om dens kommando lykkedes.
* En reference der ikke løses, stopper starten før værktøjet starter. Se [En hemmelighedsreference løses ikke](/cli/da/hjaelp/troubleshooting/reference-does-not-resolve.md).
* Hvis agenten arbejder på et andet arbejdsområde end det aktuelle, kan den tilføje `--context <context-name>` til en vilkårlig `devo`-kommando. Se [Skift mellem arbejdsområder](/cli/da/vejledninger/connect/switch-workspaces.md).

## Næste

* [Run a command with its secrets](/cli/da/vejledninger/secrets/run-with-secrets.md)
* [Connect an AI client with MCP](/cli/da/vejledninger/ai-agents/connect-mcp.md)
* [Limit what an agent can do](/cli/da/vejledninger/ai-agents/limit-tools.md)


---

# 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.devolutions.net/cli/da/vejledninger/ai-agents/run-an-agent.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.
