> 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/fr/guides/ai-agents/run-an-agent.md).

# Donner un identifiant à un agent sans l’exposer

Laisser un agent d’IA utiliser un identifiant de votre coffre par devo secret run, pour que la valeur n’apparaisse jamais dans sa conversation ni dans sa transcription.

Un agent qui lit un mot de passe le place dans son contexte : la valeur peut se retrouver dans la transcription, dans les journaux ou dans une réponse ultérieure. Avec Devolutions CLI, l’agent n’a jamais besoin de la valeur. Il travaille avec des références `devo://`, qui disent où se trouve un secret et n’ouvrent rien par elles-mêmes, et il démarre ses outils par `devo secret run`, qui ne remet les valeurs qu’à cet outil.

## Avant de commencer

* Devolutions CLI est installé sur l’ordinateur où l’agent exécute les commandes, et vous êtes connecté. L’agent utilise votre contexte actuel. Consultez [Démarrage rapide](/cli/fr/quick-start.md).
* L’agent peut exécuter des commandes de shell, par exemple un agent de codage qui travaille dans votre terminal.

## Fonctionnement

1. L’agent demande à Devolutions CLI les références d’une entrée. La réponse ne contient aucune valeur secrète.
2. L’agent écrit une commande qui associe chaque référence à une variable d’environnement, et l’exécute par `devo secret run`.
3. Devolutions CLI lit les valeurs dans votre coffre, démarre l’outil avec ces variables et remplace chaque valeur résolue par `<concealed by Devolutions>` dans ce que l’outil affiche. L’agent voit la sortie de l’outil, jamais le secret.

## Laisser l’agent trouver les références

Deux commandes listent les références d’une entrée sans retourner aucune valeur. Elles retournent les mêmes données, donc utilisez celle qui se lit le mieux dans vos instructions. Seule la valeur `command` de l’enveloppe JSON diffère : `secret.catalog.entry` ou `entry.references`.

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

Avec `--json`, chaque élément de `data.references` a un `field` (comme `password`) et une `reference` à copier. Consultez [Trouver la référence d’un secret](/cli/fr/guides/secrets/find-a-reference.md).

{% hint style="info" %}
Vous pouvez aussi trouver les références vous-même et les placer dans les instructions de l’agent ou dans un fichier `.env`. Les références peuvent être partagées sans risque : elles contiennent des noms ou des ID, pas des valeurs.
{% endhint %}

## Laisser l’agent lancer des outils

L’agent passe chaque référence avec `--env-ref NAME=<reference>`. Tout ce qui suit `--` est l’outil à exécuter :

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

Quelques points que l’agent doit connaître, parce que Devolutions CLI les applique :

* **Les références vont dans `--env-ref`, jamais dans les arguments de la commande.** Devolutions CLI refuse une référence écrite après `--` avec l’erreur `secretLaunchArgumentReference`.
* **Pour plusieurs secrets, répétez `--env-ref`**, ou utilisez `--env-file` avec un fichier `.env` qui contient des références. Consultez [Retirer les mots de passe d’un fichier .env](/cli/fr/guides/secrets/replace-env-files.md).
* **Pour tester sans lire aucun secret,** ajoutez `--check`. Devolutions CLI vérifie que la commande existe et que chaque référence est bien formée, sans résoudre de valeur ni démarrer l’outil. Cela ne prouve pas que chaque champ peut être lu.
* **Pour arrêter un outil qui reste bloqué,** ajoutez `--timeout-seconds <seconds>`.

## Écrire les instructions de l’agent

Placez des règles comme celles-ci dans le fichier d’instructions de l’agent (par exemple les instructions d’agent du projet ou `CLAUDE.md`), et adaptez les noms à votre projet :

```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 ...`.
```

## Pourquoi pas `devo secret read` ?

`devo secret read` et `devo secret get` affichent la valeur. Tout ce qu’un agent affiche se retrouve dans son contexte, donc le secret devient une partie de la conversation. `devo secret inject` remet aussi la valeur : il écrit le texte rempli sur la sortie standard, ou dans un fichier avec `--out-file`. Sur la sortie standard, la valeur arrive directement dans le contexte de l’agent ; dans un fichier, l’agent peut l’ouvrir. `devo secret shell enter` place la valeur dans le shell de l’agent. `devo secret run` est la seule commande qui donne la valeur à un programme sans la montrer à celui qui l’a lancée.

{% hint style="warning" %}
Les instructions sont un guide, pas un verrou. Un agent qui peut exécuter des commandes de shell comme vous pouvez aussi exécuter `devo secret read`, parce qu’il a le même accès à votre coffre que vous. Pour imposer la règle, utilisez les permissions de commandes de votre agent : permettez `devo secret run`, et bloquez `devo secret read`, `devo secret get`, `devo secret inject` et `devo secret shell`.
{% endhint %}

{% hint style="warning" %}
Le masquage protège ce que l’outil affiche, pas ce qu’il fait. Un outil qui reçoit un secret peut quand même l’écrire dans un fichier, l’envoyer sur le réseau ou l’afficher sous une autre forme, par exemple encodé. Le masquage peut être désactivé avec `--no-masking`, donc gardez cette option hors des commandes permises à votre agent. Consultez [Ce qui reste caché, et ce qui ne l’est pas](/cli/fr/guides/understand/security-model.md).
{% endhint %}

## Bon à savoir

* `devo secret run` renvoie le code de sortie de l’outil qu’il a démarré, pour que l’agent puisse dire si sa commande a réussi.
* Une référence qui ne se résout pas arrête le lancement avant le démarrage de l’outil. Consultez [Une référence de secret ne se résout pas](/cli/fr/aide/troubleshooting/reference-does-not-resolve.md).
* Si l’agent travaille sur un autre espace de travail que le contexte actuel, il peut ajouter `--context <context-name>` à n’importe quelle commande `devo`. Consultez [Basculer entre les espaces de travail](/cli/fr/guides/connect/switch-workspaces.md).

## Suivant

* [Run a command with its secrets](/cli/fr/guides/secrets/run-with-secrets.md)
* [Connect an AI client with MCP](/cli/fr/guides/ai-agents/connect-mcp.md)
* [Limit what an agent can do](/cli/fr/guides/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/fr/guides/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.
