# Instructions, autorisations et configuration

Définissez vos préférences de rédaction, choisissez quand l'assistant demande confirmation et configurez des règles de projet réutilisables.

Donnez à l'assistant des préférences de rédaction claires et choisissez comment il gère les modifications. Les instructions décrivent le travail attendu ; les contrôles d'autorisation décident quelles actions d'outils peuvent s'exécuter.

![Paramètres → Assistant IA → Instructions. Définissez le modèle par défaut, rédigez vos instructions, puis utilisez Enregistrer les instructions. La capture des pages PDF se trouve sous le champ de texte.](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-instructions-dark-window-v2.png#view=519,89,883,724)

## Modèle de discussion par défaut

Ouvrez **Paramètres → Assistant IA → Instructions**. Choisissez **Modèle de discussion par défaut** pour définir le modèle utilisé pour une nouvelle discussion. La liste contient les modèles activés de vos fournisseurs configurés. Vous pouvez toujours changer de modèle dans une conversation donnée.

## Instructions personnalisées

Saisissez vos préférences dans **Instructions personnalisées**, puis cliquez sur **Enregistrer les instructions**. Un point de départ utile pour un manuscrit de recherche est :

```text title="Exemple d'instructions de rédaction"
Use British English and preserve the terminology already used in the paper.
Keep citation keys, labels, equations, and numerical results unchanged unless
I explicitly ask you to edit them.
When a statement needs evidence, mark it for a source check. Do not invent
references or results.
Explain substantive changes briefly so I can review them.
```

Rédigez ces instructions assez précises pour guider une révision sans répéter tout votre brief de projet. Elles complètent le comportement intégré de l'assistant et ne modifient pas ses autorisations d'outils.

## Enregistrer les instructions

Cliquez sur **Enregistrer les instructions** après vos modifications. L'indicateur **Enregistré** confirme la persistance. Une modification non enregistrée dans ce champ ne devient pas votre nouveau réglage par défaut.

## Autoriser la capture des pages PDF pour l'IA

Activez **Autoriser la capture des pages PDF pour l'IA** pour permettre à l'assistant d'inspecter les pages rendues avec un modèle capable de vision. L'outil `verify_pdf_pages` rastérise les pages compilées pour vérifier la mise en page. Désactivez ce contrôle lorsque vous ne voulez pas que les images des pages soient envoyées au fournisseur configuré.

## Consulter le catalogue d'outils

Dépliez **L'assistant prend actuellement en charge ces outils** dans l'onglet Instructions. Utilisez-le pour voir le travail que l'assistant peut effectuer, puis demandez un résultat tel que compiler une section, inspecter le PDF ou trouver une référence non résolue.

## Personas

![Paramètres → Assistant IA → Personas. Créer un persona se trouve au-dessus de la liste ; les commandes de modification et de suppression sont à côté de chaque persona.](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-personas-dark-window-v2.png#view=519,89,883,902)

Un persona est un préréglage d'instructions nommé. Créez-en un dans **Paramètres → Assistant IA → Personas**, puis sélectionnez-le dans le composeur de discussion pour un type de travail particulier. Par exemple, conservez un persona de relecture concis et un persona de réviseur distinct.

Un persona actif fournit le préréglage d'instructions de la conversation à la place du texte des instructions personnalisées par défaut. Incluez toute préférence permanente dont le persona a aussi besoin. Un persona modifie les consignes ; il n'accorde aucune autorisation d'outil.

## Choisir un mode d'autorisation

![Ouvrez le menu d'autorisation sous le champ de message. Le mode sélectionné est marqué d'une coche ; choisissez la politique souhaitée pour votre projet.](https://cdn.oleafly.com/images/screenshots/desktop/docs/llama-approval-menu-dark-window-v2.png#view=1448,770,465,305)

Utilisez le sélecteur d'autorisation dans le composeur de discussion. Le choix est enregistré pour le projet en cours.

| Mode | Comportement |
|---|---|
| **Demander l'autorisation** | Les outils classés comme lecture peuvent s'exécuter ; les autres actions demandent d'abord confirmation |
| **Autoriser à ma place** | Les outils de lecture et de réseau peuvent s'exécuter ; les modifications de fichiers et les commandes shell demandent d'abord confirmation |
| **Accès complet** | Les actions d'outils peuvent s'exécuter sans invite d'autorisation, à l'exception des outils bloqués par une règle `deny` |
| **Personnalisé** | Les règles `allow` et `deny` enregistrées s'appliquent, et les outils sans règle suivent la politique de risque standard |

**Autoriser à ma place** est le mode par défaut. Certains outils ont leurs propres vérifications au sein d'une opération. Compiler et inspecter un PDF sont traités différemment de l'écriture d'un fichier source ou de l'exécution d'une commande shell.

## Approuver une action proposée

Lisez le nom de l'outil et l'opération proposée sur la carte d'autorisation. Approuvez pour exécuter cette action, ou rejetez-la pour laisser la modification proposée sans effet. Poursuivez la conversation avec une instruction plus restreinte si l'action demandée est trop large.

## Toujours dans ce projet

En mode **Personnalisé**, utilisez **Toujours dans ce projet** sur une invite d'autorisation pour enregistrer une règle pour cet outil. Vérifiez le mode sélectionné lorsque vous vous attendez à ce qu'une règle affecte la prochaine exécution.

## Vérifier ou supprimer une règle

Le projet ouvert, allez dans **Paramètres → Assistant IA → Fournisseurs et clés** et faites défiler jusqu'à **Autorisations des outils**. Chaque ligne indique le nom de l'outil et s'il est toujours autorisé ou interdit. Supprimez une règle pour ramener cet outil à la politique de risque standard en mode Personnalisé.

## Modifier approvals.toml

**Fichier de règles d'autorisation**, sous **Autorisations des outils**, modifie `~/.oleafly/approvals.toml`. Utilisez **Recharger** pour lire le fichier actuel, **Abandonner les modifications** pour supprimer les modifications non enregistrées, ou **Insérer un exemple** pour partir d'une configuration d'exemple. **Comment fonctionne le fichier** explique le format et affiche l'identifiant du projet ouvert. L'enregistrement valide le TOML avant de l'appliquer, et les règles s'appliquent dès le prochain appel d'outil.

Le fichier contient une table des modes et des tables de règles d'outils indexées par **identifiant de dossier de projet**, et non par le titre affiché :

```toml title="~/.oleafly/approvals.toml"
["$approval_modes"]
"my-project-folder-id" = "custom"

["my-project-folder-id"]
write_file = "allow"
replace_in_file = "allow"
run_command = "deny"
delete_file = "deny"
```

Remplacez `my-project-folder-id` par l'identifiant de dossier réel de votre projet. Les identifiants de projet sont les noms des dossiers sous `~/.oleafly/projects`. Les valeurs de mode sont `ask-for-approval`, `approve-for-me`, `full-access` et `custom`. Un projet qui n'est pas listé utilise Autoriser à ma place. Les valeurs de règles d'outils sont `allow` et `deny`. Une règle `deny` s'applique dans tous les modes, Accès complet inclus : un outil interdit ne s'exécute donc jamais. Une règle `allow` ne s'applique qu'en mode Personnalisé. Un outil sans règle suit la politique de risque normale.

Les commentaires commençant par `#` survivent à un enregistrement depuis Paramètres, mais choisir **Toujours dans ce projet** sur une carte d'autorisation réécrit le fichier sans eux.

Utilisez les noms d'outils exacts du catalogue. Les noms courants incluent `write_file`, `replace_in_file`, `create_file`, `rename_file`, `delete_file`, `run_command`, `compile`, `insert_figure` et `set_main_doc`.

## Quel fichier de configuration utiliser ?

| Fichier | Rôle |
|---|---|
| `~/.oleafly/config.json` | Configuration de l'application, gérée via Paramètres |
| `~/.oleafly/approvals.toml` | Modes d'autorisation du projet et règles par outil |
| `~/.oleafly/agent.toml` | Limites et instructions avancées multi-agents |
| La configuration de votre agent externe, comme `~/.codex/config.toml` | Réglages propres à cet agent et connexions MCP |

Oleafly n'utilise pas un unique `config.toml` pour tous ces réglages. Utilisez l'interface Paramètres pour les clés de fournisseurs et les préférences de l'application ; les identifiants ont un stockage chiffré distinct. Ne remplacez pas toute votre configuration d'application par un court exemple.

## Configurer agent.toml

Les utilisateurs avancés peuvent créer `~/.oleafly/agent.toml` pour régler les paramètres multi-agents de l'assistant. Ces paramètres régissent le moteur d'agents de Oleafly lui-même, séparément de la configuration d'un agent CLI connecté.

```toml title="~/.oleafly/agent.toml"
maxAgentDepth = 2
maxConcurrentSubagents = 8
minWaitTimeoutMs = 1000
maxWaitTimeoutMs = 300000
defaultWaitTimeoutMs = 120000
waitAgentEnabled = true

usageHintText = """
Delegate independent checks with clear scopes. Keep writing decisions with
the parent agent, and close completed agents when their work is collected.
"""

subagentDeveloperInstructions = """
Work only on the assigned task. Report the files and evidence you inspected.
Do not spawn additional agents.
"""
```

### maxAgentDepth

Limite la profondeur d'imbrication. La valeur par défaut est `2` : les enfants d'une exécution ne délèguent pas davantage. La valeur minimale acceptée est `1`.

### maxConcurrentSubagents

Limite le nombre de sous-agents simultanés dans une session. La valeur par défaut est `8`, et le minimum est `1`. Plus d'agents peut augmenter l'utilisation des modèles ; augmentez la limite pour un travail qui peut réellement avancer en parallèle.

### minWaitTimeoutMs

Définit la borne inférieure d'une attente d'agent, en millisecondes. La valeur par défaut est `1000`.

### maxWaitTimeoutMs

Définit la borne supérieure d'une attente d'agent. La valeur par défaut est `300000`, soit cinq minutes. Elle est maintenue supérieure ou égale au minimum.

### defaultWaitTimeoutMs

Définit la durée d'attente par défaut. La valeur par défaut est `120000`, soit deux minutes. Les valeurs sont contraintes entre le minimum et le maximum configurés.

### waitAgentEnabled

Contrôle la disponibilité de la fonction d'attente d'agent. La valeur par défaut est `true`.

### usageHintText

Fournit des conseils de délégation à l'agent parent. L'exemple ci-dessus remplace les conseils par défaut par votre propre texte.

### subagentDeveloperInstructions

Fournit des instructions aux agents enfants. Utilisez-le pour indiquer le périmètre, les attentes en matière de rapport et si une délégation supplémentaire est appropriée.

Le moteur accepte aussi les versions snake_case de ces clés, comme `max_agent_depth`. Les champs omis utilisent les valeurs par défaut. Un fichier manquant ou mal formé revient aux valeurs par défaut ; vérifiez donc soigneusement la syntaxe et démarrez une nouvelle exécution après avoir modifié la configuration.

## Tester une règle avec une petite tâche

1. Ouvrez un projet d'entraînement et choisissez **Demander l'autorisation**.
2. Demandez : « Lis le document principal et propose un titre plus clair. Demande avant de modifier le fichier. »
3. Examinez la modification proposée et approuvez-la ou rejetez-la.
4. Vérifiez les règles enregistrées dans Paramètres avant de passer en mode Personnalisé.
5. Utilisez le [mode Plan](/docs/ai-chat/#plan-before-editing) lorsque vous voulez convenir de plusieurs étapes avant que les modifications ne commencent.

Les assistants externes connectés via Oleafly MCP utilisent la [politique du serveur MCP](/docs/mcp/#approvals-and-safety), qui est configurée séparément.
