> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Développer un agent ACP personnalisé

> Créez un agent personnalisé qui s’exécute dans Devin Desktop via l’Agent Client Protocol.

Cette page présente ce que vous devez implémenter pour développer un agent [ACP](/fr/desktop/acp) personnalisé compatible avec Devin Desktop.

Pour consulter la spécification complète du protocole, rendez-vous sur [agentclientprotocol.com](https://agentclientprotocol.com/). Des bibliothèques clientes officielles sont disponibles en [Rust](https://agentclientprotocol.com/libraries/rust), [TypeScript](https://agentclientprotocol.com/libraries/typescript), [Python](https://agentclientprotocol.com/libraries/python), [Kotlin](https://agentclientprotocol.com/libraries/kotlin) et [Java](https://agentclientprotocol.com/libraries/java).

<div id="basics">
  ## Notions de base
</div>

Les agents ACP fonctionnent comme des sous-processus locaux lancés à la demande par Devin Desktop. Toutes les communications passent par JSON-RPC via stdio.

<div id="methods-you-must-implement">
  ### Méthodes que vous devez implémenter
</div>

Au minimum, votre agent doit prendre en charge les méthodes suivantes de Devin Desktop :

* [`initialize`](https://agentclientprotocol.com/protocol/initialization) — Négocier la version du protocole, annoncer les capacités de votre agent et renvoyer les informations de l’agent (nom, version).
* [`session/new`](https://agentclientprotocol.com/protocol/session-setup) — Créer une nouvelle session pour un répertoire de travail et renvoyer un identifiant de session. Devin Desktop transmet le `cwd` et tous les serveurs MCP configurés.
* [`session/prompt`](https://agentclientprotocol.com/protocol/prompt-turn) — Recevoir un message de l’utilisateur, gérer le tour de prompt et renvoyer un `stopReason` une fois terminé.
* [`session/cancel`](https://agentclientprotocol.com/protocol/prompt-turn) — Interrompre tout travail en cours pour une session lorsque l’utilisateur annule.

<div id="prompt-turn-lifecycle">
  ### Cycle de vie d’un tour de prompt
</div>

Pendant un tour `session/prompt`, votre agent envoie des mises à jour à Devin Desktop sous forme de notifications JSON-RPC :

* `session/update` avec `agent_message_chunk` pour diffuser en continu le texte de l’assistant.
* `session/update` avec `tool_call` et `tool_call_update` pour afficher les appels d’outil et leur statut dans l’interface de Devin Desktop.
* `session/request_permission` pour demander l’autorisation de l’utilisateur avant d’exécuter un appel d’outil sensible.
* `session/update` avec `plan` si votre agent maintient un [plan d’agent](https://agentclientprotocol.com/protocol/agent-plan).

Le tour se termine lorsque votre agent renvoie une réponse `session/prompt` avec un `stopReason` (p. ex. `end_turn`, `cancelled`, `max_tokens`).

<div id="testing">
  ## Tests
</div>

Pour tester votre agent avec Devin Desktop :

1. Ajoutez une entrée pour votre agent dans votre [configuration du registre local](/fr/desktop/acp#local-registry-config), en pointant `cmd` vers le chemin du binaire de votre agent local (ou d’un script wrapper).
2. Modifiez votre agent et reconstruisez-le si nécessaire.
3. Exécutez `Reload ACP Connections` depuis la palette de commandes pour prendre en compte la dernière version — inutile de redémarrer Devin Desktop entre les itérations.

<div id="limitations">
  ## Limitations
</div>

Devin Desktop ne prend pas encore en charge tous les aspects de la spécification ACP. Voici les principales différences à garder à l’esprit lors de la création d’un agent pour Devin Desktop :

* **Les modes de session ne sont pas pris en charge.** Les [modes de session](https://agentclientprotocol.com/protocol/session-modes) ne sont pas exposés dans l’interface de Devin Desktop. Si votre agent doit permettre aux utilisateurs de choisir entre plusieurs modes (p. ex. plan / build / review), exposez-les plutôt comme une [option de configuration de session](https://agentclientprotocol.com/protocol/session-config-options) avec la catégorie `"mode"`.
* **Les capacités de terminal ne sont pas exposées.** Devin Desktop n’annonce pas les [capacités de terminal](https://agentclientprotocol.com/protocol/terminals) ; les agents ne peuvent donc pas créer de terminaux dans l’interface de Devin Desktop. Les agents doivent exécuter les commandes dans leur propre sous-processus et transmettre la sortie via des mises à jour `tool_call`.
